1. Trang chủ
  2. » Công Nghệ Thông Tin

Mô hình hóa SOA: Phần 3 pps

19 179 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 636,87 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sau khi các quyết định đó đã được đưa ra, bạn có thể mô hình hoá cách thức chức năng của mỗi dịch vụ được cài đặt và các chức năng yêu cầu thực sự được sử dụng như thế nào.. Sau khi các

Trang 1

Mô hình hóa SOA: Phần 3 Thực hiện dịch vụ

Jim Amsden, Chuyên viên kỹ thuật cao cấp, IBM

Tóm tắt: Bài thứ ba này của loạt bài viết năm phần giải thích các dịch vụ Web

nền tảng SOA được cài đặt như thế nào Quá trình nhận thức dịch vụ bắt đầu bằng việc quyết định thành phần nào sẽ cung cấp dịch vụ nào Quyết định đó đóng vai trò quan trọng trong tính sẵn có, khả năng phân phối, bảo mật, phạm vi giao dịch

và tính tương tác của dịch vụ Sau khi các quyết định đó đã được đưa ra, bạn có thể mô hình hoá cách thức chức năng của mỗi dịch vụ được cài đặt và các chức năng yêu cầu thực sự được sử dụng như thế nào Sau đó, bạn có thể sử dụng tính năng chuyển đổi UML-to-SOA có sẵn trong IBM® Rational® Software Architect

để tạo một dịch vụ Web mà có thể được sử dụng trong IBM® WebSphere®

Integration Developer để cài đặt, kiểm tra, và triển khai giải pháp hoàn thiện đó

Về loạt bài viết này

Trong bài viết đầu tiên của loạt bài viết này, "Phần 1 Xác định dịch vụ", chúng ta

đã phác thảo một cách tiếp cận để nhận dạng các dịch vụ mà được nối với những yêu cầu nghiệp vụ Chúng ta đã bắt đầu nắm bắt các mục đích nghiệp vụ và các mục tiêu cần thiết để thực hiện một nhiệm vụ nghiệp vụ Rồi chúng ta đã mô hình hoá các hoạt động và tiến trình nghiệp vụ mà cần thiết để đạt được các mục đích

và các mục tiêu Sau đó, chúng ta đã sử dụng quá trình nghiệp vụ như một giao ước giúp ta nhận ra các dịch vụ yêu cầu và các mỗi quan hệ tiềm tàng giữa chúng

Trong bài viết thứ hai, "Phần 2 Đặc tả Dịch vụ", chúng ta đã mô hình hoá các chi tiết của đặc tả dịch vụ Một đặc tả dịch vụ định nghĩa tất cả mọi thứ một khách hàng tiềm tàng của dịch vụ cần được biết để có thể quyết định họ có quan tâm tới

sử dụng dịch vụ hay không, và chính xác cách sử dụng nó như thế nào Nó còn chỉ

rõ mọi thứ một nhà cung cấp dịch vụ cần phải biết để có thể cài đặt thành công

Trang 2

dịch vụ Nghĩa là, một đặc tả dịch vụ là một người thương thuyết hay giao kèo giữa cái mà người sử dụng cần và cái mà nhà cung cấp có Thông tin này lấy được trong đặc tả dịch vụ, nó giúp dễ dàng tìm kiếm dịch vụ tái sử dụng trong các kho tài nguyên và thu được tất cả các thông tin cần thiết mà không phải lục qua rất nhiều tài liệu khác nhau hay tìm kiếm các yếu tố có liên quan

Trong bài này chúng ta sẽ xem xét thiết kế cách thức các dịch vụ thực sự được

cung cấp hay, trong thuật ngữ Unified Modeling Language (UML), được nhận thức như thế nào Thiết kế nhận thức dịch vụ bắt đầu bằng việc quyết định thành

