Đăng ký Đăng nhập
Trang chủ Tìm hiểu windows communication foundation...

Tài liệu Tìm hiểu windows communication foundation

.PDF
123
401
118

Mô tả:

Tìm hiểu Windows Communication Foundation LỜI CÁM ƠN Chúng em chân thành gửi lời cảm ơn đến thầy Ninh Xuân Hương, trong thời gian thực hiện khóa luận, thầy đã tận tình hướng dẫn, chỉ bảo, phân tích những thiếu sót, cho chúng em những lời khuyên kịp thời và vô cùng quan trọng, cần thiết trong từng giai đoạn từ tìm hiểu, nghiên cứu đến hiện thực ứng dụng. Nếu không có sự hướng dẫn tận tình của thầy, chúng em đã không thể thực hiện đề tài đúng thời gian quy định của khoa. Chúng em cũng chân thành cảm ơn các thầy, cô phụ trách văn phòng khoa đã tạo điều kiện tốt nhất để chúng em hoàn thành khóa luận tốt nghiệp. Chúng em cũng chân thành cảm ơn gia đình, bạn bè đã ủng hộ chúng em trong thời gian thực hiện khóa luận. TP .HCM, ngày tháng năm 2011 Các sinh viên thực hiện Phan Kinh Thanh Lâm Lương Cẩm Minh -i- Tìm hiểu Windows Communication Foundation NHẬN XÉT GIẢNG VIÊN HƯỚNG DẪN .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... TP. Hồ Chí Minh, ngày tháng năm 2011 Giảng viên hướng dẫn Th.S Ninh Xuân Hương - ii - Tìm hiểu Windows Communication Foundation NHẬN XÉT GIẢNG VIÊN PHẢN BIỆN .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... TP. Hồ Chí Minh, ngày tháng Giảng viên phản biện - iii - năm 2011 Tìm hiểu Windows Communication Foundation MỤC LỤC DANH MỤC BẢNG ............................................................................................... viii DANH MỤC HÌNH .................................................................................................. ix DANH MỤC CÁC TỪ VIẾT TẮT .......................................................................... x LỜI MỞ ĐẦU ........................................................................................................... xi TỔNG QUAN VỀ ĐỀ TÀI ....................................................................................... 1 Giới thiệu đề tài ................................................................................................... 1 Cơ sở lý thuyết ..................................................................................................... 1 Hiện thực ứng dụng minh họa ............................................................................. 1 PHẦN 1 : CƠ SỞ LÝ THUYẾT .............................................................................. 3 CHƯƠNG 1 : SƠ LƯỢC VỀ WCF................................................................. 3 1.1 Giới thiệu .................................................................................................. 3 1.1.1 Giới thiệu sơ lược WCF .................................................................... 3 1.1.2 Service Oriented Architecture ........................................................... 3 1.1.3 Web Services ..................................................................................... 4 1.2 Đặc tính kỹ thuật WCF ............................................................................. 5 1.2.1 Thông điệp (WS-Addressing) : ......................................................... 5 1.2.2 Bảo mật (WS-Security, WS-Trust, WS-Secure Conversation): ....... 5 1.2.3 Độ tin cậy (WS-Reliable Messaging): .............................................. 5 1.2.4 Giao dịch (WS-Coordination và WS-Atomic Transaction) : ............ 6 1.2.5 Siêu dữ liệu (WS-Policy và WS-Metadata exchange) : .................... 6 1.3 Kiến trúc WCF (Net Framework 4) .......................................................... 6 1.3.1 Hợp đồng và miêu tả (Contracts and Descriptions) .......................... 7 1.3.2 Dịch vụ thực thi (Service Runtime) ................................................. 7 1.3.3 Bản tin (Messaging) .......................................................................... 8 1.3.4 Lưu trữ và kích hoạt (Hosting and Activation) ................................. 8 CHƯƠNG 2 : CONTRACT.................................................................................. 9 2.1 Khái niệm hợp đồng (contract) ................................................................. 9 2.2 Hợp đồng dịch vụ (service contract) ........................................................ 9 2.2.1 Khái niệm .......................................................................................... 9 2.2.2 Cách thức hoạt động .......................................................................... 9 2.2.3 Thuộc tính service contract (Net Framework 4) ............................. 11 2.2.4 Thuộc tính operation contract ......................................................... 12 2.3 Hợp đồng dữ liệu (data contract) ............................................................ 12 2.4 Hợp đồng thông điệp (message contract) ............................................... 13 CHƯƠNG 3 : SERVICE ................................................................................. 15 3.1 Khái niệm................................................................................................ 15 3.2 Các loại dịch vụ ...................................................................................... 17 3.2.1 Định kiểu (Typed Service) .............................................................. 17 3.2.2 Không định kiểu (Untyped Service) ............................................... 18 3.2.3 Bản tin định kiểu ............................................................................. 20 - iv - Tìm hiểu Windows Communication Foundation CHƯƠNG 4 : CHANNEL .................................................................................. 21 4.1 Khái niệm................................................................................................ 21 4.2 Các dạng kênh (Channel Shape) ............................................................. 22 4.2.1 Mô hình truyền thông một chiều ..................................................... 22 4.2.2 Mô hình truyền thông song công .................................................... 22 4.2.3 Mô hình truyền thông yêu cầu trả lời .............................................. 23 4.3 Mối quan hệ giữa Operation Contract và Channel Shape ..................... 24 4.4 Channel listener ...................................................................................... 24 4.5 Channel Factory ...................................................................................... 25 CHƯƠNG 5 : BINDINGS VÀ ADDRESS ........................................................ 26 5.1 Khái niệm ràng buộc (binding) ............................................................... 26 5.2 Các ràng buộc thông dụng ...................................................................... 26 5.3 Chọn ràng buộc (bindings) theo yêu cầu sử dụng .................................. 27 5.4 Ràng buộc tùy chỉnh(Custom Binding) .................................................. 28 5.4.1 Tạo ràng buộc tùy chỉnh bằng lập trình .......................................... 28 5.4.2 Tạo ràng buộc tùy chỉnh bằng cấu hình .......................................... 29 5.4.3 Ràng buộc do người dùng định nghĩa (User-Defined Binding) ...... 29 5.5 Các thành phần của ràng buộc (Binding Elements) ............................... 30 5.5.1 Vận chuyển (Transport) .................................................................. 30 5.5.2 Bộ mã hóa (Encoder)....................................................................... 31 5.5.3 Bảo mật (security) ........................................................................... 32 5.6 Khái niệm địa chỉ trong WCF................................................................. 33 5.7 Các kiểu địa chỉ ...................................................................................... 33 5.7.1 Địa chỉ điểm cuối (Endpoint Address) ........................................... 33 5.7.2 Địa chỉ cơ sở (Base Address) .......................................................... 33 5.7.3 Địa chỉ MEX (MEX Address)......................................................... 34 5.8 Các định dạng địa chỉ ............................................................................. 34 5.8.1 Địa chỉ TCP(TCP Address) ............................................................. 35 5.8.2 Địa chỉ HTTP (HTTP Address) ...................................................... 35 5.8.3 Địa chỉ HTTPS (HTTPS Address) .................................................. 35 5.8.4 Địa chỉ MSMQ (MSMQ Address) .................................................. 36 5.8.5 Địa chỉ IPC (Inter-Process Communication) .................................. 37 5.8.6 Địa chỉ IIS(IIS Address).................................................................. 37 CHƯƠNG 6 : BEHAVIORS .............................................................................. 38 6.1 Khái niệm................................................................................................ 38 6.2 Các loại hành vi ...................................................................................... 38 6.2.1 Hành vi dịch vụ (Service Behaviors) .............................................. 38 6.2.2 Hành vi điểm cuối (Endpoint Behaviors)........................................ 38 6.2.3 Hành vi hoạt động (Operation Behaviors) ...................................... 38 6.3 Chức năng của các hành vi ..................................................................... 39 6.4 Hành vi dịch vụ (Service Behavior) ....................................................... 40 6.4.1 Concurrency và Instancing .............................................................. 40 6.4.2 Các chức năng khác......................................................................... 41 -v- Tìm hiểu Windows Communication Foundation 6.4.3 Cấu hình ServiceBehaviors ............................................................. 41 6.5 Hành vi hoạt động (Operation Behaviors).............................................. 43 6.5.1 Giao dịch (Transaction)................................................................... 43 6.5.2 Xác định hàm gọi ............................................................................ 43 6.5.3 Việc sử dụng lại đối tượng .............................................................. 43 6.6 Hành vi bảo mật (Security Behaviors) ................................................... 44 7.1 Tự lưu trữ (self-hosting) ......................................................................... 45 7.1.1 Khái niệm ........................................................................................ 45 7.1.2 Tự lưu trữ (self-hosting) được quản lý bởi dịch vụ windows (windows service) .......................................................................................... 45 7.2 Lưu trữ trên Windows Activation Services ............................................ 46 7.3 Lưu trữ trên IIS (IIS hosting).................................................................. 49 7.3.1 Lưu trữ dịch vụ trên IIS................................................................... 49 7.3.2 Chức năng ASMX ........................................................................... 51 CHƯƠNG 8 : BẢO MẬT VÀ XỬ LÝ NGOẠI LỆ .......................................... 52 8.1 Khái niệm về bảo mật ............................................................................. 52 8.1.1 Authentication (xác thực) ................................................................ 52 8.1.2 Authorization (ủy quyền) ................................................................ 52 8.1.3 Confidentiality(Bảo mật) ................................................................ 52 8.1.4 Integrity (tính toàn vẹn)................................................................... 52 8.1.5 Chế độ vận chuyển (Transport) and bảo mật bản tin ...................... 52 8.2 Bảo mật ở mức transport ........................................................................ 53 8.2.1 Mã hóa sử dụng SSL ....................................................................... 53 8.2.2 Client Authentication ...................................................................... 54 8.2.3 Service Identity (chứng thực service) ............................................. 55 8.3 Mức độ bảo mật bản tin .......................................................................... 56 8.3.1 Chứng thực với wsHttpBinding ...................................................... 56 8.4 Xử lý lỗi bằng cách thức tách biệt .......................................................... 56 8.4.1 Cách thức cô lập .............................................................................. 56 8.4.2 Lỗi Kênh (fault channel) ................................................................. 57 8.5 Xử lý thông báo lỗi ................................................................................. 60 8.5.1 Hợp đồng lỗi (Fault contract) .......................................................... 60 8.5.2 Xử lý lỗi từ biên dịch ...................................................................... 63 8.5.3 Phục hồi (callback) .......................................................................... 65 - vi - Tìm hiểu Windows Communication Foundation PHẦN 2 : ỨNG DỤNG MINH HỌA..................................................................... 67 CHƯƠNG 1 : PHÂN TÍCH VÀ THIẾT KẾ.................................................... 67 1.1 Ý tưởng ................................................................................................... 67 1.2 Thiết kế cơ sở dữ liệu ............................................................................. 68 1.3 Thiết kế ứng dụng ................................................................................... 72 1.3.1 Phần mềm quản trị hệ thống thi trắc nghiệm .................................. 72 1.3.2 Website TracNghiemOnline............................................................ 74 CHƯƠNG 2 : HIỆN THỰC ỨNG DỤNG ....................................................... 75 2.1 Phần mềm quản trị hệ thống thi trắc nghiệm .......................................... 75 2.1.1 Phân tích việc áp dụng cơ sở lý thuyết WCF vào ứng dụng ........... 75 2.1.2 Giao diện phần mềm ....................................................................... 78 2.2.1 Học Sinh .......................................................................................... 83 2.2.2 Giáo viên ......................................................................................... 86 2.3 Sơ đồ hoạt động giữa phần mềm quản trị hệ thống thi trắc nghiệm và Website .............................................................................................................. 91 CHƯƠNG 3 : ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ................................ 92 3.1 Đánh giá kết quả đạt được ...................................................................... 92 3.2 Hướng phát triển ..................................................................................... 92 PHỤ LỤC ................................................................................................................. 93 Phụ lục 1 : Hướng dẫn cài đặt ............................................................................ 93 1.1 Giới thiệu cấu hình của ứng dụng........................................................... 93 1.2 Yêu cầu cấu hình .................................................................................... 93 1.3 Ghi chú về hệ điều hành ......................................................................... 93 1.5 Cấu trúc thư mục FTP server ................................................................ 102 Phụ lục 2 : Hướng dẫn sử dụng ........................................................................ 103 2.1 Sử dụng phần mềm quản trị hệ thống ................................................... 103 2.2 Sử dụng trang web ................................................................................ 106 GHI CHÚ ............................................................................................................... 111 TÀI LIỆU THAM KHẢO .................................................................................... 112 - vii - Tìm hiểu Windows Communication Foundation DANH MỤC BẢNG STT TÊN BẢNG 2.1 Thuộc tính service contract 2.2 Thuộc tính operation contract 4.1 5.1 5.2 5.3 5.4 7.1 8.1 8.2 NGUỒN TÀI LIỆU Tài liệu tham khảo WCF của MSDN Việt Nam Tài liệu tham khảo WCF của MSDN Việt Nam Mối quan hệ giữa Operation Essential WCF, 2008 Contract và Channel Shape Liệt kê các giao thức vận chuyển và phương pháp mã hóa Danh sách các kênh vận chuyển trong ràng buộc Danh sách các bộ mã hóa được dùng trong WCF Danh sách các giao thức bảo mật được dùng trong WCF Các tính năng ASMX trong một Programming WCF with .NET 4.0 Essential WCF, 2008 Essential WCF, 2008 Essential WCF, 2008 Essential WCF, 2008 service WCF Cách thức xác thực client mức Essential WCF, 2008 transport trong các binding Chế độ bảo mật trong binding của WCF - viii - Programming WCF with .NET 4.0 Tìm hiểu Windows Communication Foundation DANH MỤC HÌNH STT 1.1 2.1 TÊN HÌNH NGUỒN TÀI LIỆU Các lớp chính trong kiến trúc WCF Mô tả hoạt động hai chiều của dịch vụ hợp đồng Thư viện MSDN trực tuyến Essential WCF, 2008 3.1 Dịch vụ hướng ứng dụng Programming WCF with .NET 4.0 3.2 Tương tác WCF trên cùng một máy Programming WCF with .NET 4.0 3.3 Tương tác WCF trên mạng nội bộ và internet Programming WCF with .NET 4.0 4.1 Các chồng kênh (channel stack) Essential WCF, 2008 4.2 Mô hình truyền thông một chiều Essential WCF, 2008 4.3 Mô hình truyền thông song công Essential WCF, 2008 4.4 Mô hình truyền thông yêu cầu trả lời Essential WCF, 2008 5.1 Lược đồ phương pháp chọn ràng buộc Programming WCF with .NET 4.0 5.2 Cách làm việc của MSMQ 6.1 Mô hình hoạt động của các hành vi Essential WCF, 2008 6.2 Hoạt động giao dịch Essential WCF, 2008 7.1 Kiến trúc của WAS Essential WCF, 2008 7.2 Tài liệu tham khảo WCF của MSDN Việt Nam Kích hoạt Windows Process Essential WCF, 2008 Activation Services 7.3 Thiết lập WCF non-HTTP activation Essential WCF, 2008 7.4 IIS thực thi trên WAS Essential WCF, 2008 - ix - Tìm hiểu Windows Communication Foundation DANH MỤC CÁC TỪ VIẾT TẮT KÝ HIỆU WCF TỪ ĐẦY ĐỦ Ý NGHĨA Windows Communication Công nghệ mới của Microsoft Foundation SOA Service Oriented Architecture URL Uniform Resource Locator SOAP Simple Object Access Protocol XML Extensible Markup Language Kiến trúc hướng dịch vụ Được dùng để tham chiếu tới tài nguyên trên Internet Giao thức dựa trên XML để trao đổi thông tin ứng dụng qua HTTP Ngôn ngữ xây dựng cấu trúc tài liệu văn bản Môi trường thực thi cung cấp cơ sở CLR Common Language Runtime hạ tầng cơ bản của Microsoft. NET framework Giao thức cho phép bạn truyền tải SSL Secure Socket Layer WAS Windows activation services API WSDL thông tin một cách an toàn qua mạng. Cơ chế kích hoạt tiến trình mới của IIS 7.0 Application Programming Các hàm giao diện cung cấp cho ứng Interface dụng Ngôn ngữ dựa trên XML để mô tả Web Service Description các chức năng được cung cấp bởi một Language dịch vụ Web -x- Tìm hiểu Windows Communication Foundation LỜI MỞ ĐẦU Windows Communication Foundation (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 thành một mô hình duy nhất giúp cho việc liên lạc giữa các hệ điều hành khác nhau, các ngôn ngữ lập trình khác nhau có thể trao đổi với nhau. Microsoft 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 ưu hoá công việc giữa các nền tảng sử dụng Web Services, 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ụ. Đây là một bước đột phá của Microsoft trong việc tạo một nền tảng thống nhất trong công nghệ truyền thông. Với việc ra đời của WCF, mọi phương pháp liên lạc trước kia đều có thể thực hiện trên WCF. Do vậy nhà phát triển chỉ cần làm chủ được công nghệ WCF là có thể xây dựng các ứng dụng một cách nhanh chóng. WCF là một mô hình lập trình cho phép nhà phát triển xây dựng các giải pháp dịch vụ đảm bảo tính ổn định, bảo mật và thậm chí là đảm bảo giao dịch phát triển các ứng dụng kết nối và đưa ra cho nhà phát triển những giá trị tiềm năng trong tương lai, đó là cách tiếp cận phát triển hệ thống phân tán thống nhất, đơn giản. Vì vậy chúng em chọn đề tài này là một cách tiếp cận một công nghệ mới đầy tiềm năng phát triển trong tương lai. - xi - Tìm hiểu Windows Communication Foundation TỔNG QUAN VỀ ĐỀ TÀI Giới thiệu đề tài Trong đề tài này tập trung nghiên cứu về công nghệ WCF và dựa trên nền tảng công nghệ này cùng với những kiến thức đã học, xây dựng một hệ thống thi trắc nghiệm trong trường trung học phổ thông để làm rõ hơn những tiện ích và sự cải tiến công nghệ trong WCF. Cơ sở lý thuyết Giới thiệu về sơ lược, mục tiêu và ý nghĩa WCF, mô hình kiến trúc WCF (trên nền tảng .NetFramework 4.0) trình bày các khái niệm như Service Oriented Architecture, Web Services. Các đặc tính kỹ thuật như WS-Addressing, WS-Security, WS-Trust, WS-Secure Conversation, WS-Reliable Messaging, WS-Coordination và WS-Atomic Transaction, WS-Policy và WS-Metadata exchange. Các định nghĩa riêng trong WCF. Các chức năng nổi bậc của WCF như hợp đồng (contract), dịch vụ (services), kênh(channels), hành vi(behaviors), ràng buộc (binding), địa chỉ (address), lưu trữ(host), xử lý bảo mật(security), phân loại và ưu điểm về các cách thức lưu trữ một ứng dụng WCF. Hiện thực ứng dụng minh họa Dựa trên những tìm hiểu về lý thuyết, xây dựng hệ thống thi trắc nghiệm trong trường trung học phổ thông. Ứng dụng được thiết kế dựa trên mô hình client – server sử dụng WCF để minh họa cho các chức năng của WCF như : • Cơ sở dữ liệu được lưu trữ bên server và client kết nối đến service của server để truy xuất cơ sở dữ liệu. Minh hoạ khả năng truyền thông đa dạng trong WCF. • Hiện thực chức năng bảo mật trên các đường truyền tải và nội dung bản tin. Ở đây sử dụng chức năng mã hoá và xác nhận ký hiệu trên -1- Tìm hiểu Windows Communication Foundation đường truyền tải và nội dung bản tin, qua đó bảo mật kênh vận chuyển và nội dung bản tin. • Sử dụng DataContract, DataMember, OperationContract, ServiceContract,…Các chức năng trên minh hoạ tính đa dạng trong kiến trúc dịch vụ. Trao đổi dữ liệu dựa trên các bản tin xây dựng, do đó có thể tương tác với các hệ điều hành khác nhau, các ngôn ngữ khác nhau. • Xây dựng chế độ xử lý lỗi và ngoại lệ dựa trên chức năng FaultContract. • Hỗ trợ đa dạng kết nối như MSMQ, named pipes, TCP,… Ứng dụng minh hoạ chức năng TCP. • Các dạng xử lý khác trong cấu hình. * Đề tài này được chia làm 2 phần : Cơ sở lý thuyết và ứng dụng minh họa. Phần cơ sở lý thuyết được chia làm 8 chương • Chương 1 : Sơ lược về WCF • Chương 2 : Contract • Chương 3 : Services • Chương 4 : Channels • Chương 5 : Bindings and Address • Chương 6 : Behaviors • Chương 7 : Hosting • Chương 8 : Bảo mật và xử lý ngoại lệ Phần ứng dụng minh họa được chia làm 3 chương • Chương 1 : Phân tích và thiết kế • Chương 2 : Hiện thực ứng dụng • Chương 3 : Đánh giá và hướng phát triển -2- Tìm hiểu Windows Communication Foundation PHẦN 1 : CƠ SỞ LÝ THUYẾT CHƯƠNG 1 : SƠ LƯỢC VỀ WCF 1.1 Giới thiệu 1.1.1 Giới thiệu sơ lược WCF WCF là mô hình lập trình thống nhất để lập trình các ứng dụng phân bố trên nền tảng Microsoft. WCF có ý nghĩa quan trọng trong việc tạo ra một kiến trúc chung để hỗ trợ cho các phong cách giao tiếp truyền thông khác nhau. Hai ý tưởng này là kênh (channels) và ràng buộc (bindings). Kênh (channel) : Mỗi kênh được dành riêng cho một khía cạnh cơ sở hạ tầng cụ thể, ví dụ như an ninh, độ tin cậy. Việc thiết lập đầy đủ các nhu cầu cơ sở hạ tầng của một công nghệ truyền thông đơn lẻ được xử lý bởi một ngăn xếp kênh (stack of channels) được xác định trước hoặc tùy chỉnh. Bằng cách xác định một ràng buộc (binding) cụ thể, một máy khách hoặc dịch vụ WCF ngầm tạo ra một ngăn xếp kênh (stack of channels) để thực hiện một tập hợp các hành vi giao tiếp. Dịch vụ được xác định bởi một giao diện WCF cụ thể có thể được truy cập thông qua một ràng buộc hoặc đồng thời truy cập thông qua nhiều hơn một ràng buộc. Dựa trên dịch vụ WCF có thể ứng dụng vào hầu hết các môi trường ứng dụng như ASP.NET hay phần mềm, tiến trình. Khi sử dụng WCF, lập trình viên chỉ cần tập trung vào ứng dụng không cần quan tâm đến các giao thức giao tiếp. 1.1.2 Service Oriented Architecture Kiến trúc hướng dịch vụ là một hướng tiếp cận với việc thiết kế và tích hợp các phần mềm, chức năng, hệ thống theo dạng module, trong đó mỗi module đóng vai trò là một dịch vụ có kết nối lỏng lẻo (loose coupling service) và có khả năng truy cập qua môi trường mạng. SOA không phải là một công nghệ cụ thể và cũng không là một ngôn ngữ cụ thể. Nó chỉ là một kế hoạch chi tiết hoặc một cách tiếp cận thiết kế hệ thống. Đây -3- Tìm hiểu Windows Communication Foundation là một mô hình kiến trúc nhằm nâng cao hiệu quả, tốc độ xử lý, và năng suất của một hệ thống doanh nghiệp. Dịch vụ kết nối lỏng lẻo là dịch vụ độc lập với các dịch vụ khác, vì vậy khi một dịch vụ gặp sự cố thì cũng không ảnh hưởng đến các dịch vụ còn lại. SOA hỗ trợ kết nối lỏng lẻo thông qua việc sử dụng hợp đồng và ràng buộc (contract and binding). Người sử dụng truy vấn đến nơi lưu trữ và cung cấp thông tin dịch vụ để lấy thông tin về dịch vụ. Nơi đó sẽ trả về thông tin của dịch vụ cần tìm. Người sử dụng chỉ việc sử dụng dịch vụ mà không cần phụ thuộc trực tiếp vào cài đặt của dịch vụ. 1.1.3 Web Services Có nhiều cách tiếp cận để thực hiện SOA, nhưng phổ biến và thực tế nhất là sử dụng dịch vụ web (Web Service). Một dịch vụ web là một hệ thống phần mềm được thiết kế để hỗ trợ việc tương tác giữa các máy tính trên mạng. Một dịch vụ web thường được lưu trữ trên một máy từ xa (provider) và được gọi bằng một ứng dụng phía máy khách (consumer) qua mạng. Sau khi các nhà cung cấp (provider) của một dịch vụ web đưa ra các dịch vụ, khách hàng có thể gọi nó và sử dụng nó. Các thông tin liên lạc giữa một dịch vụ web và ứng dụng phía khách hàng sử dụng thông điệp XML. Một dịch vụ web được lưu trữ trong một máy chủ web và HTTP được sử dụng như các giao thức vận chuyển giữa các máy chủ và các ứng dụng phía máy khách. Mỗi dịch vụ web có một URL duy nhất và bao gồm các phương thức khác nhau. Khi gọi một dịch vụ web, phải xác định phương thức nào muốn gọi, và vượt qua các thông số cần thiết của phương thức dịch vụ web. Mỗi phương thức dịch vụ web cũng sẽ cung cấp cho một gói đáp ứng để cho người gọi biết kết quả thực hiện. -4- Tìm hiểu Windows Communication Foundation 1.2 Đặc tính kỹ thuật WCF 1.2.1 Thông điệp (WS-Addressing) : WS-Addressing là một cơ chế cho phép các dịch vụ web giao tiếp thông tin địa chỉ. Với các dịch vụ web truyền thống, thông tin địa chỉ được thực hiện bởi tầng vận chuyển (transport), và các thông điệp của dịch vụ web không biết về điểm đến của nó. Với tiêu chuẩn mới này, thông tin địa chỉ được chứa trong thông điệp XML. Một tiêu đề SOAP (SOAP header) có thể được thêm vào thông điệp cho mục đích này. Tầng vận chuyển chỉ chịu trách nhiệm cung cấp thông điệp đó đến một điều phối có khả năng đọc các siêu dữ liệu. 1.2.2 Bảo mật (WS-Security, WS-Trust, WS-Secure Conversation): WS-Security mô tả làm thế nào để xử lý các vấn đề an ninh trong thông điệp SOAP. Nó đính kèm chữ ký, mã hóa thông tin và các token bảo mật trong thông điệp SOAP. Ngoài phương pháp xác thực HTTP / HTTPS truyền thống, nó còn kết hợp thêm các tính năng bảo mật trong tiêu đề của thông điệp SOAP, được thực hiện trong lớp ứng dụng (Application layer). Vì vậy nó đảm bảo bảo mật cho việc gửi nhận thông điệp. Có một số chi tiết kỹ thuật liên quan với WS-Security, ví dụ như WS-SecureConversation, WS-Federation, WS-Authorization, WS-Policy, WSTrust, WS-Privacy. 1.2.3 Độ tin cậy (WS-Reliable Messaging): WS-ReliableMessaging mô tả một giao thức cho phép thông điệp SOAP được vận chuyển đáng tin cậy giữa các ứng dụng phân tán. Các mô hình WS-ReliableMessaging thực hiện việc vận chuyển thông điệp một cách tin cậy giữa nguồn và đích đến. Nếu một thông điệp không thể gửi đến đích, thông báo một ngoại lệ hoặc báo cho nguồn thông điệp không thể đến đích. Có một số tùy chọn đảm bảo vận chuyển cho WS-ReliableMessaging, bao gồm AtLeastOnce, AtMostOnce, Exactly Once, and InOrder. -5- Tìm hiểu Windows Communication Foundation 1.2.4 Giao dịch (WS-Coordination và WS-Atomic Transaction) : Hai tiêu chuẩn cho phép giao dịch với các thông điệp của SOAP. 1.2.5 Siêu dữ liệu (WS-Policy và WS-Metadata exchange) : WSDL [Web Service Description Language] là hiện thực của WS-Metadata Exchange. WS-Policy định nghĩa các chức năng linh động hơn của dịch vụ mà không thể hiện được bằng WSDL. 1.3 Kiến trúc WCF (Net Framework 4) Hình 1.1 : Các lớp chính trong kiến trúc WCF. -6- Tìm hiểu Windows Communication Foundation 1.3.1 Hợp đồng và miêu tả (Contracts and Descriptions) Hợp đồng định nghĩa các khía cạnh khác nhau của thông điệp hệ thống. Các chính sách và ràng buộc quy định các điều kiện giao tiếp trong dịch vụ. Bao gồm các chính sách bảo mật và các điều kiện khác khi kết nối. Ví dụ : Xác định sử dụng giao thức nào HTTP hoặc TCP, Có sử dụng mã hóa không ?.... • Hợp đồng dữ liệu (data contract) miêu tả các tham số của bản tin mà một dịch vụ có thể tạo ra và sử dụng. Các tham số của bản tin được định nghĩa bằng ngôn ngữ XML. Tạo điều kiện thuận lợi cho các hệ thống có hỗ trợ XML. • Hợp đồng thông điệp (message contract) định nghĩa những thông điệp đặc biệt sử dụng giao thức SOAP. Và cho phép quản lý chi tiết hơn các phần của bản tin khi cần sự chính xác cao. • Hợp đồng dịch vụ (service contract) đặc tả các phương thức của dịch vụ. Và được hiểu như là giao diện trong các ngôn ngữ lập trình. 1.3.2 Dịch vụ thực thi (Service Runtime) Lớp dịch vụ thực thi (service runtime) chứa các sự kiện trong quá trình thực hiện dịch vụ, bao gồm : • Throttling behaviors : Quy định số bản tin cần được xử lý, có thể thay đổi theo nhu cầu phát triển của dịch vụ. • Error behavior : Quy định những sự kiện khi có lỗi hệ thống xảy ra trên service. • Metadata behavior : Quy định các cách thức về siêu dữ liệu khi đưa ra ngoài service. • Instance behavior : Quy định các trường hợp service có thể thực thi. • Transaction behavior : Thiết lập phục hồi hệ thống giao dịch khi có lỗi xảy ra. • Dispatch behavior : Quy định cách thức xử lý của bản tin và được xử lý bởi WCF. -7- Tìm hiểu Windows Communication Foundation • Message inspection : Quản lý các bộ phận của tin nhắn, có chức năng lọc và xử lý. 1.3.3 Bản tin (Messaging) Lớp bản tin (Messaging) là tập hợp các kênh. Kênh là một thành phần xử lý bản tin. Một tập hợp các kênh gọi là ngăn xếp kênh. Kênh hoạt động dựa trên bản tin và tiêu đề bản tin. Điểm khác biệt giữa lớp này với lớp service runtime là sự xử lý các khác biệt trong nội dung bản tin. Gồm hai kênh : Kênh vận chuyển và các kênh giao thức. • Kênh vận chuyển : Đọc và ghi các bản tin từ mạng. Có xử lý mã hóa khi vận chuyển (được biểu diễn như là Infosets XML). • Kênh giao thức : Xử lý các bản tin theo giao thức, đọc hoặc ghi bổ sung tiêu để vào bản tin. Lớp bản tin (Messaging) xác định các định dạng có thể có và các mô hình của dữ liệu như WS-Security quy định chế độ bảo mật trong bàn tin, WSReliable Messaging đảm bảo chế độ tin cậy khi vận chuyển bản tin. Hỗ trợ chế độ mã hóa đa dạng cho từng kênh. Như HTTP, TCP, Named Piped …mỗi kênh sẽ có một chế độ mã hóa riêng. 1.3.4 Lưu trữ và kích hoạt (Hosting and Activation) Dịch vụ cũng là một chương trình, cũng như các chương trình khác cũng phải thực thi. Nó được hiểu như một dịch vụ tự lưu trữ (self-hosted service). Dịch vụ được quản lý, thực thi tại nơi lưu trữ hoặc được quản lý, thực thi trên IIS hay WAS. WAS cho phép WCF được kích hoạt một cách tự động khi máy tính có sử dụng WAS. Dịch vụ cũng có thể thực thi tự động như một dịch vụ trên windows (windows service). Các thành phần COM+ cũng được lưu trữ như các dịch vụ WCF. -8- Tìm hiểu Windows Communication Foundation CHƯƠNG 2 : CONTRACT 2.1 Khái niệm hợp đồng (contract) Hợp đồng là tập hợp các hoạt động quy định sự truyền tải giữa thiết bị đầu cuối với môi trường giao tiếp. Mỗi hoạt động là sự trao đổi bản tin đơn giản. Có ba kiểu hợp đồng cơ bản sau : • Hợp đồng dịch vụ (service contract) : Định nghĩa các phương thức của một dịch vụ[1]. • Hợp đồng dữ liệu (data contract) : Định nghĩa các kiểu dữ liệu được sử dụng của dịch vụ. • Hợp đồng bản tin (message contract) : Điều khiển các đầu đề bản tin. 2.2 Hợp đồng dịch vụ (service contract) 2.2.1 Khái niệm Hợp đồng dịch vụ định nghĩa cách thức hoạt động của dịch vụ mà nó thực thi. Thư viện của hợp đồng dịch vụ là tập hợp các phương thức của .NET gồm WSDL dịch vụ, thể loại cổng (port) và các hoạt động. Xác định mô hình trao đổi tin nhắn cho mỗi hoạt động của dịch vụ. Hai lớp thuộc tính để mô tả hợp đồng dịch vụ là ServiceContract và OperationContract. Các thông tin mà hợp đồng dịch vụ cung cấp cho máy khách : • Kiểu dữ liệu trong bản tin. • Vị trí của các phương thức – hành động. • Thông tin về giao thức, định đạng lưu dữ liệu để đảm bảo cho liên lạc thành công. • Nhóm hành vi. • Mẫu trao đổi bản tin (Message exchange pattern – MEP). 2.2.2 Cách thức hoạt động Hoạt động một chiều : Được sử dụng khi các ứng dụng chỉ gửi thông tin mà không cần phản hồi. Với mô hình này, máy khách chỉ cần xác nhận thao tác -9-
- Xem thêm -

Tài liệu liên quan