1. Trang chủ
  2. » Luận Văn - Báo Cáo

Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng

79 884 4
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 2,61 MB

Nội dung

Tài liệu tham khảo công nghệ thông tin Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN QUANG HÙNG

SỬ DỤNG CÔNG NGHỆ WINDOWS

COMMUNICATION FOUNDATION TRONG CÁC

ỨNG DỤNG TRÊN DIỆN RỘNG

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

HÀ NỘI - 2009

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN QUANG HÙNG

SỬ DỤNG CÔNG NGHỆ WINDOWS

COMMUNICATION FOUNDATION TRONG CÁC

ỨNG DỤNG TRÊN DIỆN RỘNG

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

Cán bộ hướng dẫn: ThS Đào Kiến Quốc Cán bộ đồng hướng dẫn: ThS.Nguyễn Xuân Hoàng

HÀ NỘI - 2009

Trang 3

TÓM TẮT KHÓA LUẬN

Hiện nay đã có rất nhiều phần mềm dành cho doanh nghiệp Tuy nhiên một số các phần mềm này lại có giá quá cao khiến doanh nghiệp không đủ kinh phí để triển khai Còn đối các sản phẩm giá thấp hơn thì lại không thể đáp ứng được nhu cầu sử dụng dữ liệu tập trung và tổng hợp dữ liệu một cách thường xuyên của các doanh nghiệp có nhiều chi nhánh tại nhiều vị trí địa lý khác nhau

Nội dung của khóa luận này sẽ trình bày về một công nghệ mới nằm trong NET 3.0của Microsoft, đó là công nghệ Windows Communication Foundation (WCF) Đây là mộtcông nghệ được Microsoft đưa ra để xây dựng các ứng dụng theo kiến trúc hướng đối tượng (SOA) Đó là chìa khóa để giải quyết các vấn đề trên Đồng thời, khóa luận cũng nói đến việc áp dụng WCF để xây dựng phần mềm Quản lý quan hệ khách hàng (CRM) – một giải pháp đang được áp dụng ở khá nhiều doanh nghiệp

Trang 4

MỤC LỤC

LỜI MỞ ĐẦU 6

1 Tính cấp thiết của đề tài: 6

2 Mục tiêu của đề tài: 8

CHƯƠNG 1: CÔNG NGHỆ WINDOWS COMMUNICATION FOUNDATION 11

1.1 Tổng quan về Windows Communication Foundation 11

1.1.1 Windows Communication Foundation là gì? 11

1.1.2 Tại sao sử dụng WCF? 12

1.2 Kiến trúc của Windows Communication Foundation 14

1.2.1 Hợp đồng (Contracts) 15

1.2.2 Dịch vụ thực thi (Runtime service) 16

1.2.3 Bản tin (Message) 17

1.2.4 Chứa và kích hoạt (Host and activation) 17

1.3 Các tính năng của WCF 17

1.3.1 Giao dịch (Transaction) 17

1.3.2 Chứa (Host) 18

1.3.3 Bảo mật (Security) 18

1.4 Mô hình lập trình với WCF 18

1.4.1 Các phương pháp lập trình 19

1.4.2 Nguyên lý ABCs 24

1.4.3 Địa chỉ (Address) 24

1.4.4 Liên kết (Binding) 27

1.4.5 Hợp đồng (Contract) 31

CHƯƠNG 2: GIỚI THIỆU GIẢI PHÁP CRM CHO DOANH NGHIỆP 43

2.1 CRM là gì? 43

2.2 Lịch sử học thuyết CRM 45

2.3 Các khái niệm liên quan trọng trong CRM 47

2.3.1 Tiềm năng 47

2.3.2 Tổ chức 47

2.3.3 Liên hệ 47

2.3.4 Cơ hội 47

2.3.5 Chiến dịch 47

2.3.6 Hợp đồng 47

2.3.7 Tình huống 47

2.3.8 Sản phẩm 48

2.3.9 Đối tác 48

2.3.10 Đối thủ 48

2.4 Lợi ích của CRM 48

CHƯƠNG 3: SỬ DỤNG CÔNG NGHỆ WCF ĐỂ XÂY DỰNG HỆ THỐNG CRM WCF 2010 .50

3.1 Vấn đề đặt ra 50

3.2 Tổng quan về CRM WCF 2010 52

3.3 Quy trình tác nghiệp của CRM WCF 2010 54

3.3.1 Quy trình tiếp thị 54

3.3.2 Quy trình Bán hàng 55

3.3.3 Quy trình dịch vụ sau bán hàng 56

Trang 5

3.4 Các use case chính của hệ thống CRM WCF 2010 57

3.4.1 Quản lý tổ chức 57

3.4.2 Quản lý cơ hội 58

3.4.3 Quản lý hợp đồng 59

3.4.4 Quản lý tiềm năng 60

3.4.5 Quản lý chiến dịch 62

3.4.6 Quản lý báo cáo 63

3.5 Biểu đồ tuần tự của hệ thống 64

3.5.1 Thêm, sửa tổ chức 64

3.5.2 Xóa tổ chức 64

3.5.3 Thêm, sửa tiềm năng 65

3.5.4 Xóa tiềm năng 65

3.5.5 Thêm, sửa cơ hội 66

3.5.6 Xóa cơ hội 66

3.5.7 Thêm, sửa hợp đồng 67

3.5.8 Xóa hợp đồng 67

3.5.9 Thêm, sửa liên hệ 68

3.5.10 Xóa liên hệ 68

3.5.11 Thêm, sửa chiến dịch 69

3.5.12 Xóa chiến dịch 69

3.5 Kiến trúc và công cụ phát triển CRM WCF 2010 70

3.5.1 Kiến trúc của CRM WCF 2010 70

3.5.2 Môi trường phát triển CRM WCF 2010 71

3.6 Giao diện minh họa các phân hệ chính của CRM WCF 2010 71

3.6.1 Phân hệ Tổ chức 71

3.6.2 Phân hệ liên hệ 73

3.6.3 Phân hệ cơ hội 74

KẾT LUẬN 76

TÀI LIỆU THAM KHẢO 77

Trang 6

BẢNG CÁC KÝ HIỆU VIẾT TẮT

SOA Service-oriented architecture Kiến trúc hướng dịch vụ

Trang 7

Hình 1 20: Sơ đồ use case quản lý báo cáo 63

Hình 1 24: Biểu đồ tuần tự xóa tiềm năng

65

Hình 1 30: Biểu đồ tuần tự xóa liên hệ

68

Hình 1 36: Giao diện phân hệ Cơ hội

74

Trang 8

LỜI MỞ ĐẦU

1 Tính cấp thiết của đề tài:

Hiện tại đã có rất nhiều phần mềm dành cho các doanh nghiệp ra đời nhằm nâng caohiệu quả kinh doanh Tuy nhiên do tính phức tạp và không đồng nhất của các nềntảng công nghệ hiện nay nên việc các doanh nghiệp tái sử dụng các hệ thống cũ vàvấn đề giao tiếp giữa các hệ thống khác nhau chưa thể đáp ứng được Đồng thời vớicác doanh nghiệp muốn triển khai các hệ thống ứng dụng của mình trên diện rộngvới nhiều chi nhánh thì vẫn gặp nhiều khó khăn do các phần mềm chưa đáp ứngđược vấn đề bảo mật khi trao đổi thông tin qua môi trường Internet cũng như khókhăn trong việc triển khai và quản lý hệ thống Điều này dẫn đến doanh nghiệp nóichung và nhà quản lý doanh nghiệp nói riêng gặp rất nhiều khó khăn và không thểtập trung thời gian cho việc quản lý và hoạch định chiến lược kinh doanh cho doanhnghiệp Ví dụ, với các doanh nghiệp đa chi nhánh thì hiện tại việc thống kê, hạchtoán sẽ phải thực hiện riêng rẽ trên từng chi nhánh rồi mới được người quản lý tổnghợp lại, điều này gây lãng phí thời gian và công sức, đồng thời có thể gây thiếu đồng

