УДК 681.3
М.Ю. КРУКОВСКИЙ
Язык обработки графов на базе JAVA.
Abstract: This paper describes a language for definition of wokflow processes. As a core for the language was used graph model. This language was involved in creation of system for workflow processes developing and execution
Key words: docflow, workflow, graph model, JAVA.
Анотація: У статті розглянута мова, що дає можливість описувати процеси композитного документообігу. Основою для мови була використана графова модель документообігу. Мови використовувалась для створення системи проективання та виконання процесів документообігу.
Ключові слова: електронний документообіг, процесне керування, графова модель, JAVA.
Аннотация: В статье рассмотрен язык, позволяющий описывать процессы композитного документооборота. Основой для языка послужила графовая модель документооборта. Язык использован для создания системы проектирования и исполнения процессов документооборота.
Ключевые слова: электронный документооборот, процессное управление, графовая модель, JAVA.
1.Введение
Формальный синтаксис и неформальная семантика определяют основные свойства существующих языков программирования. Языки и системы программирования подчинены общим законам эволюции [1]. Эволюция языков программирования прошла через парадигмы, которые в момент внедрения считались глубоко продуманными и устойчивыми. Такие парадигмы языков, как: процедурные, модульные, обьектно - ориентированные в свое время считалась едва ли не панацеей для всех задач. На сегодняшний день стало очевидно, что значимым является не только синтаксис или форма отображения грамматик, а прикладное значение языка.
В рамках настоящей статьи будет рассмотрено расширение языка JAVA, которое позволяет оперировать графами на уровне языковых конструкций. Автор пришел к необходимости данной разработки в процессе работы над реализацией системы композитного документооборота [2], основой которой выступает графовая модель [3]. Разработанное расширение распространяется с открытым кодом и может быть использовано для решения прикладных задач, оперирующих аппаратом теории графов.
2. Постановка проблемы
Для решения задачи предполагается расширить язык JAVA таким образом, чтобы с помощью этого расширенного языка можно было описывать и решать задачи документооборота, используя естественные для документооборота понятия и определения. В качестве основной модели предполагается использовать графовую модель, введенную автором настоящей статьи в работе [3]. Таким образом, задача создания языка документооборота сводится к задаче расширения JAVA возможностями работы с графами и наполнения этого языка семантикой документооборота.
Теория графов сегодня является очень важным и полезным аппаратом дискретной математики. Она широко применяется при решении, как теоретических вопросов, так и в практических инженерных задачах. Особенно много применений теория графов нашла при решении таких задач, как автоматизированный контроль, сетевое планирование и проектирование интегральных схем. Кроме этих задач, очень широко графы применяются при создании моделей различного взаимодействия. Интересным является факт, что графы используются не только в перечисленных, достаточно детерминированных задачах, но и в гуманитарных науках, таких как эпидемиология и лингвистика [4].
Необходимо отметить, что предлагаемый язык программирования, позволяющий обрабатывать графы, будет полезным многим программистам и востребован для решения широкого круга самых разнообразных задач. Основным достоинством предлагаемого языка является то, что он позволяет программисту оперировать графами, используя знакомый и привычный инструментарий. Основой для такого прикладного языка, реализующего работу с графами, целесообразно выбрать уже существующий широко используемый для общих прикладных задач язык программирования. На сегодняшний день такой платформой является доминирующий, практически без альтернативы, при разработке локальных и распределенных приложений язык JAVA. Помимо этого язык JAVA хорошо приспособлен для решения задач сетевого взаимодействия.
2.1. Состояние проблемы
Работы по разработке языков программирования, оперирующих понятиями теории графов, ведутся с семидесятых годов прошлого столетия. Каждый из полученных языков использовался для решения прикладных задач и являлся расширением языка программирования, наиболее широко используемого на то время.
Одним из первых появился язык GEA (Graph Extended Algol), который был разработан в 1970 на базе системы Univac 1108 и использовался в течении десятилетия в университетских вычислительных центрах [5]. Основным достоинством языка являлось то, что при своей простоте реализации, он позволял решать задачи обработки графов, использую базовые навыки программирования. Существенным недостатком этой разработки было непродуманное прикладное применение, что обусловило узкий круг использования. Широко использовался для прикладных задач язык GRASPE, построенный на базе библиотек языка LISP [6]. Название языка LISP (Лисп) происходит от list processing (обработка списков). Он широко используется в задачах символьной обработки, искусственного интеллекта, математической лингвистике и других. Помимо этого язык LISP может быть использован для построения графиков и задания чертежей. Но так как LISP оперирует списочными структурами, то его реализация позволила не только функционального оперировать графами, но и их визуализации [7].
Впоследствии предпринимались попытки создания универсального языка, который бы заложил долгосрочную базу под будущие языки обработки графов. Один из таких языков – GXL (Graph Transformation Languge), построенный на базе существовавшего, на тот момент, математического языка обработки деревьев TXL (Tree transformation language) [8]. Язык был хорошо проработан с математической точки зрения, что безусловно обеспечивало самые широкие возможности для обработки графов. В то же время, недостаточно было проработано его стыковка с языками программирования, что сделало этот язык известным только в кругу узких специалистов. Другое семейство языков, GBL (Graph Based Language), построенно в виде набора семантических определений и правил языковых цепочек с применением аппарата теории формальных языков [9]. Такой подход обеспечил невиданную до этого общность описаний. Но, вследствие недостаточной очевидности практической пользы применения, конкретных программных реализаций, основанных на этом языке, он остался невостребованным.
Таким образом, задача создания расширения языка программирования, оперирующего с графами, имеет достаточно проработанную и апробированную базу. В то же время реализаций такого языка на базе самого распространенного сейчас языка JAVA на данный момент автору неизвестно. Наиболее близкая к рассматриваемой в статье задаче - это разработанный на базе JAVA язык для иерархического моделирования и воспроизведения систем HiMASS-j (Hierarchical Modeling And Simulation System – Java) [10].
... , а иногда и невозможным. Недостатки MOLAP-модели: · Многомерные СУБД не позволяют работать с большими базами данных. · Многомерные СУБД по сравнению с реляционными очень неэффективно используют внешнюю память. В подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, неопределенные значения ...
... , "базовые" алгоритмы: поиск путей, определение компонент связности графа и т.д. 8. Ввод/вывод графов Одной из проблем при создании средств работы с помеченными графами является выбор внешнего файлового формата для хранения графов. До недавнего времени каждая программная система использовала свой собственный, уникальный формат, что приводило к сложностям при организации обмена данными. ...
... , которые соответствуют определённым процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя пу-тями – расстановкой и генерированием. Развитые автокоды получили название Ассемблеры. 3.1.4 Макрос ...
... и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации баз данных; 3. возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти. Однако реляционные системы далеко не ...
0 комментариев