Giai đoạn trong Axis2

Một phần của tài liệu Xây dựng khung đàm phán chất lượng dịch vụ cho dịch vụ web (Trang 40)

Khái niệm giai đoạn (phase) được giới thiệu trong Axis2, giai đoạn là nơi đặt các xử lý (handlers) trong một chuỗi dây chuyền của các thực hiện. Giai đoạn có nhiệm vụ hỗ trợ việc thứ tự động của các xử lý. Có một số định nghĩa về giai đoạn trong Axis2:

- Giai đoạn có thể coi là một tập hợp lôgic của các xử lý (handlers).

- Giai đoạn có thể coi là một thời gian cụ thể trong việc thực hiện các xử lý (handlers).

- Giao đoạn có thể coi là một thùng nơi đó để đặt xử lý. - Có thể xem xét giai đoạn như một xử lý (handlers).

Hình 3-4. Các giai đoạn của luồng xử lý trong kiến trúc Axis2 [5].

Trong kiến trúc Axis2 có một tập các giai đoạn được xác định trước. Chúng được lưu trong tệp cấu hình axis2.xml. Có hai loại giai đoạn là dòng chảy vào (InFlow) và dòng chảy ra (OutFlow). Trong đó dòng chảy vào (InFlow) gồm tập các

giai đoạn sau: giao vận (Transport), tiền gửi thông điệp đi (PreDispatch), Gửi đi (Dispatch), Hậu gửi thông điệp đi (PostDispatch).

Đối với dòng chạy ra (out flow) chỉ có một giai đoạn được định nghĩa sẵn là thông điệp ngoài (Message Out). Hình vẽ 3-4 dưới đây thể hiện giai đoạn được định nghĩa trước trong kiến trúc Axis2.

Ngoài các giai đoạn được định nghĩa trước, người dùng có thể định nghĩa thêm các giai đoạn vào trong luồng ở tệp cấu hình axis2.xml. Đối với dòng chảy vào (in flow) người dùng chỉ có thêm giai đoạn sau giai đoạn hậu gửi thông điệp đi (PostDispatch). Điều này do Axis2 giữ cho luồng các hoạt động được thực ở điều kiện quy định tối thiểu, và chỉ sau giai đoạn này các hoạt động được tìm thấy. Đối với dòng chảy ra (out flow) không có quy định vị trí đặt cho những giai đoạn mới định nghĩa bởi người dùng. Chúng ta có thể xem ở ví dụ 3.2 dưới đây.

Ví dụ 3.2: Ví dụ về giai đoạn trong hai dòng chảy Inflow và Outflow. <phaseOrder type="inflow"> <phase name="Transport"/> <phase name="PreDispatch"/> <phase name="Dispatch"/> <phase name="PostDispatch"/> <phase name="userPhase1"/> <phase name="userPhase2"/> </phaseOrder> <phaseOrder type="outflow"> <phase name="userPhase3"/> <phase name="MessageOut"/> <phase name="userPhase4"/> </phaseOrder>

Có hai loại giai đoạn được định nghĩa trong Axis2 là giai đoạn ở mức độ toàn cục (Global phase) và giai đoạn ở mức độ vận hành (Operation phase) và thông tin được lưu ở tệp axis2.xml. Hai loại giai đoạn này không khác nhau về cách thức thực hiện, chúng chỉ khác nhau về ngữ nghĩa, phạm vi hoạt động dựa trên vị trí của thông điệp. Giai đoạn mức toàn cục cho phép thực hiện với tất cả các thông điệp. Ngược lại giai đoạn mức vận chỉ cho phép thực hiện thông điệp ở phạm vị giới hạn.

Một phần của tài liệu Xây dựng khung đàm phán chất lượng dịch vụ cho dịch vụ web (Trang 40)