bộ về thông tin giữa các chi nhánh

Các kiến trúc phân tán đã ra đời để giải quyết vấn đề này như CORBA, EJB,DCOM Tuy nhiên chúng vẫn còn khá hạn chế và chưa đáp ứng được nhu cầu củakhách hàng

CORBA - Common Object Requesting Broker Architecture

- CORBA được định nghĩa bởi Object Management Group (OMG) là một kiến trúcphân tán mở, độc lập nền tảng và độc lập ngôn ngữ Với CORBA các thành phầncủa hệ thống có thể được viết trên nhiều ngôn ngữ và chạy trên các nền tảng khácnhau vẫn có thể làm việc được với nhau

- Ưu nhược điểm của CORBA là các lập trình viên có thể chọn bất kỳ ngôn ngữ, nềntảng phần cứng, giao tiếp mạng và các công nghệ để phát triển mà vẫn thỏa mãn cáctính chất của CORBA Tuy nhiên, CORBA có một số nhược điểm là: nó là ngônngữ lập trình bậc thấp, rất phức tạp, khó học, và cần một đội ngũ phát triển có kinhnghiệm Ngoài ra các đối tượng CORBA cũng khó tái sử dụng

Trang 9

Hình 1 36: Kiến trúc của mô hình CORBA

- Kiến trúc EJB là một kiến trúc thành tố bên phía máy chủ dùng cho việc phát triển

và triển khai các ứng dụng phân tán hướng đối tượng cỡ vừa và lớn

- EJB là một kiến trúc tốt cho việc tích hợp các hệ thống vì nó là độc lập nền tảngnhưng nó cũng gặp vấn đề là: nó không phải một chuẩn mở, khả năng giao tiếp vớicác chuẩn khác vẫn còn hạn chế

Hình 1 37: Kiến trúc của mô hình EJB

Trang 10

- DCOM là một mô hình phân tán dễ triển khai với chi phí thấp Mô hìnhComponent Object Model (COM) định nghĩa cách thức các thành phần và Clientliên lạc trao đổi với nhau trong cùng một máy DCOM mở rộng COM bằng cách sửdụng các giao thức mạng chuẩn khi cần trao đổi dữ liệu với máy khác trên mạng.DCOM hỗ trợ kết nối giữa các đối tượng và các kết nối này có thể thay đổi khi ứngdụng đang chạy.

- DCOM mang đến nhiều ưu điểm như tính ổn định, không phụ thuộc vị trí địa lý,quản lý kết nối hiệu quả và dễ dàng mở rộng, là một lựa chọn tốt cho các doanhnghiệp sử dụng công nghệ trên Windows để chạy các ứng dụng có yêu cầu cao về sựchính xác và ổn định Tuy nhiên các công nghệ của Microsoft có một nhược điểmlớn là chúng bị giới hạn trên nền tảng Windows, đặc biệt các hệ thống DCOM khótái sử dụng và bị chặn bởi Firewall khi giao tiếp qua Internet

Hình 1 38: Kiến trúc của mô hình DCOM

2 Mục tiêu của đề tài:

Trước các khó khăn trên thì các doanh nghiệp cần có một cách tiếp cận mới để giảiquyết vấn môi trường không đồng nhất và tốc độ thay đổi đến chóng mặt của thực tếtrong khi phải xoay sở với nguồn ngân sách hạn hẹp và nền kinh tế khó khăn Maythay, đã có một hướng tiếp cận giải quyết khá toàn diện các vấn đề trên và đã đượctriển khai trong thực tế Đó là “Kiến trúc hướng dịch vụ” – Service OrientedArchitecture (SOA)

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ầnmềm, chức năng, hệ thống theo dạng các module Trong đó mỗi module đóng vai trò

là một “dịch vụ”, và có khả năng được truy cập qua môi trường mạng Hiểu mộtcách đơn giản thì một hệ thống SOA là một tập các dịch vụ được chuẩn hóa trên môitrường mạng và trao đổi với nhau trong ngữ cảnh một tiến trình nghiệp vụ

Trang 11

Hình 1 39: Kiến trúc cơ bản của SOA

SOA tách riêng phần thực hiện dịch vụ (phần mềm) với giao tiếp gọi dịch vụ Điềunày tạo nên một giao tiếp nhất quán cho ứng dụng khách (client) sử dụng dịch vụ bấtchấp công nghệ thực hiện dịch vụ Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ,nhà phát triển sẽ xây dựng các dịch vụ tinh gọn có thể triển khai và tái sử dụng trongtoàn bộ quy trình nghiệp vụ Điều này cho phép tái sử dụng phần mềm tốt hơn, cũngnhư tăng sự linh hoạt vì nhà phát triển có thể cải tiến dịch vụ mà không làm ảnhhưởng đến ứng dụng client sử dụng dịch vụ

Ưu điểm của kiến trúc hướng dịch vụ

- Tái sử dụng phần mềm: Nếu gói mã mà tạo thành một dịch vụ có quy mô và kích

thước phù hợp sau đó nó có thể được tái sử dụng cho lần kế tiếp, một đội phát triểncần chức năng cụ thể đó cho một ứng dụng phần mềm mới mà nó mong muốn xâydựng Họ không cần biết bất cứ thứ gì về việc mã được gói chặt như thế nào hay nó

có nguồn gốc từ đâu Tất cả những thứ mà họ cần làm đó là xây dựng một sự kết nốiđến mã đó

- Tính linh hoạt và dễ dàng triển khai: Phía triệu gọi dịch vụ không cần quan tâm

đến công nghệ nền tảng của phía Service Nó mang đến khả năng linh hoạt cao vànhiều lợi ích khác Trong một hệ thống SOA ta gọi dịch vụ thông qua các interfacetheo một dạng thức chuẩn nên khi cần kết nối với các đối tác thương mại thì những

Trang 12

interface chuẩn càng đem lại nhiều lợi ích hơn Với một hệ thống SOA thật dễ dàngkhi cung cáp một loạt những dịch vụ ra bên ngoài cho một đối tác nào đó sử dụng.Tương tự cho điều ngược lại, nếu các đối tác đã xây dựng một hệ thống SOA thìviệc đem sử dụng chức năng một số dịch vụ của họ vào sử dụng bên trong hệ thốngcủa mình cũng thật dễ dàng và nhanh chóng.

- Khả năng thích ứng cao với những thay đổi trong tương lai: Các phương pháp tiếp

cận truyền thống trong quy trình phát triển phần mềm có thể mô tả ngắn gọn làngười dùng mô tả họ cần gì và công ty phát triển phần mềm sẽ triển khai theo yêucầu Quy trình này đôi khi gặp khó khăn khi gặp những tình huống thay đổi khôngđịnh trước Với SOA, công ty phát triển phần mềm có thể tạo nên những quy trìnhnghiệp vụ uyển chuyển , phức tạp có khả năng biến đổi tuy theo yêu cầu của kháchhàng

