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 -