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