Cụ thể hơn, công cụ chính sách PE thực hiện các chức năng sau:
- Nhận hướng dẫn/yêu cầu, cung cấp các dịch vụ truy cập và thao tác các tham số bên trong và hoạt động của hệ thống phụ mạng cục bộ.
- Ủy quyền các yêu cầu từ các ứng dụng người sử dụng bằng cách sử dụng các cơ chế ưu tiên như xác thực các yêu cầu mà nó nhận từ các server bên ngoài.
- Gửi các yêu cầu tới các thực thể xử lý thích hợp, cụ thể là Informer và Enforcer.
- Trả lại kết quả của yêu cầu.
Hình 3.3: Công cụ chính sách PE
PE chấp nhận các yêu cầu theo ba loại thực thể : các ứng dụng người sử dụng cuối ( trong không gian người sử dụng) , các đối tượng giao thức lớp thấp (lớp 2 đến lớp 4, trong không gian lõi), chính sách máy chủ bên ngoài (ngoài hệ thống cục bộ) .
PE chứa bốn phương pháp để giải quyết với các yêu cầu, cụ thể (i) phương pháp set_param() để xử lý các yêu cầu cập nhật các tham số thời gian thực, (ii) phương pháp request_retrieve() để xử lý các yêu cầu tra cứu các giá trị tham số thời
gian thực, (iii) phương pháp request_register() để xử lý các yêu cầu đăng ký cho các tham số sự kiện, và (iv) phương pháp ivk_action() xử lý các yêu cầu để thực hiện phương pháp action(). Những phương pháp này sẽ được gọi trực tiếp bởi các thực thể cư trú trên cùng một không gian lõi (bao gồm xử lý các tin nhắn phục vụ hệ thống bên ngoài), hoặc được ánh xạ tới hệ thống gọi được sử dụng bởi các thực thể cư trú trong không gian người sử dụng.
Các phương pháp này có thể bị quá tải với công nghệ hướng đối tượng để phục vụ các yêu cầu khác nhau với các loại đối số đầu vào khác nhau. PE có thể chứa các phương pháp cơ bản, đó là các khối xây dựng cơ bản thực hiện các hoạt động bổ sung để hỗ trợ trong quá trình xử lý các yêu cầu gửi đến. Các phương pháp cơ bản có thể thực hiện, ví dụ như kiểm tra tính toàn vẹn hoặc xác thực…
Như nói ở trên, Công cụ chính sách có thể trang bị thêm cơ chế kiểm soát tốc độ để giám sát và hạn chế tỷ lệ yêu cầu một tham số nào đó từ phía người yêu cầu ( tức là tỷ lệ yêu cầu get()/set() cho tham số ), cũng như tổng thể các yêu cầu gửi đến đối tượng InterLay từ phía người yêu cầu với số lượng hợp lý trong một khoảng thời gian nhất định. Con số này có thể được quyết định dựa trên bản chất của tham số, ví dụ giới hạn trên cho tham số thay đổi nhanh có thể được đặt cao hơn với các tham số thay đổi chậm, hoặc giới hạn hoạt động mạng thấp là cao hơn mạng hoạt động mạnh. Bất kỳ yêu cầu nào đến sau khi tỷ lệ đạt đến giới hạn sẽ bị loại bỏ bởi PE. Điều này sẽ ngăn cản các đối tượng InterLay bị lạm dụng bởi các ứng dụng người dùng và các đối tượng giao thức mạng. Đây là một cơ chế mới để bảo vệ hiệu năng của kiến trúc xuyên lớp mới TCP/IP.
3.3.2.1 PE và các hệ thống bên ngoài A- Message Handler-Xử lý tin nhắn
PE dựa trên trên Message Handler để giao tiếp với các thực thể bên ngoài để bổ sung các chính sách và thông tin bằng cách sử dụng các giao thức chuẩn.
Bởi vì các giao thức này đang chạy ở cấp độ ứng dụng, trong khi Message Handler (MH) nằm bên trong PE ( do đó nó sẽ chạy trong lõi), có hai giải pháp cho MH nhận các yêu cầu từ các hệ thống bên ngoài, đó là:
- Giải pháp đầu tiên là để tinh chỉnh một phiên bản đặc biệt của ổ TCP/UDP chạy trực tiếp trong lõi. Trong trường hợp này người sử dụng cung cấp thông tin xác thực chính xác ( cụ thể là địa chỉ của máy chủ và các thông tin tài khoản người dùng được sử dụng để truy cập vào máy chủ) thông qua một số giao diện được cung cấp bởi hệ điều hành. Tuy nhiên, sự phát triển của các ổ này có thể rườm rà.
- Giải pháp thứ hai là để thực hiện một ứng dụng trao đổi chính sách trong không gian người dùng, và Message Handler sẽ trao đổi các bản tin này với ứng dụng không gian người dùng thông qua NetLink ( ).
Các hệ thống bên ngoài sẽ trao đổi yêu cầu với MH để hoàn thành các nhiệm vụ sau:
- Lấy giá trị tham số thời gian thực - Cập nhật tham số thời gian thực - Đăng ký cho một sự kiện
- Gọi ra hàm action()
- Trao đổi chính sách để cho phép các hoạt động - Cung cấp dữ liệu hỗ trợ tới các hệ thống phụ mạng
Khi MH nhận các yêu cầu từ hệ thống bên ngoài, đầu tiên nó phải xác nhận yêu cầu. Thông thường hệ thống bên ngoài muốn tìm hiểu về các điều kiện của hệ thống cục bộ trong bối cảnh của một số dịch vụ thông tin liên lạc. Trong trường hợp này, ứng dụng khách hàng ( tương ứng với các dịch vụ thông tin liên lạc ) cư trú tại hệ thống cục bộ sẽ duy trì một số chia sẻ bí mật với hệ thống bên ngoài. Ứng dụng khách và MH sau đó có thể hợp tác xác thực yêu cầu từ hệ thống bên ngoài ở một trong hai kịch bản sau:
Kịch bản #1: Máy khách thông báo cho MH ( thông qua một số API được xác định trước) liên quan đến thông tin để xác thực yêu cầu từ hệ thống bên ngoài ( địa chỉ, chia sẻ bí mật, cơ chế xác thực) và MH sẽ thực hiện xác thực một cách phù hợp. Trong kịch bản này, ưu tiên yêu cầu là bằng của MH hoặc được chỉ định một cách rõ ràng bởi người dùng thông qua giao diện hệ thống phụ thuộc vào nguồn gốc yêu cầu.
Kịch bản#2: Các ứng dụng máy khách xác thực yêu cầu của chính nó. Trong trường hợp này MH và ứng dụng máy khách được cấu hình sẵn với hai chiều API để các MH có thể vượt qua thông tin liên quan đến yêu cầu ứng dụng và nhận được quyết định của ứng dụng vào việc yêu cầu là xác thực hay là không. Trong kịch bản này, ưu tiên yêu cầu là bằng với ứng dụng máy khách.
Trong những kịch bản này, vai trò trong việc trao đổi giao thức xác thực được đảo ngược: hệ thống bên ngoài (máy chủ bình thường) hoạt động như máy khách hoặc người khởi tạo yêu cầu, trong khi ứng dụng máy khách/MH hoạt động như máy chủ của yêu cầu.
Ưu điểm của kịch bản đầu tiên là MH không phải gọi ứng dụng máy khách mỗi khi một yêu cầu đến MH, do đó tiết kiệm thời gian xử lý. Hơn nữa, chỉ có kịch bản đầu tiên cho phép giám sát từ xa trạng thái cục bộ mà không cần một agent nào ở hệ thống cục bộ. Ưu điểm của kịch bản thứ hai là ứng dụng máy khách có thể sử dụng lại bất kỳ liên kết bảo mật nào hiện có với máy chủ để xác thực yêu cầu. Tuy nhiên, kịch bản thứ hai có thể được thay thế bằng cách cho phép máy chủ truyền đạt các yêu cầu một cách trực tiếp với các ứng dụng máy khách, và ứng dụng máy khách sẽ chuyển tiếp yêu cầu tới InterLay. Hạn chế trong trường hợp này là ứng dụng máy khách phải xác thực cả hai và chuyển kết quả đến máy chủ bên ngoài, do đó sẽ làm tăng khối lượng công việc cho các nhà phát triển ứng dụng.
Nếu yêu cầu qua kiểm tra xác thực, MH sẽ phân tách nó để có được những hành động được yêu cầu, sau đó ánh xạ đến một trong bốn phương thức hỗ trợ ở bên trên, và sau đó gọi một trong hai Informer hoặc Enforcer để thực hiện các yêu cầu.
B- Truy vấn giá trị tham số thời gian thực.
Hệ thống bên ngoài có thể tạo một yêu cầu thông tin về một tham số thời gian thực của hệ thống phụ mạng, hoặc yêu cầu truy vấn để sửa đổi các tham số. Định dạng các thông điệp yêu cầu và trả lời sẽ phụ thuộc vào giao thức truyền thông được sử dụng, nhưng nó phải chứa ID của tham số liên quan và trong trường hợp một yêu cầu được cập nhật, nó cũng nên bao gồm giá trị mới được ấn định.
Bởi vì việc truy vấn là khó cho hệ thống bên ngoài để duy nhất một phiên Giao vận ra ngoài trong hệ thống bên trong, trao đổi giữa các máy chủ bên ngoài và PE chủ yếu liên quan đến các tham số của lớp mạng và liên kết dữ liệu. Tuy nhiên, trong trường hợp hệ thống bên ngoài cần chỉ ra một phiên giao vận, nó có thể sử dụng địa chỉ tuple ( địa chỉ IP và các cổng nguồn và đích) .
Khi yêu cầu đọc ra giá trị của một tham số, PE sẽ gọi hàm get_param() của Informer với ID của tham số như đâu vào, và chuyển tiếp các giá trị trả về lại bởi Informer tới hệ thống bên ngoài.
C- Cập nhật giá trị tham số thời gian thực.
Khi có yêu cầu cập nhật giá trị tham số thời gian thực, đầu tiên PE so sánh mức độ ưu tiên của đối tượng yêu cầu với độ ưu tiên của tham số. Cập nhật tham số được cho phép duy nhất nếu mức ưu tiên của đối tượng yêu cầu là bằng hoặc cao hơn của tham số. PE có thể thực hiện các hoạt động cho phép khác nữa nếu được cho là cần thiết cho các yêu cầu. Nếu yêu cầu được cho phép, PE sẽ gọi phương thức update() của Enforcer, với ID của tham số thời gian thực và giá trị mới để cập nhật như đầu vào, và Enforcer sẽ gọi phương thức update () tương ứng cho tham số.
D- Gọi một phương thức action()
Khi hệ thống bên ngoài muốn thực hiện một phương thức action() cụ thể, nó gửi một yêu cầu tới Message Handler, một yêu cầu gọi với ID của phương thức
action() . Đầu tiên PE so sánh mức ưu tiên của đối tượng yêu cầu với mức ưu tiên của
phương thức action(). Việc thực hiện yêu cầu được cho phép duy nhất nếu mức ưu tiên của đối tượng yêu cầu là bằng hoặc cao hơn của phương thức action() . PE có thể thực hiện bất kỳ hành động cho phép khác nữa nếu cho là cần thiết cho yêu cầu.
Nếu yêu cầu không được cho phép, nó sẽ bị loại bỏ. Cách khác, PE sẽ gọi phương thức execute() của Enforcer với ID của phương thức action() và tùy chọn đối số đầu vào cho phương thức để thực hiện.
E- Đăng ký cho một sự kiện.
Với tham số sự kiện, hệ thống bên ngoài sẽ gửi tới Message Handler một thông điệp yêu cầu đăng ký cùng với ID của sự kiện. Thông điệp có thể tùy chọn chứa một số thao tác thêm mong muốn các đối tượng InterLay thực hiện tại thời điểm xảy ra sự kiện. Các thao tác thêm được xác định trước trong Informer. PE sẽ thực hiện bất kỳ thao tác cho phép nào được cho là cần thiết. Nếu yêu cầu được cho phép, PE sẽ thông báo cho Informer đăng ký bằng cách gọi phương thức event_registration(), với các tham số đầu vào như sau:
- ID của sự kiện.
- Chuỗi đại diện cho địa chỉ của hệ thống bên ngoài
- Việc xử lý yêu cầu trong cấu trúc con trỏ tới hàm gọi lại send_event() từ Message Handler. Hàm send_event() cơ bản chứa các mã để thông báo tới hệ thống bên ngoài của sự kiện.
- ID của bất kỳ thao tác bổ sung được xác định trước mà hệ thống bên ngoài muốn hệ thống bên trong thực hiện tại thời điểm xảy ra sự kiện.
Khi sự kiện diễn ra, Informer sẽ gọi hàm send_event(), sử dụng ID sự kiện cũng như chuỗi địa chỉ để thông báo chính xác cho hệ thống bên ngoài sự xuất hiện của các ID sự kiện.
F- Yêu cầu thông tin từ hệ thống phụ mạng đến hệ thống bên ngoài
Các đối tượng giao thức trong hệ thống phụ mạng của hệ thống bên trong có thể sử dụng PE ( cụ thể là các dịch vụ của MH) để truy vấn thông tin từ các hệ thống bên ngoài để thực hiện tốt hơn công việc của mình. Trong trường hợp này, các máy chủ bên ngoài sẽ được cung cấp một tham số ID đặc biệt, và PE sẽ chỉ thao tác như một agent trung gian, gửi yêu cầu từ các đối tượng giao thức yêu cầu đến hệ thống bên ngoài và chuyển tiếp trả lời đến các đối tượng giao thức yêu cầu.
Các thông điệp yêu cầu và trả lời chứa các thông tin thông báo cho các hệ thống bên ngoài biết những thông tin nào đối tượng giao thức của hệ thống bên trong quan tâm. Cụ thể, thông điệp yêu cầu thường chứa ID tham số của máy chủ bên ngoài (sẽ được sử dụng bởi PE để tìm địa chỉ thực tế) và chỉ ra loại thông tin được yêu cầu. Thông điệp trả về chứa các tham chiếu đến các thông điệp yêu cầu để nhận biết các thông tin được trả lại. Hơn nữa, InterLay sẽ phải tìm đúng các đối tượng giao thức bên trong để gửi thông điệp trả về. Tuy nhiên, đây là một chức năng bổ sung, những chức năng này có thể được sử dụng bởi hệ thống mạng bên trong để yêu cầu và thực hiện các kịch bản nhận được bên ngoài.
3.3.2.2 PE và hệ thống bên trong.
Hệ thống bên trong bao gồm các hệ điều hành và các ứng dụng chạy trên nó. Bởi vì các ứng dụng người sử dụng cuối lưu trú trong không gian bộ nhớ khác nhau từ các đối tượng InterLay, nó sẽ tương tác với PE thông qua các hệ thống gọi của Service Access Point (cụ thể là SAP-1).
Mặt khác, các đối tượng giao thức lớp Giao vận và lớp thấp lưu trú trong cùng không gian hạt nhân như PE, chúng có thể yêu cầu trực tiếp tới bốn phương thức trợ giúp của PE.
PE nhận các yêu cầu từ các giao thức lớp ứng dụng và lớp thấp hơn đến giá trị cập nhật (i) của tham số thời gian thực, (ii) đăng ký cho một sự kiện, và (iii) gọi một phương thức action() và các thao tác này sẽ được nghiên cứu kỹ ở phần sau.
A-Cập nhật giá trị tham số thời gian thực.
Khi PE nhận một yêu cầu để thay đổi giá trị tham số thời gian thực, đầu tiên nó cho phép các yêu cầu sử dụng cơ chế ưu tiên bằng cách so sánh mức ưu tiên của đối tượng yêu cầu với mức ưu tiên của tham số. Yêu cầu cập nhật cho phép duy nhất nếu mức ưu tiên của đối tượng yêu cầu là bằng hoặc cao hơn của tham số. Trong trường hợp này PE sẽ gọi phương thức update() của Enforcer, với ID của tham số thời gian thực và giá trị mới được cập nhật như đầu vào, và Enforcer sẽ gọi phương thức set()
thích hợp cho tham số. Mặt khác, nếu yêu cầu không được cho phép thì nó được bỏ đi.
B- Đăng ký cho một sự kiện.
Khi PE nhận được yêu cầu đăng ký cho một sự kiện với ID của nó, PE sẽ thực hiện sẽ thực hiện các hoạt động cho phép được cho là cần thiết. Nếu yêu cầu được cho phép, PE sẽ thông báo tới Informer bởi phương thức event_registration() để đăng ký yêu cầu vào danh sách sự kiện.
Các yêu cầu từ ứng dụng người dùng, PE gồm việc gọi phương thức
event_registration() với các đối số đầu vào sau đây:
- ID của sự kiện
- Bất kỳ thông tin nào giúp định vị chủ sự kiện (không bắt buộc) - ID quá trình của ứng dụng
- ID của bất kỳ hoạt động thêm được xác định trước rằng các máy chủ bên ngoài muốn hệ thống bên trong thực hiện vào thời điểm sự kiện xảy ra. - Một giá trị cho Enforcer biết rằng yêu cầu này đến từ ứng dụng người dùng. Nếu yêu cầu đến từ các hệ thống phụ mạng, PE gồm việc gọi phương thức
event_registration() với các đối số đầu vào sau đây:
- ID của sự kiện
- Bất kỳ thông tin nào giúp định vị các đối tượng chủ của sự kiện (không bắt buộc)
- Con trỏ đến hàm callback để xử lý sự kiện
- ID của bất kỳ hoạt động thêm được xác định trước rằng các máy chủ bên ngoài muốn hệ thống bên trong thực hiện vào thời điểm xảy ra sự kiện. - Một giá trị cho Enforcer biết rằng các yêu cầu đến từ hệ thống phụ mạng.