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
20 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2341 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Đề 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, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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”.
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:
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.
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
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.
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ừ.
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ự 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
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
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.
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
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.
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.
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 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.
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 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 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ụ
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ụ.
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ụ
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 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.
- 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
+) 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.
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 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
Các file đính kèm theo tài liệu này:
- 22523.doc