oldi

Распределенные приложения с богатыми интерфейсными возможностями

Краткий обзор технологии TAXXI

Александр Хорошилов, Андрей Дементьев, Александр Сергеев

Введение

   Что означает слово TAXXI?

   Поддерживает ли TAXXI  XML, B2B, P2P?

   Какие платформы поддерживает технология TAXXI?

Объектная поверхность

   Многозвенные системы

   Концепция объектной поверхности

   Можно ли увидеть объектную поверхность?

   Неужели это так просто?

   Примеры реализации

Архитектура TAXXI

   Многозвенные решения для Internet/Intranet

   Защищенный доступ

   Тонкий клиент с нулевым уровнем администрирования

   Удаленная работа с данными

   Низкий трафик

Создание приложений

   Невизуальная поддержка

   Использование XML

Перспективы

Введение

По мере развития инфраструктуры Internet возникает все больший соблазн использовать ее как среду поддержки бизнеса. В самом деле, сегодня распространенной является ситуация, когда подразделения компании находятся на разных территориях (например, магазины, филиалы, склады, конторы и т.д.) или бизнес требует предоставления партнерам компании частичного доступа к внутренней корпоративной системе. Однако для того, чтобы это было сравнительно просто делать, требуются адекватные инструменты поддержки разработки такого сорта систем.

Любой продукт для разработчиков так или иначе должен решать несколько базовых проблем информационной системы в Internet, и технология Taxxi предоставляет для этого неплохие возможности:

  • Низкий трафик. Современное состояние Internet-среды пока еще не идеально, и чем меньше требования технологии к пропускной способности каналов, тем лучше. TAXXI минимизирует объем пересылаемых данных при помощи метода градиентной передачи данных и алгоритмов сжатия, что позволяет комфортно работать с сервисами даже при доступе по линиям с низкой пропускной способностью (вплоть до 4800 бод).
  • Многозвенные решения для Internet/Intranet. Практика показала необходимость многозвенной архитектуры для Internet — такие системы легче создаются, управляются и администрируются. В рамках технологии TAXXI можно создать систему, состоящую из нескольких независимых, но взаимодействующих сервисов. Такие сервисы можно модернизировать без ущерба работоспособности всей системы.
  • Защищенный доступ. Это очень серьезная проблема для Internet-систем — в конце концов ведь корпорация рискует жизненно важными данными. При пересылке данных происходит автоматическое кодирование посредством различных алгоритмов шифрования для предотвращения несанкционированного доступа. Технология TAXXI поддерживает разграничение полномочий клиента по доступу в зависимости от его профиля безопасности.
  • Тонкий клиент с нулевым уровнем администрирования. Если клиенты физически расположены в разных регионах, проблема администрирования становится жизненно важной. Для обращения к различным сервисам, предоставляемым при помощи TAXXI-приложений, достаточно установить на компьютер пользователя лишь клиентское приложение TAXXI Communicator.

Технология TAXXI опирается на сервер приложений Baikonur — базовый компонент и для остальных технологий Epsylon Technologies. Серверные приложения работают под управлением сервера Baikonur, а клиентское приложение TAXXI Communicator включает в себя персональный вариант сервера (Personal Baikonur) для связи с удаленными серверными приложениями.

В начало В начало

Что означает слово TAXXI?

Нам часто  задают этот вопрос. На самом деле оно не является официальной аббревиатурой какого-то конкретного словосочетания: существует множество различных вариантов «расшифровки» этого слова. Одним из «свежих» вариантов, появившимся в связи со всеобщим помешательством по поводу наступления нового века, является следующий: «Terminator Against XXI». Более скромным является «Thin Application eXXtension for Internet». Вы можете придумать собственный вариант. В этом случае, пожалуйста, сообщите о своей версии в компанию Epsylon Technologies — мы ведем неофициальный учет различных способов интерпретации слова TAXXI.

В начало В начало

Поддерживает ли TAXXI  XML, B2B1, P2P2?

Да. TAXXI использует XML-документы для обмена информацией между сервером и клиентом. Остальные перечисленные термины относятся не столько к технологии, сколько к конечным системам. Технология TAXXI позволяет разрабатывать различные решения, в том числе обладающие признаками B2B и P2P.

В начало В начало

Какие платформы поддерживает технология TAXXI?

Текущая версия TAXXI предназначена для использования только на платформах семейства Windows. Поддерживаются операционные системы Windows 95/98/Mе, Windows NT 4.0, Windows 2000. Это относится как к серверным приложениям, так и к TAXXI Communicator.

