CHƯƠNG 2 : PHÁT TRIỂN PHẦN MỀM DỰA VÀO SOA
2.3. Qui trình xây dựng hệ thống SOA
2.3.4. Các chiến lược xây dựng hệ thống
Nhìn chung có hai phương pháp chính để xây dựng một hệ thống SOA.
Cách đầu tiên là tự tay xây dựng từ đầu hệ thống theo mơ hình SOA. Cách thứ
hai là xây dựng SOA dựa vào một bộ thư viện hay một nền tảng có sẵn. Mỗi cách
đều có những ưu nhược điểm riêng. Nếu chúng ta tự tay xây dựng ngay từ đầu thì
có thể dễ dàng kiểm sốt và tối ưu nó, tuy nhiên chúng ta sẽ phải tốn rất nhiều thời gian, nhân lực và tiền bạc thì may ra mới có thể xây dựng được một hệ thống SOA hoàn chỉnh, bởi các hệ thống SOA thoạt nhìn bên ngồi rất đơn giản nhưng lại rất phức tạp ở bên trong. Ngược lại, nếu xây dựng SOA từ nền tảng có sẵn, chúng ta sẽ có được nhiều cái lợi như: thời gian phát triển và triển khai nhanh,
được hỗ trợ tốt hơn. Bù lại chúng ta sẽ không thể tự do chỉnh sửa và thay đổi theo
32
2.3.4.1. Chiến lược top-down
Trong xây dựng một hệ thống SOA, top-down là chiến lược lấy xuất phát
điểm là các yêu cầu ngiệp vụ, sau đó xác định các yêu cầu chức năng, các tiến
trình nghiệp vụ và các tiến trình con, các trường hợp sử dụng (use cases) và đi tới xác định các thành phần, các dịch vụ... của hệ thống.
Hình 2.12: Tiếp cận Top-down xây dựng hệ thống
Chiến lược top-down hỗ trợ tạo ra các bước để hình thành tầng dịch vụ (service layers). Chiến lược này phổ biến để tạo ra những kiến trúc dịch vụ có chất lượng cao, trong quá trình tạo ra nhiều những nghiệp vụ được sử dụng lại và các dịch vụ ứng dụng khác.
Hình 2.13: Các bước xây dựng hệ thống theo chiến lược top-down.
- Bước 1: Define relevant ontology.
Bước này là để xác định, phân loại các tập thông tin được xử lý bởi các cơ
cấu tổ chức của hệ thống. Các kết quả này là các từ vựng phổ biến, như sự định nghĩa mối quan hệ giữa các tập thông tin này với tập thông tin khác là như thế nào. Các tổ chức có phạm vi rộng lớn hơn cùng với nhiều phạm vi nghiệp vụ có thể có vài ontology, theo mỗi cách quản lý thì các nghiệp vụ chia ra một cách rõ ràng. Nếu có nhiều từ vựng nghiệp vụ không tồn tại cho bất cứ các tập thông tin
33 nào mà một giải pháp được yêu cầu thực hiện, thì tại bước này nó sẽ được định nghĩa. Một số lượng đáng kể các tập thông tin trước và kết quả phân tích nghiệp vụ ở mức cao có thể được yêu cầu.
- Bước 2: Align relevant business models (including entity models)
Sau khi ontology được thiết lập, sự tồn tại các mơ hình nghiệp vụ có thể
cần thay đổi (hay tạo ra) để thể hiện các từ vựng bằng cách cung cấp ontology trong các thuật ngữ mơ hình nghiệp vụ. Mơ hình thực thể chi tiết rất quan trọng.
- Bước 3: Perform service-oriented analysis
Xác định các dịch vụ và hướng tiếp cận cho các dịch vụ, mơ hình hóa các
dịch vụ.
- Bước 4: Perform service-oriented design
Thực hiện thiết kế hướng dịch vụ. - Bước 5: Develop services
Phát triển các dịch vụ theo yêu cầu. Các dịch vụ được phát triển theo những bản thiết kế kỹ thuật tương ứng với các đặc tả dịch vụ được tạo ra ở bước 4.
- Bước 6: Test service operations
Giai đoạn kiểm thử được yêu cầu cho tất cả quá trình hoạt động của dịch
vụ và quá trình kiểm tra phải thực hiện đảm bảo chất lượng. Các dịch vụ vượt
qua được sự kiểm tra coi như đạt chất lượng và có thể tái sử dụng sau này.
- Bước 7: Deploy service
Quan tâm tới vấn đề thực thi, xác định tiềm năng tương lai sử dụng lại của dịch vụ. Để tạo điều kiện cho nhiều người yêu cầu dịch vụ, các dịch vụ sử dụng lại có thể mở rộng năng lực xử lý và cần có sự bảo mật. Đồng thời, cần phải cung cấp cả khả năng truy cập cho dịch vụ.
2.3.4.2. Chiến lược bottom-up
Chiến lược này dựa trên việc phân tích tình trạng, các tài ngun có sẵn của hệ thống hiện có và tái sử dụng lại những thành phần này trong việc xây dựng các dịch vụ mới. Sau khi có được các dịch vụ từ những thành phần đó, ta có thể cải tiến chất lượng dịch vụ hoặc tổ hợp các dịch vụ lại để tạo ra những dịch vụ cao cấp hơn hay còn gọi là các dịch vụ tổ hợp.
34
Hình 2.14: Tiếp cận Bottom-up xây dựng hệ thống
Trong hướng tiếp cận này, ta thừa nhận các yêu cầu nghiệp vụ đã tồn tại.
Hình 2.15: Các bước xây dựng hệ thống theo chiến lược bottom-up.
- Bước 1: Model application services
Kết quả của giai đoạn này là sự định nghĩa của các yêu cầu ứng dụng được thỏa mãn thông qua việc sử dụng Web service. Các yêu cầu này bao gồm những thiết lập lên các kênh tích hợp point-to-point giữa hệ thống cũ (legacy system) hoặc giải pháp B2B (Business-to-Business). Các yêu cầu phổ biến khác sẽ dần xuất hiện để thay công nghệ truyền thông truyền thống bằng những framework truyền thông điệp SOAP.
Các dịch vụ ứng dụng cũng sẽ được mơ hình hóa bao gồm các logic và
quy tắc cho nghiệp vụ cụ thể. Trường hợp này, giống như hai tầng dịch vụ ứng dụng, bao gồm có các dịch vụ tiện ích và nhân bản.
- Bước 2: Design applicaion services
Một vài các dịch vụ ứng dụng được mơ hình hóa trong bước 1 có thể được trình bày thành bản thiết kế. Các dich vụ có thể cung cấp thêm vào cho thiết kế. Các dịch vụ ứng dụng tùy chọn sẽ cần đưa qua quá trình thiết kế, ở một khía cạnh
35
nào đó thì tồn tại những chuẩn thiết kế được áp dụng để đảm bảo mức độ bền
vững.
- Bước 3: Deploy application service
Các dịch vụ ứng dụng được phát triển theo sự mô tả dịch vụ và bản thiết
kế chi tiết ứng dụng.
- Bước 4: Test service
Các dịch vụ, môi trường kết hợp của chúng, và logic của những hệ thống cũ sẽ được kiểm tra để đảm bảo chắc chắn rằng xử lý các yêu cầu là phù hợp. Sự thực thi và tiêu chuẩn kiểm thử được nhấn mạnh thường là thiết lập lên các tham số cho hệ thống cũ thông qua các dịch vụ. Kiểm tra bảo mật cũng là phần quan trọng của giai đoạn này.
- Bước 5: Deploy services
Những giải pháp và các dịch vụ ứng dụng của nó sẽ triển khai thành sản phẩm. Sự cân nhắc thực thi cho các dịch vụ ứng dụng thường bao gồm sự thực thi và các yêu cầu bảo mật.
Hiện xu thế SOA đang phát triển rất mạnh. Và cả hai chiến lược xây dựng hệ thống top-down và bottom-up đều được áp dụng rộng rãi. Một số hệ thống cũ muốn nâng cấp hay tích hợp thêm một số dịch vụ hoặc tổ hợp lại với nhau thành một hệ thống lớn thường sử dụng chiến lược bottom-up để tận dụng cơ sở hạ tầng có sẵn và tiết kiệm chi phí. Cịn hầu hết những hệ thống lớn hiện nay đi vào xây dựng đều theo định hướng SOA và áp dụng chiến lược top-down, nhằm mục
đích đảm bảo khả năng mở rộng và thường xuyên thay đổi các yêu cầu với hệ
thống. Tùy vào từng hệ thống mà việc xây dựng kiến trúc hướng dịch vụ có thể sử dụng chiến lược phù hợp.
36