Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Интеграция технологий WWW и CORBA, использование HTML, Java и CORBA при построении подсистемы пользовательского интерфейса

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

Однако при всех своих преимуществах технология WWW обладает одним существенным недостатком: ее интеграция с другими технологиями порождает массу проблем. Основная из них - это обмен данными WWW сервера с внешней системой. Можно выделить три основных решения данной проблемы:

  1. использование CGI/FastCGI
  2. использование Java
  3. использование API сервера

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

Использование апплетов Java решает многие проблемы, связанные с CGI, в частности проблему загрузки сервера, проблему безопасности и т.д. Но вместе с тем повышаются требования к ресурсам клиентского рабочего места.

При использовании API сервера происходит значительная "привязка" к тому программному продукту, чей API используется, что в основном приводит к значительным затратам при переходе на другую платформу.

Все сказанное выше можно также отнести и к проблемам интеграции WWW с CORBA-системами. Однако CORBA предоставляет дополнительные возможности для этой интеграции. Например, при использовании Java у разработчиков практически не возникает проблем, т.к. в рамках OMG существует стандарт на отображение языка описания интерфейсов в Java. При этом WWW-сервер используется как стандартный механизм, позволяющий производить удаленную загрузку классов, а WWW-броузер, как JVM. Но как уже было сказано выше, Java предъявляет значительные требования к аппаратному обеспечению клиентского рабочего места. Эта была одна из основных проблем, с которыми мы столкнулись при разработке системы, где пользователю приходилось работать со сложно структурированной информацией. Иногда отклика системы приходилось ждать несколько минут, причем от 50% до 90% из этого времени приходилось на обработку пользовательским интерфейсом информации, полученной в результате запроса. Получив такие плачевные результаты, нам пришлось пересмотреть подход к построению подсистемы пользовательского интерфейса на основе WWW. Вариант использования API сервера отпадал сам собой по причинам, описанным выше: основной принцип, которым мы руководствуемся при создании ИС - минимальная зависимость системы от программной и аппаратной платформы. Оставалось только использовать CGI. Но через некоторое время нас это тоже перестало удовлетворять, т.к. CGI сценарии CORBA получались очень тяжеловесными. В основном это происходило за счет дополнительного кода, генерируемого IDL-компилятором интерфейсов и накладных расходов, связанных с CORBA (установление связи с другими объектами).

Пришлось искать пути выхода из создавшейся ситуации. В результате был разработан модуль для WWW-сервера Apache, получивший в дальнейшем название WebORB, который позволял напрямую обращаться к CORBA-объектам не порождая нового процесса. Да, пришлось использовать API, но, во-первых, взаимодействие сервера с CORBA-объектами происходит посредством интерфейса, описанного на IDL. Поэтому при переходе на другой WWW-сервер необходимо будет только переписать WebORB, а это уже те накладные расходы, которые можно себе позволить при создании такого рода систем. Во-вторых, сам сервер Apache является самым популярным в мире и доступен практически на всех платформах, что практически сводит к нулю вероятность того, что придется переписывать WebORB для другого сервера.

Производительность, которую показал WebORB. была превосходной: скорость выполнения запроса увеличилась в несколько раз. Но… Мы снизили загрузку сервера не увеличивая при этом требовательности к клиентским местам - для отображения информации используется HTML, генерируемый CORBA-объектами. Однако мы лишились возможности использования push технологии, которое было возможным при создании пользовательского интерфейса на Java. И на этот раз решение было найдено. Суть его довольно проста: на клиентское рабочее место загружается Java-апплет, представляющий CORBA-объект, который используется для принудительного управления броузером. Простой пример: необходимо произвести экстренный останов системы из-за нарушения электропитания. Система передает Java-апплету, расположенному на клиентском рабочем месте, сообщение, которое надо отобразить. В зависимости от того, какая информация была передана, апплет либо сам отображает сообщение, либо указывает броузеру загрузить соответствующий сообщению URL.

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

Назад | Содержание

 

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...