Однако Epsylon Technologies работает над переносом TAXXI и на другие платформы, в частности  Linux.

В начало В начало

Объектная поверхность

Метафора объектной поверхности оказалась удачной находкой — все программные продукты Epsylon Technologies построены на основе этого принципа.

Термин «объектная поверхность» появился в результате тщательного анализа процесса разработки многозвенных систем и большого количества различных исследований, проведенных в этой области.

В начало В начало

Многозвенные системы

При создании конкретных решений, ориентированных на предоставление информации удаленным пользователям, разработчики обычно сталкиваются со следующими проблемами:

  • Разнородность исходных данных.  Типичная корпоративная система должна обеспечивать доступ к данным в различном формате: документам MS Word/Excel, текстовым и графическим данным, содержимому, управляемому серверами баз данных.
  • Разнородность клиентских платформ. Несмотря на доминирующее положение Windows в качестве клиентской операционной системы, остается большое количество проблем, связанных с конфигурированием рабочих мест пользователей. Отчасти эта проблема решается при помощи технологий с так называемым  нулевым уровнем администрирования (Zero Administration), требующих только изначальной установки и настройки определенного программного обеспечения.
  • Распределенность обработки. Как предполагается самой архитектурой многозвенных систем, обработка данных осуществляется на различных узлах большим количеством различного программного обеспечения. При этом требуется обеспечить надежное функционирование такой сложной составной системы. Далее, имеются потребности в гибком администрировании таких систем: добавление новых компонентов или изменение имеющихся маршрутов обработки данных не должно отрицательно влиять на надежность предоставляемого решения и/или его доступность.
В начало В начало

Концепция объектной поверхности

Концепция объектной поверхности предлагает решение всех описанных (а также множества других) проблем. Основные понятия очень просты и интуитивно понятны:

  • Объектная поверхность — это специальный сетевой контейнер объектов, содержимым которого могут являться обычные объекты, другие контейнеры, в том числе и другие объектные поверхности.
  • Объектные поверхности могут быть связаны между собой. Типы связей и их количество могут быть совершенно различными и применяться для автоматической синхронизации содержимого серверного и клиентского представлений, для разделения ресурса между несколькими пользователями и т.д.

Как можно заметить, эти два признака проводят четкое разделение между собственно данными, используемыми системой, и процессами обработки этих данных.

Способность объектной поверхности служить контейнером для других объектов и объектных поверхностей позволяет проектировать сложные системы, разделяя логику обработки данных между различными слоями, выполняющими задачи разного уровня. Комбинируя уже готовые решения, которые поддерживают понятие объектной поверхности, можно быстро и надежно изменять архитектуру системы и наращивать функциональность без риска привести весь комплекс в неработоспособное состояние.

Основная обработка данных происходит на уровне механизмов, обеспечивающих связь между поверхностями. При установлении связи могут происходить совершенно различные процессы, например преобразование данных из одного формата в другой или проверка прав доступа к данным. При необходимости разработчик может определить собственный тип связи и запрограммировать его поведение так, как это требуется для данной конкретной задачи. После этого новый способ связи может автоматически использоваться для связи любых имеющихся объектных поверхностей, независимо от их происхождения.

Важно, что связи при необходимости могут быть двунаправленными. Это позволяет поддерживать оперативное взаимодействие между клиентской и серверной составляющими решений. Таким образом, связь определяет не только способ преобразования данных из одного формата в другой, но и контролирует состояние каждой из подключенных объектных поверхностей.

После того как связь установлена, достаточно передавать только информацию о событиях, происходящих на противоположной стороне. Эта информация представляет собой информационные XML-пакеты.

В начало В начало

Можно ли увидеть объектную поверхность?

Объектную поверхность удобно представлять в виде некоей плоскости, на которой расположены объекты. Иногда объектная поверхность может быть видимой для человека, например если она определяет внешний интерфейс к программе. Но в общем случае это не так.

Способность поверхности отображаться на экране может быть одним из дополнительных ее качеств наравне со способностью, например, обеспечивать защиту от сбоев, но не является базовой характеристикой объектной поверхности. Это позволяет успешно применять данную концепцию для обработки большого количества информации, невизуальной по своей сути.

В начало В начало

Неужели это так просто?

На этот вопрос можно ответить по-разному, в зависимости от ситуации:

  • Да, это просто для разработчика конечной системы и ее пользователей.
  • Нет, это не просто в случае самостоятельного создания новых типов объектных поверхностей или связей.