phần nào sẽ cung cấp dịch vụ nào Quyết định đó đóng vai trò quan trọng trong tính sẵn có, khả năng phân phối, bảo mật phạm vi giao dịch và tính tương tác của dịch vụ Sau khi các quyết định đó được đưa ra, bạn có thể thiết kế cách thức chức năng của mỗi dịch vụ được cài đặt, từ đó, các chức năng yêu cầu thực sự được sử dụng như thế nào

Bài tiếp theo trong loạt bài viết, "Modeling SOA: Phần 4 Cấu thành dịch vụ," sẽ miêu tả cách các dịch vụ này có thể được hợp thành để tạo những dịch vụ mới như thế nào Bài cuối cùng, "Phần 5 Cài đặt dịch vụ," sẽ sử dụng tính năng chuyển đổi UML sang SOA của IBM® Rational® Software Architect để tạo ra cài đặt của các dịch vụ Web mà có thể được trực tiếp sử dụng trong IBM® WebSphere®

Integration Developer để thi triển, kiểm tra, và triển khai giải pháp hoàn thiện đó Nội dung của bài viết này

Sự am hiểu hoàn thiện về mô hình hoá SOA đòi hỏi tới các chi tiết về cách thức một dịch vụ thực sự được thực thi bởi nhà cung cấp và sử dụng bởi khách hàng Nếu sự thực thi là phức tạp, thì có thể đặc tả là không chính xác hoặc các dịch vụ được nhận dạng là sai Bài viết này chỉ ra cách để thiết kế cài đặt của mỗi đặc tả dịch vụ ta đã thiết kế trong bài trước Thiết kế sự cài đặt bao gồm 3 bước:

1 Quyết định nhà cung dịch vụ nào cung cấp những dịch vụ nào

Trang 3

2 Thiết kế các cài đặt dịch vụ

3 Tổ hợp và kết nối khách hàng và nhà cung cấp dịch vụ cần thiết để mô hình hoá những cài đặt hoàn thiện

Quyết định những dịch vụ nào được cung cấp bởi những nhà cung cấp nào (có thể

có hơn một nhà cung cấp) bị ảnh hưởng bởi rất nhiều yếu tố, bao gồm:

• Các dịch vụ được sử dụng nhiều nhất ở đâu

• Chúng được triển khai nhiều nhất ở đâu

• Những khả năng nào của dịch vụ là bắt buộc

• Sự ổn định của khu vực chức năng

• Nơi nào có nhiều sự thay đổi được thấy trước nhất

• Có bao nhiêu sự tương tác chấp nhận được trong phạm vi

• Các vấn đề bảo mật

• Các công nghệ cài đặt nền tảng sử dụng được

• Khả năng tích hợp vào tái sử dụng của hệ thống đã có

Sự phân tích chi tiết của tất các các vấn đề này nằm ngoài phạm vi của bài viết này, nhưng nó sẽ được bao quát đầy đủ trong phương pháp IBM® Service Oriented Modeling and Architecture (SOMA) Ở đây, chúng ta sẽ cho rằng, bằng cách nào

đó, kiến trúc IT đã quyết định những nhà cung cấp dịch vụ nào sẽ cung cấp những dịch vụ nào, nên ta có thể tập trung vào cách thức những nhà cung cấp được mô hình và kết hợp trở thành những giải pháp khách hàng

Trang 4

Cũng giống tất cả các bài trong loạt bài này, chúng ta sẽ sử dụng các công cụ có sẵn của IBM Rational và IBM WebSphere để xây dựng giải pháp giả lập và kết nối chúng với nhau do đó ta có thể thẩm tra lại giải pháp với những nhu cầu và quản lý thay đổi hiệu quả hơn Bảng 1 cung cấp bảng tóm tắt của toàn bộ quá trình chúng ta sẽ sử dụng trong phát triển ví dụ và những công cụ được sử dụng để xây dựng các giả lập

Bảng 1: Vai trò, nhiệm vụ và công cụ của quá trình phát triển

