["Code once and run anywhere"]The PyAALib project is a Python implementation of
the Asynchronous Action Framework based in Pure
Object Oriented Concepts to develop
Asynchronous Massive Parallel Applications.
A Massive Parallel Application can be entirely designed and developed
based on dynamic multithread PLUGINS.
Any code can be used as a Dynamic Plugin.
[Why?]“We want to code easily asynchronous actions to do a
lot of things together and independently”
[Where?]The same code source runs on Python or Java/Jython.
It can be deployed in Java environments without Python installed.
[How? PyAALib-JyAAlib]The AALib Framework was implemented using Python in the basic layer,
it is called PyAALib, and it is designed to be natively
compiled to Java using Jython – JyAALib
[Full Compatible]Python 2.2 and later
JAVA 6.0 and later
[AALib - PyAALib - JyAALib::Overview]The AALib framework is a well tested open source framework
to be used on RAID development of asynchronous multi-thread applications.
It implements the basic plugin architecture to be used with the special
PyAALib action objects and standard python classes. This mechanism allows
the rapid development of dynamic and modular applications to facilitate the
continuous improvement. Modern software engineering techniques based on
unittest are used to guarantee the quality of each part of the code during
the development cycle. The python library version of the AALib is full
compatible with all standard frameworks using C, C++ and Python.
[Basic Application Framework skeleton]A basic application class defines a “skeleton” to
RAID (“Rapid Application Development and Deployment”).
It manages all logs, resources and actions creating and connecting
all code with the heterogeneous operational system. All signals and
events are controlled and monitored by the main code inspector.
The main architecture to generate and control the multi-thread
actions is encapsulated on the framework and its basic classes
to simplify the code development;
[Plugin Framework]The plugin factory pattern is extensively used on the basic
application skeleton to implement the code generation and object
management during the runtime. It creates and manages the mechanism
to load objects and data dynamically;
[XML-RPC server plugin architecture]An extension of the Basic Application skeleton implements a complete
internet server/client architecture based on the XML-RPC standard
(“Remote Procedure Call based on XML file exchange”).
It is created and configured by the multi-thread plugin factory implemented
by the library. A special mechanism is used to exchange the runtime
objects natively and transparently to the user. It is a high level
interface to manage the complexity of the object translation to XML
definition and its managing;
[Basic Callback System]It allows the connection of any code from any library and framework
in synchronous and asynchronous mode. The callback design pattern is
implemented in the kernel of the main classes of the framework.
[Data Binding – XML Scheme object construction]The data binding standard based on XML scheme is natively implemented
in the framework. It allows the generation and compilation of native code
on runtime. It is used on the plugin framework to generate the in/out
classes to manage any kind of data from/to xml files;
[SubProcess Management]The framework implements plugin and specialized code to manage
external process based on multi-thread actions.