Можно сказать, что при применении принципа объектной поверхности вся сложность разработки ложится на системных разработчиков, предоставляющих базовые технологии. Epsylon Technologies реализует только ключевые компоненты, которые избавляют разработчика конечной системы от множества неприятных вещей. Однако в большинстве случаев создание многозвенной системы с применением технологий, основанных на принципе объектной поверхности, не сложнее (а зачастую и проще), чем создание аналогичного по функциональности локального варианта.

В начало В начало

Примеры реализации

Примерами уже работающих и предоставляемых в промышленное использование технологий являются:

  • HTML Controls. Предназначены для быстрой разработки приложений в средах Borland Delphi и Borland C++Builder. Библиотека определяет объектную поверхность в виде специально спроектированных компонентов, которые поддерживают отображение на поверхность, состоящую из элементов HTML. Приложения, использующие эту библиотеку, публикуют свой пользовательский интерфейс, с которым можно работать из обычного браузера (рис. 2);
  • WML Controls. Эта библиотека полностью аналогична по назначению и функциональности библиотеке HTML Controls, но она задает отображение в поверхность элементов WML. Библиотека предназначена для разработки решения для мобильных (wireless) устройств, например сотовых телефонов с поддержкой WAP (рис. 3);
  • TAXXI Controls. На примере этой библиотеки можно наблюдать взаимодействие между невизуальной серверной и визуальной клиентской объектными поверхностями (рис. 4).

    На рис. 4 изображен момент компонентной разработки сложного серверного приложения для оперирования информацией о заказах, клиентах и состоянии склада — типичное приложение для менеджеров.

В начало В начало

Архитектура TAXXI

Технология TAXXI включает в себя следующие основные составляющие:

  • библиотеку для создания серверных приложений в средах разработки Borland Delphi и Borland C++Builder;
  • клиента TAXXI Communicator для обращения к серверным приложениям;
  • сервер приложений Baikonur для обеспечения связи между различными приложениями.

Рис. 5 иллюстрирует тот факт, что и клиент, и сервер архитектурно схожи. Объектные поверхности серверных приложений взаимодействуют с объектными поверхностями на клиенте.

В начало В начало

Многозвенные решения для Internet/Intranet

В простейшем случае осуществляется взаимодействие между клиентским приложением TAXXI Communicator и серверным приложением. В соответствии в общепринятой терминологией можно сказать, что серверная логика реализует бизнес-логику, тогда как презентационные функции выполняются TAXXI Communicator.

В более сложных случаях TAXXI Communicator может взаимодействовать с несколькими приложениями, установленными, возможно, на различных узлах; кроме того, допускается взаимодействие напрямую между серверными приложениями.

В начало В начало

Защищенный доступ

И серверное, и клиентское приложения используют для связи средства, предоставляемые сервером Baikonur. Сервер выполняет различные общие задачи, присущие всем многозвенным системам, — обеспечивает надежную связь по сети, выполняет защиту от несанкционированного доступа и т.д.

В Baikonur включен модуль кодирования данных в соответствии со стандартом SSL. При необходимости предусмотрена возможность подключения собственных алгоритмов шифрования, в том числе и сертифицированных соответствующими инстанциями.

Надежность и защищенность технологии Taxxi позволяет применять ее в решениях для управления финансами и электронного банкинга.

В начало В начало

Тонкий клиент с нулевым уровнем администрирования

Для доступа к TAXXI-системе пользователь должен установить только TAXXI Communicator. Это приложение является универсальным клиентом (браузером), который отображает интерфейс ВСЕХ серверных приложений.

В отличие, например, от библиотеки HTML Controls, базовая библиотека TAXXI поддерживает большое количество различных компонентов и позволяет реализовать решения со сложным графическим интерфейсом, по функциональности аналогичному интерфейсу настольных приложений.

Такой подход дает возможность существенно снизить потребности в администрировании клиентских мест. Это объясняется следующими причинами:

  • при обновлении программного обеспечения достаточно лишь заменить серверное приложение, после чего всем пользователям будет доступен новый вариант интерфейса, определяемый этим приложением;
  • увеличивается защищенность клиентского рабочего места, поскольку для работы системы не требуется никаких дополнительных исполняемых модулей вроде ActiveX или Java-аплетов;
  • одним из эффективных частных случаев, демонстрирующих потенциал объектных поверхностей и технологии TAXXI, является так называемый world wide drag&drop.  Cмысл его заключается в том, что TAXXI Communicator поддерживает выполнение операции drag&drop между различными серверными приложениями, каждое из которых может находиться на произвольном узле в Мировой сети. На самом деле эта операция выполняется как обычная последовательность синхронизации объектов различных поверхностей. Если требуется пересылка большого количества данных, то два серверных приложения могут установить прямое соединение,  исключив ненужную пересылку данных сначала клиенту и обратно.

