Lists Home |
Date Index |
I invite your feedback on second version of COLAG. This includes major
changes and there is a new document containing examples, illustrating all
aspects of the technology.
COLAG (Conversation Oriented Learning And Growing software) is an XML based
environment for writing software with the unique feature that the execution
logic (behavior) of the running COLAG program can be dynamically changed at
runtime using XML based messages without any need for re-compilation. COLAG
software is a collection of XML documents, where each document (called
'specification file') specifies the data and behavior of an entity (class
in OOLanguage). An entity instance (similar to 'object') is represented by
an XML element called its 'instance element', and its data is represented
by an XML tree called 'instance tree'. COLAG introduces a new concept of
'global data tree', which refers to a run-time XML tree that will contain
the instance trees of the instances created at run-time, i.e. instance
element of an instance will be added to the global tree after its creation.
The equivalent of a method in COLAG is called a 'conversation', but unlike
method, a conversation is capable of 'self-instantiation'. A conversation
will specify via XPath expression, the nodes in the global tree whose
update will instantiate it. A conversation will execute by constructing an
XML tree, called its 'conversation tree', and update the global tree by
transferring the content from the conversation tree to the global tree,
which might start other conversations and so on. COLAG also defines
concept of a 'message conversation, which will start in response to receipt
of an appropriate external message, as given by its start condition. An XML
based message format is also defined in COLAG that can be used to interact
with instances in a running COLAG program by instantiating their message
conversations. This can also be used to dynamically introduce new
conversations or modify/delete existing conversations of the instances,
there by changing the program logic.
Please refer to the Primer document at colag.com for complete description
of the technology. Any comments are welcome.