Nhà điều hành

nghiệp vụ

Truyền đạt mục đích

và mục tiêu nghiệp

vụ

IBM® Rational® RequisitePro®

Nhà phân tích

nghiệp vụ

Phân tích các nhu cầu nghiệp vụ IBM® WebSphere® Business Modeler

Kiến trúc sư

phần mềm

Thiết kế kiến trúc của giải pháp IBM Rational Software Architect

Nhà phát triển

dịch vụ Web Cài đặt giải pháp

IBM® Rational® Application Developer và IBM® WebSphere® Integration Developer

Xem lại xác định và đặc tả dịch vụ

Trang 5

Hãy bắt đầu từ xem xét lại các đặc tả dịch vụ mà ta đã nhận dạng và chỉ ra trong các bài viết trước Hình 1 cho thấy giao ước các điều kiện dịch vụ nghiệp vụ mà giải pháp của ta phải đáp ứng được

Hình 1 Giao ước các điều kiện của dịch vụ

Trang 6

Nhắc lại là sự cộng tác dịch vụ này tượng trưng cho một giao ước các yêu cầu, có thể nhận được từ một tiến trình nghiệp vụ mà nó miêu tả giải pháp dịch vụ của ta phải làm gì Đó là một đặc tả trung lập về mặt kiến trúc các điều kiện mà không nhất thiết đòi hỏi một giải pháp SOA

Hình 2 trình bày các đặc tả dịch vụ đã được nhận dạng cần thiết để đáp ứng các điều kiện Về cơ bản, chúng ta đang xây dựng (mua, tái sử dụng, phỏng theo) các dịch vụ có khả năng đảm nhiệm những vai trò trong giao ước các điều kiện của dịch vụ nghiệp vụ này

Hình 2 Topo dịch vụ

Hình 3 trình bày đặc tả dịch vụ Scheduling hoàn thiện Đặc tả dịch vụ này là một giao diện đơn giản, vì không có giao thức quan trọng nào để sử dụng dịch vụ lập lịch

Trang 7

Hình 3 Đặc tả dịch vụ Scheduling

Hình 4 trình bày đặc tả dịch vụ ShippingService

Hình 4 đặc tả dịch vụ ShippingService

Đặc tả dịch vụ này phức tạp hơn một chút, vì nó mô hình hoá sự tương tác giữa một nhà buôn và một người đặt mua, sử dụng kiểu giao tiếp gọi lại (callback) đơn giản Do đặc tả này bao gồm cả giao thức hành vi, ta mô hình hoá nó sử dụng lớp

Trang 8

trừu tượng (abstract class) mà định nghĩa các vai trò (thuộc tính) liên quan trong

giao thức dịch vụ Trách nhiệm của những vai trò này được định nghĩa bởi kiểu (types) của chúng, mà chính là các giao diện đã cung cấp hay được yêu cầu bởi

đặc tả dịch vụ Sự tương tác ShippingService của đặc tả dịch vụ ShippingService chỉ rõ các quy tắc để nhà buôn và người đặt mua tương tác Sự tương tác này sẽ là giao ước cho các kênh dịch vụ kết nối tới một dịch vụ định nghĩa bởi giao diện dịch vụ này

Hình 5 trình bày đặc tả dịch vụ InvoicingService

Trang 9

Hình 5 Đặc tả dịch vụ InvoicingService

Giao thức này cũng phức tạp hơn một chút, vì các chức năng được cung cấp và yêu cầu của dịch vụ phải gọi và đáp ứng lại theo một trật tự nhất định Trong trường hợp này, một biểu đồ hoạt động được sử dụng để chỉ rõ giao thức dịch vụ

Dù sao, đây chỉ đơn thuần là vấn đề lựa chọn; chúng ta có thể sử dụng một cơ cấu tương tác hay trạng thái

Hình 6 trình bày đặc tả dịch vụ Purchasing:

