LUẬN VĂN:SỬ DỤNG CÔNG NGHỆ WINDOWS COMMUNICATION FOUNDATION TRONG CÁC ỨNG DỤNG TRÊN DIỆN RỘNG potx - Pdf 15




HÀ NỘI - 2009
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


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.
4

MỤC LỤC
LỜI MỞ ĐẦU 8
1. Tính cấp thiết của đề tài: 8
2. Mục tiêu của đề tài: 10
CHƯƠNG 1: CÔNG NGHỆ WINDOWS COMMUNICATION FOUNDATION 13
1.1. Tổng quan về Windows Communication Foundation 13
1.1.1. Windows Communication Foundation là gì? 13
1.1.2. Tại sao sử dụng WCF? 14
1.2. Kiến trúc của Windows Communication Foundation 16
1.2.1. Hợp đồng (Contracts) 17
1.2.2. Dịch vụ thực thi (Runtime service) 18
1.2.3. Bản tin (Message) 19
1.2.4. Chứa và kích hoạt (Host and activation) 19
1.3. Các tính năng của WCF 19
1.3.1. Giao dịch (Transaction) 19
1.3.2. Chứa (Host) 20
1.3.3. Bảo mật (Security) 20
1.4. Mô hình lập trình với WCF 20
1.4.1. Các phương pháp lập trình 21
1.4.2. Nguyên lý ABCs 26
1.4.3. Địa chỉ (Address) 26
1.4.4. Liên kết (Binding) 29
1.4.5. Hợp đồng (Contract) 33
CHƯƠNG 2: GIỚI THIỆU GIẢI PHÁP CRM CHO DOANH NGHIỆP 45
2.1. CRM là gì? 45
2.2. Lịch sử học thuyết CRM 47

3.5.1. Thêm, sửa tổ chức 66
3.5.2. Xóa tổ chức 66
3.5.3. Thêm, sửa tiềm năng 67
3.5.4. Xóa tiềm năng 67
3.5.5. Thêm, sửa cơ hội 68
3.5.6. Xóa cơ hội 68
3.5.7. Thêm, sửa hợp đồng 69
3.5.8. Xóa hợp đồng 69
3.5.9. Thêm, sửa liên hệ 70
3.5.10. Xóa liên hệ 70
3.5.11. Thêm, sửa chiến dịch 71
3.5.12. Xóa chiến dịch 71
3.5. Kiến trúc và công cụ phát triển CRM WCF 2010 72
3.5.1. Kiến trúc của CRM WCF 2010 72
3.5.2. Môi trường phát triển CRM WCF 2010 73
3.6. Giao diện minh họa các phân hệ chính của CRM WCF 2010 73
3.6.1. Phân hệ Tổ chức 73
3.6.2. Phân hệ liên hệ 75
3.6.3. Phân hệ cơ hội 76
KẾT LUẬN 78
TÀI LIỆU THAM KHẢO 78

6

BẢNG CÁC KÝ HIỆU VIẾT TẮT
Ký hiệu Từ viết tắt Ý nghía
SOA Service-oriented architecture Kiến trúc hướng dịch vụ
WCF Windows Communication
Foundation
Công nghệ mới của Microsoft trong


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

Hình 1 10: “Khách hàng là trung tâm của mọi hoạt động”
45

Hình 1 11: Quy trình chung của hệ thống CRM
51

Hình 1 12: Quy trình tiếp thị
54

Hình 1 13: Quy trình bán hàng
55

Hình 1 14: Quy trình dịch vụ sau bán hàng
56

Hình 1 15: Sơ đồ use case quản lý tổ chức
57

7

Hình 1 16: Sơ đồ use case quản lý cơ hội
58

Hình 1 17: Sơ đồ use case quản lý hợp đồng
59


Hình 1 28: Biểu đồ tuần tự xóa hợp đồng
67

Hình 1 29: Biểu đồ tuần tự thêm, sửa liên hệ
68

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

Hình 1 31: Biểu đồ tuần tự thêm, sửa chiến dịch
69

Hình 1 32: Biểu đồ tuần tự xóa chiến dịch
69

Hình 1 33: Kiến trúc CRM WCF 2010
70

Hình 1 34: Giao diện phân hệ Tổ chức
71

Hình 1 35: Giao diện phân hệ Liên hệ
73

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

Hình 1 36: Kiến trúc của mô hình CORBA
 EJB - Enterprise JavaBeans
- 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ảng
như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ới
cá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
10

 DCOM - Distributed Component Object Model
- DCOM là một mô hình phân tán dễ triển khai với chi phí thấp. Mô hình
Component Object Model (COM) định nghĩa cách thức các thành phần và Client
liê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 ứng
dụ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 doanh
nghiệ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ểm
lớ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ải

