0
Tải bản đầy đủ (.pdf) (141 trang)

Các lợi ích của kiến trúc hướng dịch vụ

Một phần của tài liệu ĐỒ ÁN TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG KIẾN TRÚC HƯỚNG DỊCH VỤ VỚI ORACLE SOA SUITE (Trang 25 -30 )

Đối tượng trung tâm của mô hình kiến trúc hướng dịch vụ là khái niệm dịch vụ. Các dịch vụ là các thực thể độc lập thực hiện một chức năng nghiệp vụ riêng biệt. Các dịch vụ được đưa ra để cung cấp các cấp độ khác nhau về chức năng trong một nghiệp vụ. Sau đây là các tính chất mà dịch vụ có bên dưới kiến trúc hướng dịch vụ.

- Tính chất kết nối lỏng (Loose Coupling) - Khả năng tái sử dụng (Reuse)

- Khả năng trong suốt vị trí (Transparent Position) - Khả năng giao tiếp (Communication)

- Khả năng tổng hợp (Composite) - Khả năng tự phục hồi (Self-healing) - Giao diện có địa chỉ mạng

- Khả năng tìm kiếm và ràng buộc động (Find and Binding) - Khả năng tự chứa và đơn thể (Container and Module).

(Nguồn: Oracle SOA Suite 11g Handbook.pdf )

2.2.1. Tính chất kết nối lỏng (Loose Coupling)

SOA hỗ trợ tính kết nối lỏng thông qua việc sử dụng hợp đồng và liên kết (contract and binding). Một người sử dụng dịch vụ truy vấn đến nơi lưu trữ và cung cấp thông tin dịch vụ (Nơi đăng kí dịch vụ - Registry) để lấy thông tin về loại dịch vụ cần sử dụng. Nơi đăng kí dịch vụ sẽ trả về tất cả những dịch vụ thoả tiêu chuẩn tìm kiếm. Từ bây giờ người dùng chỉ việc chọn dịch vụ mà mình cần và thực thi phương thức trên đó theo mô tả dịch vụ nhận được từ nơi đăng kí dịch vụ. Bên sử

11

dụng dịch vụ không cần phụ thuộc trực tiếp vào cài đặt của dịch vụ mà chỉ dựa trên hợp đồng mà dịch vụ đó hỗ trợ.

Tính kết nối lỏng giúp gỡ bỏ những ràng buộc điều khiển giữa những hệ thống đầu cuốị Mỗi hệ thống có thể tự quản lý độc lập nhằm tăng hiệu suất, khả năng mở rộng và khả năng đáp ứng caọ Những thay đổi cài đặt cũng được che giấu đị Kết nối lỏng đem đến sự độc lập giữa bên cung cấp và bên sử dụng nhưng nó đòi hỏi các giao diện (interface) phải theo chuẩn và cần một thành phần trung gian quản lý, trung chuyển yêu cầu giữa các hệ thống đầu cuốị

2.2.2. Khả năng tái sử dụng (Reuse)

Các dịch vụ được cung cấp trên môi trường mạng (Internet) và được đăng ký ở một nơi nhất định nên chúng dễ dàng được tìm thấy và tái sử dụng. Nếu một dịch vụ không có khả năng tái sử dụng, nó cũng không cần đến giao diện (interface) mô tả. Các dịch vụ có thể được tái sử dụng lại bằng cách kết hợp lại với nhau theo nhiều mục đích khác nhaụ

Tái sử dụng lại các dịch vụ còn giúp loại bỏ những thành phần trùng lắp và tăng độ vững chắc trong cài đặt, nó còn giúp đơn giản hoá việc quản trị. Thực ra tái sử dụng dịch vụ lại dễ dàng hơn tái sử dụng thành phần hay lớp. Những dịch vụ được dùng chung bởi tất cả các ứng dụng của một hệ thống SOA gọi là những dịch vụ chia sẻ cơ sở hạ tầng (shared infrastructure service).

2.2.3. Khả năng trong suốt vị trí (Transparent Position)

Sự trong suốt vị trí là một trong những đặc tính của kiến trúc hướng dịch vụ. Người dùng dịch vụ chỉ có thể biết vị trí dịch vụ tại nơi đăng kí dịch vụ. Sự trong suốt vị trí có được là do việc sử dụng nơi đăng kí dịch vụ, bộ trung gian dịch vụ và các bộ trung gian khác nằm giữa nhà cung cấp dịch vụ và người dùng dịch vụ.

2.2.4. Khả năng giao tiếp (Communication)

Các dịch vụ trong SOA có khả năng giao tiếp với nhaụ Nếu nhà cung cấp và người dùng dịch vụ có nền tảng khác nhau mà kết nối với nhau thì các giao thức giao tiếp dùng để hỗ trợ cho các tương tác dịch vụ cần phải tương thích với các nền

