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 . </p>
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].
2.2. Вибір інструментарію
Для вирішення поставленого вище завдання доцільно використовувати модифікацію мови JAVA для реалізації складних додатків розподілених підприємств J2EE (JAVA 2 Enterprise Edition). Слід сказати, що мова J2EE робить наголос не на бібліотеки, а на набір пов'язаних специфікацій і рекомендацій, які зібрані разом для побудови багаторівневих кроссплатформенних додатків. У цьому контексті під специфікаціями розуміються стандартизовані дані і методи їх обробки, які включені в платформу. При цьому рекомендації являють собою приклади реалізацій за певними предметними галузями у відповідності зі специфікою та особливостями застосування.
Вибір мови J2EE в якості вихідної бази пов'язаний з тим, що саме він і його платформа розглядається розробниками JAVA, я...