Mellisa | Sea
In a few words, SEA separated into two level (low and high). At the low level, SEA use libvdb library which provide API to IPC, it's need to communicate devices interrogation task and control system, or some another applications. At the high level, SEA will use XML-RPC or something like, it's needed to communicate control system and HMI, database logger, alarms, and other system components. Low level has a good reliability, but not good scalability (it is platform dependend), although it fast. High level has a very good scalability, and platform independend, but not so reliability and fast.
"Mellisa" - it is a set of different tools for creating industrial automation applications and human-machine interface. In terminology of SEA Mellisa work at high level, it make Mellisa scalability and platform independed. About speed...on my Duron-700,128Mb with all aplications running, CPU loaded around 2-3%. Mellisa based on free distribute software, like Python, PostgreSQL, Zope, e.t.c. "Mellisa" written in Python, and use XML-RPC technology (to provide network distributed components), but "Mellisa " could be extended using C,C++ language, and XML-RPC could be replaced by Pyro or Corba or something else. For now "Mellisa" have only "mellisa_xmlrpc" module which provide interface to XML-RPC using py-xmlrpc.
- For now "Mellisa" include these components:
- Server based on XML-RPC
- PID Regulator
- Exponential Filter
- Tank model
- Simple device emulator
- Set of different graphical components useful for constructing HMI
VDB - variables data base. Provide API for working with distributed variables and their values via IPC (Unix SysV). Main minuses of this techology, it doesn't support network. VDB suitable only for local ( one machine ) data exchange. Main VDB pluses - it is very fast and can work with big information volume.