Разработка расширенных клиентских приложений Eclipse для платформы WebSphere

Эта статья - обзор разработок расширенных клиентских приложений Eclipse для платформы IBM WebSphere. Узнайте, почему мобильные приложения Eclipse для платформы IBM WebSphere - интересное сочетание для разработки комплексного решения. Следует иметь представление о технологии расширенных клиентов и о платформе WebSphere в целом.

Введение

Будем считать, что вы слышали, по меньшей мере, два названия: Eclipse и WebSphere. Eclipse - это инструмент и технология клиентской платформы, в то время как WebSphere - в большей степени серверная платформа промежуточного ПО. В этой статье вы узнаете о том, какого изумительного эффекта вы можете достичь, сочетая эти технологии для достижения комплексных решений.

Зачем снова использовать расширенные клиентские приложения?

Термин расширенное клиентское приложение относится к desktop-приложениям с расширенными возможностями, в то время как термин приложение для тонкого клиента относится к приложениям, базирующимся на Интернет-технологиях. Обычно расширенные клиенты сложны в развёртывании и управлении; с другой стороны, тонкие клиенты не имеют настолько широких возможностей пользовательского интерфейса и не так быстро реагируют, как толстые/расширенные клиенты.

По мере развития технологий возникает новое поколение платформ и сред разработки для создания приложений для конечного пользователя. Асинхронный JavaScript и XML (AJAX), Rich Internet Application (RIA), Rich Client Platform (RCP) и Flash обеспечивают технологию, среду разработки и приемы, которые позволяют разработчикам создать приложения для конечного пользователя с гораздо более богатыми пользовательскими интерфейсами и повышенной быстротой реакции. Обычно это достигается использованием выполнения программ на стороне клиента. В то же время технологии RCP могут в настоящее время обеспечить гораздо лучшую поддержку легкого развёртывания и управления.

Таким образом, две соперничающие технологии пытаются завоевать сердца разработчиков. Web-приложения по-прежнему имеют большие преимущества, особенно после прорыва, связанного с появлением таких технологий, как AJAX и Web 2.0. В то же время, расширенные клиенты больше подходят для некоторых категорий приложений, например, приложений Bank Teller или Call Center. В этих случаях приложения обычно имеют некоторые из следующих характеристик:

  • Это главным образом внутренние, внутрисетевые приложения, предназначенные для сотен или пары тысяч пользователей.
  • У них очень строгие требования к пользовательскому интерфейсу, включая то, как выглядят шрифты, цвета и интерфейсные элементы окна (widgets)
  • Они требуют оперативности при работе и быстроты отклика, а также возможности использования "горячих клавиш", поскольку они используются опытными пользователями, работающими весь день.
  • Эти приложения обычно работают с очень большым набор данных и имеют высокую информационную плотность экрана. Они поддерживают ввод большого количества информации на стороне пользователя, что повышает их эффективность.
  • Они хорошо интегрируются с desktop и другими desktop-приложениями.
  • Это обычно приложения, связанные с делопроизводством или координацией совместной деятельности; способность работать при отсутствии доступа к сети и переключаться на другие задания очень важны.

В подобных случаях установка сложной программы пользовательского Web-интерфейса для вашего партнера - не решение, если в действительности требуется функциональность тонкого клиента. Расширенные и толстые клиенты останутся надолго, и данные исследовательских фирм подтверждают растущее признание нового поколения desktop-клиентов в докладе Giga group, "Возвращение расширенных клиентов", сделан прогноз о том, что в последующие три года количество расширенных (browser-rich) клиентов возрастет на 350%, индивидуальных клиентов (stand-alone clients) - на 250%, в то время как доля HTML снизится на 50%.

Платформа расширенных клиентов Eclipse

Если вы действительно не хотите использовать надоевшее RIA и предпочитаете практичное решение «толстый клиент», что делать? Ответ: выбирайте RCP, которая будет выполнять работу за вас. По существу, RCP даёт среду Web-разработки миру desktop Java-приложений, то же, что все среды Web-разработки сделали для мира J2EE/Java EE. Если вы знакомы с Java и не спали всё последнее время, вы должны знать, что популярность Eclipse всегда высока, и что Eclipse Rich Client Platform (RCP) становится de facto средой для Java desktop-клиентов.

