Xholon Features

Xholon Features

Xholon features include:


  • UML 2.0 class, component and composite structure models, including structured classifiers, ports, parts, roles, connectors, signals, messages, and required and provided interfaces.

  • UML 2.0 behavior and finite state machine models, including simple states, composite states, orthogonal states, final states, pseudostates (initial, choice, junction, fork, join, entry point, exit point, terminate), regions, transitions, triggers, guards, events, completion events, one-time and repetitive timer events, submachine states, activities on transitions, do activities, entry and exit activities, and Java transition code.

  • SysML blocks, internal block diagrams, and most other features that SysML inherits from UML 2.

  • Optionally model directly in XML and Java.

  • Over 10 MagicDraw UML sample models, that can be viewed using the free MagicDraw reader, or edited using the MagicDraw commercial version.

  • One Poseidon UML sample model.

  • Agent based models and turtle geometry using a NetLogo-like syntax.

  • 1D cellular automata.

  • Membrane computing or p-systems, including super cells, environment, membranes, regions, objects, rule sets, and rules.

  • Numerous other sample models from a wide range of domains, including biology, biochemistry, statistical modeling, controllers, and other embedded systems.

  • Initial support for dynamical systems and system dynamics models, with Euler-type numerical integration.

  • Rectangular Moore and Van Neumann neighborhoods, hexagonal neighborhoods, and various regular graphs as sibling neighborhoods.

  • Sample DTDs for validation of XML files when editing these using third-party tools.

  • Continuous Time Recurrent Neural Networks (CTRNN).

  • XInclude to allow nested XML files to be loaded at runtime.

  • Several types of ports, including direct one-way and two-way references between objects, and indirect references through port objects.

  • Asynchronous messaging and synchronous function calls between port-connected objects.

  • An application can contain any number of grids, unlike many agent-based modeling systems.

  • Creation of grid agent-based models in MagicDraw UML.

  • Active objects, passive objects, containers, and any combination of these three.

  • Aggregators that can sum up the number of instances of other objects.

  • Observer pattern.

  • Initial support for SCXML state machines.

  • Real-Time Object-Oriented Modeling (ROOM), as implemented in IBM Rational Rose Real-Time and ObjecTime Developer.


  • Transforms MagicDraw and Poseidon UML models into XML structure and executable Java code, including classes, inheritance hierarchies, composite structure hierarchies, Java attributes and operations, interactions through ports, and state machines.

  • XSLT for transformation from UML models to Xholon XML and Java.

  • Integrates with ECJ, an evolutionary computation tool, to evolve usable behaviors using genetic programming.

  • Transforms System Biology Markup Language (SBML) models into XML and executable code, including compartments, species, functions, MathML, reactions, and rules.

  • Automatically creates new projects from templates, complete with all XML and Java files, ready for execution and ready for addition of application specific details.

Simulation and Execution

  • Executes any model that can be specified in the Xholon Java + XML format, and any model that can be transformed into that format.

  • Runs all sample applications from either the Xholon GUI, or from the Linux or DOS command line.

  • Is compatible with both the Java Standard Edition (1.4.2 and higher) and Java Micro Edition (MIDP) libraries.

  • Enables each XML-specified class to indicate which Java class implements it.

  • Makes flexible use of XPath 1.0 to locate potential interaction partners, and internally uses the JAXP standard API.

  • Has a basic runtime GUI with model, view and control aspects, that can Start, Pause/unPause, Step, Stop, and Refresh the view of the currently running Xholon application.

  • Shows detailed runtime information about each object, by clicking on nodes in the GUI tree.

  • Uses either of two small footprint XML pull parsers, one for JavaSE systems and the other for JavaME.

  • Runs under Linux and Windows, and should run under other operating systems that support Java.

  • Has numerous startup parameters, configurable as XML.

  • Displays 2D graphical grids for models that require these.

  • Aligns itself with the XML DOM Node interface and DOM Java binding, when manipulating its internal tree structure.

  • Includes a runtime framework that handles most runtime details, allowing developers to concentrate on the domain they are modeling.

  • Allows overriding of most functionality in the framework.

  • Initializes values of scalar and array variables from XML files, on a class or individual object basis.

Runtime Viewers

  • Creates gnuplot line charting scripts, and statistical data files in csv format that can be charted by gnuplot or most spreadsheet programs.

  • Creates JFreeChart line charts.

  • Creates JUNG network and tree graphs.

  • Captures object interactions at runtime, and creates UML 2.0 sequence diagrams using UMLGraph and plotutils.

  • Saves complete structural snapshots of an executing model, at regular intervals, or at user's request, in either XML or YAML format.

  • Saves models in VRML format, for 3D display in third-party browsers.

  • Displays user written help information on each application, in a Web browser, selectable from the GUI menu.

  • Displays basic "getting started" information when the GUI starts.