Python Wrappers
The Python wrappers provided with OSE encapsulate functionality provided by parts of the C++ class library component of OSE. Those parts of the C++ class library for which Python wrappers are provided are the logging system, the real time events system, the service agent framework, the HTTP servlet framework and the server side gateways for the NET-RPC, XML-RPC and JSON-RPC protocols. An additional set of modules provide pure Python implementations of client side proxies for the NET-RPC and XML-RPC protocols.
In all, the Python wrappers provide an interface to the functionality of the OSE C++ class library which is generally easier to use than if the C++ class library were used directly and because interfaces are provided for the service agent framework in both C++ and Python, an application may be spread across multiple processes or hosts, and consist of processes written using either C++ or Python code. This makes the Python wrappers ideal for building up the overall structure of a distributed system, with C++ code being used only when necessary for performance reasons or where it would be difficult to interface with third party software using Python.
Documentation
- License under which the Python wrappers provided with OSE may be used.
- Describes the message logging facility, including how to direct messages to a specific log channel, how to log messages to a file or to process them within the actual application.
- Describes the interface to the configuration database, user environment and other process information.
- Describes the interface to the event system, how to schedule jobs and setup callbacks in response to real time events such as timers, signals and socket activity.
- Describes how to create service agents, add them to groups, subscribe to announcements regarding specific services or membership of specific service groups.
- Describes how to subscribe to reports published by specific services. Ie., describes the publish/subscribe functionality provided by the service agent framework.
- Describes how to send requests to remote or local service agents and how to handle any response or error which results. Ie., describes the messaging or request/reply functionality of the service agent framework.
- Describes how to connect up processes to form a distributed application, including a decentralised message exchange and exchange groups.
- Describes the Python types which can be used in messages and how this can be extended to incorporate new scalar data types.
- Describes the HTTP daemon and servlet framework, including the predefined servlets and how to create customised HTTP server objects.
- Describes how to create new servlet objects including how to handle forms, client congestion and delayed responses.
- Describes how to create servlet plugins and how to use the Python plugin to dynamically load servlets at runtime from the file system.
- Describes the RPC over HTTP interfaces into the service agent framework, including support for NET-RPC, XML-RPC and JSON-RPC protocols.
