Phiên giao dịch (Transaction)

Một phần của tài liệu đồ án tốt nghiệp đại học khảo sát các phương pháp phối hợp dịch vụ (Trang 47 - 48)

3 CHƯƠNG II I: ĐIỀU KHIỂN PHIÊN TRONG IMS

3.2.4 Phiên giao dịch (Transaction)

Mặc dù nói các bản tin SIP được gửi đi một cách độc lập qua mạng nhưng thực tế chúng thường được sắp xếp vào các transaction (giao dịch) bởi các user agent và một số kiểu proxy server nào đó. Do đó có thể nói giao thức SIP là một giao thức hỗ trợ transaction.

Một transaction là một luồng các bản tin SIP được truyền đi một cách tuần tự giữa các phần tử mạng. Một transaction là một luồng bản tin SIP được truyền đi một cách tuần tự giữa các phần tử mạng. Một transaction chứa thông tin yêu cầu và tất cả các thông tin phản hồi cho thông tin yêu cầu đó hoặc thậm chí nhiều hơn các thông tin phản hồi cuối (final response).

Nếu một transaction được khởi tạo bởi bản tin yêu cầu INVITE thì transaction đó cũng bao gồm cả bản tin ACK nếu như phản hồi cuối không phải là kiểu 2xx. Nếu như phản hồi cuối là kiểu 2xx thì bản tin ACK sẽ không được xem là một thành phần trong transaction.

Nếu như vậy chúng ta có thể thấy rằng ở đây có sự cư sử không được công bằng – ACK được coi là một thành phần trong transaction với một lời từ chối ở phản hồi cuối, trong khi nó lại không phải là một thành phần transaction khi được chấp nhận ở phản hồi cuối. Lý do cho sự phân biệt này là sự quan trọng của tất cả các bản tin 200 OK. Không những nó thiết lập một phiên mà bản tin 200 OK còn được sinh ra bởi các thực thể khi một proxy server chuyển hướng yêu cầu và tất cả các proxy server đó phải chuyển bản tin 200 OK về đến user agent. Do đó, trong trường hợp này user agent phải lãnh

trách nhiệm và truyền lại bản tin 200 OK cho đến khi chúng nhận được bản tin ACK. Một lưu ý khác nữa là chỉ có bản tin INVITE là được truyền lại. Các thực thể SIP có khái niệm về transaction được gọi là stateful. Các thực thể này tạo một trạng thái kết nối với một transaction được lưu trong bộ nhớ trong suốt khoảng thời gian diễn ra transaction. Khi có thông tin yêu cầu hay phản hồi đến, một thực thể stateful sẽ cố gắng kết nối yêu cầu (hoặc phản hồi) đó tới một transaction đã tồn tại sẵn. Để có khả năng làm được điều đó, nó phải lấy thông tin xác định tính duy nhất của transaction (gọi là identifier) trong bản tin đó và so sánh với tất cả các identifier trong transaction mà nó lưu trữ. Nếu như một transaction tồn tại thì trạng thái của nó sẽ được cập nhật từ bản tin đó.

Hình 3-13: Transaction

Một phần của tài liệu đồ án tốt nghiệp đại học khảo sát các phương pháp phối hợp dịch vụ (Trang 47 - 48)