At the french research institutes CEA-Grenoble (Commissariat à l'Energie
Atomique de Grenoble), and ILL (Institut Laue Langevin), which is the biggest neutrons reactor for scientific experiments, we use big instruments, called diffractometers. These instruments have several motors, encoders and I/O to move around the
neutrons beam, and to control the diffraction direction. All these motors
are controled by a VME crate, itself driven by a workstation, running the
scientist software. This software is responsible for transforming energy,
wave length, and all physical values into motor positions, power supply
values and so, and for sending to the VME crate (through ethernet). We use
Linux for both embedded and workstation systems, and mainly python, even on
the embbeded side (except for low level drivers, written in C).
Pyro is the central communication agent. It is used between the VME crate
and the workstation, and also inside the workstation, because the software
is split in client/server. A client is connected to the main Pyro server,
which in turn uses the embedded Pyro server. We also intensively use pyro
to broadcast datas, logs and results, through the Event Server.
This way, we can have several clients controling the main server at the
same time. For example, the scientists can launch a job file from its
office, continue to see the output at home, and even take control over the
previous task. All commands are asynchronous, i.e. they are sent to the
server, stored in a queue, and then executed by a scheduler. Once the job
is sent (which take a few seconds), the client is not needed any longer.
So, Pyro is really the heart of our software. It is so simple to use, that
we would be crazy to choose another solution !
Contact:
Frédéric Mantegazza
One of the largest banks in Spain; distributed credit system (sorry, by their request, no link)
Pyro is at the center of a credit derivatives distributed sytem (in use at one of the largest banks in Spain) consisting of a dozen financial components running on a Sun Enterprise 10000 server, and about twenty desktop workstations. Pyro connects the financial components on the servers with each other and also with the desktop applications on the workstations. Pyro is also used to connect calculation worksheets in Excel to the servers, using a COM proxy written in Python that makes it possible to speak PYRO from Excel macro's. This is a complex project, involving 150000 lines of code in C++, Python and VB, and Pyro is the glue that holds it all together.
They have chosen Pyro because of it's performance (it beats comparable solutions in terms of speed and ease-of-use), its open-source character (which helps in debugging), and the rapid development that Pyro allows them to do (new server methods are available to everyone straight away, no need for proxies, compilation, ...) Pyro's Event Server is used to publisch financial data and it's been running stable for months without problems.
Carlos Cabrera: "I love Pyro's simple design, the nice documentation and the examples. Sometimes configuring commercial middleware can be overwhelming. Pyro makes things easy, and it works out of the box. It has been a great help."
Contact:
Carlos Cabrera
Racemi's product DynaCenter manages server images, and manages the systems that use the images. They use Pyro as the core for their distributed service agent architecture. All of the load management and server image management is handled via classes that are running in a Pyro server. Pyro allows them to easily implement fault tolerance by having multiple servers available in the event that one fails to respond. It also allows them to implement their load management architecture in a platform independent way via Python, given that Pyro is pure Python.
Contact:
Scott Leerssen
Cenix is a biotech company located in Dresden, Germany. They have developed a Laboratory
Information Management System (LIMS) over the last two years, which they use to collect data from microscopic experiments
in the lab, and to put everything into a big database. The main goal is to identify genes related in cell division,
so that they can inhibit them without having heavy side-effects for the rest of the organism. In the system Pyro
is used to connect clients on more and more workstations (macs, linux, windows machines) to a central server. They've
developed a library on top of Pyro with very high-level objects and factories for remote data access with focus on
high availability. It really works fine, and especially the simplicity and elegance of Pyro was very convincing for
them.
Contact:
Oliver Gathmann
Pyro also played a key infrastructure role in a prototype system for the processing of GOES-12 SXI (Solar X-ray Imager) data which is freely available to the public. GOES-12 is a satellite in orbit around the earth. The GOES-12 satellite has a camera that photographs the Sun in the X-ray part of the spectrum. As images are captured by the satellite camera, they are relayed to an antenna. The unprocessed satellite images are then processed in various ways, archived, and made accessible on two web sites in as close to real-time as possible (within one minute of receipt from the satellite). Some components of this processing/archiving/dissemination system are written in Python. Each of these Python components is a separate process. Pyro provided the communication mechanism for these other (distributed) components which are producers and/or consumers of Pyro events (e.g., the arrival of new data). Pyro was not used to transport products (which typically range from 0.5 mb to 1 mb), primarily because some non-Python components are still file-based. The actual system is now moved to Spread, because of high performance and multi-language requirements.
Contact:
Jim Vickroy
Logilab is also using Pyro for several projects. It is a start-up company based in Paris (France), specialized in the field of artificial intelligence and the implementation of solutions based on intelligent agents. The first product is Narval, a language and a framework for developing intelligent personal assistants. You can view it as a macro language where you build your program by assembling blocks graphically. Pyro is used in 2 ways in Narval: communication between the process interpreter and the editor, and communication between two interpreters (for instance to negotiate a time of an appointment). A second project is IVAN, which is a natural language processing tool written in Python. It is made of several components, dedicated to a specific task (syntactical analysis, grammatical analysis, semantical analysis, answer generation), which can be executed either in the same memory space or distributed among several nodes for scalability. When the components are distributed, we use Pyro for remote method invocation. They have chosen Pyro because it is faster than other RPC mechanisms such as XML-RPC, has a naming service, and is easier to use than CORBA.
Contact:
Alexandre Fayolle
Pyro used for parallel computing
(sorry, no link) David Beach used Pyro to write a solution to a distributed parallel knapsack solver for a graduate-level CS class (they gave him an A), and he used Pyro to write a prototype showing how our software at work might be parallelized across a cluster. David writes that he doesn't know if he'll every be able to get them to adopt python, but he's always trying
. Since everything David's used Pyro for so far has been distributed parallel applications, he doesn't exactly fall into the "typical" category of users using Pyro to create network services.
Contact:
David Beach
The Vision Egg is an open-source library for generating visual stimuli useful in the context of visual neuroscience experiments. In such a situation, it is often convenient to run a computer display in full-screen mode while controlling stimuli from a remote computer. Pyro is the means by which this remote control is achieved. The Vision Egg is written in Python and draws stimuli through the use of OpenGL.
Contact:
Andrew Straw
Metro Information Concepts (Norway) is a company which primarily do IT outsourcing for small/medium sized companies. They have developed a framework called MetroCF which is capable of diagnosing, updating and configuring large quantities of unix/linux servers, windows servers and windows clients. Basically the system has 3 parts:
1) A central database containing all relevant information, including system status of all machines.
2) A central daemon, which reads and writes to the database.
3) Several field nodes which push and pull information to the central daemon.
Once data is changed in the database, the central daemon uses Pyro to distribute the changes to the relevant machines. With this approach, we can easily control lots of computers through a single database. Pyro was chosen as the underlying protocol due to its openness, functionality and stability.
Contact:
Johan Fredrik Øhman
Microshare's goal is to assemble, using Open Source components, a full featured accounting and business information management system targeted at small to medium enterprise. They use Pyro as a bidirectional communications layer between a user interface server and a universal client application. The server and client are both open source and can be used in almost any cross platform application. They wrote that they couldn't have come this far so quickly without Pyro.
Contact:
Uwe Peter Feldtmann
Net-Labs is still working on their software project and are using Pyro as network transport because they say it's much easier to use than omniORB and faster than XML-based Systems. They've done several prototypes using Pyro (Zope3 Pyro Server/Client, TransactionMonitor) - all of them are mostly for research and not yet for production. The current project is called NetLabsLibs that should help with rapid application for networked applications including Gui / BusinessObjects / Workflow development. Pyro will be one of the available Transports.
Contact:
Ulrich Eck
SaberNet DCS is an open source labor data collection system, designed to allow organizations to rapidly capture their
labor data in real-time. Reporting and analyzing this data provides you with real visibility into the profitability
of individual jobs, projects, employees and departments. Establishing reliable labor efficiencies enables you to
more accurately estimate jobs and uncover opportunities.
Pyro is used for communication between the clients and server. The event server keeps all of the clients in sync
and notify the clients of new labor transactions and database changes.
Contact:
Saberlogic
LLC
Virtual server monitor is a monitoring tool for Linux-VServer, the most efficient and lightweight virtualization technology available for Linux. Virtual server monitor (or vsmon) is developped by Révolution Linux, a company specialized in large-scale deployment of Linux infrastructures. The tool gives system administrator a global view of all vservers running on his park.
Contact:
Vincent Vinet