Distributed environment

Graham Dumpleton grahamd at dscpl.com.au
Sat Apr 5 19:46:30 EST 2003


Gerrit van Dyk <gerritvd at decillion.net> wrote in message news:<3e8d1edc$0$235 at hades.is.co.za>...
> Hi all,
> 
> I am in the process of designing a system that will need to use a 
> distributed environment. 
> 
> The system will consist of multiple (thin) clients += 100-200 that will need 
> to connect to a central server. The client applications is not 
> browser-based as they need to do a lot of data manipulation, draw charts, 
> run scenarios etc. The idea is to do most of the processing on servers 
> except for the GUI stuff. 
> 
> Several different services will be registered with the central server to 
> supply different types of services (rate feeds, risk analysis, forecasting 
> etc). 
> 
> The central server(HUB) needs to control all the services and clients. When 
> a request comes in from a client, the HUB needs to distribute this request 
> to the correct service. Multiple services could be registered for the same 
> type of service. This will enable multiple clients to use the same type of 
> service concurrently. The services could also make use of relational 
> databases or other types of data stores. The client applications will have 
> no concept of data storage and will have no direct access to the databases.
> 
> In some cases, some of the services will be needing the services of other 
> services, in essence also becoming clients for the other services.
> 
> The central server (system) needs to keep track of all the clients and their 
> requests. This is to ensure that if a machine or service fails the system 
> should be able to recover without affecting the clients at all. The system 
> needs to be up 24/7/52.
> 
> These services will also be distributed across multiple machines for load 
> balancing.
> 
> My questions are.
> 
> Is this feasable? 
> Any pointers or pitfalls I might step in?
> Which environments would you recommend I should look at, for doing this type 
> of thing?

You might consider looking at OSE (http://ose.sourceforge.net). It has
all the components which you would require for making such a system.
These include a distributed service agent model with presence so you
can query what services exist, when they come into existance and when
they dissappear. Combined with this is a request/reply framework so
that service agents can communicate with each other. Each service agent
also has a means of publishing reports about it state, what it is doing and
for making information generally available. The request/reply framework
is also accessible using gateways from XML-RPC (and SOAP if you really
must). The core of OSE is C++ but provides Python wrappers. You can
write code exclusively in Python, or you can write services in C++ as well.

You can find a 120 page manual for using the Python wrappers for OSE
on the web site, just follow the "Python Manual" link.




More information about the Python-list mailing list