Мы уже рассказывали о разработанном компанией Epsylon Technologies сервере Baikonur, управляющем потоками информации, задачами и ресурсами в любых системах массового обслуживания (см.: Сети, 1998, № 1). Тогда речь шла лишь о связном ПО, удаленный пользовательский интерфейс которого строился на базе библиотек HTML- или JAT-компонентов, а в качестве клиентской среды использовался либо обычный браузер либо JAVA-машина (автономная или загружаемая вместе с браузером).
Именно эти продукты компания Epsylon Technologies передала на испытания в российское отделение компании Intel, чтобы проверить устойчивость работы сервера Baikonur и оптимизировать его производительность. Тестирование осуществлялось Европейским центром оптимизации программных решений (Applicftion Solution Center) фирмы Intel, расположенным в Москве, и охватывало следующие продукты: Web-сервер, сервер приложений и корпоративное хранилище документов Panacea. Проверка показала, что продукты имеют почти идеальную масштабируемость, т. е. производительность сервера Baikonur растет пропорционально количеству процессоров и определяется только возможностями масштабирования запускаемых на сервере приложений. Время выполнения стандартных запросов Baikonur к БД не меняется при увеличении ее размеров с 1 до 26 Гбайт, а настройка БД позволяет увеличить производительность системы при стандартных запросах примерно в 1,5 раза.
На испытаниях также эмулировалась нагрузка сервера; были установлены ее предельные значения: 10 тыс. пользователей и 760 приложений серверного уровня. Анализ результатов испытаний позволил разработчикам модифицировать архитектуру продукта, устранив ограничение на одновременную работу с 760 приложениями. Сегодня вопрос о максимальном количестве обслуживаемых приложений остается открытым, но очевидно, что на следующем тестировании эта цифра окажется существенно более высокой.
В настоящее время Baikonur SuperServer 1.52 поддерживает не только протоколы HTTP, FTP, Finger и Gopher, но и SMTP, POP3, IMAP4 (позволяют использовать Baikonur в качестве почтового сервера), DAAP (поддерживает реализацию пользовательских протоколов), IIOP (обеспечивает администрирование сервера). Благодаря расширенной библиотеке компонентов можно работать с HTML-интерфейсом на уровне фреймов и полностью контролировать все сетевые функции сервера в рамках глобальной сети (в том числе синхронизацию с другими серверами сети и выполнение распределенных транзакций). Используемая в ПО технология JAT предполагает, что на ПК клиента существует только один практически не требующий модификаций JAVA-аплет, который обеспечивает связь с сервером Baikonur и оперативную работу с информацией. Серверная часть приложения может быть написана на языке JAVA, Delphi 3.0 или C++ Builder 3.0. Более подробные сведения о продуктах и технологиях Baikonur можно получить на сервере www.demo.ru (как и представление об их работе, поскольку этот Web-сервер создан с помощью технологий Baikonur).
Однако разработчиков Epsylon Technologies уже не удовлетворяют характеристики клиентского интерфейса Baikonur, обеспечиваемого с помощью JAVA-интерпретатора: их раздражает медленная прорисовка объектов экрана. Анонсированное клиентское ПО Taxxi (клиент Windows размером примерно 350 Кбайт), коммерческая реализация которого начнется, согласно обещаниям Epsylon, в сентябре нынешнего года, будет отображать интерфейс удаленного приложения на ПК-клиент в 15 раз быстрее, чем JAT-аплет (эта цифра относится к бета-версии Taxxi, которая демонстрировалась на июньской конференции компаний Intel и Epsylon Technologies для пользователей Baikonur).
Появление специализированного клиента было вызвано не только «привередливостью» разработчиков, но и еще одним обстоятельством - для безопасной работы в многопользовательской среде необходимо уделять повышенное внимание к обеспечению защиты информации в системе. Новая архитектура клиента Taxxi делает внедрение систем безопасности более простым. В бета-версии Taxxi применяется шифрование соединения на уровне SSL, которое обеспечивает Personal Baikonur, персональная версия сервера Baikonur (см.рисунок).
При запуске Taxxi запрос на подключение с сервером Baikonur поступает к Internet-драйверу Personal Baikonur (размер - 300 Кбайт), инсталлированному на ПК клиента, который и устанавливает соединение с Baikonur SuperServer. Последний обрабатывает запрос и запускает необходимое приложение серверного слоя. Если вызываемое приложение - многопользовательское, то новая задача не стартует, а запрос направляется к уже запущенному приложению, которое и формирует экран-отклик, передавая его Baikonur SuperServer.
Далее SuperServer отправляет описание экрана приложения на ПК клиента Personal Baikonur, который посылает его Taxxi для «отрисовки». Информация для работы с этим экраном передается по сети (если установлено защищенное соединение, по зашифрованному каналу), требования к пропускной способности которой весьма незначительны: для работы вполне подходит модем даже со скоростью 4800 бит/с. Связь реализована на базе протокола HTTP 1.1. Заметим, что описание интерфейсов формируется при помощи средств XML, а презентационная логика не «зашита» в Taxxi и передается пользователю в начале каждого сеанса. Соответственно, при изменении логики серверного приложения не требуется перекомпилировать ПО Taxxi.
Само серверное приложение (как и любое приложение Baikonur) может быть создано с помощью библиотек JAT-компонентов, используемых в Delphi 3.0 или C++ Builder 3.0, которые входят в состав Baikonur SuperServer. Поэтому к многопользовательским приложениям, рассчитанным на работу с Taxxi, можно обращаться из браузера, поддерживающего Java, или из отдельного JAT-приложения. Однако в качестве связного ПО Taxxi применяется только сервер Baikonur SuperServer.
По мнению представителей Epsylon Technologies, их новая разработка имеет шанс стать реальным конкурентом клиента SUN по нескольким параметрам. Прежде всего, это объем загружаемого модуля: 300 Кбайт против 500 Кбайт клиента SUN. Кроме того, исполнительный механизм Taxxi написан не на Java-коде, а на Delphi, поэтому не требует применения Java-машины. Наконец, скорость реакции при работе с Taxxi существенно выше.
Taxxi предполагается выпускать прежде всего для Windows-платформ на базе процессора Intel (Windows 95-98 и Windows NT 4.0-5.0). Объявлено, что Taxxi пока будет поставляться бесплатно вместе с Baikonur SuperServer. Пользователь должен оплатить только стоимость серверных и пользовательских лицензий и самого серверного ПО.
Архитектура информационной системы на основе сервера приложений Baikonur с различным клиентским ПО
Baikonur: тайна происхождения
Идеи, которым обязан своим появлением на свет многопротокольный универсальный сервер Baikonur, впервые были воплощены российскими разработчиками много лет назад. Законным прародителем Baikonur можно считать монитор телекоммуникаций «Обь», разработанный для мэйнфреймов ЕС ЭВМ в 80-е гг.
«Обь» обслуживал удаленную работу большого количества разнотипного оборудования (терминалов и устройств ввода), запускал приложения от имени удаленного пользователя, решал различные системные проблемы (конфликты, балансировка загрузки и пр.), обеспечивал аутентификацию пользователей, проверку их прав, передачу информации от пользователя к запущенным им задачам и т. п. Для того чтобы система могла работать с разными типами устройств, монитор «Обь» оснащался необходимым набором драйверов, писать которые приходилось старыми дедовскими способами, в основном на языке Aссемблер. О визуальных средствах разработки тогда еще никто не слышал, поэтому в «Оби» их и не было.
Тем не менее основные положения методики создания подобных драйверов и их включения в архитектуру системы, «отточенные» на мэйнфреймах, легли в основу технологий Baikonur.
Архитектура сервера во многом напоминает давно забытую «Обь». Аналогами драйверов устройств монитора в сервере Baikonur являются анализаторы протоколов сеансового уровня (согласно модели OSI). Однако, в отличие от своего прародителя, Baikonur не только содержит механизм запуска программ, но и фактически является операционной средой для выполнения приложений. Кроме того, он позволяет разработчику создавать программы, предназначенные для функционирования в этой операционной среде, с помощью языков высокого уровня и специализированных библиотек (в том числе библиотек визуальных компонентов).