Diagrama de la arquitectura

El diagrama siguiente muestra la arquitectura general del producto y cómo interactúan las distintas partes dependiendo del caso de uso:
El
caso de uso de almacén de datos se basa en el widget Diagram
(ibm_ilog.diagram.widget.diagram). El desarrollador crea un widget
Diagram en código HTML. Un almacén de datos de Dojo proporciona datos
al widget para visualizar el gráfico. El desarrollador especifica el
almacén mediante el atributo nodesStore así como la consulta que se
utilizará para obtener los elementos del almacén. A continuación, el
widget crea el gráfico y lo llena automáticamente. El widget Diagram
acepta dos almacenes de datos: el almacén de datos de nodos y el
almacén de datos de enlaces. El almacén de datos de nodos (propiedad
nodesStore) es obligatorio y proporciona datos que se representarán
como nodos. El almacén de datos de enlaces (propiedad linksStore) es
opcional y proporciona datos que se representarán como enlaces. Si no
se proporciona ningún almacén de datos de enlaces, los enlaces se
crean implícitamente desde las propiedades childBinding,
parentBinding, predecessorsBinding y successorsBinding del widget. 
Estas propiedades especifican los campos del elemento de datos que
definen las relaciones entre los nodos. Para cada elemento del
almacén de nodos, se crea una instancia de ibm_ilog.diagram.Node y se
añade al gráfico interno. Los nodos se crean a partir de una
plantilla de nodos especificada (o a partir de una respuesta en caso
de que se usen varias plantillas).
Una vez creados los nodos, se resuelven las relaciones de los nodos
de acuerdo con las propiedades de enlace mencionadas anteriormente y
se crean las instancias de ibm_ilog.diagram.Link. El caso de uso
mediante programación se basa en los componentes Graph, Node y Link. 
Es este caso de uso, el desarrollador crea el gráfico explícitamente
mediante código. El modelo es un modelo gráfico que se basa en la API
dojox.gfx. Las formas están en instancias de ibm_ilog.diagram.Node e
ibm_ilog.diagram.Link. En un gráfico, los nodos pueden colocarse
explícitamente en posiciones predefinidas utilizando la API de GFX o
pueden disponerse utilizando un algoritmo de diseño de gráficos que
calcula las posiciones de los nodos según criterios
específicos.