Trang 10

Hình 6 Đặc tả dịch vụ Purchasing

Đặc tả dịch vụ Purchasing miêu tả chức năng có thể được chỉ ra trong tiến trình nghiệp vụ gốc Process Purchase Order Nó miêu tả một dịch vụ được nhận dạng và thiết kế để thấy rõ tiến trình nghiệp vụ đó Bởi vì không có giao thức dịch vụ nào liên kết với đặc tả này, chúng ta một lần nữa mô hình hoá nó sử dụng một giao diện theo khuôn mẫu

Bây giờ, chúng ta đã sẵn sàng để thiết kế các thành phần mà cung cấp mỗi một dịch vụ đó

Thực hiện dịch vụ

Một dịch vụ (service) chỉ ra tập các khả năng, được cung cấp bởi nhà cung cấp

dịch vụ, mà thoả mãn các nhu cầu của khách hàng hay người sử dụng của dịch vụ Bước đầu tiên trong thiết kế cài đặt dịch vụ là chuẩn bị cho các dịch vụ Nghĩa là, tìm giải pháp để nhà cung cấp dịch vụ sẽ cung cấp dịch vụ cho phép nào Đây là phần mấu chốt trong thiết kế một SOA, bởi vì lựa chọn nhà cung cấp là thiết lập những mối quan hệ giữa người sử dụng và người cung cấp dịch vụ Do đó, điều này thiết lập cả về khả năng của hệ thống và sự tương tác giữa các bộ phận của nó

Bạn có thể đặt tất cả các thao tác vào một dịch vụ duy nhất và có một giải pháp đơn giản Nhưng tất cả các khách hàng sẽ phụ thuộc vào một dịch vụ đó, điều này

sẽ dẫn đến sự tương tác với mật độ rất cao Bất cứ thay đổi nào trong nhà cung cấp

sẽ dẫn tới khả năng thay đổi trong tất cả các khách hàng Đây là vấn đề chung đối

với các thư viện bộ phận trong lập trình C thời trước Bạn cũng có thể tạo một

dịch vụ riêng biệt cho mỗi chức năng, nhưng cách này sẽ dẫn tới một hệ thống rất

Trang 11

phức tạp mà không mang lại khả năng đóng gói và kết dính tốt Sẽ gặp khó khăn trong việc mô hình hoá sự giao tiếp giữa khách hàng và nhà cung cấp dịch vụ theo một giao thức để sử dụng một tập các chức năng có liên quan

Rốt cuộc, quyết định các nhân tố tham gia vào dịch vụ là một việc đòi hỏi kĩ năng nhất định và có thể bị tác động bởi rất nhiều sự thoả hiệp Khả năng phân phối có thể đóng một vai trò quyết định Thật là tuyệt nếu chúng ta có thể thiết kết những giải pháp SOA không phụ thuộc vào vị trí khách hàng hay nhà cung cấp, nhưng điều đó thông thường không được thực tế lắm Nơi một dịch vụ được triển khai, trong mối quan hệ với khách hàng và các dịch vụ cần thiết khác, có thể có ảnh hưởng sâu sắc tới hiệu quả thực thi, tính sẵn có, và bảo mật của giải pháp Bỏ qua điều này trong kiến trúc giải pháp có thể dẫn đến đưa ra một cài đặt giải pháp không thể chấp nhận được

Vấn đề của chúng ta ở đây thì khá đơn giản, nên không khó để xác định nhân tố nào sẽ cung cấp hay sử dụng những dịch vụ nào Những phần tiếp theo cung cấp

mô hình của các nhà cung cấp dịch vụ cho tất các cả dịch vụ trình bày trong Hình

2 và các đặc tả chi tiết dịch vụ dựa vào hình này Đây là một ví dụ khá đơn giản,