Что такое Eclipse RCP?

Поскольку платформа Eclipse создана для того, чтобы служить открытой платформой разработки, ее архитектура позволит вам создать почти любое приложение из ее компонентов. Минимальный набор вспомогательных программ, необходимых для создания расширенных клиентских приложений известен под общим названием Rich Client Platform. Как показано на рисунке 1, Eclipse Rich Client Platform состоит из следующих компонентов: Eclipse Runtime с OSGi (Open Services Gateway Initiative), SWT (Standard Widget Toolkit), JFace и workbench UI.

Рисунок 1. Платформа расширенных клиентов Eclipse (Rich Client platform)
 The Eclipse Rich Client Platform

Eclipse RCP занимает немного места. Последней версии Eclipse 3.2 RCP требуется всего лишь 9MB.

Хотя и небольшая, она обладает множеством полезных функций, которые помогут вам разработать ваше следующее desktop Java-приложение.

Почему многие используют Eclipse RCP?

Есть много преимуществ в использовании такой клиентской среды как Eclipse RCP:

Универсальный интерфейс:

Многие используют Eclipse RCP, так как она позволяет быстро создать профессиональное на вид приложение, одинаково выглядящее на разных платформах, что даёт возможность уделить больше внимания дополнительным возможностям, благодаря прекрасной технологии SWT.

Общие службы приложений:

Разработчики Eclipse RCP также ценят то, что компоненты, образующие RCP - высокого качества, активно поддерживаются и являются открытыми. После первоначального знакомства с RCP они очень часто обнаруживают, что многие другие компоненты Eclipse доступны для регулярного использования (например, Help UI, Update Manager, Cheat Sheets, Intro и. т. д.).

Расширяемость:

Некоторые работающие с Eclipse также обнаружили, что присущая Eclipse расширяемость позволяет им создать не только продукт в конечном виде, но также платформу с возможностью расширения (типа Eclipse IDE) в своем собственном домене.

Eclipse RCP как пункт интеграции

В Eclipse легко интегрировать абсолютно независимые компоненты. Видимые объекты независимых компонентов могут с легкостью делить рабочее пространство. Таким образом, это естественный выбор.

Eclipse RCP имеет интеграционную платформу клиентского приложения, где могут сосуществовать SWT, WEB, Swing, Visual Basic, ActiveX и родные приложения.

Дополнительные среды разработки для Eclipse RCP

Eclipse RCP дает вам прочную основу для создания вашего следующего шедевра - расширенного клиентского приложения. Но она не содержит некоторые важные функции, требующиеся отдельным desktop-приложениям, например, безопасность (включая как проверку подлинности, так и авторизацию), способность автономной работы и развёртывание. Именно здесь могут помочь клиентские межплатформенные технологии от IBM.

Стек клиентских технологий IBM

Рисунок 2: Управляемый контейнер клиента
 Managed Client Container

Как показано на рисунке 2 вверху, управляемые клиентские службы основаны на OSGi и среде service management framework (SMF) для обеспечения независимого управления жизненным циклом служб и приложениями внутри JVM. Управление платформой встраивается поверх неё, что позволяет управление приложением по требованию, начиная от пассивного распределения до активного, интеллектуального управления, с помощью протокола SyncML.

Уровень служб доступа (access services layer) расширяет внутреннюю модель программирования и API до уровня клиента. Таким образом, вы можете использовать Web-приложения, приложения базы данных, Web-сервисы и др. прямо в контейнере клиента. Он также делает возможным доступ к приложениям, сервису и данным электронного бизнеса. Поддерживает как операции с подключением, так и без него.

Службы взаимодействия (interaction services) предлагают поддержку разным видам клиентов: HTML на основе браузера, WML, JSPs/Servlets/Portlet или толстому GUI-клиенту типа SWT или Swing.

Службы совместной работы (collaboration services) являются средой для создания продвинутых приложений для совместной деятельности в реальном времени.

Поддержка продукта

