[LWN Logo]
[LWN.net]
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