jABC. a framework for process modeling



jABC is a platform independent, graphical, component based, modeling tool. The core of the system is the jABC Framework. All essential features of the system are part of this Java framework. The complete system consist of the following elements:


jABC is the editor for the graphical-based development method called Lightweight Process Coordination. After a short training a user can model a system from existing components on his own with the jABC. Using the graphical input of the jABC is very easy especially for the so called application expert which means a user with a special know-how on a specific problem or domain but without classical programming knowledge. The editor is fitted with a plugin interface. Plugins can add new menu entries, popup menus or inspector panes. Main function of a plugin is to add semantics to a jABC graph model. A model can be interpreted as a controlflow graph, callgraph or totally different depending on the installed plugins. The editor consists of the following parts: The components used within jABC are called SIBs (Service Independent Building Blocks). The SIBs are presented in a structured view to the user called the SIB taxonomy. SIB represent the vertices of the jABC graph model. The directed edges are called branches. Multiple branches can be attached to a single edge to reduce parallel edges.


The implementation of a SIB component for the system is the task of the SIB expert. The collection of the SIB components is fundamental for the jABC system. On the other hand this is the essential difference to all previous versions of ABC systems. jABC consolidates the different computer languages for the description of a component in older ABC version to a single language: Java! In jABC a SIB is a simple Java class implementing a quite simple interface. The class file summarise all abstract implementions of a component including the real world implementation for this SIB. The task of the SIB expert is to implement the SIB Java classes. Technically every compiler can be used to produce these Java classes. The selection of a development environment can be freely done by each SIB expert on his own. It is not necessary that all SIB experts use the same development environment. With IDEs like Eclipse a close integration with the jABC guarantees a quick and simple creation of new modeling components.


The central communication server in the jABC system is any Revision Control System like CVS or SVN. The RCS server supplies all elements of a project to the different participants of a project. The rights and role management of the RCS system controls the availability of different files to the project users. Additionally any file needed for the project (but not especially for the jABC) can and should be stored in the RCS Only by maintaining such a centralized versioning system guarantees to extract consistent snapshots of older versions of a project or model. In principle almost every versioning system can be used as the central communication server in the jABC system. We currently use Subversion because it is widely known and it is supported by the other tools of the project like Netbeans or Eclipse.