С точки зрения продукта, WebSphere Everyplace Deployment for Windows и Linux (далее упоминаются как WebSphere Everyplace Deployment) предлагает все необходимое для разработки приложений и включает вышеуказанные на схеме службы взаимодействия, службы доступа, управляемые ядром клиентские службы и управление платформой. IBM Workplace Managed Client (далее упоминается как Workplace Managed Client) устанавливается поверх WebSphere Everyplace Deployment и добавляет возможности координации взаимодействия для поддержки разнообразного сотрудничества.

Итак, если вы разрабатываете приложение Eclipse RCP, вы можете потенциально выбрать из одного из трех стеков: основного Eclipse RCP, IBM WebSphere Everyplace Deployment или IBM Workplace Managed Client.

Расширенные клиентские приложения, основанные на стеке RCP IBM

Eclipse RCP, WebSphere Everyplace Deployment и Workplace Managed Client являются основой стратегии IBM в области desktop-приложений. Она закладывает фундамент для следующего поколения клиентского программного обеспечения. Некоторые разрабатывающиеся программные продукты IBM уже пользуются преимуществами этого интересного клиентского межплатформенного стека. Некоторые примеры:

Lotus Sametime Connect 7.5: Мгновенный обмен сообщениями (Рисунок 3)

Рисунок 3. Lotus Sametime Connect
  Lotus Sametime Connect

Ганновер: Следующий релиз IBM Lotus Notes (Рисунок 4)

Рисунок 4. Следующий релиз Notes
Next Release of Notes

Обзор платформы WebSphere

Мы говорили о доступных клиентских средах для разработки новых приложений для платформы WebSphere. Но что именно представляет собой платформа WebSphere?

Платформа промежуточного ПО:

WebSphere - это интегрирующая платформа программного обеспечения IBM. Она включает всю промежуточную инфраструктуру.

Обычно, говоря о WebSphere, мы подразумеваем WebSphere Application Server, который всегда был платформой сервера приложений Java, основанной на стандартных API и спецификациях Java EE. Но WebSphere постепенно становится объединяющей платформой, основанной на открытых стандартах, например Web Services, BPEL, SCA, SDO и т. д. WebSphere Process Server, базирующийся на сервере приложений WebSphere и корпоративной сервисной шине WebSphere Enterprise Service Bus, обеспечивает основу для сервис-ориентированных, модульных приложений, и поддерживает применение бизнес-правил в приложениях, поддерживающих бизнес-процессы.

Поддерживаемые службы и ресурсы

WebSphere Application Server поддерживает весь спектр открытых программных интерфейсов. С точки зрения J2EE, сервер приложений WebSphere полностью поддерживает API J2EE 1.4:

  • JDK 1.4, EJB 2.1, Servlet 2.4, JSP 2.0, JMS 1.1, JDBC 3.0
  • JAX-RPC, SAAJ, Web Services for J2EE, JAXR
  • Java Authorization Contract for Containers
  • J2EE Management (JMX) 1.0, J2EE Deployment 1.1
  • J2EE Connectors 1.5

Кроме поддержки открытых стандартов, WebSphere Application Server и WebSphere Process Server также имеют поддержку расширений API для требований продвинутых приложений и вновь появляющихся стандартов для SOA:

  • Расширение модели программирования, которое включает asynchronous beans, рабочую область, активную кэш-память (dynamic cache), ObjectGrid и др.
  • Система обмена сообщениями платформы WebSphere: WebSphere Application Server поддерживает асинхронный обмен сообщениями через использование JMS-провайдера и соответствующей системы работы с сообщениями. Технологии интеграции служб IBM WebSphere Application Server могут действовать как системы работы с сообщениями, если вы сконфигурировали шину службы интеграции, которая доступна через прилагающуюся систему обмена сообщениями по умолчанию
  • Архитектура службы компонентов (Service Component Architecture (SCA)): SCA обеспечивает открытую, технологически-нейтральную модель для применения IT-сервисов, которые определяются в терминах хозяйственной деятельности и делают функции промежуточного ПО более доступными разработчику приложений. SCA также обеспечивает модель для сборки бизнес-решений из набора отдельных служб, которые контролируют такие аспекты решений, как способы доступа и безопасность
  • Service Data Object (SDO): SDO дополняет SCA, обеспечивая общий способ доступа ко многим различным видам данных

