Статья: Язык обработки графов на базе JAVA

Технически язык GJE представляет собой внешнее расширение пакетов JAVA для решения задач документооборота и описан как package javax.workflow. Это дает возможность разработчиками подключать пакет и использовать его для решения задач документооборота.

Язык GJE позволяет строить модели документооборота, которые основаны на аппарате теории графов. Автором настоящей статьи в работе [3] введена графовая модель документооборота. Поэтому, при описании классов будет даваться не только общее назначение методов и данных с точки зрения графа как математического понятия, но и применения содержания классов, введенное в модели документооборота.

3.1. Описание интерфейсов языка GJE

Ниже приведено описание интерфейсов классов, являющихся основой языка GJE. Эти классы имеют тип “public”, поэтому они составляют основу построения конструкций документооборота на языке JAVA. Выбранная открытость реализации внешнего пакета обеспечивает возможность внесения модификаций в язык с учетом особенностей конкретных реализаций документооборота.

3.1.1. Класс Node

Класс Node представляет описание единицы нижнего уровня графа – вершины графа. Вершина графа является начальным элементом построения структуры, поэтому она не содержит методов, а содержит только значение, свойственное именно данной конкретной вершине. Как известно, совокупность вершин и их связи определяют граф.

В документообороте, множеству вершин графа соответствует множество состояний документов, используемых в моделируемом документообороте. Каждая отдельная вершина соответствует отдельному состоянию документа, выделение которого считается целесообразным при дискретизации процессов документооборота. Семантическими данными этого класса является содержательная часть документа. Такими данными могут быть текст, звук, видео и другие данные, которые могут быть задействованы в рамках используемых операционных систем и средств разработки.

При реализации документооборота, исходя из свойств языка JAVA, класс может быть расширен дополнительными методами обработки или данными. Такими данными может быть информация, которая не была известна на момент проектирования системы, а актуализировалась во время ее внедрения. Это дает возможность наращивать систему, при этом не нарушая основных правил.

Ниже приведен текст интерфейса класса Node.

package javax.workflow;

public interface Node

{

Object getValue();

void setValue(Object value) throws InvalidOperation;

}

3.1.2. Класс Edge

Класс Edge используется для описывания ребер графа. Ребро графа является базовым элементом аппарата теории графов и характеризуется тем, что соединяет одну или более вершин. Ребро может быть ненаправленным, то есть просто выступать элементом связности, упорядочивающим отношения между вершинами. Направленное ребро, кроме установления факта связности, еще и определяет последовательность в иерархии, то есть указывает на причинно- следственную связь между вершинами.

В применении к графовой модели документооборота, введенной автором в работе [3], вершина графа ассоциируется с действием, которое производит участник документооборота над документом. Если говорить более строго в терминах введенной модели, то ребро графа, описывающего модель документооборота является действием, произведение которого вызывает смену состояния документа с начального на промежуточное либо конечное. Соответственно, входящей вершиной графа является входящее для действия состояния документа. После произведения действия, установленного на ребре графа, документ принимает состояние, соответствующие исходящей вершине графовой модели.

Класс Edge содержит методы getInPoint и getOutPoint, которые используются для получения входящих и исходящих вершин соответственно. Метод getDirection получает данные, которые соотвествуют направленности ребра. Метод getDirection имеет тип Object , поскольку направленности ребра могут соответствовать не только собственно значение указания направленности, а и различные весовые характеристики ребра. Метод setDirection используется для принудительного установления свойств направленности.

Методы getValue и setValue предназначены для получения и установления дополнительных свойств ребра. В применении к задачами документооборота, это означает возможность введение дополнительной информации, свойственной действию. В частности, такой информацией является информация об исполнителях документооборота, которые могут либо должны производить это действие.

Ниже приведен текст интерфейса класса Edge.

package javax.workflow;

public interface Edge

{

Node getInPoint();

Node getOutPoint();

Object getDirection();

void setDirection(Object direction) throws InvalidOperation;

Object getValue();

К-во Просмотров: 211
Бесплатно скачать Статья: Язык обработки графов на базе JAVA