12

tảng đó. Do có các yêu cầu giao tiếp, SOA sử dụng các công nghệ giao tiếp chuẩn mở như XML và Web Servicẹ

2.2.5. Khả năng tổng hợp (Composite)

Chức năng phần mềm có thể được đóng gói như là các dịch vụ có mức độ trừu tượng khác nhau trong một nghiệp vụ. Các dịch vụ có thể được tổng hợp để cài đặt các dịch có mức độ trừu tượng cao hơn. Ví dụ: Việc tổng hợp một quy trình nghiệp vụ từ các dịch vụ, sau đó quy trình được kết xuất như là một dịch vụ.

Khả năng tổng hợp của dịch vụ liên quan tới cấu trúc đặc tả của dịch vụ. Cấu trúc đặc tả cho phép các dịch vụ có khả năng tổng hợp, lắp ráp vào các ứng dụng mà lập trình viên tích hợp không quan tâm đến dịch vụ đó được thiết kế như thế nàọ Bằng việc sử dụng các dịch vụ đã được kiểm thử và xây dựng hoàn chỉnh làm gia tăng chất lượng của hệ thống phần mềm. Xây dựng các hệ thống theo kiến trúc hướng dịch vụ là đầu tư cho hiện tại và cả tương laị Vì các dịch vụ dễ dàng dùng lại, dễ dàng tổng hợp vào các ứng dụng khác. Với khả năng tổng hợp của dịch vụ làm cho hệ thống phần mềm có thể thích ứng nhanh chóng với các thay đổi, dễ dàng cải tiến, tái cấu trúc hệ thống phần mềm và thêm mới các chức năng cho nó một cách nhanh nhất có thể có.

Một dịch vụ có thể được tổng hợp theo 3 cách: ứng dụng tổng hợp, các dịch vụ liên quan, dịch vụ tổng hợp. Một ứng dụng thường là sự lắp ráp, tổng hợp từ các dịch vụ, các thành phần với nhau cho một mục đích xác định.

Dịch vụ liên quan là tập các dịch vụ được quản lý trong một dịch vụ lớn hơn. Ví dụ: dịch vụ kiểm tra tài khoản, dịch vụ đăng kí tài khoản, dịch vụ quản lý thông tin khách hàng. Có thể được tổng hợp vào dịch vụ lớn là dịch vụ khách hàng.

Dịch vụ tổng hợp là dịch vụ thực thi một nghiệp vụ, tương tác với nhiều dịch vụ hệ thống để tạo ra bản thân nó, thường được gọi là quy trình nghiệp vụ. Quy trình nghiệp vụ gồm một hay nhiều bước thực hiện, mỗi bước thực hiện là một tác vụ nghiệp vụ, mỗi tác vụ nghiệp vụ thực hiện gọi dịch vụ để hoàn thành tác vụ.

13

2.2.6. Khả năng tự phục hồi (Self-healing)

Với kích cỡ và độ phức tạp của những ứng dụng phân tán ngày nay, khả năng phục hồi của một hệ thống sau khi bị lỗi trở thành một yếu tố quan trọng. Một hệ thống tự hồi phục (self-healing) là một hệ thống có khả năng tự hồi phục sau khi bị lỗi mà không cần sự can thiệp của con ngườị

Độ tin cậy (reliability) là mức độ đo khả năng một hệ thống xử lý tốt như thế nào trong tình trạng hỗn loạn. Trong kiến trúc hướng dịch vụ, các dịch vụ luôn có thể hoạt động hay ngừng bất kỳ lúc nào, nhất là đối với những ứng dụng tổng hợp từ nhiều dịch vụ của nhiều tổ chức khác nhaụ Độ tin cậy phụ thuộc vào khả năng phục hồi của phần cứng sau khi bị lỗị Hạ tầng mạng phải cho phép các kết nối động từ nhiều hệ thống khác nhau kết nối đến trong khi chạỵ Một khía cạnh khác ảnh hưởng đến độ tin cậy là kiến trúc mà dựa trên để xây dựng ứng dụng. Một kiến trúc hỗ trợ kết nối và thực thi động khi chạy sẽ có khả năng tự phục hồi hơn một hệ thống không hỗ trợ những tính năng trên.

Thêm vào đó, bởi vì những hệ thống dựa trên dịch vụ yêu cầu sự tách biệt giữa giao diện (interface) và cài đặt nên có thể có nhiều cài đặt khác nhau cho cùng một giao diện (interface). Nếu một thể hiện dịch vụ nào đó không hoạt động thì một thể hiện khác vẫn có thể hoàn tất giao dịch cho khách hàng mà không bị ảnh hưởng gì. Khả năng này chỉ có được khi khách hàng chỉ tương tác với giao diện (interface) của dịch vụ chứ không tương tác trực tiếp cài đặt của dịch vụ. Đây là một trong những tính chất cơ bản của các hệ thống hướng dịch vụ.