Например, европеец одновременно имеет доступ к серверному приложению в США и к серверному приложению в Австралии. Drag&drop с одной формы на другую означает физическое перемещение данных из США в Австралию.

В начало В начало

Удаленная работа с данными

Все основные операции по обработке данных выполняются на серверном узле. Это существенно облегчает задачи обеспечения сохранности данных от различных сбоев и попыток несанкционированного доступа. Кроме того, упрощается создание систем: разработчик концентрируется на реализации алгоритмов обработки данных, не обременяя себя различными побочными задачами, такими как, например, распространение данных по сети, синхронизация клиентской и серверной частей и т.д.

Фактически стандартным решением является использование для хранение данных еще одного «звена» — промышленного сервера баз данных.

В начало В начало

Низкий трафик

В случае TAXXI Communicator для передачи презентационной логики используется связывание двух поверхностей — серверной и клиентской. Элементами этих поверхностей являются компоненты для Borland Delphi и Borland C++Builder.

Каждый компонент на сервере имеет связанного с ним «представителя» на клиенте. Оба компонента отслеживают контекст сессии и при изменении состояния одного из компонентов вследствие логики работы программы (на сервере) или воздействия пользователя (на клиенте) выполняется автоматическая синхронизация между обоими компонентами с автоматическим разрешением возможных коллизий. При этом пересылается лишь информация об изменениях. В большинстве случаев для этого требуется сравнительно небольшая пропускная способность линии (например, 2400-4800 бит/c), что позволяет интенсивно работать с приложениями даже при доступе по коммутируемым линиям.

Для дополнительного уменьшения трафика применяется автоматическое сжатие пересылаемых данных.

В начало В начало

Создание приложений

Первые версии TAXXI включали в себя специальные компоненты для формирования необходимых объектных поверхностей, которыми в данном случае являются отдельные экранные формы. Новая версия TAXXI содержит всю логику в невизуальных классах, автоматически подключаемых при создании проекта, и позволяет переносить в технологию TAXXI уже имеющиеся проекты, которые создавались ранее как локальные приложения.

В начало В начало

Невизуальная поддержка

Для создания новой объектной поверхности требуется, чтобы экранная форма была унаследована от специального класса TTaxxiForm, который, собственно, и содержит необходимую для этого логику и может заново создать экранную форму либо преобразовать в нее уже имеющуюся. Этот подход полностью совместим с имеющимися в Borland Delphi и Borland C++Builder механизмами визуального наследования и визуального связывания экранных форм.

Библиотека поддерживает доступ к невизуальным классам, обеспечивающим функционирование объектной поверхности стандартным образом посредством Object Inspector.

В начало В начало

Использование XML

Для описания внешнего вида экранных форм, а также отсылок изменений используется основанный на XML протокол обмена данными. Он является частным случаем более общего протокола синхронизации объектных поверхностей при помощи потоков XML.

Применение XML позволяет использовать большое количество различных средств и библиотек, а также максимально расширить возможности взаимодействия с другими источниками данных.

В начало В начало

Перспективы

В этой статье мы вкратце описали уже доступные решения. Но потенциал, заложенный в концепцию объектной поверхности, уже выдержавшей испытание несколькими поколениями программных средств, позволит в будущем качественно расширить возможности технологии TAXXI.

Основными направлениями, над которыми в данный момент работает компания Epsylon Technologies и которые будут доступны в самом ближайшем будущем, являются:

  • Расширение инструментария разработчика.
  • Расширение поддержки взаимодействия с другими системами.
  • Расширение возможностей взаимодействия между узлами.

Если первые два пункта очевидны, то о последнем следует сказать особо. Разрабатываемые версии TAXXI будут позволять устанавливать разные связи между узлами, в том числе и между двумя клиентскими компьютерами, оснащенными TAXXI Communicator (Peer-to-Peer communications). Мы надеемся также поддержать возможность создания подобных динамических сервисов для TAXXI не только разработчиками, но и обычными пользователями.

Кроме того, выполняется перенос как серверного, так и клиентского программного обеспечения на не-Windows-платформы. Первым шагом в этом направлении станет выпуск инструментария для платформ Linux и  Solaris.

 

С авторами можно связаться по адресам:

Александр Хорошилов — hor@demo.ru

Андрей Дементьев —  adem@demo.ru,

Александр Сергеев — aes@demo.ru,

http://www.demo.ru/, http://www.epsylontech.com/.

КомпьютерПресс 4'2001