С точки зрения клиентского приложения WebSphere Application Server и WebSphere Process Server работают со множеством компонентов и ресурсов, среди которых:

  • Web-сервисы
  • Servlet/JavaServer™pages (JSP™)
  • Портлеты
  • Enterprise JavaBeans™(EJB)
  • Компоненты SCA
  • Ресурс работы с сообщениями шины интеграции служб (Service Integration Bus Messaging Resource)
  • Ресурсы работы с сообщениями (Messaging Resources)
  • Ресурсы доступа к информации (Data Access Resources)
  • Процессы BPEL

Перечисленные службы доступны через различные транспортные протоколы. Мы, главным образом, затронем следующие транспортные протоколы:

  • HTTP,
  • SOAP/HTTP, SOAP/JMS
  • RMI, RMI-IIOP
  • TCP

Совместное использование расширенного клиента Eclipse и WebSphere

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

Более того, если мы посмотрим на солидные серверные платформы, мы увидим, что большая часть из них имеет тесно интегрированную расширенную клиентскую desktop-платформу, будь то платформы IBM Domino, Window Server или SAP.

С появлением Eclipse RCP, корпоративные приложения RCP-клиентом и промежуточным ПО J2EE представляют собой довольно интересное сочетание. В самом деле, мы начинаем видеть некоторые коммерческие продукты, основанные на этой архитектуре. Один из примеров - IBM Sales Center for WebSphere Commerce (далее упоминается как Sales Center)

IBM Sales Center for WebSphere Commerce:

Как можно видеть на рисунке 5, Sales Center работает как клиентское приложение, общающееся с внутренним сервером WebSphere Commerce Server, который работает поверх WebSphere Application Server. Использующийся коммуникационный протокол - SOAP/HTTP.

Рисунок 5. Клиент/cерверная архитектура Sales Center
Sales Center Client/Server Architecture

Преимущества использования интерфейса расширенных клиентов Eclipse

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

Рисунок 6. IBM Sales Center for WebSphere Commerce
IBM Sales Center for WebSphere Commerce

Среди его основных характеристик:

  1. Расширенный высокопроизводительный интерфейс пользователя.
  2. Основанное на Eclipse решение для легкой настройки.
  3. Возможность развёртывания под Windows и Linux (WebSphere Everyplace Deployment for Windows and Linux).
  4. Приложение устанавливается целиком на клиентской машине.
  5. Централизованное администрирование, развёртывание и обновление клиентов.

Пример RCP JNDI-приложения

Если вы ранее работали с WebSphere Application Server, то знаете, насколько важен для сервера приложений JNDI-репозиторий. Во многих ситуациях, вам, возможно, понадобится просмотреть дерево имён JNDI, чтобы либо понять приложения, либо выявить и устранить в них ошибки. В WebSphere Application Server имеется соответствующая утилита, запускающаяся из командной строки, но мне нужен более дружелюбный к пользователю графический интерфейс. Поэтому я решил написать RCP-приложение для обзора дерева JNDI. В нем используется только среда Eclipse RCP. Имеется только одно представление, которое называется JNDIExplorer (Рисунок 7). Но вы можете видеть, насколько велики возможности настройки вида и функций в такой среде, благодаря расширяемой архитектуре Eclipse. Внутри она использует API JNDI для общения со службой имён WebSphere Application Server с целью доставки информации.

Эта маленькая утилита хороша для использования во многих ситуациях. Ей можно пользоваться автономно, без Web-сервера, нет необходимости устанавливать ее на Web-сервер. Её не нужно развёртывать для многочисленных конечных пользователей. Это хороший пример использования клиентского desktop-приложения.

Рисунок 7. Пример RCP-приложения
Sample RCP Application

Заключение

В этой статье мы обсудили вопрос о том, почему следует рассматривать Eclipse RCP как перспективный и интересный вариант для разработки некоторых типов клиентских приложений платформы WebSphere. Платформа WebSphere обеспечивает проверенные серверные технологии, в то время как Eclipse RCP является популярной клиентской средой. Если вы сделаете так, что некоторые из ваших корпоративных служб, размещенных на серверах WebSphere, будут использоваться клиентами Eclipse RCP, то результатом станет повышение эффективности, улучшение взаимодействия и, как результат, счастливые конечные пользователи.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=3161