WCF là một công nghệ được Microsoft đưa ra trong bản NET 3.0 WCF là nền tảnggiúp xây dựng các ứng dụng theo kiến trúc hướng dịch vụ WCF không phải là côngnghệ để hỗ trợ việc xử lý các nghiệp vụ cho ứng dụng mà nó giúp xây dựng các dịch

vụ mà việc xử lý nghiệp vụ được thực hiện bởi các ngôn ngữ lập trình quen thuộctrong NET như C# hay VB.NET WCF sẽ giúp các tầng của ứng dụng có thể gọinhau qua môi trường Internet hay LAN Điều này giải quyết được vấn đề mở rộngphạm vi hoạt động đa chi nhánh của doanh nghiệp và giúp doanh nghiệp cũng nhưnhà phát triển phần mềm có thể tái sử dụng các hệ thống đang có Luận văn này sẽgiới thiệu về công nghệ WCF cùng việc sử dụng nó để xây dựng hệ thống CRM, làmột hệ thống quan trọng trong việc nâng cao hiệu quả kinh doanh trong doanhnghiệp

Trang 13

CHƯƠNG 1: CÔNG NGHỆ WINDOWS COMMUNICATION

FOUNDATION 1.1 Tổng quan về Windows Communication Foundation

1.1.1 Windows Communication Foundation là gì?

Windows Communication Foundation (WCF) là một công nghệ được Microsoft giớithiệu tại Hội nghị các nhà phát triển sản phẩm Microsoft (Microsoft ProductDevelopers Conference 2003) ở Los Angeles, California năm 2003 WCF được biếtđến với cái tên quen thuộc hơn là Indigo trong công cụ phát triển Visual Studio2005

WCF là một bộ các thư viện lớp được xậy dựng trên nền tảng NET Framework 2.0CLR và tích hợp trong NET Framework 3.0 cùng với WF, WPF và WindowsCardspace

Hình 1 40: Kiến trúc NET 3.0

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, NET2.0 được Microsoft phát hành trong đó có cung cấp các hàm API riêng biệt cho cácliê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 WebServices, đồ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ácAPI 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ịchvụ

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 ứngdụ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

Trang 14

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

WCF không chỉ là một phương pháp khác để xây dựng hệ thống phân tán mà cònđem đến nhiều tính năng mới hơn so với các công nghệ trước đó

1.1.2 Tại sao sử dụng WCF?

Như phần trên đã trình bày, NET 2.0 hỗ trợ rất nhiều phương pháp liên lạc giữa cácứng dụng khác nhau nhằm vào các mục tiêu khác nhau Các phương pháp liên lạcnày khá phức tạp và phải mất nhiều thời gian để làm chủ được công nghệ Tuy nhiênkiến thức thu được từ việc triển khai một phương pháp ít có khả năng dùng được khilàm việc với phương pháp khác

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ệntrê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, và bảo mật và thậm chí là đảm bảo giao dịch Nó làm đơngiản hoá việc 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ị mà có thể họ chưa nhận ra ngay, đó là cách tiếp cận phát triển hệ thống phân tánthống nhất, đơn giản, và quản lý được

Do WCF được xây dựng trên cơ sở của NET Framework 2.0 CLR, nó là tập các lớpcho phép các nhà phát triển xây dựng các ứng dụng hướng dịch vụ bằng môi trườnglập trình quen thuộc của họ như VB.NET hay C#

Microsoft đưa ra WCF với kỳ vọng WCF sẽ giải quyết được ba mục tiêu:

- Hợp nhất công nghệ đã tồn tại

- Tương tác đa nền

- Phát triển hướng dịch vụ

Trang 15

Hình 1 41: Khả năng hợp nhất của WCF

Mục tiêu 1: Hợp nhất công nghệ

Bài toán xử lý với các ứng dụng phân tán luôn là một bài toán khó với các nhà pháttriển Sự cạnh tranh của các công nghệ phân tán đầu những năm 1990 đã dẫn đến sựtranh cãi: Sẽ chọn công nghệ nào là công nghệ tốt nhất, phù hợp nhất để phát triển

hệ thống phân tán trong thời gian dài Nếu như một hệ thống được phát triển dựatrên môi trường HTTP thì chắc chắn phải thay đổi mô hình lập trình nếu muốn triểnkhai trên môi trường TCP Hoặc như ta có một hệ thống xây dựng theo mô hìnhWeb Services, hệ thống này không thể hỗ trợ các giao dịch hướng Message nếu nhưkhông thay đổi mô hình lập trình Vậy tại sao lại không có một công nghệ tập hợptất cả những ưu điểm của các công nghệ trước đó

Microsoft đưa ra giải pháp WCF giúp giải quyết điều đó WCF tránh được việc thayđổi mô hình giao tiếp khi làm việc với nhiều công nghệ phân tán, cho phép sử dụngmột API đơn giản và trong sáng

WCF tổng hợp được những gì tốt nhất của các công nghệ phân tán hiện có WCFmang đến sự hiệu quả của ASMX, xử lý giao dịch của Enterprise Service, linh hoạtcủa NET Remoting, ưu điểm trong hướng message của MSMQ, bảo mật của WSE.Microsoft đã mang tất cả những điều đó để xây dựng một nền cơ sở công nghệ độclập và vững chắc

Trang 16

Mục tiêu 2: Tương tác đa nền

Hầu hết các công ty phần mềm lớn đều sử dụng những giao thức riêng gắn liền vớimột nền tảng nhất định nào đó Mặt khác một doanh nghiệp lớn thường có các hệthống riêng rẽ, mua ở những thời điểm khác nhau, của những công ty khác nhau Vàtất nhiên chúng sẽ không tương thích tốt với nhau Việc liên kết các hệ thống lạithành một thể thống nhất và làm việc hiệu quả là một yêu cầu cần thiết

WCF sẽ làm điều đó thay vì chúng ta Thế giới công nghệ sẽ không nói chuyện vớinhau bằng các ngôn ngữ khác nhau nữa, các hệ thống có thể tồn tại một cách hòabình với nhau

Mục tiêu 3: Phát triển hướng dịch vụ

Công nghệ và nghiệp vụ thay đổi rất nhanh, doanh nghiệp phải đầu tư một lượnglớn kinh phí cho việc phát triển ứng dụng Trong nhiều năm, các lập trình viên vàcác tổ chức cố gắng xây dựng phần mềm trên mô hình hướng đối tượng (OOP) đểphù hợp với thực tế Nhưng thiết kế hệ thống cần phải linh hoạt và chuẩn mực đểviệc phát triển nghiệp vụ sau này không gặp khó khăn Chính vì vậy các dịch vụnghiệp vụ ra đời WCF là một công cụ phát triển hướng dịch vụ WCF đảm bảo cácdịch vụ được xây dựng một cách tự động theo nguyên tắc SOA Điều đó đảm bảogiảm giá thành bảo trì, cho phép thay đổi và tương tác đa nền

1.2 Kiến trúc của Windows Communication Foundation

Windows Communication Foundation là một Framework trong NET 3.0 Nó gồmrất nhiều các thư viện, không gian tên (namespace) cho việc lập trình ứng dụngWCF Dưới đây là hình ảnh mô tả kiến trúc WCF và các tầng chính của nó

Trang 17

Hình 1 42: Kiến trúc của WCF (microsoft.com)

