Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
1
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ................................................... 2
LỜI MỞ ĐẦU .................................................................................................................. 3
CHƢƠNG I: TỔNG QUAN ............................................................................................ 4
I. 1 Giới thiệu đơn vị thực tập ..................................................................................... 4
I.1.1 Giới thiệu chung .............................................................................................. 4
I.1.2 Sản phẩm & Dịch vụ & Giải pháp .................................................................. 4
I.1.3 Kinh nghiệm .................................................................................................... 7
I.1.4 Các đối tác chiến lƣợc ..................................................................................... 8
I.2 Tổng quan đề tài ..................................................................................................... 8
I.2.1 Mục tiêu của đề tài .......................................................................................... 8
I.2.2 Ngôn ngữ triển khai ......................................................................................... 8
CHƢƠNG II: KIẾN TRÚC HƢỚNG DỊCH VỤ - SOA ............................................... 10
II.1. Tổng quan .......................................................................................................... 10
II.2. Các yêu cầu ........................................................................................................ 10
II.3. Các yếu tố cơ bản ............................................................................................... 11
II.4. Cách tiếp cận các dịch vụ Web .......................................................................... 12
II.4.1 Ngƣời cung cấp dịch vụ ............................................................................... 12
II.4.2. Ngƣời yêu cầu dịch vụ ................................................................................ 13
II.5 Kiến trúc hƣớng dịch vụ và Lập trình hƣớng đối tƣợng (SOA và OOP ) .......... 13
II.6. Kiến trúc hƣớng dịch vụ và các dịch vụ Web( SOA và Web Service ) ............ 14
II.7. Hợp đồng dịch vụ............................................................................................... 15
II.8. SOA và các kiến trúc cũ ................................................................................... 17
II.8.1 SOA và kiến trúc kinh doanh ....................................................................... 17
II.8.2 SOA và kiến trúc quản lý mạng ................................................................... 17
II.9 Lợi ích khi sử dụng SOA .................................................................................... 18
II.9.1 Ƣu điểm và nhƣợc điểm của SOA ............................................................... 18
II.9.2 Lợi ích .......................................................................................................... 19
TÀI LIỆU THAM KHẢO .............................................................................................. 20
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
2
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Kí hiệu
Giải thích
WCF
Windows Communication Foundation
SOA
Service Oriented Architecture
SOAP
Simple Object Access Protocol
OOP
Object Oriented Programming
HTTP
Hypertext Transfer Protocol
XML
eXtensible Markup Language
CSDL
Cơ sở dữ liệu
API
Application Programming Interface
UDDI
Universal Description Discovery and Integration
CNTT
Công Nghệ Thông Tin
WMI
Windows Management Instrumentation
WSDL
Web Services Description Language
CLIs
Command Line Interfaces
JMX
Java Management Extensions
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
3
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
LỜI MỞ ĐẦU
Ngày nay, công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời
sống kinh tế, xã hội của nhiều quốc gia trên thế giới, là một phần không thể thiếu
trong một xã hội ngày càng hiện đại hóa. Nói đến công nghệ thông tin, chúng ta
không thể không nhắc đến công nghệ phần mềm, phần mềm đóng một vai trò cực
kỳ quan trọng trong lĩnh vực công nghệ thông tin.
Giờ đây, công nghệ phần mềm đã và đang tiến bộ từng ngày, hàng loạt
những kỹ thuật, những công nghệ mới ra đời giúp cho việc phát triển các hệ thống
phần mềm ngày càng đơn giản hơn. Và việc lựa chọn một công nghệ mới có hiệu
quả và phù hợp với việc phát triển phần mềm của một công ty đóng vai trò rất quan
trọng. Khi mà khối lƣợng thông tin ngày càng lớn cần sự lƣu trữ tập chung và chia
sẻ có hiệu quả giữa các máy tính với nhau; có thể cập nhật tình trạng và chia sẻ một
cách dễ dàng do đó việc dùng các đối tƣợng từ xa là một cách tuyệt vời để dùng lại
mã nguồn ở mức ứng dụng trên một máy cục bộ. Ta cần xây dựng các ứng dụng
kiến trúc hƣớng dịch vụ Web cung cấp các dịch vụ truy cập các đối tƣợng từ xa có
hiệu quả và cập nhật một cách đơn giản nhanh chóng. Tuy nhiên các công nghệ
trƣớc đây nhƣ COM+ và CORBA rất khó cài đặt mà chi phí bảo trì lại cao. Hơn thế
nữa, đối với trƣờng hợp của CORBA thì giá rất cao để mua bản quyền hoạt động.
Web Services đƣợc đƣa ra là làm cho việc tạo các đối tƣợng từ xa trở thành hiện
thực. Và hiện nay, Microsoft cho ra đời công nghệ mới WCF đƣợc phát triển trên
nền tảng .NET Framework 3.x, một tiện ích trong Visual studio 2008 cho phép xây
dựng các ứng dụng kiến trúc hƣớng dịch vụ Web một cách dễ dàng và hiệu quả. Do
vậy, em nghiên cứu về đề tài: “Xây dựng ứng dụng kiến trúc hƣớng dịch vụ web
trên nền tảng WCF”.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
4
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
CHƢƠNG I: TỔNG QUAN
I. 1 Giới thiệu đơn vị thực tập
I.1.1 Giới thiệu chung
Tên giao dịch: Công ty cổ phần phần mềm Quản lý Hiện Đại
Tên viết tắt: HIENDAI SOFTWARE COMPANY
Địa chỉ trụ sở chính: Phòng 901, nhà CT1-2, KĐT Mễ Trì Hạ, Từ Liêm, HN.
Ngày thành lập: 08/09/2004, giấy phép đăng ký kinh doanh số: 0103005227
Loại hình công ty: Công ty cổ phần.
Vốn điều lệ: 1 000 000 000VNĐ
Giám đốc: Nguyễn Hồng Vinh
Người liên lạc: Nguyễn Hồng Vinh – CEO
Homepage: http://www.hiendai.com.vn
Email:
[email protected];
[email protected]
Điện thoại: +84–(0)4–3787 5266; 04 2210 7136
Fax: +84–(0)4–3787 5266
Công ty Cổ phần Phần mềm Quản lý Hiện Đại phát triển các giải pháp dựa
trên công nghệ của Microsoft ngay từ khi mới thành lập. Sự sáng tạo của công ty
bắt nguồn từ tinh thần ham học hỏi, luôn chào đón những ý tƣởng mới, công nghệ
mới và con ngƣời mới. Khách hàng của công ty thu đƣợc lợi ích từ những giải pháp
chuyên nghiệp về công nghệ và nghiệp vụ, có đƣợc từ kinh nghiệm mà công ty đã
trải qua.
Công ty có hai bộ phận chính: Phòng Giải pháp Thƣ viện, chuyên nghiệp
trong việc phát triển và cung cấp các sản phẩm phần mềm và dịch vụ hỗ trợ cho vấn
đề quản lý thông tin tƣ liệu thƣ viện ngày nay; phòng Giải pháp Doanh nghiệp tập
trung phát triển các sản phẩm phần mềm và dịch vụ hỗ trợ cho các doanh nghiệp.
I.1.2 Sản phẩm & Dịch vụ & Giải pháp
Thiết kế xây dựng các giải pháp phần mềm quản lý thông tin và quản lý
doanh nghiệp
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
5
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
Thiết kế và xây dựng Website cho các doanh nghiệp và cơ quan Nhà nƣớc
Dịch vụ xử lý dữ liệu
Các hoạt động liên quan đến cơ sở dữ liệu
SchoolLib – Phần mềm tự động hóa thƣ viện và quản lý giáo cụ trƣờng phổ
thông.
VILAS – Giải pháp thƣ viện điện tử thƣ viện số với nhiều cấp độ khác nhau
theo nhu cầu của thƣ viện
o Small version (phiên bản nhỏ) – Giải quyết cơ bản các vấn đề tự động
hóa thƣ viện Biên mục, Tra cứu, Quản lý lƣu thông với việc tích hợp
công nghệ mã vạch, thẻ từ, hỗ trợ Unicode tiếng Việt.
o Standard version (phiên bản chuẩn) – Giải quyết hầu hết các vấn đề tự
động hóa trong các khâu nghiệp vụ của thƣ viện: Biên mục, Tra cứu,
Quản lý lƣu thông, Quản lý bổ sung, Quản lý ấn phẩm định kỳ, cung
cấp khả năng truy cập và tƣơng tác với các thƣ viện khác. Hỗ trợ
Unicode cho hầu hết các ngôn ngữ Việt, Anh, Nga, Nhật, Trung
Quốc, Hàn Quốc... Giao diện đa ngôn ngữ. Hỗ trợ công nghệ mã vạch
thẻ từ.
o Advanced version (phiên bản cao cấp) – Hỗ trợ đầy đủ vấn đề tự động
hóa các khâu nghiệp vụ trong thƣ viện với các tính năng của phiên
bản Standard, ngoài ra còn có các module hỗ trợ công nghệ nhận dạng
sóng radio(RFID). Module máy tìm kiếm cung cấp khả năng tìm kiếm
toàn văn các tệp tin đính kèm có khả năng thu hồi văn bản, cho phép
chỉ mục và tìm kiếm toàn văn cho website mục tiêu.
EASYNOTES – Giải pháp quản lý thông tin nội bộ cho các doanh nghiệp và
các tổ chức.Thông qua việc hỗ trợ thu thập, tổ chức lƣu trữ và chia sẻ thông
minh các bộ sƣu tập thông tin, EASYNOTES hỗ trợ đắc lực trong việc phối
hợp làm việc nhóm, quản lý công việc, quản lý quan hệ khách hàng.
EASYNOTES đƣợc thiết kế đặc biệt theo phƣơng thức điều khiển hƣớng sự
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
6
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
kiện, giúp cho việc sử dụng dễ dàng và thuận tiện hơn. EASYNOTES đƣợc
tích hợp nhiều module giúp bạn có thể tối đa hóa giá trị của thông tin.
JetPotal – Công nghệ cổng thƣ viện: Ứng dụng công nghệ AJAX và công
nghệ tìm kiếm đa tiến trình tốt nhất Việt nam hiện nay, JetPortal là giải pháp
tổ chức thông tin phân tán cho các thƣ viện lớn với các bộ sƣu tập lên đến
hàng chục triệu biểu ghi.
PowerCat 2.0 - Công cụ thu hồi biểu ghi thƣ mục tốt nhất Việt Nam, tìm
kiếm trên gần 1000 CSDL thƣ viện trên thế giới, hiệu chỉnh biểu ghi bằng
Marc Editor, Tra giá sách từ Amazon. Công cụ tốt nhất hỗ trợ làm hồi cố
sách cho thƣ viện.
CDROM Publishing – Công nghệ xuất bản các CSDL thƣ mục và toàn văn
trên CDROM. Ứng dụng các công nghệ nền tảng, giải pháp chất lƣợng cao
với giá hợp lý.
KIPOS là một giải pháp tổng thể cho thƣ viện thế hệ mới
o Chức năng bao trùm các hoạt động của thƣ viện hiện đại:
Tự động hóa các khâu nghiệp vụ của thƣ viện
Cung cấp dịch vụ thƣ viện số
Các công cụ xuất bản thông tin
o
Các nguyên tắc phát triển chính:
Hƣớng bạn đọc (Patron Oriented Architechture): Xuất phát
thiết kế trên quan điểm tối đa hóa dịch vụ cho bạn đọc.
Tiêu chuẩn hóa: Tiếp tục ứng dụng những tiêu chuẩn nghiệp vụ
mới nhất vào việc xây dựng hệ thống để tăng cƣờng tối đa khả
năng tƣơng tác với các hệ thống khác trên toàn thế giới.
Kiến trúc công nghệ hƣớng dịch vụ (Service Oriented
Architechture) - kiến trúc công nghệ tốt nhất cho hệ thống phần
mềm lớn hiện nay, đem lại khả năng dễ dàng tích hợp phát
triển mở rộng.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
7
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
Collab ERP là một trong những giải pháp tốt nhất hỗ trợ những yêu cầu kinh
doanh nền tảng, cho phép thích ứng với những thay đổi, tích hợp hoàn chỉnh,
và dễ dàng phối hợp thông qua Internet. Với Collab ERP, công ty đã đƣa vào
tầm nhìn về vấn đề tự động hóa các quá trình kinh doanh và lợi ích mà nó
đem lại cho một doanh nghiệp bằng việc phối kết hợp chặt chẽ khách hàng,
đối tác, và các nhà cung cấp. Điều này thúc đẩy sự sáng tạo và hỗ trợ sự lớn
mạnh trong tƣơng lai công việc kinh doanh của bạn.
GIATỘC - Trợ giúp các gia đình, dòng họ xây dựng, lƣu trữ và truyền bá
thông tin về quá trình phát triển giống nòi của dòng tộc cho muôn đời sau.
Để cho anh em trong họ gần gũi nhau hơn, con cháu mỗi nhà tự hào về tổ
tông, để cho sự hiện đại không làm mất đi văn hóa hƣớng cội nguồn của
nhân dân ta.
I.1.3 Kinh nghiệm
Phân loại
Cơ sở dữ liệu
Công nghệ
Library Automation, Digital Library: C++, C#, VB.NET.
My SQL 200X
Vilas, SchoolLib, KIPOS
Z39.50 protocol
Office Management: Easr Notes
C#
MSDE 2000
Enterprise Resource Planning:
C++, C#, VB.NET
MS SQL 2005
Collab ERP
Networking Application: Easy Notes C++, C#, VB.NET, Sharp
Webmail Client.JetPortal, PowerCat
Webmail
Yaz toolkit
ePublishing
Zebra,
C++,
C#,
VB.NET, Z39.50 protocol
Quản lý gia phả: Gia tộc
C#,
netron
graphic MS Access
library.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
8
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
I.1.4 Các đối tác chiến lƣợc
Tập đoàn IGroup (www.igroupnet.com): Công ty cung cấp dịch vụ kỹ thuật
hỗ trợ triển khai và bảo hành bảo trì cho nhiều sản phẩm của IGroup tại Việt
nam: ELIB, VIRTUA. Ngoài ra chúng tôi thực hiện một số các hợp đồng
phát triển phần mềm theo yêu cầu cho tập đoàn này.
Công ty TNHH Nam Hoàng (www.namhoang.com.vn): Công ty cung cấp
nhiều giải pháp xuất bản điện tử, dịch vụ phát triển phần mềm và hỗ trợ kỹ
thuật cho Công ty Nam Hoàng.
Công ty I&COM Hàn Quốc (www.nuv.co.kr): Công ty cung cấp dịch vụ gia
công phần mềm cho khách hàng của I&COM với các sản phẩm chủ yếu là
các giải pháp ERP (Enterprise Resource Planning – Quản lý doanh nghiệp
tổng thế) và KM (Knowledge Management – Quản lý tri thức).
Công ty Phần mềm Trí tuệ ISoftCo (www.isoftco.com): Là đối tác với Công
ty, cùng nhau chia sẻ tài nguyên
I.2 Tổng quan đề tài
I.2.1 Mục tiêu của đề tài
Nghiên cứu tổng quan về WCF đƣa ra đƣợc cách thức ứng dụng WCF để xây
dựng ứng dụng hƣớng dịnh vụ SOA
Phân tích đƣợc lợi ích của kiến trúc hƣớng dịch vụ so với các kiến trúc cũ.
I.2.2 Ngôn ngữ triển khai
_ Ngôn ngữ lập trình hƣớng đối tƣợng trong môi trƣờng .NET : C#
_ Tính hƣớng đối tƣợng của C#
Cú pháp thừa kế trong C#, các chức năng ảo, và các tính năng liên quan.
Những phƣơng thức nạp chồng: C# cho phép bạn định nghĩa những dạng
khác nhau của một phƣơng thức trong một lớp. Trình biên dịch sẽ tự động
chọn phƣơng thức nào thích hợp nhất dựa vào tham số truyền vào của nó.
Construction và Destruction: Nó chỉ rõ cách mà một đối tƣợng khởi tạo sẽ có
một số hành động tự động kèm theo và tự động giải phóng khi kết thúc.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
9
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
Struct: là những kiểu giá trị mà cung cấp những tiện nghi khi bạn cần một số
tính năng của một lớp mà không cần phải vất vả tạo ra một thực thể lớp cho
phức tạp.
Nạp chồng toán hạng: sẽ kiểm tra cách để định nghĩa những toán hạng cho
lớp của bạn.
Indexers: Cho phép một lớp đƣợc xử lý chỉ mục khi nó là một mảng và có
thể đơn giản hoá cách sử dụng những lớp chứa các tập đối tƣợng.
Giao diện : C# hỗ trợ thừa kế giao diện tốt nhƣ thừa kế thực thi, bạn sẽ đƣợc
biết rõ hơn ở phần sau.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
10
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
CHƢƠNG II: KIẾN TRÚC HƢỚNG DỊCH VỤ - SOA
II.1. Tổng quan
SOA - Service Oriented Architecture (Kiến trúc hƣớng Dịch vụ), theo định
nghĩa của DotNetGuru, là 'Khái niệm về hệ thống trong đó mỗi ứng dụng đƣợc xem
nhƣ một nguồn cung cấp dịch vụ'.
Dịch vụ là yếu tố then chốt trong SOA. Có thể hiểu dịch vụ nhƣ là hàm chức
năng (mô-đun phần mềm) thực hiện qui trình nghiệp vụ nào đó. Một cách cơ bản,
SOA là tập hợp các dịch vụ kết nối 'mềm dẻo' với nhau (nghĩa là một ứng dụng có
thể 'nói chuyện' với một ứng dụng khác mà không cần biết các chi tiết kỹ thuật bên
trong), có giao tiếp (dùng để gọi hàm dịch vụ) đƣợc định nghĩa rõ ràng và độc lập
với nền tảng hệ thống, và có thể tái sử dụng. SOA là cấp độ cao hơn của phát triển
ứng dụng, chú trọng đến qui trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi
sự phức tạp kỹ thuật bên dƣới.
Thiết kế 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ều nà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ất chấ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 trong toà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ũng nhƣ 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 ảnh hƣởng đến ứng dụng client sử dụng dịch vụ.
SOA dựa trên 2 nguyên tắc thiết kế quan trọng:
Mô-đun: Tách vấn đề lớn thành nhiều vấn đề nhỏ.
Đóng gói: Che đi dữ liệu và lô-gic trong từng mô-dun (hay 'hộp đen') đối với
truy cập từ ngoài.
II.2. Các yêu cầu
Để sử dụng hiệu quả kiến trúc hƣớng dịch vụ, điều đầu tiên phải phù hợp các
yêu cầu sau đây:
Thao tác giữa các hệ thống khác nhau và các ngôn ngữ lập trình cung cấp cơ
sở cho sự tích hợp giữa các ứng dụng trong các nền tảng khác nhau thông
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
11
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
qua một giao thức giao tiếp. Một ví vụ về sự giao tiếp là dựa trên khái niệm
chung của thông điệp. Sử dụng thông tiệp đƣợc định nghĩa qua các kênh
thông điệp làm giảm độ phức tạp của các ứng dụng cuối do đó cho phép
ngƣời phát triển ứng dụng tập trung chức năng thiết thực của ứng dụng thay
vì sự phức tạp cần thiết của một giao thức giao tiếp.
Mong muốn tạo ra một tài nguyên liên hợp. Thiết lập và duy trì luồng dữ liệu
vào một liên hợp kho dữ liệu. Điều này cho phép chức năng mới đƣợc phát
triển để tham chiếu đến một quy cách kinh doanh chung đối với mỗi yêu tố
dữ liệu.
II.3. Các yếu tố cơ bản
Nguyên tắc định nghĩa nguyên lý làm nền tảng cơ bản cho sự phát triển, duy trì
và sử dụng kiến trúc hƣớng dịch vụ (SOA).
Dùng lại, tính có nhân, môđun, tính sáng tạo, tính hợp thành, tính di chuyển
đƣợc, và thao tác các phần.
Tiêu chuẩn hoá lệnh (đồng thời cả công nghệ chung và riêng)
Xác minh và phân loại các dịch vụ, cung cấp và phân phát, kiểm tra và theo
dõi.
Các yếu tố kiến trúc cơ bản cho thiết kế và tập trung định nghĩa dịch vụ trong
chủ đề cụ thể ảnh hƣởng cách xử lý bên trong của một hệ thống và kiểu dáng thiết
kế của nó:
Đóng gói dịch vụ - Rất nhiều dịch vụ web đƣợc hợp nhất để sử dụng dƣới
kiến trúc hƣớng dịch vụ. Thƣờng là các dịch vụ không có kế hoạch để sự
dụng bên dƣới kiến trúc hƣớng dịch vụ (SOA).
Sự kết nối lỏng lẻo dịch vụ - Các dịch vụ duy trì mỗi quan hệ phụ thuộc nhỏ
nhất và chỉ phụ thuộc vào cái họ duy trì sự nhận biết qua lại với nhau.
Hợp đồng dịch vụ - Các dịch vụ tham gia để thoả thuận các kết nối, nhƣ là
nói chung đƣợc định nghĩa bằng một hay nhiều hơn các văn bản mô tả dịch
vụ.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
12
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
Khái niệm dịch vụ: Ngoài ra hợp đồng dịch vụ đƣợc miêu tả là gì, các dịch
vụ ẩn những nguyên lý thiết kế máy tính đối với thế giới bên ngoài.
Service reusability – các thiết kế máy tính đƣợc chia ra trong các dịch vụ với
mục đích tăng cấp có thể dùng lại.
Service composability – Tập hợp các dịch vụ có thể coordinates và thu thập
lại từ các dịch vụ ghép lại.
Quyền tự trị của dịch vụ – Các dịch vụ có quyền điều khiển trên toàn bộ các
nguyên lý thiết kế máy tính họ tóm lƣợc.
Sự tối ƣu các dịch vụ - Tất cả ngang bằng nhau, các dịch vụ chất lƣợng cao
thông thƣờng thích hợp với một dịch vụ chất lƣợng thấp.
Service discoverability – Các dịch vụ đƣợc thiết kế để miêu tả hƣớng ra bên
ngoài vì vậy chúng có thể đƣợc tìm thấy và đƣợc truy cập qua cơ chế tìm
kiếm sẵn có.
Dịch vụ liên quan – Chức năng hiện diện tại granularity đƣợc chấp nhận bởi
ngƣời sử dụng nhƣ là một dịch vụ có ý nghĩa.
II.4. Cách tiếp cận các dịch vụ Web
Dịch vụ Web có thể thực thi một kiến trúc hƣớng dịch vụ. Dịch vụ Web là
chức năng khối làm sẵn để xây dựng có thể sử dụng đƣợc trên toàn bộ các giao thức
Internet chuẩn không phụ thuộc vào các nền tảng và các ngôn ngữ lập trình. Các
dịch vụ có thể là các ứng dụng mới hoặc chỉ là các hệ thống kế thừa bên trong để
làm cho chúng có khả năng mạng.
Mỗi SOA xây dựng một khối có thể phát một hoặc đồng thời hai vai trò:
II.4.1 Ngƣời cung cấp dịch vụ
Ngƣời cung cấp dịch vụ tạo một dịch vụ Web, có thể công bố giao diện của
nó và truy cập thông tin để đăng ký dịch vụ. Mỗi ngƣời cung cấp phải lựa chọn dịch
vụ để đƣa ra, thoả hiệp giữa bảo mật và tính sẵn có thoải mái nhƣ thế nào, giá dịch
vụ nhƣ thế nào, hoặc (nếu không áp dụng trách nhiệm) khai thác chúng với giá trị
khác nhau nhƣ thế nào. Ngƣời cung cấp cũng có quyền quyết định loại dịch vụ gì
nên đƣợc liệt kê cho dịch vụ môi giới đƣợc đƣa ra và sắp xếp các thoả thuận đối tác
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
13
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
kinh doanh đƣợc yêu cầu sử dụng dịch vụ là gì. Nó đăng ký dịch vụ gì là sẵn có bên
trong nó, và danh sách tất cả những ngƣời tiếp nhận dịch vụ tiềm năng. Công cụ của
ngƣời môi giới quyết định phạm vi của ngƣời môi giới. Công bố ngƣời môi giới là
sẵn có thông qua Internet, khi ngƣời môi giới riêng là chỉ sử dụng đƣợc tới một số
ngƣời xem giới hạn (Ví dụ: Ngƣời sử dụng của mạng nội bộ một công ty).
II.4.2. Ngƣời yêu cầu dịch vụ
Ngƣời yêu cầu dịch cụ hoặc máy khách dịch vụ Web xác định vị trí mục
trong đăng ký ngƣời môi giới sử dụng hoạt động tìm kiếm khác nhau và nối kết tới
ngƣời cung cấp dịch vụ trong đơn đặt hàng để yêu cầu một trong những dịch vụ
Web của nó. Dịch vụ mà ngƣời yêu cầu dịch vụ cần họ mang vào trong những
ngƣời môi giới tiếp đó liên kết với dịch vụ tƣơng ứng sau đó sử dụng nó. Chúng có
thể truy cập đa dịch vụ nếu dịch vụ cung cấp đa dịch vụ.
II.5 Kiến trúc hướng dịch vụ và Lập trình hướng đối tượng (SOA và OOP)
SOA sử dụng cùng một số nguyên lý nhƣ OOP, tuy nhiên SOA có khác biệt
đáng kể so với OOP. SOA có thể thực hiện với cả chƣơng trình theo hƣớng đối
tƣợng (OO) và chƣơng trình không hƣớng đối tƣợng.
Lớp logic nghiệp vụ
Lớp thể hiện
Đối tƣợng
nghiệp vụ
Lớp truy cập dữ
liệu
Đối tƣợng
nghiệp vụ
Đối tƣợng
nghiệp vụ
Đối tƣợng
nghiệp vụ
Đối tƣợng
nghiệp vụ
Hình II.5.1: Kiến trúc ba cấp tiêu biểu của mô hình đối tượng
Xem hình II.5.1, ta thấy rằng sự ràng buộc giữa lớp thể hiện và các đối tƣợng
của lớp nghiệp vụ. Chƣơng trình client phải tƣơng tác với mô hình đối tƣợng của
lớp nghiệp vụ, điều này làm tăng sự ràng buộc và yêu cầu số lƣợng đáng kể các 'gọi
hàm' giữa các hai lớp. Khi các đối tƣợng nghiệp vụ nằm ở máy tính xa thì đây sẽ là
vấn đề. Tƣơng tự, số lƣợng đối tƣợng nghiệp vụ mà lớp thể hiện phải thao tác làm
giảm sự độc lập giữa các lớp và làm cho khó sử dụng lớp nghiệp vụ.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
14
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
Lớp thể hiện
Lớp dịch vụ
Lớp logic nghiệp vụ
Dịch vụ
Đối tƣợng
nghiệp vụ
Dịch vụ
Đối tƣợng
nghiệp vụ
Đối tƣợng
nghiệp vụ
Lớp truy cập
dữ liệu
Đối tƣợng
nghiệp vụ
Đối tƣợng
nghiệp vụ
Hình II.5.2: Mô hình SOA phát triển lên từ mô hình đối tượng
Xem hình II.5.2, chúng ta có thể thấy sự khác biệt giữa SOA và mô hình đối
tƣợng chính là lớp mới 'Services'. Lớp thể hiện giờ đây không còn thao tác trực tiếp
lên các đối tƣợng nghiệp vụ nữa, mà sử dụng dịch vụ để truy cập chúng. Các đối
tƣợng nghiệp vụ đƣợc đặt trong thƣ viện và đƣợc dịch vụ nạp vào bộ nhớ - lớp dịch
vụ và lớp nghiệp vụ nằm trong cùng tiến trình, nhờ vậy lời gọi hàm đến đối tƣợng
nghiệp vụ sẽ không hề bị quá tải.
Dịch vụ đóng vai trò nhƣ 'hộp đen': cung cấp một lớp trung gian cho mô hình
đối tƣợng và đƣa ra tập chức năng rút gọn, làm giảm nhu cầu trao đổi giữa các lớp.
II.6. Kiến trúc hướng dịch vụ và các dịch vụ Web (SOA và Web Service)
Đặc điểm chính của SOA là tách rời phần giao tiếp với phần thực hiện dịch
vụ. Điều này có thể làm bạn liên tƣởng đến một công nghệ đƣợc đề cập nhiều gần
đây: Dịch vụ web. Dịch vụ web cho phép truy cập thông qua định nghĩa giao thứcvà giao tiếp. SOA và dịch vụ web thoạt trông có vẻ giống nhau nhƣng chúng không
phải là một.
Về cơ bản, SOA là kiến trúc phần mềm phát xuất từ định nghĩa giao tiếp và
xây dựng toàn bộ mô hình ứng dụng nhƣ là mô hình các giao tiếp, hiện thực giao
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
15
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
tiếp và phƣơng thức gọi giao tiếp. Giao tiếp là trung tâm của toàn bộ triết lý kiến
trúc này; thực ra, tên gọi 'kiến trúc hƣớng giao tiếp' thích hợp hơn cho SOA. Dịch
vụ và module phần mềm nghiệp vụ đƣợc truy cập thông qua giao tiếp, thƣờng theo
cách thức yêu cầu - trả lời. Ngay cả với yêu cầu dịch vụ một chiều thì nó vẫn là yêu
cầu trực tiếp có chủ đích từ một phần mềm này đến một phần mềm khác. Một tƣơng
tác định hƣớng dịch vụ luôn bao hàm một cặp đối tác: nguồn cung cấp dịch vụ và
khách hàng sử dụng dịch vụ.
Định nghĩa cơ bản của dịch vụ web dựa trên một nền tảng khác: Tập hợp các
công nghệ WSDL, SOAP và UDDI, cho phép xây dựng các giải pháp lập trình cho
vấn đề tích hợp ứng dụng và truyền thông điệp.
Rõ ràng, theo định nghĩa thì dịch vụ là đặc tả công nghệ còn SOA là triết lý
thiết kế phần mềm. Dịch vụ web đƣa ra giải pháp kỹ thuật để thực hiện SOA nhƣng
SOA cũng có thể thực hiện với các giải pháp kỹ thuật khác không phải dịch vụ web
(và không phải tất cả các dịch vụ web đều có kiến trúc SOA). Tuy vậy, SOA và
dịch vụ web có mối quan hệ tƣơng hỗ: sự phổ biến của dịch vụ web thúc đẩy sự
phát triển của SOA, và kiến trúc tốt của SOA sẽ giúp dịch vụ web thành công.
II.7. Hợp đồng dịch vụ
Một hợp đồng dịch vụ cần có những thành phần sau:
Phần tiêu đề
+) Tên – Tên của dịch vụ. Nên ngắn gọn trong thuật ngữ chung nó là gì
nhƣng không chỉ là định nghĩa
+) Phiên bản – phiên bản của hợp đồng dịch vụ đó
+) Ngƣời sở hữu – Ngƣời/ nhóm phụ trách dịch vụ.
+) RACI
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
16
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
- Trách nhiệm (Responsible) – Vai trò/ ngƣời/ nhóm có trách nhiệm
đối với việc phân phát hợp đồng/ dịch vụ này. Tất cả phiên bản của hợp
đồng.
- Chịu trách nhiệm (Accountable) – Ngƣời đƣa ra quyết định cuối
cùng trong điều khoản của hợp đồng/ dịch vụ này.
- Tra cứu – Ngƣời nào đó phải đƣợc tra cứu trƣớc khi hành động là
lựa chọn hợp đồng/ dịch vụ này. Đó là hai cách thức giao tiếp. Những ngƣời
này có một ảnh hƣởng trong sự quyết định và/ hoặc sự thực hiện quyết định
đó.
- Hiểu biết – Ngƣời nào đó phải hiểu biết mà một quyết định hoặc
hành động đƣợc chọn. Đó là một cách thức giao tiếp. Những ngƣời am hiểu
bởi việc quyết định hoặc thi hành quyết định đó, nhƣng không có sự điều
khiển trên toàn bộ hành động.
+) Kiểu – Đây là kiểu dịch vụ để trợ giúp phân biệt tầng nào mà nó thuộc
vào. Sự thực hiện khác nhau sẽ có các kiểu dịch vụ khác nhau. Ví dụ: Các kiểu dịch
vụ bao gồm: Sự trình diễn, Xử lý, Kinh doanh, Dữ liệu, Tích hợp, Chức năng.
+) Yêu cầu chức năng (từ văn bản các yêu cầu) – Trình bày ngắn gọn tính
chức năng trong các mục cụ thể đƣợc đánh dấu dịch vụ này hoàn thành chính xác là
gì. Ngôn ngữu nên cho phép các trƣờng hợp kiểm tra để chức minh chức năng đó đã
đƣợc hoàn thành.
+) Các hoạt động dịch vụ - Phƣơng thức, hành động… Phải đƣợc định nghĩa
về những phần nào chức năng đó cung cấp.
+) Sự dẫn chứng – chỉ ra phƣơng tiện dẫn chứng của dịch vụ. Nó bao gồm
URL, giao diện …Chúng có thể nhiều đƣờng dẫn dẫn chứng cho dịch vụ giống
nhau. Chúng tôi có thể có những tính năng giống nhau cho một máy khách bên
trong và bên ngoài với các phƣơng tiện dẫn chứng và giao diện khác nhau. Ví dụ:
SOAP, REST, Events Triggers.
Tính phi chức năng
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
17
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
+) Các ràng buộc bảo mật – Xác định ngƣời có thể thực hiện dịch vụ này về
phƣơng diện vai trò hoặc cá nhân các đối tác …và cơ chế dấn chứng mà chúng có
thể dẫn chứng.
+) Chất lƣợng dịch vụ - Xác định tốc độ sai cho phép
+) Sự thực hiện – Năng lực của các hoạt động này nhƣ là một phần của sự
thực hiện lớn hơn không và nếu vậy chúng ta điều khiển chũng nhƣ thế nào?
+) Thoả thuận mức dịch vụ - Xác định số lƣợng góc trễ dịch vụ đƣợc cho
phéo để có thể thực thi các hành động của nó.
+) Ngữ nghĩa học – Tuyên bố hoặc xác định rõ ý nghĩa của thuật nghữ trong
mô tả và giao diện của dịch vụ.
+) Quá trình – Miêu tả quá trình nếu bất kỳ của hợp đồng dịch vụ.
II.8. SOA và các kiến trúc cũ
II.8.1 SOA và kiến trúc kinh doanh
SOA đã thu đƣợc vị trí nhƣ là một cơ chế cho việc định nghĩa các dịch vụ
kinh doanh và các mô hình hoạt động và do đó cung cấp một cấu trúc cho CNTT để
phân phát ngƣợc lại các yêu cầu kinh doanh trên thực tế và sửa lại cho hợp trong
cách thức tƣơng tự đối với kinh doanh. Mục đích của việc sử dụng SOA nhƣ một
công cụ ánh xạ kinh doanh là để chắc chắn rằng dịch vụ đƣợc tạo một cách đúng
đắn miêu tả tổng quan kinh doanh và không chỉ là kỹ sƣ công nghệ nghĩ các dịch vụ
kinh doanh nên có gì. Tại trung tâm của kế hoạch SOA là quá trình của việc xác
định các kiến trúc để sử dụng thông tin trong hỗ trợ kinh doanh và kế hoạch cho
việc thi hành các kiến trúc này. Kiến trúc hoạt động kinh doanh nên luôn luôn miêu
tả mức cao nhất và kiến trúc có ƣu thế nhất. Mọi dịch vụ nên đƣợc tạo với mục đích
đƣa ra giá trị hƣớng tới kinh doanh trong một vài phƣơng pháp và phải vạch ra đằng
sau kiến trúc kinh doanh.
II.8.2 SOA và kiến trúc quản lý mạng
Quản lý mạng liên quan tới các hoạt động, các phƣơng thức, các thủ tục và
các công cụ mà gắn liên với tổ chức, sự quản trị, sự duy trì và sự cung cấp của các
hệ thống mạng.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
18
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
Tổ chức chịu trách nhiệm với việc duy trì mạng (các dịch vụ mà mạng cung
cấp) và việc chạy tốt. Nó bao gồm màn hình mạng để phát hiện các vẫn đề
một cách sớm nhất có thể, theo nhƣ lý tƣởng trƣớc khi ngƣời sử dụng thiếu
chân thực.
Ngƣời quản trị chịu trách nhiệm với việc duy trì kiểm tra các tài nguyên
trong mạng và chúng đƣợc gán nhƣ thế nào. Nó bao gồm tất cả “những việc
quản gia - housekeeping” là cần thiết để giữ mạng trong sự điều khiển.
Sự duy trì liên quan tới việc thực hiện sửa chữa và nâng cấp – ví dụ khi thiết
bị phải thay thế, khi router cần một đƣờng dẫn cho một ảnh hệ điều hành, khi
switch mới đƣợc thêm vào một mạng. Sự duy trì cũng bao hàm các biện pháp
hiệu chỉnh và ngăn ngừa để làm cho mạng đƣợc quản lý hoạt động “ tốt
hơn”, nhƣ là điều chỉnh các tham số cấu hình thiết bị.
Sự cung cấp liên quan tới định cấu hình các tài nguyên trong mạng để hỗ trợ
đƣa ra các dịch vụ. Ví dụ, Sự cung cấp có thể bao gồm thiết lập mạng để một
khách hàng mới có thể nhận dịch vụ âm thanh.
Các chức năng đƣợc thực hiện nhƣ là một phần của việc quản lý mạng do đó bao
gồm kiểm soát, lập kế hoạch, định phần, triển khai, kết nối và kiểm tra tài nguyên
của một mạng, lập kế hoạch mạng, tần số định phần, lộ trình lƣu lƣợng đƣợc định
trƣớc để hỗ trợ cân bằng tải, quyền hạn phân phát khoá mật mã, quản lý cấu hình,
quản lý lỗi, quản lý bảo mật, quản lý thực hiện, quản lý độ rộng giải tần, và quản lý
tài khoản.
Số lƣợng lớn các phƣơng thức truy nhập tồn tại để hỗ trợ mạng và quản lý thiết
bị mạng. Các phƣơng thức truy nhập bao gồm SNMP, CLIs, XML tuỳ chỉnh,
CMIP, WMI, Transaction Language 1, CORBA, netconf và JMX.
Dữ liệu cho việc quản lý mạng đƣợc sƣu tập thông qua các cơ chế khác nhau.
II.9 Lợi ích khi sử dụng SOA
II.9.1 Ƣu điểm và nhƣợc điểm của SOA
Ƣu điểm quan trọng nhất của SOA là khả năng kết nối 'mềm dẻo' (nhờ sự
chuẩn hóa giao tiếp) và tái sử dụng. Các dịch vụ có thể đƣợc sử dụng với trình
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
19
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
client chạy trên nền tảng bất kỳ và đƣợc viết với ngôn ngữ bất kỳ. (Ví dụ, ứng dụng
Java có thể liên kết với dịch vụ web .NET và ngƣợc lại).
Nhƣợc điểm: Hệ thống phức tạp, khó miêu tả dữ liệu không cấu trúc trong
phần đầu của thông điệp.
II.9.2 Lợi ích
Độc lập hệ thống: Những dịch vụ không phụ thuộc vào hệ thống và mạng cụ
thể.
Có khả năng tái sử dụng.
Khả năng hồi đáp thích nghi tốt và nhanh hơn để đáp ứng với sự thay đổi về
yêu cầu giao dịch.
Cho phép dễ dàng triển khai chƣơng trình, môi trƣờng chạy và quản lý dịch
vụ dễ dàng hơn.
Kiến trúc kết nối lỏng lẻo cho phép dễ dàng tích hợp thành phần những
chƣơng trình hay những dịch vụ phức tạp từ những dịch vụ đơn giản.
Cho phép Service Consumers tìm kiếm và kết nối với những dịch vụ động
khác.
Những sự xác nhận và chứng minh của Service Consumer về những tính
năng bảo mật dựa trên giao tiếp dịch vụ tốt hơn cơ chế kết nối chặt chẽ.
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
20
Xây dựng ứng dụng kiến trúc hƣớng dịch vụ Web trên nền tảng WCF
TÀI LIỆU THAM KHẢO
1. Ebook Windows Communication Foundation Unleashed
2. Các trang Web về WCF
+ http://www.authorstream.com
+ http://www.cornerstone.se
+http://greatfriends.biz/files/EnterpriseGoVista25May2006IntroductionToWCF-SuthepAtGreatFriendsDotBiz.pdf
+http://rickgaribay.net/Resources/PublishedContent/Introducing%20The%20
ABCs%20of%20WCF%20AZNET.pdf
+ http://www.liva.com.vn/
+ http://forums.congdongcviet.com
+ http://msdn.microsoft.com/en-us/library
+ http://www.htmedsoft.com/kythuat/congngheweb/congngheweb011.htm
+ http://www.tuyenquangonline.net/archive/index.php/t-15575.html
+ http://www.3cdotcom.vn/printContent.aspx?ID=4883
+ http://en.wikipedia.org/wiki/Business_architecture
3. Tài liệu giới thiệu công ty cổ phần phần mềm Quản lý Hiện Đại và thông tin
trên trang Web http://www.hiendai.com.vn
GVHD: Ths. Nguyễn Thanh Hƣơng
SVTH: Lê Thị Hạnh My – Lớp CNTT47