Ta có mô hình thiết kế tổng thể của ứng dụng như sau:
Hình 26:Minh họa thiết kế tổng thể của ứng dụng
Người sử dụng tại Client sẽ lựa chọn thành phố xuất phát và thành phố đích đến. Tại đây Soap engine làm nhiệm vụ tạo ra các thông điệp SOAP request gửi đến Service Proxy. Tại Service Proxy sẽ phân ra làm 2 luồng SOAP request tiếp tục gửi đến hai Web Service SearchFlight và SearchHotel. Sau khi gửi đi các thông điệp Soap request, Service Proxy bắt đầu bật đồng hồ đếm thời gian để đo thời gian đáp ứng của hai Web Service thành phần. Tại hai Web Service thành phần tiếp nhận các Soap request đó xử lý và trả lại các thông điệp Soap response cho Service Proxy. Sau khi nhận được thông điệp Soap response của các Service Composition, Service Proxy dừng đồng hồ đo thời gian. Đóng gói kết quả đo lường thời gian đáp ứng vào cùng thông điệp Soap response và gửi trả lại kết quả cho Client bao gồm kết quả tìm kiếm chuyến bay, tìm kiếm khách sạn và kèm theo thời gian đáp ứng của từng dịch vụ.
57
Do ứng dụng khá đơn giản nên chúng tôi không sử dụng các biểu đồ phân rã chức năng, biểu đồ lớp, biểu đồ tương tác…. Mà chỉ sử dụng biểu đồ tuần tự để thấy được thứ tự làm việc của các thành phần trong hệ thống.
Hình 27:Biểu đồ tuần tự của hệ thống
Dựa vào biểu đồ tuần tự ta thấy tại chương trình Client sẽ có các đối tượng ApplicationGUI, CallService1, CallService2. Đối tượng ServiceProxy đại diện cho Web Service Proxy và hai đối tượng còn lại đại diện cho các Web Service Composition. Khi người sử dụng nhập thông tin và click submit, dữ liệu sẽ được gửi đi lần lượt bằng 2 đối tượng CallService1, CallService2. Trong ví dụ này chúng tôi gọi CallService1 trước, sau khi dữ liệu được trả về cho CallService1 sẽ tiếp tục gọi đến CallService2. Sau khi có tất cả các dữ liệu cần thiết trả về mới trả lại kết quả cho User.
58