Разработка расширенных клиентских приложений Eclipse для платформы WebSphereИсточник: IBM developerWorks Россия
Эта статья - обзор разработок расширенных клиентских приложений 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. В этих случаях приложения обычно имеют некоторые из следующих характеристик:
В подобных случаях установка сложной программы пользовательского 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) 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 RCPEclipse RCP дает вам прочную основу для создания вашего следующего шедевра - расширенного клиентского приложения. Но она не содержит некоторые важные функции, требующиеся отдельным desktop-приложениям, например, безопасность (включая как проверку подлинности, так и авторизацию), способность автономной работы и развёртывание. Именно здесь могут помочь клиентские межплатформенные технологии от IBM. Стек клиентских технологий IBMРисунок 2: Управляемый контейнер клиента Как показано на рисунке 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 IBMEclipse RCP, WebSphere Everyplace Deployment и Workplace Managed Client являются основой стратегии IBM в области desktop-приложений. Она закладывает фундамент для следующего поколения клиентского программного обеспечения. Некоторые разрабатывающиеся программные продукты IBM уже пользуются преимуществами этого интересного клиентского межплатформенного стека. Некоторые примеры: Lotus Sametime Connect 7.5: Мгновенный обмен сообщениями (Рисунок 3) Рисунок 3. Lotus Sametime Connect Ганновер: Следующий релиз IBM Lotus Notes (Рисунок 4) Рисунок 4. Следующий релиз 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:
Кроме поддержки открытых стандартов, WebSphere Application Server и WebSphere Process Server также имеют поддержку расширений API для требований продвинутых приложений и вновь появляющихся стандартов для SOA:
С точки зрения клиентского приложения WebSphere Application Server и WebSphere Process Server работают со множеством компонентов и ресурсов, среди которых:
Перечисленные службы доступны через различные транспортные протоколы. Мы, главным образом, затронем следующие транспортные протоколы:
Совместное использование расширенного клиента 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 Преимущества использования интерфейса расширенных клиентов Eclipse Sales Center использует каталог, управление запросами, продвижение и возможности сбыта WebSphere Commerce для обеспечения представителей вашего контактного центра функциональностью, которая нужна им для успешного обслуживания ваших отдаленных клиентов. Это обеспечивает необходимую скорость и продуктивность для крупномасштабных контактных центров при помощи настраиваемого, высокоэффективного пользовательского интерфейса, созданного для продуктивности и многозадачности. Рисунок 6. IBM Sales Center for WebSphere Commerce Среди его основных характеристик:
Пример 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-приложения ЗаключениеВ этой статье мы обсудили вопрос о том, почему следует рассматривать Eclipse RCP как перспективный и интересный вариант для разработки некоторых типов клиентских приложений платформы WebSphere. Платформа WebSphere обеспечивает проверенные серверные технологии, в то время как Eclipse RCP является популярной клиентской средой. Если вы сделаете так, что некоторые из ваших корпоративных служб, размещенных на серверах WebSphere, будут использоваться клиентами Eclipse RCP, то результатом станет повышение эффективности, улучшение взаимодействия и, как результат, счастливые конечные пользователи. |