Architecture diagram

The following diagram shows the overall architecture of the product and how the different parts interact depending on the use case:
The
data store use case relies on the Diagram widget (ibm_ilog.diagram.widget.Diagram).
The developer creates a Diagram widget in HTML markup. A dojo data
store provides data to the widget to display the graph. The developer
specifies the store through the nodesStore attribute as well as the
query to be used to fetch the items from the store. The widget then
creates the graph and populates it automatically. The Diagram widget
accepts two data stores: the nodes data store and the links data store.
The nodes data store (nodesStore property) is mandatory and provides
data to be represented as Nodes. The links data store (linksStore
property) is optional and provides data to be represented as Links.
If no link data store is provided, links are created implicitly from
the childBinding, parentBinding, predecessorsBinding, and successorsBinding
properties of the widget. These properties specify the fields in the
data item that define the relationships between the nodes. For each
item in the nodes store, an ibm_ilog.diagram.Node instance is created
and added to the internal graph. Nodes are created from a specified
node template (or from a callback in case several templates are used).
When the nodes have been created, the node relationships are resolved
according to the binding properties mentioned previously and ibm_ilog.diagram.Link
instances are created. The programmatic use case relies on the Graph,
Node, and Link components. In this use case, the developer builds
the graph explicitly by code. The model is a graphical model that
is based on the dojox.gfx.API. The shapes are ibm_ilog.diagram.Node
and ibm_ilog.diagram.Link instances. In a graph, the nodes can be
explicitly placed at predefined positions using the gfx API or they
can be arranged using a graph layout algorithm that computes node
positions according to specific criteria.