Технологии
JAM и эволюция 4GL С чего все началось
На правах рекламы
Нью-Йорк, 1978 год
В 1978 году два американца – Боб Измак и Франк Вафиер – основали фирму JYACC. Сферой деятельности был выбран консалтинг в области информационных систем и технологий. Консалтинг в этой области по сути дела является помощью заказчику в определении оптимальных средств и методов для автоматизации деятельности заказчика с учетом всей возможной его специфики, текущего состояния дел и перспектив. Для успешной работы в этой сфере необходимо, во-первых, быть в курсе текущего состояния информационных технологий и их перспектив, а во-вторых, уметь найти общий язык с заказчиком и понять его требования. И если для решения первой задачи существует достаточное число путей, то для второй задачи одного обаяния и желания помочь оказывается мало. Следует напомнить, что на дворе был 1978 год и понятия CASE, RAD, инкрементальное прототипирование или отсутствовали, или только зарождались.
JYACC успешно работала, росла и развивалась. Но все четче обозначалась одна проблема, суть которой в следующем. Как бы внимательно консультант ни работал с заказчиком, все равно имели место моменты, о которых заказчик и консультант составляли разное мнение, пребывая в то же время в иллюзии, что они достигли взаимопонимания. В результате ошибка обнаруживалась довольно поздно, когда проект уже находился в стадии разработки. Терялись деньги, время.
Нужен был инструмент, который позволял бы максимально быстро сделать прототип требуемой системы или ее фрагмента и предъявить этот прототип заказчику для рецензирования. При этом ошибки выявлялись бы на возможно более ранних этапах. Языки 3-го поколения оказались совершенно непригодными для задач прототипирования в силу высокой трудоемкости разработки.
Отчаявшись найти готовые средства прототипирования, в 1985 году JYACC выпустила первую версию JAM, что расшифровывалось как JYACC's Application Manager – менеджер приложений JYACC. Этот инструмент позволял строить экранные формы, рисуя их без всякого программирования.
Утвержденный заказчиком прототип приложения затем подлежал перепрограммированию на целевой платформе с помощью языков 3-го поколения. Это был не лучший путь развития прототипа в готовую систему. Поэтому вскоре JAM, во-первых, был перенесен на многие популярные платформы, а во-вторых, к рисовальщику экранов была добавлена возможность описания логики приложения. Получился переносимый инструмент разработки приложений, который позволял от прототипа плавно переходить к готовой системе, не привлекая другие средства.
Когда реляционные СУБД определились в качестве фундамента информационных систем, JYACC в 1987 году выпустила модули взаимодействия своих приложений с серверами БД. В 1992 году была выпущена версия JAM, позволяющая использовать в приложениях не только алфавитно-цифровой интерфейс, но и GUI (Windows, Motif, OpenLook). Тогда же был выпущен модуль взаимодействия JAM с системами анализа и дизайна (т.н. upper CASE) Развитие архитектуры "клиент-сервер" привело к появлению синдрома "жирного клиента", когда объем операций на клиентской стороне стал требовать мощных компьютеров, иногда сравнимых с серверами. Кроме того, в крупных системах обострились проблемы с коммуникациями, сопровождением и администрированием. Возникла потребность в декомпозиции приложений, и ответом на это стало все более широкое использование мониторов транзакций. В ответ на эти требования JYACC в 1994 году выпустила модули связи с мониторами транзакций.
Растущая популярность объектно-ориентированного программирования привела к тому, что в 6-й версии JAM в 1994 году были реализованы некоторые возможности 00. Помимо этого JAM становился все более комфортной средой для разработчика – появился встроенный отладчик, редактор меню, была реализована техника drag-and-drop и т.д.
Сегодняшний день — ...JAM7...
Итак, что же представляет собой текущая версия JAM – JAM7?
Визуальное проектирование интерфейса
В части визуальной разработки интерфейса JAM принципиально не отличается от других языков 4-го поколения. Интерфейс разрабатывается в редакторе экранов JAM. В распоряжении разработчика имеется достаточный набор интерфейсных элементов, с помощью которых строятся экранные формы.
Объектно-ориентированные возможности JAM
JAM является событийно ориентированной системой. Это означает, что для всех составляющих частей приложения (окна, поля ввода/вывода информации, управляющие элементы и т.д.) определен набор событий: например, получение экранным полем курсора, открытие окна и т.д. Программист определяет обработчики этих событий и тем самым реализует логику работы приложения. Существуют возможности, во-первых, объединять внутри каждого элемента приложения его свойства и методы (т.е. обработчики событий для данного элемента), во-вторых, сохранять в репозитарии созданные объекты для последующего многократного их использования и, в-третьих, управлять наследованием свойств и методов у их потомков.
Работа с БД
Основным средством работы приложения с СУБД является SQL. SQL-запросы выступают в качестве составных частей методов объектов.
Кроме того, в JAM встроен достаточно мощный автогенератор SQL, который во многих случаях позволяет вообще не использовать SQL.
Открытость
JAM является открытой системой и позволяет легко расширять функциональность с помощью языков 3-го поколения (например, Си). Функции, написанные на таких языках, могут выступать методами или составными частями методов объектов JAM.
Интегрируемость с другими инструментальными средствами
Разработка ИС осуществляется комплексом инструментальных средств, в который входят CASE, СУБД, язык 4-го поколения, системы поддержки групповой разработки и системы группового планирования. Взаимодействие этих средств друг с другом облегчает процесс разработки и позволяет легче им управлять. С этой точки зрения JAM является полноценным партнером в сообществе инструментальных средств Интерфейс к СУБД упоминался выше. Кроме него JAM имеет двунаправленный интерфейс к CASE и встроенный интерфейс к системам поддержки групповой разработки.
Масштабируемость
Под масштабируемостью программных средств принято понимать способность инструмента адекватно реагировать на рост сложности задачи. В этом отношении очень немногие инструменты могут сравниться с JAM.
Переносимость
Переносимость JAM проявляется в нескольких аспектах.
Во-первых, это переносимость между СУБД. Можно разработать приложение для работы с .dbf-файлами, а затем перейти к мощным серверам, подобным Oracle, Informix и т.п.
Во-вторых, это переносимость между типами интерфейсов. JAM позволяет разрабатывать как алфавитно-цифровые, так и графические приложения.
И в-третьих, это переносимость между программно-аппаратными платформами. Сегодня JAM доступен практически на любых распространенных платформах. Это Windows, Win 95, Win NT, OS/2, Mac, практически все диалекты Unix. Кстати, целесообразность разработки приложений на платформах, отличных от Windows, обсуждалась и оспаривалась довольно долго, пока такие киты Windows-инструментов, как Gupta и Powersoft, не начали в этом году постепенно переходить на Unix-платформы.
Трехзвенная архитектура "клиент-сервер"
Но тем не менее встречаются ситуации, когда уже не помогают ни смена платформы, ни смена сервера БД. В таких случаях переходят на 3-звенную схему архитектуры "клиент-сервер" и используют мониторы транзакций (например, Tuxedo фирмы Novell). А при использовании мониторов транзакций JAM предлагает сегодня уникальное решение. Он позволяет разрабатывать не только презентационную составляющую "трехзвенки", но и программировать сами сервисы монитора с использованием технологии 4GL. Единственная альтернатива – писать сотни и тысячи сервисов на Си.
Завтра
Если посмотреть на современные тенденции в информационных технологиях, относящиеся к ИС, то почти все новые веяния нашли отражение в планах JYACC по развитию JAM.
Следующая версия JAM, выходящая в этом году, будет более полно соответствовать объектно-ориентированному подходу. Причем в JAM это достаточно глубокого уровня, вроде соответствия стандарту ОpenDoc.
Трехзвенная модель заняла прочное место в архитектуре "клиент-сервер", и аналитики прогнозируют еще большее распространение этой модели. Новый JAM будет содержать некоторые встроенные возможности мониторов транзакций и обеспечит еще более плавную миграцию с двухзвенных ИС в трехзвенные.
Наша современность отмечена печатью Internet. Говорят и пишут о бизнесе в Internet, OLTP WWW-приложениях и т.д. В феврале этого года на выставке UniForum в Сан-Франциско JYACC анонсировала специализированную версию JAM для разработки WWW-приложений и WWW-серверов. Этот вариант JAM позволит разрабатывать не просто статичные Web-страницы и не только страницы, заполняемые из БД, а полноценные OLTP-приложения. Продавайте ваши товары через WWW!
Скорее всего, все эти нововведения будут реализованы в виде различных дополнительных модулей, расширяющих возможности ядра JAM, что позволит разработчикам оптимально выбирать для себя конфигурацию JAM и наращивать функциональность JAM по мере роста сложности задач.
Заключение
Фирма JYACC не прекращает своей деятельности в области консалтинга. Консалтинговое подразделение JYACC занимает около 20% в обороте фирмы. Это позволяет ей получать информацию о требованиях пользователей не из публикаций и обзоров, а непосредственно из первых рук. Поэтому пользователям JAM не приходилось терять при этом вложения в уже сделанные разработки, в квалификацию персонала. Они всегда имели в своем распоряжении инструмент, возможности которого были адекватны выдвинутым требованиям.
Телефон компании "Аргуссофт": 288-27-97.
От редакции:
Эта статья предоставлена нам экспертами компании "Аргуссофт". Компания давно использует JAM, являющийся элементом комплекса средств разработки сложных корпоративных информационных систем, именуемого в "Аргуссофт" как "сумма технологий". Быстро разработать и продемонстрировать клиенту прототип будущей системы важно даже с психологической точки зрения, не говоря уже об удобстве использования подобных средств в условиях промышленной разработки информационных систем. Так что в данном случае мы представляем не просто статью, но и опыт использования JAM одним из ведущих интеграторов.
Денис Викторов