1.2.1 Hợp đồng (Contracts)

Khái niệm contract trong WCF cũng giống như các hợp đồng mà ta ký trong đờisống thật Một hợp đồng ta ký có thể chứa các thông tin như kiểu công việc ta sẽlàm, và những thông tin mà ta muốn đưa ra cho các bên khác WCF contract cũngchứa các thông tin tương tự như vậy Contract định nghĩa các đặc tả trong hệ thốngbản tin.Thông thường có các loại contract sau:

Data Contract: 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ốnghiể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ề

Message Contract: Đị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

Trang 18

Services Contract: Đặ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”

Policy and 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áccần phải có khi kết nối với một dịch vụ

1.2.2 Dịch vụ thực thi (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ố

Trang 19

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ênviệc lọc đầu đề bản tin.

1.2.3 Bản tin (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ộtcá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àmviệ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

1.2.4 Chứa và kích hoạt (Host and activation)

Nhìn một cách tổng thể thì một dịch vụ thực chất là một chương trình Cũng giốngnhư các chương trình khác, một dịch vụ cần phải chạy trong một tệp thực thi Dịch

vụ này thường được gọi là dịch vụ tự chứa

Các dịch vụ còn có thể được chứa, hoặc chạy trong một tệp thực thi được quản lýbởi một agent bên ngoài như IIS hay Windows Activation Services (WAS) WAScho phép WCF được kích hoạt một cách tự động khi phân phối tới một máy tính cóchạy WAS

WCF cho phép đưa vào việc xử lý giao dịch như trên với các liên lạc Nhà phát triển

có thể nhóm các liên lạc với nhau thành các giao dịch Ở mức doanh nghiệp, tính

Trang 20

năng này cho phép bạn thực hiện các công việc giao dịch qua các nền tảng khácnhau.

1.3.2 Chứa (Host)

WCF cho phép các dịch vụ được chứa trong một số lớn các môi trường khác nhau,như Windows NT Services, Windows Forms, và ứng dụng console, cũng như ở trênIIS (Internet Information Server) và WAS (Windows Activation Services)

Chứa ứng dụng trên IIS còn có thêm các lợi điểm khác là dịch vụ có thể nhận các ưuđiểm của rất nhiều tính năng có sẵn trên IIS, ví dụ IIS có thể điều khiển một cách tựđộng việc bắt đầu hay kết thúc một dịch vụ

1.3.3 Bảo mật (Security)

Bảo mật là tính năng không thể thiếu trong WCF nói riêng và trong liên lạc nóichung Trong WCF, tất cả mọi thứ từ các bản tin tới các client hay server đều phảixác thực và WCF có tính năng để đảm bảo rằng các bản tin không bị lẫn trong quátrình vận chuyển WCF bao gồm việc đảm bảo tính toàn vẹn và bảo mật của bản tin.WCF còn cho phép bạn tích hợp ứng dụng của bạn với cơ sở hạ tầng bảo mật sẵn có,bao gồm cả các chuẩn bên ngoài môi trường Windows bằng cách sử dụng các bảntin SOAP bảo mật

Dịch vụ (Service): Chứa thông tin về vị trí của dịch vụ

Liên kết (Binding): Chứa thông tin về cách liên lạc với dịch vụ, như dịch

vụ sử dụng giao thức gì, vv

Kiểu cổng (PortType): Giải thích về dịch vụ sẽ làm gì

Mô hình dịch vụ trên WCF cũng tương tự như với mô hình dịch vụ web Điểm khácbiệt là ở cách đặt tên Trong WCF các phần không được gọi là service, binding, vàportType mà được gọi tương ứng là address (địa chỉ), binding, và contract

Trang 21

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, và bảo mật và thậm chí là đảm bảo giao dịch Nó làm đơngiản hoá việc phát triển các ứng dụng nối kết và đưa ra cho nhà phát triển những giátrị mà có thể họ chưa nhận ra ngay, đó là cách tiếp cận phát triển hệ thống phân tánthống nhất, đơn giản, và quản lý được

1.4.1 Các phương pháp lập trình

Có ba phương pháp hay được sử dụng khi phát triển dịch vụ WCF như sau:

Phương pháp khai báo (Declarative programming)

Phương pháp lập trình trực tiếp (Explicit programming)

Phương pháp sử dụng tập tin cấu hình

Mỗi phương pháp có ưu điểm và khuyết điểm riêng của nó Điều đặc biệt về WCF

là luôn có hơn một cách để giải quyết một vấn đề trong WCF, và ta không nhất thiếtphải chọn duy nhất một phương pháp nào Trong thực tế, cách làm tốt nhất là tổ hợpcác phương pháp để có được sự linh hoạt và mềm dẻo cho dịch vụ

Lập trình khai báo đạt được thông qua các thuộc tính Những thuộc tính này được sửdụng để định nghĩa các contract và xác định hành xử của dịch vụ Chúng được sửdụng để xác định thêm các tham số để thay đổi các chi tiết của contract và hành xửdịch vụ

Thuộc tính ServiceContract dùng để quy định là giao diện này định nghĩa các chứcnăng của một dịch vụ Thuộc tính OperationContract được sử dụng ở các hàm đểquy định rằng hàm này được khai báo là một phần của dịch vụ Đó là tất cả những gìcần để tạo ra một dịch vụ WCF

Thêm nữa, ta không nhất thiết phải sử dụng các giao diện (interface) khi cài đặt mộtdịch vụ, điều này cũng giống như việc ta không cần phải sử dụng giao diện để địnhnghĩa một lớp Tuy vậy ta nhất thiết phải quy định phần nào thuộc về dịch vụ Ta cóthể định nghĩa những phần khác cần cho giao diện, nhưng chỉ những hàm (phươngthức) có gắn thuộc tính [OperationContract]

Ví dụ ta có một dịch vụ thực hiện phép tính cộng giữa 2 số nguyên AddInt và 2 số thực AddDouble Ta khai báo dịch vụ như sau:

[ServiceContract]

Trang 22

public interface ICalcService

vụ lại không cho phép đặt trùng tên hàm như thế Chúng ta có thể khai báo thêm vớithuộc tính OperationContract để thực hiện, cách làm như sau:

double Add(double x, double y); }

Vậy là chúng ta sử dụng được phép nạp chồng tên trong C# và sử dụng thêm tham

số Name để quy định thêm tên hàm ở dịch vụ Ngoài ưu điểm trong việc giải quyết

nạp chồng tên hàm, ta còn thấy một lợi ích khác nữa là, việc quy định tham số Name

trong thuộc tính OperationContract còn cho ta thêm linh hoạt trong việc đổi tên các

hàm trong giao diện mà không làm thay đổi định nghĩa dịch vụ, nghĩa là các ứngdụng khác sử dụng dịch vụ này không cần phải biên dịch lại

Phương pháp lập trình trực tiếp (Explicit programming)

Là phương pháp lập trình hướng đối tượng, ta làm việc trực tiếp với các lớp và giaodiện cung cấp bởi mô hình đối tượng của WCF Làm việc trực tiếp với mô hình đốitượng cho phép nhà phát triển tính linh hoạt cao hơn và khả năng điều khiển tốt hơnthông qua mã nguồn của họ Thêm nữa nó cho phép điều khiển sâu hơn rất nhiều sovới phương pháp khai báo và phương pháp sử dụng tập tin cấu hình

Phương pháp sử dụng tập tin cấu hình

Trang 23

Cũng giống như phương pháp khai báo, có rất nhiều thứ mà ta có thể quy định liênquan đến hành xử của một dịch vụ thông qua tập tin cấu hình của dịch vụ Điều haytrong cách tiếp cận này là những thay đổi ở tập tin cấu hình hoàn toàn không cầnphải biên dịch lại dịch vụ mới sử dụng được.

Sau đây là ví dụ sử dụng tập tin cấu hình để định nghĩa dịch vụ tính toán trong ví dụcủa phần phương pháp khai báo

Trang 24

BasicHTTPBinding Là Liên kết (Binding) mà các điểm cuối dịch vụ có thể sử dụng để

liên lạc với các ứng dụng khách và dịch vụ web (ASMX)

NetMsmqBinding Là Liên kết (Binding) mà các điểm cuối dịch vụ có thể sử dụng để

liên lạc với các MSMQ khách và các dịch vụ khác

NetNamedPipeBinding Là Liên kết (Binding) mà các điểm cuối dịch vụ có thể sử dụng để

liên lạc với các ứng dụng khách/dịch vụ trên cùng một máy

NetTCPBinding Là Liên kết (Binding) mà các điểm cuối dịch vụ có thể sử dụng để

liên lạc với các ứng dụng khách/dịch vụ ở các máy khác nhau

WSHTTPBinding Là Liên kết (Binding) mà các điểm cuối dịch vụ có thể sử dụng để

liên lạc với các ứng dụng khách/dịch vụ sử dụng các giao dịch phân tán và các phiên làm việc bảo mật và tin cậy được.

EndpointAddress Lớp biểu diễn địa chỉ duy nhất được cung cấp và truy xuất được

cho máy khách để liên lạc với điểm cuối dịch vụ

EndpointAddressBuilding Là phương pháp để tạo mới các địa chỉ đầu cuối với các giá trị tham

số xác định

ChannelFactory Là phương pháp trong đó các kiểu kênh khác nhau được tạo ra và

quản lý, và đưa tới cho các ứng dụng khách để gửi bản tin tới các điểm cuối

Trang 25

Identity Cách mà một định danh được xác định, cho phép xác thực giữa các

điểm cuối khi trao đổi bản tin

MessageHeader Biểu diễn nội dung của một đầu đề bản tin SOAP

ServiceHost Phương pháp cung cấp vật chứa cho các dịch vụ

ReliableSession Cung cấp truy xuất tới các thuộc tính của thành phần binding trong

phiên làm việc tin cậy.

Để định nghĩa việc liên lạc của dịch vụ, ta thường hay sử dụng các lớp sau

AddressHeader Phần đầu đề chưa thông tin địa chỉ được sử dụng để xác định và liên

lạc với một điểm cuối

AddressHeaderCollection Một tập hợp các đầu đề địa chỉ

Binding Tập hợp các thành phần binding, mỗi binding định nghĩa cách mà

một điểm cuối liên lạc với thế giới bên ngoài

BindingContext Cung cấp địa chỉ và thông tin binding cần thiết cho việc xây dựng

Message Một đơn vị của liên lạc giữa các điểm cuối

MessageHeader Nội dung của đầu đề bản tin SOAP

MessageHeaders Tập hợp các đầu đề bản tin

Trang 26

1.4.2 Nguyên lý ABCs

Chắc chắn đến đây, sẽ có nhiều người đặt ra câu hỏi: Nguyên lý ABC là gì? Thực

chất, ABC là viết tắt của ba khái niệm quan trọng trong WCF Đó là: Address, Binding và Contract

Đơn giản hơn:

Address trả lời cho câu hỏi Where? - Xác định nơi mà lời gọi dịch vụ sẽ

gửi tới

Binding trả lời cho câu hỏi How? - Xác định cách thức mà lời gọi sẽ

được gửi đi

Contract trả lời cho câu hỏi What? - Xác định nội dung mà lời gọi sẽ

gửi đi

Hình 1 43: Mô hình lập trình WCF

Thông thường, bộ ABC được coi như một cổng giao tiếp (endpoint) với thế giới bênngoài của dịch vụ được định nghĩa trong WCF Để mô tả về endpoint, ta dùng mộttập tin đặc biệt định dạng XML đó là WSDL (Web Services Description Language).WSDL mô tả những gì dịch vụ có thể làm, cách mà từ bên ngoài có thể truy cậpđược dịch vụ cũng như nơi có thể tìm được dịch vụ

1.4.3 Địa chỉ (Address)

Ta phải biết địa chỉ của dịch vụ để có thể gửi được lời gọi Địa chỉ trong WCF cho tabiết giao thức của máy chủ ứng dụng đang chạy dịch vụ cũng như đường dẫn đếndịch vụ đó Định dạng của một địa chỉ dịch vụ có cấu trúc như sau:

scheme://<machinename>[:port]/path

Trang 27

Trong đó:

Port Đây là thành phần không bắt buộc, xác định cổng giao tiếp

trên máy chủ Giao thức HTTP mặc định là cổng 80

Địa chỉ điểm cuối (endpoint address):

Địa chỉ điểm cuối giống như ở ví dụ trên, một địa chỉ điểm cuối quy định địa chỉ củamột điểm cuối dịch vụ cụ thể Máy khách (chương trình khách) có thể truy nhật dịch

vụ qua địa chỉ điểm cuối Ví dụ qua địa chỉ sau:

http://localhost:8080/HelloWorld

Khi máy khách truy nhập dịch vụ thông qua địa chỉ điểm cuối, máy khách có thể nóichuyện với dịch vụ và mọi liên lạc từ dịch vụ và đến dịch vụ đều thực hiện thôngqua địa chỉ này

Địa chỉ cơ sở (base address):

Địa chỉ cơ sở cung cấp một cách để xác định một địa chỉ đơn nhất cho một dịch vụ

và gán các địa chỉ tương đối cho từng điểm cuối riêng lẻ Ví dụ, giả sử ta có mộtdịch vụ với ba điểm cuối, ta có thể gán cho dịch vụ đó một địa chỉ cơ sở như sau

http://localhost:8080/HelloWorld

Với địa chỉ cơ sở được gán cho dịch vụ, ta có thể gán cho ba điểm cuối các địa chỉtương đối sau

http://localhost:8080/HelloWorld/8787

Trang 28

http://localhost:8080/HelloWorld/8788 http://localhost:8080/HelloWorld/8789

Địa chỉ siêu thông tin (mex address):

Địa chỉ MEX cho phép một máy khách thu thập các thông tin về một dịch vụ nào

đó MEX, nghĩa là metadata exchange (trao đổi siêu dữ liệu), là một địa chỉ điểm

cuối HTTP được sử dụng để lấy thông tin về dịch vụ Ví dụ địa chỉ sau là một địachỉ MEX:

http://localhost:8080/HelloWorld/mex

Thông tin về dịch vụ cung cấp cho máy khách thông qua địa chỉ MEX được lấy từsiêu dữ liệu của dịch vụ Siêu dữ liệu này chính là những mô tả về dịch vụ

Các định dạng địa chỉ

Khi phát triển một dịch vụ bạn cần lưu ý các điểm sau:

Môi trường chứa dịch vụ Môi trường có thể bắt buộc hoặc đòi hỏi địa chỉ phảiđược định dạng theo cách này hay cách khác

Nơi địa chỉ được xác định Bạn có các tuỳ chọn để lưu nó ở tệp cấu hình hoặc bạn

có thể lưu luôn trong mã nguồn của chương trình của bạn

Phần này sẽ giới thiệu với bạn các định dạng địa chỉ khác nhau để bạn có thể hìnhdung về tính linh hoạt và các tuỳ chọn có thể có khi phát triển và phân phối dịch vụ Địa chỉ có cấu trúc chung nhưng có nhiều định dạng địa chỉ khác nhau, phân biệtqua chính giao thức trong địa chỉ

https://localhost/Service/HelloWorld

Trang 29

bảo mật bằng cách sử dụngSSL (Secure Socket Layer),

và được quy định bằng https.Ngoài giao thức (scheme) là

https, thì địa chỉ HTTPSkhông khác gì với địa chỉHTTP

ảo cũng như tên tệp dịch vụ

http://localhost/Service/HelloWorld.svc

Khi lập trình với các địa chỉ trong Windows Communication Foundation bạn cóthêm sự linh hoạt trong làm việc với các điểm cuối và dịch vụ bởi bạn hoàn toàn cóthể lập trình để định nghĩa và xử lý các địa chỉ cơ sở Trong thực tế, không mấy khicác nhà lập trình tạo ra các điểm cuối và các địa chỉ điểm cuối thông qua mã nguồn

do các địa chỉ và binding bạn sử dụng trong quá trình phát triển dịch vụ thườngkhông giống so với các địa chỉ và binding sẽ sử dụng khi phân phối dịch vụ Thôngthường là ta định nghĩa các điểm cuối và các địa chỉ trong tệp tin cấu hình Tuy

nhiên WCF vẫn có lớp EndpointAddress để hỗ trợ việc lập trình các địa chỉ, điều

này làm tăng tính linh hoạt cho WCF

1.4.4 Liên kết (Binding)

Các Binding là phương pháp theo đó các chi tiết trong truyền thông được xác định

để tạo kết nối tới điểm cuối dịch vụ WCF Các Bindings trong WCF có thể thay đổi

mức độ phức tạp Các mức độ này có thể từ đơn giản nhất cho tới cực kỳ phức tạp.Khi định nghĩa một binding, ta cần chỉ ra các thông tin ở trong các lĩnh vực sau:

Trang 30

Protocol (Giao thức): Định nghĩa các thông tin cần sử dụng trong binding

ví dụ như tính bảo mật, khả năng thực hiện giao dịch, hoặc khả năng truyền bảntin một cách tin cậy

Transport (Vận chuyển): Định nghĩa giao thức cơ bản được sử dụng trong

truyền thông

Encoding (mã hoá): Định nghĩa việc mã hoá được sử dụng cho các bản tin

trong quá trình liên lạc

WCF cung cấp sẵn một bộ các Binding có thể đáp ứng được phần lớn cái yêu cầu về

truyền thông trong các ứng dụng phổ biến Nhưng nếu những gì mà Microsoft cungcấp vẫn chưa đủ, chúng ta hoàn toàn có thể xây dựng một kiểu binding bằng cách sử

dụng CustomBinding.

Bảng các binding được có sẵn

(none),Transport,

Transport,(Message),Mixed

(none),Transport,Reliable (none), Yes

NetTcpBinding NET (Transport),Message Reliable,(Transport) (none), Yes

(Transport),

(none) (none), Yes

Trang 31

Trong bảng trên, những giá trị để trong ngoặc là những giá trị mặc định tương ứngcho các tính năng, các tính năng được định nghĩa như sau:

Công nghệ: Định nghĩa giao thức hay công nghệ mà binding sẽ sử dụng để

đảm bảo việc trao đổi và sử dụng thông tin

Bảo mật: Xác định cách bảo mật kênh trao đổi thông tin

Phiên: Xác định việc hỗ trợ contract phiên

Giao dịch: Xác định việc cho phép hay không các giao dịch (transaction)

Dựa vào bảng đó, ta có thể đưa ra một số nhận xét Nếu yêu cầu bài toán đòi hỏi

việc tích hợp giữa các nền tảng khác nhau, ta sẽ chú ý đến cái binding với tiền tố [ws] Còn nếu môi trường làm việc bài toán là Windows thì lựa chọn các binding với tiền tố [net] có vẻ hợp lý Riêng basicHttpBinding phù hợp với những dịch vụ ra đời

trước WCF như ASMX

Khi ta chọn binding để giải quyết một vấn đề, thường ta chú ý đến xem nó hỗ trợ

Trang 32

NetTcpBinding Không Không Có Không

NetNamedPipeBinding Không Không Không Không

MsmqIntegrationBinding Không Không Không Có

Trang 33

Để dễ dàng hơn trong việc xác định binding, ta có thể dựa vào sơ đồ sau:

Hình 1 44: Sơ đồ lựa chọn Binding

1.4.5 Hợp đồng (Contract)

Các contract trong Windows Communication Foundation cung cấp khả năng làm

việc đa môi trường khi liên lạc với các máy khách Các máy khách và dịch vụ thoảthuận với nhau về các contract như kiểu của các hành động và các cấu trúc dữ liệu

mà các bên sẽ sử dụng trong quá trình liên lạc qua lại với nhau Nếu không cócontract thì không thể thực hiện liên lạc được do không có sự thoả thuận thống nhấtgiữa các bên

Khi định nghĩa một dịch vụ trong Windows Communication Foundation ta sử dụng

ba kiểu contract cơ bản sau:

Service Contract (Contract dịch vụ): Định nghĩa các phương thức của

một dịch vụ, thực chất là các hành động mà client có thể sử dụng ở các điểmcuối (endpoint)

Data Contract (Contract dữ liệu): Định nghĩa các kiểu dữ liệu được sử

dụng ở các phương thức của dịch vụ

Message Contract (Contract bản tin): Cung cấp khả năng để điều khiển

các đầu đề bản tin trong quá trình tạo ra các bản tin

Cũng giống như các thành phần khác trong WCF, các contract được định nghĩa sửdụng các khái niệm mà ta đã quen thuộc Các contract được định nghĩa sử dụng các

Trang 34

lớp và giao diện, bằng cách thêm vào các thuộc tính mô tả (attribute) cho các lớp vàgiao diện đó.

Có thể hình dung mối liên hệ giữa các contract với NET Framework CLR một cách

gần đúng như sau:

Service Contracts: Cung cấp thông tin để thực hiện ánh xạ từ CLR sang

WSDL (Web Service Description Language - Ngôn ngữ mô tả dịch vụ Web)

Data Contracts: Cung cấp thông tin để thực hiện ánh xạ từ CLR sang XSD

(XML Schema Definition - Định nghĩa schema XML)

Message Contracts: Dùng để miêu tả cấu trúc của bản tin SOAP (Simple

Object Access Protocol - Giao thức truy nhập đối tượng đơn giản)

Service Contracts (Contract dịch vụ)

Như đã nói ở phần trên, một contract dịch vụ định nghĩa các hành động hoặc phương

thức có ở điểm cuối dịch vụ (Endpoint) và được đưa ra để máy khách có thể sử

dụng Nó còn định nghĩa một cách cơ bản các phép trao đổi bản tin như việc bản tin

sẽ thế nào trong yêu cầu/trả lời (Request/Reply) hay trong liên lạc đơn công

(one-way) hoặc song công (Duplex).

Contract dịch vụ đưa ra một số thông tin cho các máy khách đủ để cho máy khách

có thể biết được dịch vụ này có thể cung cấp những gì Những thông tin đó baogồm:

 Các 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ànhcông

 Nhóm các hành động

 Mẫu trao đổi bản tin (Message exchange pattern – MEP)

Như trên đã nói, để định nghĩa contract dịch vụ, ta sử dụng các thuộc tính mô tả chomột lớp hay giao diện Thuộc tính mô tả một contract dịch vụ là ServiceContract

dụ sau định nghĩa một giao diện như là một contract dịch vụ:

[ServiceContract]

public interface IStaffInformation

{

}

Trang 35

Sau đó để định nghĩa các hành động (phương thức) cho dịch vụ ta sử dụng phần mô

tả là OperationContractcho các phương thức của giao diện như ví dụ dưới đây:

[OperationContract]

bool HasPerson(int staffId);

[OperationContract]

string GetPersonName(int staffId);

Gộp các phần lại ta sẽ được một định nghĩa hoàn chỉnh cho một contract dịch vụ:

Trang 36

Trong trường hợp ta không muốn định nghĩa dịch vụ ở phần giao diện, ta hoàn toàn

có thể định nghĩa dịch vụ ở trong lớp cài đặt dịch vụ đó như sau:

Trong khi định nghĩa contract dịch vụ, chúng ta đã sử dụng hai lớp thuộc tính để mô

tả là ServiceContract và OperationContract Hai thuộc tính này có rất nhiều tham số

kèm theo, tuy nhiên trong nhiều trường hợp, chúng ta hoàn toàn có thể sử dụng cácgiá trị mặc định của hai thuộc tính này để định nghĩa contract dịch vụ Trong một sốtrường hợp khi chúng ta muốn điều khiển sâu hơn về các thông tin liên quan đếndịch vụ, ta có thể đưa thêm các tham số cho hai thuộc tính này

Thuộc tính ServiceContract được áp dụng cho việc mô tả các giao diện hoặc các lớp

để định nghĩa một contract dịch vụ Thuộc tính này có các tham số sau:

Bảng tham số thuộc tính ServiceContract

CallbackContract Thiết lập/Trả về kiểu của callback contract khi liên lạc ở chế

Trang 37

độ song công Khi liên lạc giữa máy khách và dịch vụ đượcthiết lập, tham số này chỉ ra rằng máy khách cần phải đợi lờigọi hàm từ phía dịch vụ thông qua kiểu của callbackcontract đã định nghĩa Ví dụ sau mô tả cách sử dụng tham

số CallbackContract

[ServiceContract(CallbackContract=typeof(IClientContract))]public class StaffInformation : IStaffInformation

{

}

Trong ví dụ trên, dịch vụ quy định callback contract phải có

kiểu là IClientContract

ConfigurationName Thiết lập/Trả về tên được sử dụng để xác định thành phần

dịch vụ trong tệp tin cấu hình Ví dụ về việc sử dụng tham

số ConfigurationName như sau:

Và ở tệp tin cấu hình ta có phần định nghĩa thành phần dịch

vụ với tên là DichVu

Trang 38

WSDL Giá trị mặc định cho tham số này chính là tên của

giao diện hay lớp có gắn thuộc tính ServiceContract Tham

số này được sử dụng trong trường hợp ta muốn thay đổi tên

của thành phần <portType> hoặc muốn giữ nguyên tên của

thành phần <portType> nhưng lại đổi tên của giao diện hay

lớp định nghĩa dịch vụ

Namespace Thiết lập/Trả về namespace (không gian tên) cho thành

phần <portType> trong WSDL Giá trị mặc định cho tham

số này là http://tempuri.org

định này bao gồm quy định về mã hoá, chữ ký điện tử tạicác điểm cuối của dịch vụ

dịch vụ đòi hỏi hoặc hỗ trợ Ví dụ có thể định nghĩa đòi hỏiphải hỗ trợ phiên làm việc tin cậy cho dịch vụ như sau:

Thuộc tính OperationContract được gắn với các phương thức trong các giao diện

hay các lớp Chỉ các phương thức được gắn thuộc tính OperationContract mới đượccoi là phương thức của dịch vụ Các tham số có thể sử dụng cho thuộc tính này nhưsau:

Trang 39

Bảng tham số thuộc tính OperationContract

thức này WCF phân phối các bản tin yêu cầu với cácphương thức dựa trên các hành động của chúng

cách bất đồng bộ sử dụng cặp phương thức bắt đầu bởiBegin và End

tạo trong một phiên hay không

duy nhất Phương thức không có bản tin trả về

sau khi phương thức này thực hiện xong hay không

Name Quy định tên cuối cùng của phương thức sẽ có trong dịch

vụ Giá trị mặc định của tham số này là tên của phươngthức

cầu khi thực hiện

này

Ví dụ sau biểu diễn việc sử dụng các tham số của OperationContract để quy định thứ

tự thực hiện của các phương thức khi làm việc với dịch vụ Theo ví dụ này, quy trình

để máy khách liên lạc với dịch vụ như sau

1. Đầu tiên máy khách cần phải gọi hàm Loginđể đăng nhập

2. Sau đó gọi hàm HasPerson hoặc GetPersonName để lấy thông tin về nhânviên

Ngày đăng: 23/11/2012, 15:04

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[6]. www.crmvietnam.com [7]. http://en.wikipedia.org/ Link
[1]. Dave Grundgeiger (2002), Programming Visual Basic. Net, O’Reilly [2]. John Sharp. Microsoft Windows Communication Foundation Step by Step Khác
[3]. Robin A.Reynolds Haertle (2002), OOP with Microsoft Visual Basic. Net &amp; Microsoft Visual C# Step by Step, Microsoft Press Khác
[4]. Scott Klein. WProfessional WCF Programming Apr 2007 Khác
[5]. Steve Resnick. Essential Windows Communication Foundation (WCF): For .NET Framework 3.5 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1 36: Kiến trúc của mô hình CORBA - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 36: Kiến trúc của mô hình CORBA (Trang 9)
Hình 1 37: Kiến trúc của mô hình EJB - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 37: Kiến trúc của mô hình EJB (Trang 9)
Hình 1 36: Kiến trúc của mô hình CORBA - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 36: Kiến trúc của mô hình CORBA (Trang 9)
Hình 1 37: Kiến trúc của mô hình EJB - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 37: Kiến trúc của mô hình EJB (Trang 9)
Hình 1 38: Kiến trúc của mô hình DCOM - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 38: Kiến trúc của mô hình DCOM (Trang 10)
Hình 1 39: Kiến trúc cơ bản của SOA - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 39: Kiến trúc cơ bản của SOA (Trang 11)
Hình 1 39: Kiến trúc cơ bản của SOA - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 39: Kiến trúc cơ bản của SOA (Trang 11)
Hình 1 40: Kiến trúc .NET 3.0 - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 40: Kiến trúc .NET 3.0 (Trang 13)
Hình 1 42: Kiến trúc của WCF (microsoft.com) - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 42: Kiến trúc của WCF (microsoft.com) (Trang 17)
Hình 1 42: Kiến trúc của WCF (microsoft.com) - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 42: Kiến trúc của WCF (microsoft.com) (Trang 17)
Hình 1 43: Mô hình lập trình WCF - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 43: Mô hình lập trình WCF (Trang 26)
• Nơi địa chỉ được xác định. Bạn có các tuỳ chọn để lưu nó ở tệp cấu hình hoặc bạn có thể lưu luôn trong mã nguồn của chương trình của bạn. - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
i địa chỉ được xác định. Bạn có các tuỳ chọn để lưu nó ở tệp cấu hình hoặc bạn có thể lưu luôn trong mã nguồn của chương trình của bạn (Trang 28)
Bảng các định dạng địa chỉ - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Bảng c ác định dạng địa chỉ (Trang 28)
Bảng các binding được có sẵn - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Bảng c ác binding được có sẵn (Trang 30)
Bảng những binding có sẵn và giao thức hỗ trợ tương ứng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Bảng nh ững binding có sẵn và giao thức hỗ trợ tương ứng (Trang 31)
Hình 1 44: Sơ đồ lựa chọn Binding - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 44: Sơ đồ lựa chọn Binding (Trang 33)
Hình 1 44: Sơ đồ lựa chọn Binding - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 44: Sơ đồ lựa chọn Binding (Trang 33)
dịch vụ trong tệp tin cấu hình. Ví dụ về việc sử dụng tham số - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
d ịch vụ trong tệp tin cấu hình. Ví dụ về việc sử dụng tham số (Trang 37)
Hình 1 45: “Khách hàng là trung tâm của mọi hoạt động” - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 45: “Khách hàng là trung tâm của mọi hoạt động” (Trang 47)
Hình 1 45: “Khách hàng là trung tâm của mọi hoạt động” - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 45: “Khách hàng là trung tâm của mọi hoạt động” (Trang 47)
Hình 1 46: Quy trình chung của hệ thống CRM - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 46: Quy trình chung của hệ thống CRM (Trang 53)
Hình 1 46: Quy trình chung của hệ thống CRM - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 46: Quy trình chung của hệ thống CRM (Trang 53)
Hình 1 47: Quy trình tiếp thị - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 47: Quy trình tiếp thị (Trang 56)
Hình 1 47: Quy trình tiếp thị - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 47: Quy trình tiếp thị (Trang 56)
Hình 1 48: Quy trình bán hàng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 48: Quy trình bán hàng (Trang 57)
Hình 1 48: Quy trình bán hàng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 48: Quy trình bán hàng (Trang 57)
Hình 1 49: Quy trình dịch vụ sau bán hàng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 49: Quy trình dịch vụ sau bán hàng (Trang 58)
Hình 1 50: Sơ đồ usecase quản lý tổ chức - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 50: Sơ đồ usecase quản lý tổ chức (Trang 59)
Hình 1 50: Sơ đồ use case quản lý tổ chức - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 50: Sơ đồ use case quản lý tổ chức (Trang 59)
Hình 1 51: Sơ đồ usecase quản lý cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 51: Sơ đồ usecase quản lý cơ hội (Trang 60)
Hình 1 51: Sơ đồ use case quản lý cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 51: Sơ đồ use case quản lý cơ hội (Trang 60)
3.4.4. Quản lý tiềm năng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
3.4.4. Quản lý tiềm năng (Trang 62)
Hình 1 54: Sơ đồ usecase quản lý chiến dịch - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 54: Sơ đồ usecase quản lý chiến dịch (Trang 64)
Hình 1 54: Sơ đồ use case quản lý chiến dịch - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 54: Sơ đồ use case quản lý chiến dịch (Trang 64)
Hình 1 55: Sơ đồ usecase quản lý báo cáo - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 55: Sơ đồ usecase quản lý báo cáo (Trang 65)
Hình 1 55: Sơ đồ use case quản lý báo cáo - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 55: Sơ đồ use case quản lý báo cáo (Trang 65)
Hình 1 56: Biểu đồ tuần tự thêm ,sửa tổ chức - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 56: Biểu đồ tuần tự thêm ,sửa tổ chức (Trang 66)
Hình 1 57: Biểu đồ tuần tự xóa tổ chức - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 57: Biểu đồ tuần tự xóa tổ chức (Trang 66)
Hình 1 56: Biểu đồ tuần tự thêm ,sửa tổ chức - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 56: Biểu đồ tuần tự thêm ,sửa tổ chức (Trang 66)
Hình 1 58: Biểu đồ tuần tự thêm, sửa tiềm năng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 58: Biểu đồ tuần tự thêm, sửa tiềm năng (Trang 67)
Hình 1 59: Biểu đồ tuần tự xóa tiềm năng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 59: Biểu đồ tuần tự xóa tiềm năng (Trang 67)
Hình 1 60: Biểu đồ tuần tự thêm, sửa cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 60: Biểu đồ tuần tự thêm, sửa cơ hội (Trang 68)
Hình 1 61: Biểu đồ tuần tự xóa cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 61: Biểu đồ tuần tự xóa cơ hội (Trang 68)
Hình 1 60: Biểu đồ tuần tự thêm, sửa cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 60: Biểu đồ tuần tự thêm, sửa cơ hội (Trang 68)
Hình 1 61: Biểu đồ tuần tự xóa cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 61: Biểu đồ tuần tự xóa cơ hội (Trang 68)
Hình 1 62: Biểu đồ tuần tự thêm, sửa hợp đồng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 62: Biểu đồ tuần tự thêm, sửa hợp đồng (Trang 69)
Hình 1 63: Biểu đồ tuần tự xóa hợp đồng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 63: Biểu đồ tuần tự xóa hợp đồng (Trang 69)
Hình 1 62: Biểu đồ tuần tự thêm, sửa hợp đồng - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 62: Biểu đồ tuần tự thêm, sửa hợp đồng (Trang 69)
Hình 1 65: Biểu đồ tuần tự xóa liên hệ - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 65: Biểu đồ tuần tự xóa liên hệ (Trang 70)
Hình 1 64: Biểu đồ tuần tự thêm, sửa liên hệ - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 64: Biểu đồ tuần tự thêm, sửa liên hệ (Trang 70)
Hình 1 66: Biểu đồ tuần tự thêm, sửa chiến dịch - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 66: Biểu đồ tuần tự thêm, sửa chiến dịch (Trang 71)
Hình 1 67: Biểu đồ tuần tự xóa chiến dịch - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 67: Biểu đồ tuần tự xóa chiến dịch (Trang 71)
Hình 1 66: Biểu đồ tuần tự thêm, sửa chiến dịch - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 66: Biểu đồ tuần tự thêm, sửa chiến dịch (Trang 71)
Hình 1 67: Biểu đồ tuần tự xóa chiến dịch - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 67: Biểu đồ tuần tự xóa chiến dịch (Trang 71)
CRM WCF 2010 được thiết kế theo mô hình 3 lớp: - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
2010 được thiết kế theo mô hình 3 lớp: (Trang 72)
Hình 1 68: Kiến trúc CRM WCF 2010 - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 68: Kiến trúc CRM WCF 2010 (Trang 72)
Hình 1 70: Giao diện phân hệ Liên hệ - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 70: Giao diện phân hệ Liên hệ (Trang 75)
Hình 1 70: Giao diện phân hệ Liên hệ - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 70: Giao diện phân hệ Liên hệ (Trang 75)
Hình 1 36: Giao diện phân hệ Cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 36: Giao diện phân hệ Cơ hội (Trang 76)
Hình 1 36: Giao diện phân hệ Cơ hội - Sử dụng công nghệ windows communication foundation trong các ứng dụng trên diện rộng
Hình 1 36: Giao diện phân hệ Cơ hội (Trang 76)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w