và nhiều nhà cung cấp dịch vụ chỉ cung cấp một dịch vụ với chỉ một khả năng Đây sẽ không phải là trường hợp thông dụng Các nhà cung cấp dịch vụ được trông đợi sẽ cung cấp hay sử dụng (hay cả hai) rất nhiều dịch vụ với nhiều chức năng có thể Ví dụ này cố tình được đơn giản hoá để tập trung vào các khái niệm

mà không phải lún sâu vào chi tiết của nó

Lập hoá đơn (Invoicing)

Một nhà cung cấp dịch vụ lập hoá đơn cung cấp giao diện Lập hoá đơn để tính toán giá gốc cho đơn mua hàng, và sau đó nó sẽ tinh chỉnh giá này khi được biết thông tin vận chuyển Tổng giá của đơn đặt hàng phụ thuộc vào vị trí sản phẩm được sản xuất ra và nơi chúng được chuyển đi từ Tính toán giá gốc có thể được sử

Trang 12

dụng để thẩm tra rằng khách hàng có đủ tín dụng hay vẫn muốn mua sản phẩm Tốt hơn là thẩm tra điều này trước khi hoàn thiện hoá đơn

Chúng ta bắt đầu thiết kế nhà cung cấp dịch vụ này bằng cách tạo ra một trường hợp sử dụng hệ thống chỉ rõ yêu cầu của nó và một thành phần

<<serviceProvider>> được gọi là Invoicer mà nhận thức trường hợp sử dụng này

Thành phần Invoicer sẽ nằm trong gói tín dụng được nhập gói CRM (customer relationship management) để sử dụng các định nghĩa dữ liệu (thông điệp) dịch vụ chung Hình 7 trình bày những gì ta đã làm được

Hình 7 Nhà cung cấp dịch vụ Invoicer ban đầu

Nhà cung cấp dịch vụ Invoicer sẽ cung cấp dịch vụ InvoicingService Chúng ta mô hình nó bằng cách bổ sung một cổng <<service>> vào Invoicer, có kiểu là đặc tả dịch vụ InvoiceService Tất cả các dịch vụ đều được đặt kiểu bởi đặc tả dịch vụ

mà định nghĩa những chức năng nào được cung cấp và đòi hỏi cùng với giao thức

để sử dụng chúng Hình 8 thể hiện Invoicer với dịch vụ lập hóa đơn đã được bổ sung

Trang 13

Hình 8 Bổ sung một InvoicingService vào nhà cung cấp dịch vụ Invoicer

Từ kiểu của dịch vụ, chúng ta có thể thấy được nó cung cấp giao diện Lập hóa đơn

và yêu cầu giao diện InvoiceProcessing Từ kiểu dịch vụ, chúng ta biết những khách hàng đã kết nối với dịch vụ phải làm gì để sử dụng dịch vụ và Invoicer (hay bất cứ nhà cung cấp nào khác) phải làm gì để thực hiện nó Bất cứ một sử dụng hay thực hiện của dịch vụ phải nhất quán với đặc tả dịch vụ và giao thức của nó

Cổng <<service>> thanh toán hoá đơn còn có thể chỉ ra nhưng liên kết có thể được cung cấp bởi thành phần Invoicer để sử dụng trong kết nối với các thành phần khác Các cách tiếp cận liên kết có thể, như là RMI qua IIOP (Remote Method Invocation qua Internet Inter-ORB Protocol) hay SOAP qua HTTP, có thể một lần nữa mang tác động sâu sắc tới hiệu quả thực thi, tính sẵn có, và bảo mật của dịch

vụ Do đó, những vấn đề liên quan nên được giải quyết như một phần của thiết kế dịch vụ, cho dù rằng chúng có thể là đặc trưng cho một nền tảng Tối thiểu, bản thiết kế giải pháp phải giải quyết được các kết nối với dịch vụ là cục bộ hay từ xa hay cả hai

Invoicer cung cấp giao diện Lập hóa đơn, bao gồm hai thao tác:

