Đối tƣợng mô phỏng xác định khả năng liên kết giữa các nút khi chạy các phiên bản khác nhau. Mô phỏng là cần thiết khi các nút nâng cấp không đồng bộ, cho phép nút chạy các phiên bản cũ có thể thực hiện cuộc gọi trên các nút chạy các phiên bản mới hơn, và ngƣợc ngƣợc lại. Điều quan trọng là cho phép mô phỏng từ cả hai hƣớng, bởi vì nếu không nâng cấp chậm có thể cuộc gọi giữa các nút sẽ thất bại.
Tại mỗi tầng nâng cấp, cuộc gọi giữa các nút qua các phiên bản đƣợc điều khiển thông qua đối tƣợng mô phỏng (SO). Đối tƣợng mô phỏng trong một trình nâng cấp bao gồm hai thành phần: PastSO xử lý các phiên bản cũ; FutureSO xử lý các phiên bản mới.
Hình 3.7 Gọi giữa các phiên bản.
PastSO thực hiện chức năng một phiên bản cũ bằng cách gọi phƣơng thức trên đối tƣợngcủa phiên bản mới hơn, do đó, một chuỗi lệnhPastSO có thể hỗ trợ nhiều phiên bản cũ.
FutureSO thực thi trên phiên bản mới bằng cách gọi những phƣơng thức của phiên bản trƣớc đó. FutureSO đƣợc cài đặt khi các nút phát hiện ra các phiên bản mới. Một FutureSO sẽ loại bỏ khi các nút nâng cấp xong phiên bản mới.
Khi một nút nghe thấy một nâng cấp (ví dụ, nâng cấp bao gồm nâng cấp một lớp cũ thành lớp hiện thời), nó ngay lập tức cài đặt một FutureSO cho lớp mới. Trong mô hình này SO sẽ: nhận đƣợc tất cả các cuộc gọi có mục đích hoặc cho đối tƣợng trƣớc đó hoặc cho chính nó. SO thực hiện tất cả các cuộc gọi cho cả hai đối tƣợng, nó có thể làm nhƣ vậy bằng cách sử dụng trạng thái riêng của mình hoặc bằng cách gọi phƣơng thức của đối tƣợng trƣớc đó.
Khi nâng cấp nút, nó sẽ thay thế đối tƣợng hiện tại và FutureSO với một thể hiện của lớp mới, trƣờng hợp này trở thành đối tƣợng của nút. Không cần phải một PastSO, bởi vì các cuộc gọi đƣợc thực hiện bởi các máy khách đang chạy ở phiên bản cũ đƣợc xử lý bởi các đối tƣợng hiện tại. Điều này có nghĩa là các đối tƣợng hiện hành thì phải thực hiện cả hai loại cũ và mới. Có thể là một nâng cấp mới mà đến cùng trƣớc khi nút đã nâng cấp lên lớp mới.
Trong trƣờng hợp này, nút cài đặt khác SO chặn cuộc gọi cho tất cả các đối tƣợng trƣớc đó, SO có thể ủy quyền cho các đối tƣợng ngay lập tức trƣớc. Khi nâng
cấp nút, nó sẽ thay thế đối tƣợng hiện tại của nó và SO lâu đời nhất của với một thể hiện của lớp mới để nâng cấp. Hình 3.7 mô tả quá trình này
Hình 3.8 Qua trình chuyển đổi SOs
Hình trên trình bày một chuỗi của các trạng thái của một nút. Mũi tên lớn trạng thái quá trình chuyển đổi. Trong mỗi trạng thái, hình chữ nhật là đối tƣợng hiện tại, và các vòng tròn là SOs. Các đối tƣợng mới nhất xử lý tất cả các cuộc gọi cho nút, các đối tƣợng rải rác biên giới đƣợc "ẩn". Đối tƣợng có thể đại diện cho các cuộc gọi bằng việc chỉ ra bởi các mũi tên nhỏ.