Thách thức khi phát triển hệ thống theo hướng dịch vụ

Một phần của tài liệu Hệ thống quản lý dữ liệu phổ cập tiểu học dựa trên kiến trúc hướng dịch vụ (Trang 34 - 36)

Cũng như các phương pháp phát triển phần mềm khác, để xây dựng được một hệ thống theo hướng dịch vụ cũng phải trải qua các giai đoạn tương tự. Tuy vậy, dù những lợi ích đạt được từ hệ thống SOA là rất lớn nhưng việc triển khai một hệ thống SOA không phải là điều dễ dàng. Từ mô hình tính toán tập trung sang mô

Bùi Văn Quý CH CNTT 2013 35 hình phân tán client server, rồi sau đó là kiến trúc dựa trên nền tảng Web và ngày nay quá trình này vẫn tiếp tục. Chúng ta đang ở thời kỳ quá độ sang mô hình tính toán dựa trên dịch vụ là kiến trúc hướng dịch vụ. Kiến trúc này ngày nay cũng đã và đang áp dụng và phát triển cho nhiều doanh nghiệp trên thế giới. Các doanh nghiệp phát triển phần mềm trong giáo dục cũng dần phát triển theo kiến trúc hướng dịch vụ hoặc kiến trúc phù hợp để đáp ứng nhu cầu thực tế. Nhưng để xây dựng và triển khai được hệ thống thì vẫn gặp phải một số vấn đề trở ngại:

 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ụ? 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ụ  Phân bổ dịch vụ

Đặt dịch vụ ở vị trí nào trong hệ thống? 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 hệ là phân tán nên các đối tượng này phân bố rải rác ở nhiều vị trí và có thể một đối tượng được quản lí ở nhiều nơi. Vì vậy đồ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 bởi sẽ giảm được số lượng các thành phần cần xây dựng. Việc định nghĩa các miền 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ủa xử lý nghiệp vụ.

 Đó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 các hệ thống cũ này trước

Bùi Văn Quý CH CNTT 2013 36 đây được xây dựng theo mô hình kín, đóng gói trong đó chứa toà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.

 Kết hợp các dịch vụ

Làm sao để có thể tạo ra các dịch vụ tổng hợp. Nhu cầu kết hợp nhiều dịch vụ để đáp ứng được yêu cầu phức tạp từ đối tượng sử dụng là có thực. Vấn đề là làm sao kết hợp các dịch vụ này một cách 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. Ngoài 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 mất 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 dựng, theo dõi và thay đổi các dịch vụ như thế nào cho có hiệu quả? 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ý? Ngoà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 Hệ thống quản lý dữ liệu phổ cập tiểu học dựa trên kiến trúc hướng dịch vụ (Trang 34 - 36)