Website: http://www.docs.vn Email : lienhe@docs.vn 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
LỜI MỞ ĐẦU 2
CHƯƠNG I: TỔNG QUAN 3
I. 1 Giới thiệu đơn vị thực tập 3
I.1.1 Giới thiệu chung 3
I.1.2 Sản phẩm & Dịch vụ & Giải pháp 4
I.1.3 Kinh nghiệm 6
I.1.4 Các đối tác chiến lược 7
I.2.2 Ngôn ngữ triển khai 7
CHƯƠNG II: KIẾN TRÚC HƯỚNG DỊCH VỤ - SOA 9
II.1. Tổng quan 9
II.2. Các yêu cầu 9
II.3. Các yếu tố cơ bản 10
II.4. Cách tiếp cận các dịch vụ Web 11
II.4.2. Người yêu cầu dịch vụ 12
II.5 Kiến trúc hướng dịch vụ và Lập trình hướng đối tượng (SOA và OOP) 12
II.6. Kiến trúc hướng dịch vụ và các dịch vụ Web (SOA và Web Service) 13
II.7. Hợp đồng dịch vụ 14
II.8. SOA và các kiến trúc cũ 16
II.8.1 SOA và kiến trúc kinh doanh 16
II.8.2 SOA và kiến trúc quản lý mạng 16
TÀI LIỆU THAM KHẢO 18
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
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
CLIs Command Line Interfaces
JMX Java Management Extensions
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
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
ứ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”.
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: contact@hiendai.com.vn; hiendaijsc@yahoo.com
Đ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.
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
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
• 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.
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
• 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ự
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.
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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 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.
• 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ông nghệ Cơ sở dữ liệu
Library Automation, Digital Library:
Vilas, SchoolLib, KIPOS
C++, C#, VB.NET.
Z39.50 protocol
My SQL 200X
Office Management: Easr Notes C# MSDE 2000
Enterprise Resource Planning:
Collab ERP
C++, C#, VB.NET MS SQL 2005
Networking Application: Easy Notes
Webmail Client.JetPortal, PowerCat
C++, C#, VB.NET, Sharp
Webmail
Yaz toolkit
ePublishing Zebra, C++, C#, VB.NET,
Z39.50 protocol
Quản lý gia phả: Gia tộc C#, netron graphic library. MS Access
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
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 : lienhe@docs.vn 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
• 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 : lienhe@docs.vn 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
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 qua
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
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ụ.
• 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.
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
• 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 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
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Website: http://www.docs.vn Email : lienhe@docs.vn 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
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.
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
Lớp thể hiện
Lớp logic 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ụ
Đối tượng
nghiệp vụ
Website: http://www.docs.vn Email : lienhe@docs.vn 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
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ức-và
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 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
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Lớp truy cập
dữ liệu
Lớp dịch vụ
Lớp logic nghiệp vụ
Đối tượng
nghiệp vụ
Đối tượng
nghiệp vụ
Đối tượng
nghiệp vụ
Đối tượng
nghiệp vụ
Đối tượng
nghiệp vụ
Lớp thể hiện
Dịch vụ
Dịch vụ
Website: http://www.docs.vn Email : lienhe@docs.vn 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
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
- 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.
GVHD: Ths. Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47
Không có nhận xét nào:
Đăng nhận xét