Xây dựng một hệ thống phân tán có khả năng xử lí đồng thời một bài toán trên nhiều máy tính là một hướng giải quyết khả thi và đã được chứng minh tính hữu dụng.. Đinh nghĩa điện toán phâ
Trang 1LỜI NÓI ĐẦU
Ngày nay, lĩnh vực công nghệ thông tin và viễn thông ngày càng phát triển, đòi hỏi nhu cầu
về xử lí thông tin ngày càng cao, nhanh hơn nhiều lần tốc độ phát triển của tài nguyên phần cứng
và phần mềm Có nhiều vấn đề đặt ra mà các hệ thống tập trung thông thường không đáp ứng được, do tốc độ xử lí còn hạn chế Xây dựng một hệ thống phân tán có khả năng xử lí đồng thời một bài toán trên nhiều máy tính là một hướng giải quyết khả thi và đã được chứng minh tính hữu dụng Hệ thống phân tán còn tạo nhiều thuận lợi trong việc chia sẻ thông tin trên toàn thế giới Trong bài luận này sẽ trình bày về mơ hình điện toán phân tán Ngoài ra bài tiểu luận cũng sẽ trình bày về công nghệ WCF đươc sử dụng trong lập trình phân tán và ứng dụng vào bài toán thực tiễn Internet Banking của ngân hàng
Trang 2MỤC LỤC
LỜI NÓI ĐẦU
I KHÁI NIỆM ĐIỆN TOÁN PHÂN TÁN 1
1 Theo dòng lịch sử 1
2 Đinh nghĩa điện toán phân tán: 1
II CÁC VẤN ĐỀ TRONG ĐIỆN TOÁN PHÂN TÁN 2
1 Mục tiêu của hệ phân tán 2
2 Phân loại 3
3 Các mô hình điện toán phân tán 3
III CÔNG NGHỆ LẬP TRÌNH PHÂN TÁN WCF 7
1 Khái niệm 7
2 Kiến trúc của WCF 8
3 Các tính năng của WCF 9
IV) Áp dụng công nghệ phân tán WCF vào phần mềm Internet Banking 10
1 Mục tiêu ứng dụng 10
2 Ứng dụng WCF 10
3 Giao diện, chức năng phần mềm 11
4 Kết quả đạt được 15
V) Xu hướng hiện nay 15
KẾT LUẬN 16
TÀI LIỆU THAM KHẢO 16
Trang 3I KHÁI NIỆM ĐIỆN TOÁN PHÂN TÁN
1 Theo dòng lịch sử
Các hệ thống máy tính lớn của những năm 1960 và thập niên 1970, như hệ thống IBM System/360, hiếm khi liên lạc với nhau Một trong những chức năng chính của một máy tính lớn là nó sẽ cung cấp cho bạn tất cả mọi thứ cần thiết để thực hiện các khả năng tính toán cho một doanh nghiệp Khi thông tin liên lạc được yêu cầu, dữ liệu được chuyển từ tape này sang một hệ thống khác Theo thời gian, yêu cầu truy cập thời gian thực giữa các hệ thống trở nên cần thiết, đặc biệt là khi số lượng các hệ thống trong một tổ chức ngày càng lớn Yêu cầu thời gian thực này đặc biệt rõ ràng hơn trong các thị trường tài chính, ngân hàng, chứng khoán
Ban đầu, việc truy cập thời gian thực đã được thực hiện thông qua lập trình socket thường được viết bằng ngôn ngữ assembly hoặc C, lập trình socket là phức tạp và đòi hỏi một sự hiểu biết sâu sắc về các giao thức mạng cơ bản Theo thời gian, các giao thức như Network File System (NFS) và File
Transfer Protocol (FTP) càng đem đến sự phức tạp cho lập trình socket Các công ty như Tibco đã phát triển phần mềm trung gian "middleware " được thiết kế để tạo điều kiện truyền tin và giao tiếp giữa các máy chủ Cuối cùng, khả năng tạo ra ứng dụng phân tán trở nên khả thi thông qua sự phát triển của triệu gọi phương thức đối tượng từ xa (RPC)
2 Đinh nghĩa điện toán phân tán:
2.1) Tính toán phân tán
Là một khuôn mẫu lập trình chú trọng vào việc thiết kế các hệ thống phân tán có các tính chất: chịu lỗi, xuyên dụng, mở rộng được, mở Khuôn mẫu này là kết quả tự nhiên của việc dùng máy tính để lập nên các mạng máy tính
Distributed computing : Bao gồm nhiều thành phần phần mềm được chạy trênnhiều máy
tính,nhưng như chạy mộthệ thống duy nhất Các máy tính đang ở trong một hệ thống phân phối
có thể được thể chất gần nhau và nối với nhau bằng một mạng nội bộ, hoặc chúng có thể cách xa
về mặt địa lý và được nối với nhau bằng một mạng diện rộng
Một hệ thống phân phối có thể bao gồmbất kỳ số lượng cấu hình nào chẳng hạn như máy tính lớn, máy tính cá nhân, máy trạm, máy tính mini….Mục đích của tính toán phân tán là làm như như trong một máy tính duy nhất
Tính toán phân tán là tính toán song song được phân quyền, sử dụng hai hay nhiều máy tính liên lạc với nhau qua một mạng để hoàn tất một nhiệm vụ hoặc mục tiêu chung Các loại phần cứng, ngôn ngữ lập trình, hệ điều hành và các tài nguyên khác được sử dụng có thể rất đa dạng
2.2) Định nghĩa về hệ phân tán
Trang 4II CÁC VẤN ĐỀ TRONG ĐIỆN TOÁN PHÂN TÁN
1 Mục tiêu của hệ phân tán.
1.1) Kết nối người sử dụng và tài nguyên
Giải quyết bài toán chia sẻ tài nguyên trong hệ thống (resource sharing)
1.2) Tính trong suốt
Ẩn giấu sự rời rạc và những nhược điểm nếu có của hệ phân tán đối với người sử dụng (end-user ) và những nhà lập trình ứng dụng (application programmer)
Theo tiêu chuẩn ISO cho hệ phân tán ISO / IS / 10746 tên là "Open distributed processing reference model" 1995 đã cụ thể hóa tám dạng trong suốt:
Trong suốt truy cập (Access transparency): che giấu sự khác biệt về cách biểu diễn và cách truy cập tài nguyên
Trong suốt về vị trí (Location transparency): che giấu vị trí của tài nguyên Hai dạng trong suốt vừa trình bày được gọi chung là trong suốt mạng (network transparency)
Trong suốt di trú (Migration transparency): che giấu khả năng chuyển vị trí của tài nguyên Trong suốt về việc định vị lại (Relocation transparency): che giấu việc di chuyển của tài nguyên khi đang được sử dụng
Trong suốt nhân bản (Replication transparency): che giấu tình trạng tình trạng sử dụng bản sao của tài nguyên
Che giấu sự che sẻ tài nguyên tương tranh (Concurency transparency)
Trong suốt sự cố (Failure transparency): che giấu lỗi hệ thống nếu có
Trong suốt khả năng di chuyển tài nguyên (Persistence transparency): che giấu việc di chuyển tài nguyên từ bộ nhớ ngoài vào bộ nhớ trong và ngược lại
1.3) Tính mở (Openness)
Hệ phân tán được gọi là mở nếu nó cung cấp các dịch vụ theo các quy tắc chuẩn mô tả cú pháp và ngữ nghĩa của dịch vụ đó
Thông thường trong hệ phân tán các dịch vụ thường đặc tả qua các giao diện bằng ngôn ngữ đặc tả giao diện (Interface Definition Language- IDL) Vì thế chỉ quan tâm đến cú pháp Nó cho phép các dịch vụ khác nhau cùng chung sống Nếu các giao diện của hệ phân tán được đặc
tả đầy đủ và đúng đắn
Xét hai khái niệm của hệ phân tán là khái niệm liên tác (Interroperability) và khái niệm chuyển mang (portability)
Liên tác: các cài đặt của các hệ thống hoặc thành phần hệ thống từ các nhà sản xuất khác nhau
Trang 5có thể làm việc với nhau thông qua liên tác
Chuyển mang: nhờ chuyển mang mà một ứng dụng được phát triển cho hệ phân tán A có thể thực hiện không cần thay đổi gì trên một hệ phân tán B khác, với điều kiện được cài đặ cùng giao diện như A
1.4) Tính co giãn (Scalability)
Một hệ phân tán được gọi là có tính co giãn nếu nó thích nghi với sự thay đổi quy mô của hệ thống Thể hiện trên các khía cạnh sau:
- Dễ bổ sung người sử dụng và tài nguyên hệ thống
- Khi hệ thống thay đổi quy mô về mặt địa lý dẫn đến sự thay đổi về vị trí địa lý của người sử dụng và các tài nguyên
- Hệ thống có thay đổi quy mô về quản trị
Nếu hệ phân tán có tính co giãn thường ảnh hưởng đến hiệu năng của hệ thống (hiệu năng của
hệ thống là hiệu quả năng lực hoạt động của đối tượng)
Có ba giải pháp phổ dụng để giải quyết vấn đề co giãn của hệ phân tán:
- Ẩn giấu
- Phân tán: phân nhỏ thành phần hệ thống và phân bố chúng trên phạm vi của hệ thống (quản
lý phân cấp) Ví dụ DNS xác định theo cách phân cấp miền lớn thành các miền con Với phương pháp này sẽ giải quyết được vẫn đề khi thêm người dùng hay tài nguyên vào hệ thống
- Nhân bản: nhân bản một thành phần nào đó của hệ thống Ví dụ tài nguyên dữ liệu đặt tại các
vị trí khác nhau trong hệ thống
2 Phân loại
Trước đây, hệ phân tán được chia thành ba loại : hệ điều hành hệ phân tán, cơ sở dữ liệu hệ phân tán và các hệ thống tính toán hệ phân tán
Ngày nay, hệ phân tán được phân chia như sau:
- Hệ phân tán mang tính hệ thống: hệ điều hành phân tán
- Hệ phân tán mang tính ứng dụng: các hệ thống truyền tin phân tán
3 Các mô hình điện toán phân tán
Sự phát triển của Internet và sức mạnh của máy tính , mạng tốc độ cao
cũng như các hàng hóa chi phí thấp đang dần thay đổi cách con người
tính toán Điện toán phân tán đã trở thành một thành phần cần thiết
của kỷ thuật điện toán trong nhiều thập kỷ Điện toán phân tán bao gồm một
tập hợp các quá trình hợp tác xử lý để giải quyết một bài toán Công nghệ thông tin và truyền thông (ICT) đã cách mạng hóa điện toán phân tán vào thực tiễn
Ngày nay, mạng xã hội đại diện cho một bước đệm trong quá trình sử dụng Internet để các cá nhân có thể liên kết với nhau về thông tin và văn hóa Hầu hết các trang web xã hội được thực hiện trên các hệ thống tính toán phân tán khổng lồ được vận hành và quản lý tập trung trong các trung tâm dữ liệu (data center) Tuy nhiên , xu hướng của một hệ thống có khả năng mở rộng là hướng tới việc sử dụng điện toán peer-to -peer , utility, cluster, and jungle Điện toán tiện ích (utility computing) về cơ bản là điện toán lưới và điện toán đám mây
Trang 63.1) Peer to Peer Computing
Mạng ngang hàng (tiếng Anh: peer-to-peer network), còn gọi là mạng đồng đẳng, là một mạng máy tính trong đó hoạt động của mạng chủ yếu dựa vào khả năng tính toán và băng thông của các máy tham gia chứ không tập trung vào một số nhỏ các máy chủ trung tâm như các mạng thông thường Mạng đồng đẳng có nhiều ứng dụng Ứng dụng thường
xuyên gặp nhất là chia sẻ tệp tin, tất cả các dạng như âm thanh, hình ảnh, dữ liệu, hoặc
để truyền dữ liệu thời gian thực như điện thoại VoIP
Một mạng đồng đẳng đúng nghĩa không có khái niệm máy chủ và máy khách, nói cách khác, tất cả các máy tham gia đều bình đẳng và được gọi là peer, là một nút mạng đóng vai trò đồng thời là máy khách và máy chủ đối với các máy khác trong mạng
3.2) Cluster Computing
Một cụm máy tính bao gồm một tập hợp các máy tính độc lập được kết nối với nhau thông qua mạng máy tính, cùng hợp tác với nhau để hoạt động như một máy tính tích hợp duy nhất Các thành phần trong cluster được quản lý trong cùng domain Các thành phần của cluster kết nối với nhau thông qua mạng cục bộ
Trang 73.3) Grid Computing
Grid là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt chia sẻ, tuyển lựa và tập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo khả năng sẵn có, công suất, hoạt động, chi phí và yêu cầu về chất lượng dịch vụ của người sử dụng
Điện toán mạng lưới (ĐTML) có nghĩa là tất cả hoặc một phần của một nhóm máy tính, máy chủ
và thiết bị lưu trữ trong mạng doanh nghiệp, được “ảo hóa” (virtualize) thành một cỗ máy tính lớn
Vì ĐTML giải phóng những khả năng tính toán không được sử dụng vào một thời điểm bất kỳ, chúng có thể cho phép các doanh nghiệp tăng cường rất nhiều về tốc độ, sức mạnh xử lý thông tin
và sự liên kết, thúc đẩy các quy trình tính toán mật độ cao Trong khi đó, chi phí vẫn sẽ được giữ ở mức thấp vì ĐTML có thể được xây dựng từ chính hạ tầng hiện có, góp phần đảm bảo sự huy động tối ưu các khả năng tính toán
Điện toán mạng lưới cho phép ảo hóa các chức năng tính toán phân tán cũng như các nguồn xử lý, băng thông mạng và khả năng lưu trữ, để từ đó tạo ra một hệ thống đơn đồng nhất, cho phép người
sử dụng và các ứng dụng truy cập thông suốt vào các tính năng điện toán rộng lớn Giống như người lướt web xem một nội dung thống nhất qua web, người sử dụng ĐTML cũng nhìn thấy một máy tính ảo cực lớn duy nhất
Điện toán lưới (grid computing) sử dụng tập hợp các tài nguyên máy tính có hoạt động giống máy chủ (server), thông qua mạng tốc độ cao để đáp ứng công việc tính toán
Có thể hình dung môi trường tính toán lưới tương tự như mạng lưới điện Các trạm phát điện phân
bổ rải rác, liên kết với nhau qua mạng lưới điện để chia tải và bổ sung nguồn điện cho nhau khi cần thiết Khách hàng sử dụng điện không cần quan tâm đến nguồn gốc trạm phát Việc sử dụng điện có lúc nhiều (giờ cao điểm) lúc ít, có khách hàng dùng nhiều và khách hàng dùng ít, mạng lưới điện sẽ thực hiện việc điều phối thích hợp
Trong tính toán lưới, các máy tính đóng vai trò giống như những trạm phát điện Người dùng có thể truy cập tới máy tính ảo có đủ năng lực xử lý đáp ứng nhu cầu của mình Máy tính ảo này có thể bao gồm nhiều nguồn tài nguyên tính toán không đồng nhất (phần cứng máy tính và hệ điều hành khác nhau), tuy nhiên người dùng không nhận biết các tài nguyên cụ thể này, cũng giống như người dùng điện không nhận biết nguồn điện phát sinh từ đâu
Trang 83.4) Cloud Computing
Mô hình Điện toán đám mây là mô hình điện toán với sự cân bằng động và các tài nguyên ảo hóa được cung cấp như dịch vụ trên mạng Internet
Trong Điện toán đám mây, người sử dụng truy cập các dịch vụ tính toán từ nhà cung cấp nào đó
“trong đám mây” mà không cần phải có các kiến thức và kinh nghiệm về công nghệ đó cũng như không quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó
Cloud Computing ra đời để giải quyết các vấn đề sau:
-Vấn đề về lưu trữ dữ liệu:
Dữ liệu được lưu trữ tập trung ở các kho dữ liệu khổng lồ Các công ty lớn như
Microsoft, Google có hàng chục kho dữ liệu trung tâm nằm rải rác khắp nơi trên thế giới Các công ty lớn này sẽ cung cấp các dịch vụ cho phép doanh nghiệp có thể lưu trữ và quản lý dữ liệu của họ trên các kho lưu trữ trung tâm
-Vấn đề về sức mạnh tính toán:
Có 2 giải pháp chính:
o Sử dụng các siêu máy tính (super-computer) để xử lý tính toán
o Sử dụng các hệ thống tính toán song song, phân tán, tính toán lưới (grid computing)
Vấn đề về cung cấp tài nguyên, phần mềm:
Cung cấp các dịch vụ như IaaS (infrastructure as a service), PaaS (platform as a service), SaaS (software as a service)
3.5) Jungle Computing
Là sự kết hợp tính toán tài nguyên không đồng nhất, phân bậc , và phân tán Trong nhiều lĩnh vực nghiên cứu khoa học, các chuyên gia buộc phải vào sử dụng đồng thời nhiều điện toán cụm, lưới, đám mây, máy tính cá nhân…Vì vậy điện toán rừng được giao cho giải
quyết việc sử dụng hệ thống máy tính đa dạng, phân tán và hiệu suất không đồng đều để
đạt được hiệu suất cao nhất
Trang 9III CÔNG NGHỆ LẬP TRÌNH PHÂN TÁN WCF
1 Khái niệm
WCF là công nghệ nền tảng nhằm thống nhất nhiều mô hình lập trình giao tiếp được hỗ trợ
trong NET 2.0 thành một mô hình duy nhất Vào tháng 11 năm 2005, NET 2.0 được Microsoft phát hành trong đó có cung cấp các hàm API riêng biệt cho các liên lạc dựa trên SOAP để tối đa hoá sự làm việc giữa các nền tảng sử dụng Web Services, đồng thời NET 2.0 còn cung cấp các API để tối ưu việc liên lạc dựa trên mã nhị phân giữa các ứng dụng chạy trên hệ thống Windows gọi là NET Remoting, các API cho các giao dịch phân tán, và API cho liên lạc dị bộ WCF thống nhất các API này thành một mô hình duy nhất nhằm đáp ứng mô hình lập
trình hướng dịch vụ.WCF có thể sử dụng các bản tin SOAP giữa hai tiến trình, do đó làm cho các ứng dụng dựa trên WCF có thể làm việc với các tiến trình khác thông qua việc giao tiếp sử dụng bản tin SOAP Khi một tiến trình WCF liên lạc với một tiến trình không là WCF, các bản tin SOAP được mã hoá trên cơ sở XML, nhưng khi nó liên lạc với một tiến trình WCF khác, bản tin SOAP có thể được tối
ưu hoá dựa trên mã hoá nhị phân
2 Kiến trúc của WCF
Hình sau mô tả các lớp chủ yếu trong kiến trúc của Windows Communication
Trang 102.1) Các contracts
Các contract trong WCF cũng giống như các hợp đồng/hiệp định mà bạn ký trong đời
sống thật Một hợp đồng bạn ký có thể chứa các thông tin như kiểu công việc bạn sẽ làm, và những thông tin mà bạn muốn đưa ra cho các bên khác WCF contract cũng chứa các thông tin tương tự như vậy Contract định nghĩa các đặc tả trong hệ thống bản tin.Thông thường có các loại contract sau:
- Contract dữ liệu mô tả các tham số cho các bản tin mà một dịch vụ có thể
tạo ra hay sử dụng Các tham số bản tin được định nghĩa bằng các tài liệu sử dụng ngôn ngữ đặc tả XML Schema (XSD), điều này cho phép các hệ thống hiểu XML có thể xử lý
tài liệu dễ dàng Các dịch vụ khi liên lạc với nhau có thể không cần đồng ý với nhau về các kiểu, nhưng cần đồng ý về contract dữ liệu, nghĩa là đồng ý về các tham số và các kiểu trả về
- Contract bản tin định nghĩa các phần có trong bản tin sử dụng các giao
thức SOAP, và nó cho phép điều khiển sâu hơn tới các phần trong bản tin khi có yêu cầu sự chính xác như vậy
- Contract dịch vụ đặc tả chi tiết các phương thức của dịch vụ, và được
phân phối như là một giao diện trong các ngôn ngữ lập trình như Visual Basic hay Visual C# Có thể hình dung về contract dịch vụ một cách gián tiếp như sau: „Đây là các kiểu dữ liệu của các bản tin của tôi, đây là nơi tôi cung cấp, và đây là các giao thức mà tôi có thể liên lạc”
- Các chính sách và các kết nối (bindings) mô tả các điều kiện cần có để
giao tiếp với một dịch vụ Các chính sách sẽ bao gồm cả các yêu cầu về bảo mật và các
điều kiện khác cần phải có khi kết nối với một dịch vụ
2.2) Runtime service
Lớp dịch vụ thực thi chứa các hành xử sẽ xảy ra trong quá trình thực hiện của dịch vụ,
nghĩa là các hành xử thực thi của dịch vụ Ta sẽ thấy một số các hành xử như sau:
- Throttling behavior: Điều khiển luồng nhằm quy định xem có bao nhiêu
bản tin được xử lý
- Error behavior: Hành xử lỗi quy định những hành động khi lỗi xảy ra
trong hệ thống
- Metadata behavior: Hành xử với các siêu dữ liệu quy định xem làm thế
nào và khi nào thì các siêu dữ liệu được đưa ra bên ngoài dịch vụ
- Instance behavior: Hành xử thực thể quy định xem có bao nhiêu thực thể
của dịch vụ đó được chạy
- Transaction behavior: Hành xử giao dịch cho phép việc rollback các
giao dịch nếu xảy ra lỗi
- Message inspection: Kiểm tra bản tin đem lại cho dịch vụ khả năng kiểm
tra tất cả hay một số phần của bản tin
- Dispatch behavior: Khi một bản tin được xử lý bởi nền tảng WCF, dịch
vụ Dispatch behavior xác định xem bản tin được xử lý như thế nào
- Concurrency behavior: Hành xử đồng thời xác định xem việc xử lý thế
nào với việc đa luồng của mỗi dịch vụ hay mỗi thực thể của dịch vụ Hành xử này giúp
cho việc điều khiển số lượng luồng có thể truy nhập tới một thực thể của dịch vụ
- Parameter filtering: Khi một bản tin được đưa tới một dịch vụ, sẽ xảy ra
một số hành động dựa trên nội dung phần đầu đề của bản tin Phần lọc tham số sẽ thực
hiện lọc các đầu đề bản tin và thực hiện các hành động đặt sẵn dựa trên việc lọc đầu đề
bản tin
2.3) Message
Lớp bản tin là tập hợp các kênh Mỗi kênh là một thành phần xử lý bản tin theo một cách nào đó Một tập các kênh thường được gọi là ngăn xếp kênh Các kênh làm việc trên bản tin và trên đầu đề của bản tin Lớp này khác với lớp thực thi dịch vụ chủ yếu bởi sự khác nhau trong việc xử lý nội dung bản tin
Có hai kênh khác nhau là kênh vận chuyển (transport channel) và kênh điều khiển
(control channel)
- Kênh vận chuyển phụ trách việc đọc và ghi các bản tin từ mạng (network)
hoặc từ một số điểm giao dịch bên ngoài)
- Kênh điều khiển thực hiện xử lý bản tin theo giao thức, thông thường làm
việc bằng cách đọc và ghi thêm các đầu đề cho bản tin
2.4) Host and activation