- 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 interface
theo 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
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àng
khi 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ống
củ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êu
cầ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ình
nghiệ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ách
hàng.
WCF là một công nghệ được Microsoft đưa ra trong bản .NET 3.0. WCF là nền tảng
giú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ông
nghệ để 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ộc
trong .NET như C# hay VB.NET. WCF sẽ giúp các tầng của ứng dụng có thể gọi
nhau qua môi trường Internet hay LAN. Điều này giải quyết được vấn đề mở rộng
phạ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 doanh
nghiệp.
13

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

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ạc
nà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ên
kiế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 khi
là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ệ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, và bảo mật và thậm chí là đảm bảo giao dịch. Nó làm đơn
giả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án
thố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ớp
cho 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ường
lậ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ụ
15Hì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át
triể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ự

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ác
dịch vụ được xây dựng một cách tự động theo nguyên tắc SOA. Điều đó đảm bảo
giả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ồm
rất nhiều các thư viện, không gian tên (namespace) cho việc lập trình ứng dụng
WCF. Dưới đây là hình ảnh mô tả kiến trúc WCF và các tầng chính của nó. 17Hì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 đời
số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ũng
chứa các thông tin tương tự như vậy. Contract định nghĩa các đặc tả trong hệ thống
bản tin.Thông thường có các loại contract sau:
 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ống
hiểu XML có thể xử lý tài liệu dễ dàng. Các dịch vụ khi liên lạc với nhau có thể
không cần đồng ý với nhau về các kiểu, nhưng cần đồng ý về contract dữ liệu,
nghĩa là đồng ý về các tham số và các kiểu trả về.
 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

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ụ.
19

 Parameter filtering: Khi một bản tin được đưa tới một dịch vụ, sẽ xảy ra
một số hành động dựa trên nội dung phần đầu đề của bản tin. Phần lọc tham số
sẽ thực hiện lọc các đầu đề bản tin và thực hiện các hành động đặt sẵn dựa trên
việc lọc đầu đề bản tin.
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ột
cách nào đó. Một tập các kênh thường được gọi là ngăn xếp kênh. Các kênh làm
việc trên bản tin và trên đầu đề của bản tin. Lớp này khác với lớp thực thi dịch vụ
chủ yếu bởi sự khác nhau trong việc xử lý nội dung bản tin.
Có hai kênh khác nhau là kênh vận chuyển (transport channel) và kênh điều khiển
(control channel).
 Kênh vận chuyển phụ trách việc đọc và ghi các bản tin từ mạng (network)
hoặc từ một số điểm giao dịch bên ngoài.
 Kênh điều khiển thực hiện xử lý bản tin theo giao thức, thông thường làm
việc bằng cách đọc và ghi thêm các đầu đề cho bản tin.
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ống
như 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). WAS
cho 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.
1.3. Các tính năng của WCF
1.3.1. Giao dịch (Transaction)

vụ (service). Dịch vụ web chứa một tài liệu XML để mô tả tất cả mọi thứ cần biết về
dịch vụ đó. Tài liệu này được mô tả bằng ngôn ngữ Web Service Description
Language (ngôn ngữ mô tả dịch vụ web). Nó chứa ba phần:
 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ì
21

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ác
biệ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.
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 đơn
giả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án
thố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ết
phả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ợp
các phương pháp để có được sự linh hoạt và mềm dẻo cho dịch vụ.
 Phương pháp khai báo (Declarative programming)
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ử

{
[OperationContract(Name="AddInt")]
int Add(int x, int y);
[OperationContract(Name="AddDouble")]
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 ứng
dụ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à giao
diệ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 đối
tượ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ơn
23

thô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 so
vớ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
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ên
quan đế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 hay
trong 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ần
phả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.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation debug="true" />

</system.serviceModel>
</configuration>
Mô hình dịch vụ WCF được cung cấp trong không gian tên System.ServiceModel.
Không gian tên này chứa rất nhiều lớp, nhưng bạn hoàn toàn không cần biết toàn bộ
chúng. Để sử dụng mô hình và xây dựng dịch vụ, ta thường sử dụng một số lớp sau:

Lớp Mô tả
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
25

binding
CustomBinding
Sử dụng để định nghĩa và xây dựng một tuỳ biến binding từ một tập
các thành phần binding
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

Trích đoạn Các usecase chính của hệ thống CRM WCF 2010 Biểu đồ tuần tự của hệ thống Kiến trúc và công cụ phát triển CRM WCF 2010 Giao diện minh họa các phân hệ chính của CRM WCF 2010
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status