From: dscpl@dscpl.com.au (Dumpleton Software Consulting PL) To: python-announce-list@python.org Subject: ANN: OSE 7.0b8 now available. Date: Sun, 22 Jul 2001 01:35:28 -0600 (MDT) Cc: grahamd@dscpl.com.au OSE 7.0b8 is now available. At its core, OSE is a C++ class library for general purpose programming, but also includes support for building event driven systems and distributed applications using a request/reply and publish/subscribe style service agent framework. The ability to interact with an application is facilitated using a HTTP servlet framework and RPC over HTTP interfaces. In short, OSE could be said to take technology from message oriented middleware, application server and web service technology and wraps it all into one. Although C++ at its core, OSE also provides wrappers for the Python programming language. This mix means that OSE serves as a useful platform for building standalone or distributed applications in Python, C++ or a mix of both. Its support of both XML-RPC and SOAP protocols through a single service interface makes it ideal for building web based services. OSE has included wrappers for Python for over a year, but this is the first time it has been announced to the Python community as time has been allowed for the interfaces to mature. A significant amount of documentation (approx 70 pages) on the Python interfaces has also now been completed. Further information on OSE and the software itself, can be found at: http://ose.sourceforge.net OSE is released under the QPL. This release is the culmination of over 10 years of development, OSE first being available over the Internet in 1993. As an illustration of how web services can be quickly constructed using OSE, here is a simple web service providing the current local time of the host machine. import netsvc import signal class Service(netsvc.Service): def __init__(self,name="clock"): netsvc.Service.__init__(self,name) self.joinGroup("web-services") self.exportMethod(self.time) def time(self): return netsvc.DateTime() dispatcher = netsvc.Dispatcher() dispatcher.monitor(signal.SIGINT) daemon = netsvc.HttpDaemon(8000) gateway = netsvc.RpcGateway("web-services") daemon.attach("/",gateway) daemon.start() dispatcher.run() Additional examples can be found on the OSE web site. The modular manner in which services can be created lends itself to the development of a library of services which can be reused in different applications. It is hoped that over time such a library may be developed allowing for plug and play style application development with quick turn around times. Enjoy. :-) -- Graham Dumpleton (grahamd@dscpl.com.au) -- http://mail.python.org/mailman/listinfo/python-announce-list