![]() |
| ![]() |
| ![]() |
|
The All+El+WebEl software project home
2006-06-14: The WebEl system is going Open Source ! The SourceForge WebEl project page with user facilities complements this main WebEl project site. Stay tuned for downloads, Javadoc API, and UML models !
Port-based systems engineering for Java and UML2.0The WebEl system employs port-based systems engineering and signal processing idioms under model-driven development with UML2.0 to provide reflectively encapsulated and distributed control, visualisation, sonification, animation, and web re-presentation of models. The system is documented throughout with detailed and educational exported Unified Modelling Language (UML)TM diagrams embedded in the Javadoc API, and is consistently model-driven, employing advanced systems-engineering techniques, design patterns, and component-based software engineering.
It consists of a common All+El package - influenced strongly by the Unified Modelling Language (UML)TM version 2.0, and popular Design Patterns - combined with a 4-layer <<boundary>> - <<control>> - <<entity>> - <<database>> architecture, and an extending signal package for signal processing via composite Processors with ports, as well as developmental import/export facilities for UML/XMI, native XML i/o, and other utility packages.
Throughout the system, object-oriented reuse is achieved through "horizontal" distribution of aggregated <<ports>> (as <<inner>> classes or <<mixin>> classes), which act on behalf of their "parent" classes, which act as the <<manager>> or <<engine>> of the wrapping component with ports. Services can ONLY be accessed via ports, which are accessed via the <<meta>>-interface of each component to trigger lazy instantiation of port implementors, which provide <<export>>ed interfaces that act strictly on behalf of their parent classes. This port-based systems engineering strategy addresses the "method pollution" that direct "vertical" inheritance causes, and also manages multi-inheritance issues with ease using <<mixin>> classes. Further, since services are only ever accessed via ports, operations are presented cleanly to developers in prompting interactive IDEs, thus the ports act as menus for selecting quarantined functionality. UML2.0 graphical representation of El Java components with portsThe port-based systems engineering strategy can be represented graphically as UML2.x components with ports engineered consistently against Java source and thus the "holon" nature of UML2.x components can be exploited directly to realise in software the component engineering that has long been natural to systems engineers of electronic and mechatronic systems. The WebEl system is designed from the outset to interact with UML tools, and in particular with the Java-based MagicDraw UMLTM system, its Open API, and its XMI project files. Domain models and entity instances can be modelled in Magicdraw and then exported to the All+El system via XMI. And a degree of "Executable UML" has already been achieved via the system. (The systematic coding style throughout the system reflects the intention that it become increasingly a target for a form of "Executable UML".)
Q: Can I use the system with other UML tools (mainstream or otherwise) ? Together, the above features mean that one can realise systems engineering modelling of composite process networks in tools like MagicDraw UMLTM using UML2.0 components with ports and provided/required interfaces (in combination with <<meta>>-interfaces directly from the components). Combining this system engineering design idiom with a multi-representational, multi-sensual Java implementation engine is the primary objective of the All+El system. Thus - in combination with the All+El system - UML2.x tools become "patch editors" for Java ! And - in combination with the WebEl and Java/Java3D/JSyn user interface packages - clients can interact using port-based encapsulation with models generated directly from UML2.x tools ! (This approach is strongly influenced by Darren Kelly's experience with systems engineering tools like Matlab/SimuLink, LabView, and animation tools employing channel operator "patch" systems.) It means UML2.x compliant tools become animation (Java3D) and sonification (JSyn) modelling and synthesis network tools.
Q: Can I use this system without a UML tool ?
Q: Can I read the docs without knowing UML ? Overview of the top-level All+El packagescommonThe <<universal>> Publisher/All superclass pair provides for common publishing (notification) of property changes, property subscriber registration, uniform logging, debugging, XML and i/o, visitor management, and other common services, via ports that act on behalf of their parent. The El components encapsulate the UML2.0 metamodel elements as ports, and provide a uniform interface for hierarchical representation of composed and shared aggregations of elements. The El subsystem thus distributes the "vertical" UML2.0 metamodel "horizontally" as inherited ports. The El component hierarchy effectively implements the UML2.0 metamodel, however the real work is done by aggregated ports that correspond to metamodel elements.
The architectural layers<<boundary>>A range of user interface components for interactive control (Java Swing), visualisation (Java2D), animation (Java3D), sonification (JSyn, and dynamic web serving (XML/XSL+JSF) are under active development (and many are already used in a number of projects). The UI components are organised in technology partition packages. <<control>>A primary application of the All+El system is the development of UML-based instrument control systems. For applications such as scientific control systems (such as particle accelerators, neutron bean instruments,telescope control systems), control of entity beans can be "redirected" viaa low-level networked instrument control system, to impose strong control.For applications such as haptic control systems more direct controlof encapsulated models of synthesis networks can be employed, while still taking advantage of the multi-casting notification system. <<entity>>JavaBean entities are introspectively encapsulated as ElEntity components,being an extension of the UML2.0 InstanceSpecification metamodel element. The entity package extends the UML2.0 metamodel Property element to include explicit ElAttribute and ElReference elements, and also extends the UML2.0 Slot element to include"operation instance" slots as actions that can be invoked on encapsulated representations of entities in user interface components. Underlying "entity bean" structures need not know about the El encapsulators, or even about the common.Publisher notification system. The valuesof instances of an ElEntityProperty are carried by ElEntitySlot components, which can be configured with direct or ElControlledValue value specifiersfor mitigated control via a strong control layer. Each ElControlledValuehandles notifications ON BEHALF of the slot (property instance) of the entitybean it controls. <<database>>Hibernate is being adopted for the object-relational persistence integration layer and query system. Additional packages and utilitiessignalComponents of the signal package afford realisation of signal processing through explicit signal ports handling parameter (var) ports and connectable input and output ports. Java Processor components can implement their own signal processing, can compose sub-processors, or wrap processes realised in other languages via the Java Native Interface (JNI). ElProcessor components can encapsulate Processor components introspectively, thus adapting them to the El system for presentation and interaction through the <<boundary>> layer.
By design, the system DOES NOT provide a process patch editor; instead, Java-friendly UML2.0 tools (like Magicdraw UML) are to be used as patch editors for the system ! XSL stylesheets and MagicDraw UMLTM Open API plugins are being developed to extract process synthesis models from XMI project files and in-memory UML models respectively. For an example of Synthesis Network modelling in MagicDraw UMLTM please visit The Drancing UML model zone. HistoryThe WebEl system evolved over ten years as the synthesis of a number of Darren Kelly's project as physicist, IT consultant, and inventor, including:
|