Ровно год назад, 17 декабря 1996 г., компания Epsylon Technologies представила на суд общественности свой первый продукт из серии серверов приложений Baikonur. Тогда на пресс-конференции, посвященной этому событию, технология визуальной разработки Интернет/интранет-приложений выглядела многообещающе, тем более что Epsylon Technologies - одна из немногих российских компаний, решивших посвятить себя разработке инструментального средства для интрасетей - год назад явления еще для большинства непонятного и по достоинству неоцененного.
Так начинается проект в Delphi. В качестве подложки используется компонент HTMLTable из четырех ячеек. Каждую ячейку можно покрасить в свой цвет. Мы используем четыре невизуальных компонента и настраиваем их свойства. Два из них подключают приложение к базе данных -это стандартные компоненты из Delphi. Еще два -из библиотеки Baikonur -прикрепляют приложение к серверу Baikonur
В апреле 1997 г. компания выпустила Baikonur Web App Server версии 1.1, а в ноябре - расширенную версию под названием Baikonur Enterprise 1.3.
Являясь полностью отечественными разработками, программные продукты от Epsylon Technologies конкурируют на российском рынке с “хитами” от таких лидеров компьютерной индустрии, как корпорация Microsoft c ее продуктом Internet Information Server и технологией ASP, корпорация Oracle с ее Oracle Web Application Server, компания Informix с технологией Web DataBlade и др.
В левую верхнюю ячейку помещаем компонент HTMLDBTable и привязываем его к базе данных. Сразу на этапе дизайна мы видим реальные данные и можем выбрать те поля таблицы, которые собираемся показывать через браузер
Baikonur Enterprise 1.3 состоит из двух частей: собственно сервера приложений Baikonur и библиотеки визуальных компонентов для двух инструментов компании Borland - Delphi и C++ Builder. Кроме того, поскольку с целью улучшения совместимости в сервер добавлены два распространенных стандарта расширений - CGI и ISAPI, третий программный продукт от Borland - IntraBuilder - также совместим с сервером Baikonur и может использоваться в проектах (однако компоненты в этом случае использовать нельзя).
В правую верхнюю ячейку можно поместить компонент, который отображает картинку, хранящуюся в БД. В правую нижнюю ячейку помещается компонент для отображения memo-поля из базы данных
Cервер приложений - это многопользовательская среда исполнения программных модулей. Baikonur Enterprise называется сервером приложений, потому что по запросу от удаленного браузера он может запустить задачу на исполнение, уничтожить ее, или передать ей запрос.
Осталась четвертая ячейка. Мы положим туда компонент, строящий гистограмму в соответствии со значениями выбранных полей в базе данных. При этом можно выбрать нужный нам тип гистограммы
В библиотеку компонентов для Baikonur Enterprise вошли 50 визуальных и невизуальных компонентов, с помощью которых строятся Интернет-приложения. Таким образом, сервер Baikonur исполняет роль коммутатора потоков информации между Интернет-клиентами и запускаемыми под управлением сервера приложениями. В функции сервера входит обязанность аутентификации удаленного пользователя, хранение контекста сессии и, при необходимости, шифрование трафика между пользователями и запускаемыми ими задачами. Для этого сервер Baikonur поддерживает стандарты SSL 2.0 и SSL 3.0. Кроме коммутации информации между задачами и клиентами Baikonur Enterprise может работать и как обычный Web-сервер.
Осталось положить компоненты управляющих кнопок и прописать реакцию на их нажатие. Только в этом месте приходится программировать, хотя даже здесь управляющая среда Delphi доброжелательно подсказывает, какие методы объектов можно использовать. Компилируем проект и получаем готовый exe-модуль (допустим с именем Fish.exe).
Теперь его можно вызвать через браузер (скажем, по адресу: http://www.demo.ru/demo/fish.exe)
В приложениях, которые собираются в среде Delphi и С++ Builder, помимо компонентов, входящих в библиотеку Baikonur, можно использовать и стандартные компоненты Delphi, однако, чтобы с приложениями можно было взаимодействовать через интернет-браузеры, визуальные компоненты надо выбирать только из этой библиотеки. На невизуальные компоненты такие ограничения не распространяются, поэтому можно использовать стандартные связи Delphi с такими базами данных, как Oracle, Sybase, MS SQL, DB/2, Informix, Borland IB DataBase.
Через браузер это выглядит так. При каждом перемещении по записям в базе данных гистограмма пересчитывается. Пересчитывается она и при занесении через редактируемые поля в таблице новых значений в базу данных. С таким
приложением может работать одновременно множество пользователей
Подход, который применяется в программном продукте, нельзя назвать обычным. Для создания “живых” HTML-страничек вместо проектирования HTML-шаблонов и последующей привязки их к запросам к БД и другой серверной логике, как это делается в конкурирующих технологиях, используется настоящее объектное проектирование, что заметно ускоряет процесс разработки. Кроме того, к языку разметки гипертекста HTML разработчик серверной логики прибегает лишь в самом крайнем случае. Иногда, особенно при создании сложных таблиц, связанных с базой данных, вручную нереально добиться той функциональности, что легко достигается с помощью компонентов.
BaikTrends анализирует и динамически отображает журнал сервера приложений. BaikTrends является примером многопользовательского приложения и динамически генерирует отчетные странички для разных пользователей в зависимости от их полномочий
Убедиться в этом проще всего, рассмотрев последовательность действий разработчика при публикации базы данных в Web.
При разработке приложений для Baikonur Enterprise допускается применение Java-аплетов и JavaScript (для этого в комплект поставки входят специальные компоненты JavaContainer и JavaScript), однако и без них можно строить приложения со столь мощной функциональностью, что даже у бывалых интернетчиков закрадывается сомнение в возможности этого без использования Java или ActiveX.
Теперь мы можем получить многопользовательский доступ к геоинформации, масштабировать карту, выделять объекты и прочее, пользуясь только браузером.
Если же мы будем использовать локально-сетевой вариант библиотеки Baikonur GIS ToolKit, то получим обычный настольный вариант ГИС, не имеющий никакого отношения к Интернет
На Web-сайте компании Epsylon Technologies можно найти такие примеры, построенные без применения Java.
Первая демонстрация - известный пасьянс “Солитер”, только работающий через браузер. Это всего лишь пример, который, как утверждается, был собран в течение одного рабочего дня. Означает ли это, что коммерческие разработки игр для Интернет можно поставить на поток? Вопрос, для получения ответа на который потребуется совсем немного времени, не правда ли?
Есть и еще примеры: шахматный сервер с автоматическим ведением рейтинга и построением гистограмм и графиков, база данных по компонентам библиотеки Baikonur Enterprise, финансовая программа учета платежей, заказов и заказчиков MastApp (этот пример в клиент-серверном варианте входил в базовую комплектацию Delphi, поэтому большинству пользователей Delphi должно быть любопытно узнать, как это может быть реализовано для Интернет).
Поисковые возможности для сервера Baikonur реализованы также с помощью дополнительного приложения. В качестве поискового механизма применен механизм индексации с учетом русской морфологии и синтаксиса Яndex российской компании Comptek. В соответствии с лицензионным договором в комплект поставки Baikonur Enterprise входит Яndex с объемом индексируемой БД, ограниченным 1 Mб, что вполне достаточно для большинства Web-узлов. В случае необходимости расширения объема индексируемых текстов можно приобрести дополнительные лицензии.
Если можно визуальным способом собирать приложения и за счет этого расширять функциональность сайта, то почему бы не включить в комплект поставки графические средства для анализа загрузки сервера? Это приложение называется BaikTrends и позволяет анализировать и отображать динамически получаемый журнал сервера приложений. BaikTrends является примером многопользовательского приложения и динамически генерирует отчетные странички для разных пользователей в зависимости от их полномочий. Так, например, старший администратор Web-сайта на основе Baikonur Enterprise может получить информацию о том, как конкурируют между собой по загрузке виртуальные серверы (серверы, имеющие в Интернет разные имена, однако физически расположенные на одном компьютере), а администраторам, каждый из которых отвечает за свой виртуальный Web-сайт, доступна лишь информация, касающаяся работы их части сайта.
Приложения для Baikonur могут быть однопользовательскими (каждому клиенту - своя копия приложения) и многопользовательскими (все клиенты работают с одной копией приложения, но со своими данными), и BaikTrends - характерный пример многопользовательского приложения.
Пользователями Baikonur Enterprise уже стали такие компании и организации, как “Лукойл”, “Юкос”, Межрегионгаз, Центробанк, Онэксимбанк, Ростелеком, Роспак, Аэрофлот, Borland, NaturProduct и др. Как правило, на основе Baikonur Enterprise строятся крупные интранет-проекты и только некоторые предприятия используют сервер для увеличения возможностей своего Web-узла.
Epsylon Technologies начала бета-тестирование еще одного программного продукта под названием Baikonur GIS ToolKit. Этот продукт представляет собой две библиотеки визуальных и невизуальных компонентов для Delphi 3, предназначенных для построения прикладных геоинформационных систем (ГИС) в двух вариантах - локально-сетевом и в интранет-варианте. Продукт построен на основе профессиональной ГИС “Панорама 97” и использует формат .sxf - открытый стандарт обмена картографической информацией Военно-топографического управления Министерства обороны Российской Федерации. ГИС на основе Baikonur GIS ToolKit использует трехмерные координаты повышенной точности и может работать как с векторной, так и с матричной информацией либо с той и другой вместе. В состав бета-версии продукта входят учебные карты для демонстрации возможностей компонентов, однако в окончательную версию продукта войдет карта административного деления СНГ.
Еще один продукт, бета-тестирование которого уже началось, - Baikonur Mail Server. Этот продукт использует одну особенность технологий Baikonur. Дело в том, что нет никаких физических ограничений на работу сервера приложений одновременно с несколькими протоколами. Например, базовый вариант Baikonur Enterprise работает с протоколами HTTP, FTP, GOPHER и FINGER. Планируемый к выпуску вариант Baikonur SuperServer будет одновременно работать и с этими протоколами, и дополнительно с SMTP, POP3, IMAP4 (протоколы электронной почты), а также с IIOP (протокол обмена информацией между распределенными объектами CORBA).
Однако очевидно, что существует сектор рынка, для которого интересны только возможности быстро строить почтовую систему с быстро собираемыми (из компонентов!) почтовыми роботами. Baikonur Mail Server предназначен для решения именно этого класса задач. В его состав входит сервер и компоненты для быстрой обработки принимаемой и отсылаемой почты. Эти компоненты позволяют строить каскадируемые фильтры для почты, интеллектуальные списки рассылки, почтовые роботы, принимающие отчетную информацию от филиалов предприятий в виде присоединенных dbf-файлов (которые необходимо разархивировать, проверить на правильность структуры, а потом провести запись информации в SQL-сервер) и т. д. В состав Baikonur Mail Server вошло множество примеров текстов уже готовых к использованию проектов, построенных с применением этих компонентов.
Baikonur Mail Server в полном составе войдет в комплект поставки Baikonur SuperServer, бета-тестирование которого предполагается начать в декабре.
Baikonur SuperServer предназначен для профессиональных разработчиков информационных интранет-систем предприятий либо сложных Интернет-проектов.
В этом варианте опубликован полнофункциональный Baikonur API, который позволяет приложениям серверного слоя полностью управлять поведением внутренних объектов сервера. Если в Baikonur Enterprise было только описано в документации, как разрабатывать компоненты для сервера, то в Baikonur SuperServer большинство поставляемых компонентов приведено в виде исходных текстов и само количество этих компонентов заметно увеличено. Разработчик может сам встраивать в Baikonur SuperServer свои собственные протоколы - эти возможности сервера открыты.
В состав Baikonur SuperServer войдет программа удаленного администрирования UniAdmin. Она построена на основе протокола IIOP и позволяет администрировать не только сам сервер, но и любые другие объекты. Для того чтобы включить администрируемый объект в состав системы, его интерфейс следует описать с помощью IDL (Interface Definition Language - языка описания интерфейсов). UniAdmin позволяет администрировать за одну операцию сразу множество объектов, обладающих одинаковым интерфейсом. Например, мы можем одновременно установить свойство фильтрации в положение “включено” сразу в нескольких серверах, расположенных в разных концах России. UniAdmin позволяет выполнять множественные операции одновременно с несколькими программами, например приложениями серверного слоя Baikonur, которые управляют аппаратурой, скажем, телекоммуникационным оборудованием. UniAdmin позволяет манипулировать свойствами и методами удаленных объектов. Любой ресурс, требующий управления, можно превратить в объект CORBA с помощью IDL.
Epsylon Technologies разработаны еще два проекта, о которых стоит здесь упомянуть, - Baikonur Panacea (система документооборота для очень крупного конгломерата предприятий) и Baikonur EventFlow (процессинговая система обработки потока событий в крупной корпорации). Оба продукта ориентированы на сугубо практическое использование Интернет/интранет для крупного предприятия, имеющего массу удаленных объектов, филиалов, партнеров. Оба продукта ориентированы на применение Baikonur SuperServer в качестве опорных серверов большой многопользовательской системы. Предварительные тесты показали приемлемое быстродействие (время реакции - 1,5 секунды) для операций в системе с 125 тысячами пользователей, 100 тысячами типов событий, 200 тысячами документов. Оба продукта ориентированы на обработку информации в соответствии с маршрутами ее прохождения, легкую интеграцию системы с уже существующими информационными системами крупных предприятий.
Как увязывается с такими крупными системами применение операционной системы Windows NT, для которой и предназначены серверы приложений Baikonur? Специалисты компании Epsylon Technologies утверждают, что производительности Intel-совместимых платформ достаточно для большинства применений. Если же производительности не хватает, то можно использовать сразу несколько серверов Baikonur на нескольких машинах - такое решение тоже существует.
Однако и для UNIX первая бета-версия Baikonur уже доступна для тестирования. Приложения серверного слоя Baikonur для IBM AIX разрабатываются с помощью библиотеки визуальных и невизуальных компонентов Borland JBuilder. Подготавливаются для тестирования версии Baikonur для Linux, Solaris, SCO UNIX, HP/UX.
Для UNIX логика приложений серверного слоя разрабатывается с использованием визуальных инструментов для Java. В качестве библиотеки применяется библиотека компонентов JavaBeans, написанная специально для сервера Baikonur.
С бета-версиями и пробными версиями завершенных программных продуктов можно ознакомиться на Web-узле компании Epsylon Technologies по адресу: http://www.demo.ru. Контактный телефон: (095) 913-8746.
Александр Сергеев