NGUYỄN THỊ BÍCH NGỌC NGHIÊN CỨU CÁC THUẬT TOÁN GIÁM SÁT VÀ XỬ LÝ CẠNH TRANH GIỮA CÁC THÀNH PHẦN PHẦN MỀM TRÊN MÔI TRƯỜNG PHÂN TÁN LUẬN VĂN THẠC SĨ HÀ NỘI - 2007... 2 ĐẠI HỌC QUỐC GIA
Trang 1NGUYỄN THỊ BÍCH NGỌC
NGHIÊN CỨU CÁC THUẬT TOÁN GIÁM SÁT VÀ XỬ LÝ CẠNH TRANH GIỮA CÁC THÀNH PHẦN PHẦN MỀM
TRÊN MÔI TRƯỜNG PHÂN TÁN
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2007
Trang 22 ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ BÍCH NGỌC
NGHIÊN CỨU CÁC THUẬT TOÁN GIÁM SÁT VÀ XỬ LÝ CẠNH TRANH GIỮA CÁC THÀNH PHẦN PHẦM MỀM
TRÊN MÔI TRƯỜNG PHÂN TÁN
Chuyên ngành: Công nghệ thông tin
Mã số: 1.01.10
LUẬN VĂN THẠC SĨ
Người hưóng dẫn khoa học:
PGS.TS Hồ Sĩ Đàm
I HÀ NỘI - 2006
Trang 3LỜI CẢM ƠN
Lời đầu tiên, tôi muốn gửi lời cảm ơn chân thành nhất tới PGS TS Hồ Sĩ Đàm, người thầy đã tận tình hướng dẫn và giúp đỡ tôi trong suốt quá trình làm luận văn Tôi xin gửi lời cảm ơn chân thành tới Thạc sĩ Nguyễn Hoàng Anh đã giúp đỡ tôi rất nhiệt tình trong quá trình nghiên cứu để hoàn thành luận văn
Tôi xin gửi lời cảm ơn chân thành tới các lãnh đạo Trung tâm Công nghệ thông tin - Ngân hàng Đầu tư và phát triển Việt Nam đã tạo những điều kiện tốt nhất cho tôi trong suốt quá trình học tập và làm luận án Xin cảm ơn những đồng nghiệp trong tại Trung tâm Công nghệ thông tin - Ngân hàng Đầu tư và phát triển Việt Nam đã luôn khuyến khích, động viên và giúp đỡ tôi trong thời gian học tập và công tác vừa qua
Tôi cũng xin bày tỏ lòng biết ơn tới các thầy cô và bạn bè cùng lớp cao học K9T3 Xin cám ơn bạn bè, người thân vì những khuyến khích, động viên và giúp đỡ
Lời cuối, tôi xin gửi lời cảm ơn sâu sắc nhất tới gia đình tôi Gia đình luôn là nguồn động viên tinh thần và cổ vũ lớn lao, là động lực giúp tôi thành công trong công việc
và cuộc sống
Hà Nội, ngày 01 tháng 11 năm 2007
Nguyễn Thị Bích Ngọc
Trang 44
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân, không sao chép lại của người khác Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất
cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
Hà Nội, ngày 01 tháng 11 năm 2007
Nguyễn Thị Bích Ngọc
Trang 5MỤC LỤC
Mở đầu 9
Chương 1 Thành phần phần mềm (software component)Error! Bookmark not
defined.
1.1 Kỹ nghệ phần mềm hướng thành phần Error! Bookmark not defined 1.1.1 Tổng quan kỹ nghệ phần mềm hướng thành phầnError! Bookmark not
defined.
1.1.2 Thành phần phần mềm Error! Bookmark not defined 1.2 Mô hình thành phần Error! Bookmark not defined 1.3 Giám sát và dò vết thành phần Error! Bookmark not defined 1.3.1 Giới thiệu Error! Bookmark not defined 1.3.2 Dò vết thành phần Error! Bookmark not defined 1.3.3 Cơ chế tăng khả năng dò vết cho thành phầnError! Bookmark not defined.
1.3.4 Mô hình hướng sự kiện của Java giúp hỗ trợ dò vếtError! Bookmark not defined.
1.3.5 Gói dò vết của Java Error! Bookmark not defined 3.2.5 Môi trường dò vết cho phần mềm thành phầnError! Bookmark not
defined.
Chương 2 Hệ thống đối tượng phân tán Error! Bookmark not defined 2.1 Giới thiệu Error! Bookmark not defined 2.2 Sự phân tán trong môi trường Java: RMI Error! Bookmark not defined 2.2.1 Hệ thống đối tượng phân tán trong môi trường JavaError! Bookmark not defined.
2.2.2 Giới thiệu ứng dụng phân tán với RMI Error! Bookmark not defined 2.2.3 Kiến trúc của cơ chế RMI Error! Bookmark not defined Chương 3 Thuật toán phân tán Error! Bookmark not defined 3.1 Tổng quan về các thuật toán phân tán Error! Bookmark not defined 3.2 Thuật toán trong mạng đồng bộ Error! Bookmark not defined 3.2.1 Leader election trong mạng vòng đồng bộError! Bookmark not defined.
3.2.2 Leader Election trong mạng đồng bộ tổng quátError! Bookmark not
defined.
3.2.3 Leader election trong mạng vòng không đồng bộError! Bookmark not
defined.
3.3 Thuật toán trong mạng không đồng bộ Error! Bookmark not defined 3.3.1 Mutual Exclusion Error! Bookmark not defined 3.3.2 Thuật toán mutual exclution của Dijkstra Error! Bookmark not defined.
Trang 66
3.3.3 Thuật toán Two-process của Peterson Error! Bookmark not defined 3.3.4 Thuật toán mutual exclusion của Burn Error! Bookmark not defined 3.3.5 Thuật toán Bakery của Lamport Error! Bookmark not defined Chương 4 Áp dụng thuật toán phân tán cho hệ thống ATM tại ngân hàng Error!
Bookmark not defined.
4.1 Giới thiệu hệ thống ATM tại ngân hàng Error! Bookmark not defined 4.2 Chuẩn ISO 8583 Error! Bookmark not defined 4.3 Xử lý phân tán hiện tại Error! Bookmark not defined 4.4 Áp dụng thuật toán Mutual Exclution của BurnError! Bookmark not defined.
Kết luận Error! Bookmark not defined.
Tài liệu tham khảo 11
Trang 7Danh mục các chữ viết tắt và thuật ngữ
Chữ viết tắt/Thuật
ngữ
Giải thích
CBSE Component-based software engineering - Kỹ nghệ
phần mềm hướng thành phần UID Unique Identifier - Định danh duy nhất
Leader Election Bầu đại biểu – Trong mô hình mạng vòng đồng bộ,
cần tìm ra một tiến trình duy nhất có định danh lớn nhất làm Leader được phép thực hiện tiến trình, các tiến trình khác phải chờ cho đến lượt mình
Mutual Exclution Vấn đề tương tranh– trong mô hình mạng không đồng
bộ, vấn đề này xảy ra khi có nhiều hơn một tiến trình cùng truy cập tài nguyên chia xẻ, cần phải có sự phân phối tài nguyên giữa các tiến trình
Danh mục các hình vẽ
Hình 1.1: Mô hình hệ thống ứng dụng của ngân hàng 5
Hình 1.2: Các kiểu dò vết thành phần 16
Hình 1.3: Cấu trúc mô hình dò vết hướng sự kiện 19
Hình 1.4: Chuỗi tương tác 20
Hình 1.5: Gói dò vết 21
Hình 1.6: Bộ phỏng theo Tracker 21
Hình 1.7: Sự thi hành của bindBeanTraker 22
Hình 1.8 Môi trường dò vết phân tán 23
Hình 2.1 : Mô hình đối tượng phân tán 25
Hình 2.2 : Đăng ký tham chiếu đối tượng từ xa 29
Hình 2.3: Kiến trúc của RMI 30
Hình 2.4: Sự hỗ trợ thi hành của RMI 30
Hình 2.5 : Quan hệ giữa giao diện và lớp 31
Hình 2.6: Các tầng kiến trúc của RMI 32
Hình 2.7 : Kết nối giữa các máy ảo 34
Hình 3.1: Thông điệp liên tiếp được gửi đi trong thuật toán Hirshberg-Sinclair38 Hình 3.2: Hệ thống bộ nhớ chia sẻ 43
Hình 3.3 : Chu kỳ hoạt động của một tiến trình 47
Hình 3.4: Đặc tả giao diện đối với NSD 47
Hình 3.5: Kiến trúc tổng thể của vấn đề mutual exclution 48
Trang 88
Hình 3.6: Tại thời điểm t1, pi thiết đặt flag[i]=2; tại thời điểm t2, pj lại thấy flag[i] ≠ 2; tại thời điểm t3 thì pi rời khỏi vùng C 51 Hình 4.1 : Qui trình xử lý giao dịch trên ATM 67
Trang 9Mở đầu
Trước khi đi vào giới thiệu nội dung của luận văn, chúng ta hãy nghiên cứu mô hình ứng dụng của ngân hàng[1]
Trong mô hình hệ thống, hệ thống nghiệp vụ cốt lõi bao gồm các phân hệ nghiệp vụ
cơ bản của ngân hàng, đó là: Thông tin khách hàng(Customer Information File-CIF), Tiền gửi(Deposit), Khoản vay(Loan), Tài trợ thương mại(Trade Finance), Chuyển tiền(Remittance), Ngân quỹ(Tresury) và Sổ cái tổng hợp(General Ledger-GL) Các phân hệ này xử lý tất cả các nghiệp vụ cốt lõi của ngân hàng và giao tiếp với các phân
hệ khác, các hệ thống khác thông qua phần xử lý các dịch vụ phân phối Trên cơ sở các nghiệp vụ này, ngân hàng phát triển các sản phẩm dịch vụ của mình qua các kênh phân phối sản phẩm gồm có: hệ thống giao dịch của chi nhánh(Branch Delivery System - BDS), SWIFT/TELEX, IPBS, T5, ATM, POS, HomeBanking, Internet Banking…Đồng thời hệ thống còn có khả năng tích hợp với các hệ thống chương trình khác như: Quản lý mẫu dấu chữ ký, Trái phiếu, CIC, Quản lý TSCĐ, Quản lý phải thu/phải trả…
Hình 1.1 : Mô hình hệ thống ứng dụng của ngân hàng
Trang 1010
Dữ liệu của toàn bộ hệ thống được lưu trữ tập trung về kho dữ liệu (Data warehouse) tại HSC Giao dịch tại các chi nhánh trên toàn quốc sẽ được xử lý trực tuyến tại máy chủ
Với mô hình hoạt động như trên ta có thể thấy ngay rằng ứng dụng của ngân hàng là một ứng dụng phân tán và được phát triển từ nhiều thành phần phần mềm ghép nối lại Mục tiêu của các ngân hàng đặt ra là ngày càng phát triển nhiều sản phẩm dịch vụ khách hàng chất lượng cao, an toàn, tiện lợi Để đạt được điều này, bênh cạch việc tìm hiểu thị trường về nhu cầu của khách hàng, các nghiệp vụ đáp ứng như cầu đó, một khía cạnh không kém phần quan trọng mà các ngân hàng đang hướng tới chính là lĩnh vực công nghệ thông tin Vấn đề nghiên cứu, nắm bắt và làm chủ hệ thống để từ đó có thể phát triển hệ thống là một yêu cầu cấp thiết đặt ra tại các ngân hàng Với mục tiêu
đó, bài luận văn đề cập đến các nội dung sau:
Chương 1: Thành phần phần mềm
Giới thiệu các khái niệm cơ bản về kỹ nghệ phần mềm hướng thành phần, giám sát
và dò vết các thành phần phần mềm
Chương 2: Hệ thống đối tượng phân tán
Giới thiệu tổng quan về hệ thống phân tán, một mô hình đang được áp dụng rất nhiều trong các phần mềm tại ngân hàng
Chương 3: Thuận toán ứng dụng trong môi trường phân tán, giới thiệu các vấn đề nảy sinh trong môi trường phân tán, thuật toán giải quyết các vấn đề đó
Chương 4: Áp dụng thuật toán phân tán cho hệ thống ATM tại ngân hàng
Kết luận
Tài liệu tham khảo
Trang 11Tài liệu tham khảo
Tiếng Việt
1 Các tài liệu về hệ thống ngân hàng
Tiếng Anh
2 C Szyperski et al, Component Software – Beyond Object-Oriented
Programming, Second Edition, Addison-Wesley/ACM Press, 2002
3 D D' Souza and A Wills Objects, Components, and Frameworks with UML, Addison-Wesley, 1998
4 Distributed Algorithms, Nancy A Lynch và Boaz Patt-Shamir, Janury 1993
5 Distributed Systems: Principles and Paradigms, Andrew S Tanenbaum và Maarten van Steen, January 2002
6 Microsoft Corporation Distributed Component Object Model
Protocol-DCOM/1.0, draft, November 1996
7 M L Liu, Distributed Computing – Principles and Applications, Pearson Addison-Wesley, 2004
8 A Component Architecture for Java July 1996
http://tec.uno.edu/george/thesis/news/JavaBeans.WhitePaper.html
9 Component-Based Software Development – An Overview,
(http://cbs.colognet.org/overview.php)
10 Java Remote Method Invocation,
http://java.sun.com/j2se/1.4.2/docs/guide/rmi/spec/rmiTOC.html
11 Monitoring Software Component and Component-Base Software,
(http://www.engr.sjsu.edu/gaojerry/report/compsac2000.pdf)
12 Software Component Basics – (http://www.webbasedprogramming.com/Presenting-JavaBeans/html/ch01.htm )
13 Một số trang Web: http://www.Inprise.com, www.sun.com ;
http://fsl.cs.uiuc.edu/papers/chen-wang-mei-yang-02.pdf;
http://www.softwarereality.com/programming/ComponentOrientedSoftware.pdf