2.2.7. Giao diện có địa chỉ mạng

Vai trò của mạng là chính yếu trong kiến trúc hướng dịch vụ. Một dịch vụ phải có một giao diện có địa chỉ mạng. Một người dùng dịch vụ trên một mạng phải có khả năng gọi dịch vụ thông qua mạng. Mạng cho phép các dịch vụ được dùng lại bởi bất kì người dùng dịch vụ nào, bất kì thời điểm nàọ Khả năng tổng hợp ứng dụng từ các dịch vụ sẵn có trên các máy khác nhau chỉ có thể nếu dịch vụ hỗ trợ một giao diện mạng.

14

Người dùng dịch vụ có thể truy cập một dịch vụ thông qua một giao diện cục bộ mà không phải thông qua mạng nếu người dùng dịch vụ và nhà cung cấp dịch vụ nằm trên cùng một máỵ Mặc dù dịch vụ có thể được cấu hình cho việc truy cập từ người dùng dịch vụ trên cùng một máy nhưng dịch vụ phải đồng thời hỗ trợ cho việc truy cập dịch vụ từ bên ngoàị

2.2.8. Khả năng tìm kiếm và ràng buộc động (Find and Binding)

SOA hỗ trợ khái niệm truy tìm dịch vụ (Find). Một người sử dụng cần đến một dịch vụ nào đó có thể tìm kiếm dịch vụ dựa trên một số tiêu chuẩn khi cần. Người sử dụng chỉ cần hỏi một nhà cung cấp dịch vụ (Registry) về dịch vụ nào thoả yêu cầu tìm kiếm. Ví dụ, một hệ thống chuyển khoản (Hệ thống chuyển khoảng trong trường hợp này là một người dùng dịch vụ) yêu cầu nơi cung cấp dịch vụ tìm tất cả các dịch vụ có khả năng kiểm tra thẻ tín dụng. Nơi cung cấp dịch vụ trả về một tập các entry (danh sách các dịch vụ) thoả yêu cầụ Các entry chứa thông tin về dịch vụ, bao gồm cả phí giao dịch. Bên sử dụng sẽ chọn một dịch vụ có phí giao dịch thấp nhất trong danh sách các dịch vụ trả về, kết nối đến nhà cung cấp dịch vụ đó dựa trên thông tin registry entry để sử dụng dịch vụ kiểm tra thẻ tín dụng. Trong phần mô tả dịch vụ kèm theo đã có tất cả các tham số cần thiết dùng để thực thi dịch vụ, bên sử dụng chỉ cần định dạng dữ liệu yêu cầu đúng theo mô tả cung cấp và gửi đị Nhà cung cấp dịch vụ sẽ thực thi kiểm trả thẻ tín dụng và trả về một thông điệp có định dạng đúng như trong phần mô tả dịch vụ. Mối ràng buộc duy nhất giữa bên cung cấp và bên sử dụng là bản hợp đồng được cung cấp bởi nơi cung cấp dịch vụ trung gian. Mối ràng buộc này là ràng buộc trong thời gian chạy chứ không phải ràng buộc trong lúc biên dịch. Tất cả thông tin cần thiết về dịch vụ được lấy về và sử dụng trong khi chạỵ

Ví dụ trên cho thấy cách người dùng dịch vụ tìm kiếm và sử dụng “động” một dịch vụ. Đây là một thế mạnh của SOẠ Với SOA, phía người dùng dịch vụ không cần biết định dạng của thông điệp yêu cầu và thông điệp trả về, cũng như địa chỉ nhà cung cấp dịch vụ.

15

2.2.9. Khả năng tự chứa và đơn thể (Container and Module).

Mặc dù việc sử dụng các giao diện tách biệt người dùng dịch vụ ra khỏi cài đặt dịch vụ nhưng các cài đặt của mỗi dịch vụ không nên kết nối với nhaụ Ví dụ, một cài đặt dịch vụ phụ thuộc vào cài đặt của dịch vụ khác bằng cách chia sẽ mã lệnh, chia sẽ truy cập dữ liệu, … Cách thiết kế này dẫn đến tình trạng khó bảo trì và kiểm lỗi dịch vụ. Nếu các dịch vụ kết nối chặt, điều đó đi ngược lại mục đích của kiến trúc hướng dịch vụ đạ đề ra:

- Cực tiểu hóa độ móc nối giữa các dịch vụ.

- Cài đặt dịch vụ như là người của các dịch vụ khác. - Dịch vụ thể hiện được độ kết dính giữa các phương thức.

Một phần của tài liệu ĐỒ ÁN TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG KIẾN TRÚC HƯỚNG DỊCH VỤ VỚI ORACLE SOA SUITE (Trang 25 -30 )

×