• initiatePriceCalculation

• completePriceCalculation

Invoicer phải cung cấp thiết kế cho quá trình cài đặt hay phương thức cho mỗi thao tác dịch vụ này Phương thức cũng phải gọi thao tác processInvoice của giao

Trang 14

diện InvoiceProcessing khi sự tính toán giá cả đã hoàn thành Hình 9 trình bày thành phần Invoicer sở hữu hai hành vi có tên giống những thao tác được cung cấp

Hình 9 Các cài đặt dịch vụ Invoicer

Hoạt động completePriceCalculation là phương thức cho thao tác dịch vụ

Invoicing::completePriceCalculation Nó sử dụng một hành động cụ thể để tính toán tổng giá, sau đó nó gọi thao tác InvoiceProcessing::processInvoice trên cổng lập hoá đơn (Pin nhập vào của hành động processInvoice là cổng lập hoá đơn) Chú ý rằng điều này phù hợp với giao thức lập hoá đơn được chỉ ra bởi đặc tả dịch

vụ InvoicingService

Hành vi cụ thể initiatePriceCalculation là phương thức cho thao tác dịch vụ

initiatePricesCalculation Thao tác này được cài đặt sử dụng mã Java™ lấy trong thân hàm của hành vi cụ thể

Ngày đăng: 08/08/2014, 14:20

HÌNH ẢNH LIÊN QUAN

Hình 1. Giao ước các điều kiện của dịch vụ - Mô hình hóa SOA: Phần 3 pps
Hình 1. Giao ước các điều kiện của dịch vụ (Trang 5)
Hình 2 trình bày các đặc tả dịch vụ đã được nhận dạng cần thiết để đáp ứng các  điều kiện - Mô hình hóa SOA: Phần 3 pps
Hình 2 trình bày các đặc tả dịch vụ đã được nhận dạng cần thiết để đáp ứng các điều kiện (Trang 6)
Hình 3. Đặc tả dịch vụ Scheduling - Mô hình hóa SOA: Phần 3 pps
Hình 3. Đặc tả dịch vụ Scheduling (Trang 7)
Hình 5. Đặc tả dịch vụ InvoicingService - Mô hình hóa SOA: Phần 3 pps
Hình 5. Đặc tả dịch vụ InvoicingService (Trang 9)
Hình 7. Nhà cung cấp dịch vụ Invoicer ban đầu - Mô hình hóa SOA: Phần 3 pps
Hình 7. Nhà cung cấp dịch vụ Invoicer ban đầu (Trang 12)
Hình 8. Bổ sung một InvoicingService vào nhà cung cấp dịch vụ Invoicer - Mô hình hóa SOA: Phần 3 pps
Hình 8. Bổ sung một InvoicingService vào nhà cung cấp dịch vụ Invoicer (Trang 13)
Hình 9. Các cài đặt dịch vụ Invoicer - Mô hình hóa SOA: Phần 3 pps
Hình 9. Các cài đặt dịch vụ Invoicer (Trang 14)
Hình 10. Nhà cung cấp dịch vụ Productions - Mô hình hóa SOA: Phần 3 pps
Hình 10. Nhà cung cấp dịch vụ Productions (Trang 15)
Hình 11 trình bày dịch vụ Shipper cung cấp dịch vụ chuyển hàng như được chỉ ra  bởi đặc tả dịch vụ ShippingService - Mô hình hóa SOA: Phần 3 pps
Hình 11 trình bày dịch vụ Shipper cung cấp dịch vụ chuyển hàng như được chỉ ra bởi đặc tả dịch vụ ShippingService (Trang 16)
Hình 12. ~InvoicingService, liên hợp của InvoicingService - Mô hình hóa SOA: Phần 3 pps
Hình 12. ~InvoicingService, liên hợp của InvoicingService (Trang 18)

TỪ KHÓA LIÊN QUAN

w