Những thách thức khi xây dựng hệ thống SOA

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, ứng dụng phương pháp kiến trúc và mô hình hóa hướng dịch vụ trong công nghệ phát triển phần mềm (Trang 33 - 35)

Chƣơng 3 NGHIÊN CỨU TÌNH HUỐNG, KHUNG NHÌN NGHIỆP VỤ, XÂY DỰNG ỨNG DỤNG

3.1. Những thách thức khi xây dựng hệ thống SOA

Những lợi ích đạt được của một hệ thống SOA đã quá rõ ràng. Thế nhưng việc triển khai một hệ thống SOA không phải là điều dễ dàng. Trong thời gian qua, chúng ta đã chứng kiến các sự thay đổi các mơ hình tính tốn trong các tổ chức. Từ mơ hình tính tốn tập trung (mainframe) sang các mơ hình phân tán client/server, rồi sau đó là các kiến trúc dựa trên nền tảng Web bởi phát triển lớn mạnh của Internet. Và nay, quá trình này vẫn cịn tiếp tục. Chúng ta đang ở thời kỳ quá độ sang mơ hình tính tốn dựa trên dịch vụ và kiến trúc hướng dịch vụ (SOA). Với mọi sự chuyển đổi đều có những thảo luận, tranh cãi, kinh nghiệm…, có những người “dẫn đường” và những người “nối bước”; có những người “chiến thắng” và những người “thất bại”, có những hệ thống vận hành hiệu quả và những hệ thống bị đổ vỡ… Lần này cũng sẽ khơng có gì khác.

Ta sẽ xem xét các vấn đề mà sẽ gây nhiều trở ngại cho trong quá trình triển khai các hệ thống SOA. Phần này sẽ trình bày thách thức mà một tổ chức sẽ phải đối mặt tương ứng với các pha trong một dự án triển khai thực tế.

 Xác định dịch vụ

 Dịch vụ là gì? Chức năng nghiệp vụ nào cần được cung cấp bởi một dịch vụ? Độ “mịn” (granularity) của dịch vụ thế nào là tốt?

 Việc xác định dịch vụ và quyết định đối tượng cung cấp dịch vụ một cách thích hợp, hiệu quả là giai đoạn quan trọng và đầu tiên trong một giải pháp hướng dịch vụ. Trong thực tế, nhiều chức năng nghiệp vụ tương tự nhau có thể được cung cấp bởi nhiều hệ thống trong một tổ chức.

 Phân bổ dịch vụ

 Các dịch vụ thường hoạt động dựa trên các thực thể nghiệp vụ. Các đối tượng này được lưu và quản lý trong hệ thống. Vị trí của các thực thể này cũng là vị trí tốt nhất để đặt dịch vụ. Tuy nhiên, bởi đặc tính của một hệ thống phân tán nên các đối tượng này được phân bố rải rác ở nhiều vị trí và có thể có tình trạng một đối tượng được quản lý ở nhiều nơi. Vì thế, đồng bộ dữ liệu giữa các hệ thống trở nên là một yêu cầu quan trọng. Trong mơi trường như thế thì dịch vụ sẽ được đặt ở đâu?

 Xác định miền dịch vụ

 Làm sao gom nhóm các dịch vụ thành các miền luận lý (logic

domain)?

 Việc phân loại, gom nhóm các dịch vụ thành các miền luận lý sẽ đơn giản hóa kiến trúc hệ thống bởi sẽ giảm được số lượng các thành phần cần xây dựng. Ngoài ra, việc định nghĩa các miền luận lý như thế cũng ảnh hưởng đến nhiều khía cạnh khác của kiến trúc hệ thống như cân bằng tải (load balancing), điều khiển truy cập (access control), sự phân chia theo chiều sâu hay chiều rộng các xử lý nghiệp vụ. Tuy nhiên, điều khó khăn nhất đó là làm sao đạt được đồng nhất quan điểm của các đơn vị, các bộ phận kỹ thuật về tính hợp lý của một miền tạo ra.

 Đóng gói dịch vụ

 Làm sao có thể bao bọc các chức năng sẵn có của hệ thống cũ vào trong một dịch vụ?

 Nếu hệ thống khi được thiết kế đã quan tâm và hỗ trợ vấn đề tích hợp với các hệ thống mới thì vấn đề này sẽ dễ dàng hơn. Tuy nhiên, khi các hệ thống cũ này trước đây được xây dựng như theo mơ hình kín, đóng gói (monolithic) trong đó chứa tồn bộ các thơng tin về nguyên tắc và qui trình xử lý thì nay, khi được tích hợp, các thơng tin này cần được chia sẻ và phân bố trong nhiều ứng dụng khác nhau.

 Phối hợp dịch vụ (service orchestration):

 Làm sao để có thể tạo ra các dịch vụ tổng hợp (composite service)?  Nhu cầu kết hợp nhiều dịch vụ để đáp ứng được nhiều yêu cầu phức

dịch vụ này một cách có hiệu quả, theo những qui trình với những ràng buộc phức tạp.

 Định tuyến dịch vụ

 Làm sao để chuyển một yêu cầu từ một đối tượng sử dụng dịch vụ đến dịch vụ hay miền dịch vụ thích hợp?

 Một hệ thống SOA phải có tính độc lập địa chỉ cho đối tượng sử dụng các dịch vụ của hệ thống. Ngòai ra còn phải quan tâm đến vấn đề hiệu suất hoạt động của hệ thống vì việc định vị một dịch vụ là một quá trình cũng chiếm nhiều thời gian.

 Quản lý dịch vụ

 Vấn đề quản lý và bảo trì các dịch vụ, việc tạo xây, theo dõi và thay đổi các dịch vụ như thế nào cho có hiệu quả?

 Chuyển đổi thơng điệp chuẩn dịch vụ

 Làm sao để lựa chọn một chuẩn định dạng thông điệp trao đổi giữa các chuẩn? Làm sao có thể xây dựng một chuẩn định dạng dữ liệu mà mọi hệ thống đều có khả năng hiểu và xử lý.

Ngồi các khó khăn trên mỗi tổ chức với mỗi đặc thù riêng của mình có thể sẽ phải đối diện với các vấn đề khác trong quá trình triển khai hệ thống

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, ứng dụng phương pháp kiến trúc và mô hình hóa hướng dịch vụ trong công nghệ phát triển phần mềm (Trang 33 - 35)

Tải bản đầy đủ (PDF)

(106 trang)