Разработка виджетов WebSphere Application Server Communication Enabled Application (CEA)

Dojo-виджеты Communication Enabled Application (CEA), которые впервые появились в IBM® WebSphere® Application Server V7 Feature Pack for Communication Enabled Applications и в IBM WebSphere Application Server V8, теперь доступны в виде исходных кодов как примеры для создания ваших собственных CEA-виджетов. Это дает возможность компоновать виджеты для любой версии Dojo и настраивать их в соответствии с требованиями вашего приложения. В данной статье рассматриваются общие концепции CEA и объясняется, как использовать эти виджеты в качестве отправной точки для разработки ваших собственных виджетов.

Брайан Пулито, разработчик WebSphere – SIP, IBM

Брайан Пулито (Brian Pulito) – фотографияБрайан Пулито (Brian Pulito) – ведущий разработчик SIP и CEA для WebSphere. Он был одним из главных разработчиков системного приложения CEA для WebSphere и помогал в проектировании, разработке и поддержке многочисленных SIP-продуктов, включая Sametime и WebSphere. Брайан является одним из сторонников SIP-технологий в IBM и работает со многими клиентами, помогая им в эксплуатации SIP-приложений.



Энди Айвори, инженер-программист, главный разработчик, IBM

Энди Айвори (Andy Ivory) – фотографияЭнди Айвори (Andy Ivory) является программистом-консультантом IBM и разработчиком Communications Enabled Applications Feature Pack. Он получил степень бакалавра по вычислительной технике в Университете штата Пенсильвания в декабре 2002 года. Работает в IBM с января 2003 года.



14.11.2012

Введение

Dojo-виджеты Communication Enabled Application (CEA), которые впервые появились в IBM WebSphere Application Server V7 Feature Pack for Communication Enabled Applications и в IBM WebSphere Application Server V8, удалены из IBM WebSphere Application Server V8.5. Это означает, что CEA-виджеты вместе со специальной версией компоновки Dojo, включающей виджеты, были вынесены из продукта WebSphere Application Server. Используемое системное приложение CEA, реализующее интерфейс CEA REST, по-прежнему входит в WebSphere Application Server, но теперь, имея доступ к исходному коду, можно перекомпоновать виджеты для любой версии Dojo для взаимодействия с приложениями Java™ EE. Помимо этого поставщики могут изменять исходный код виджетов, выполняя любую необходимую им настройку.

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

Что такое CEA

Архитектура Communications Enabled Applications (CEA) предоставляет возможность добавлять динамические Web-взаимодействия в любое приложение или бизнес-процесс. Функциональность CEA, первоначально разработанная в WebSphere Application Server V7 Feature Pack for Communications Enabled Applications и поставляемая с базовым продуктом WebSphere Application Server V8, предоставляет набор интегрированных телефонных сервисов и сервисов для совместной работы, расширяющих возможности взаимодействия корпоративных и Web-приложений.

Используя CEA, разработчики корпоративных решений могут использовать единое базовое приложение для многочисленных видов взаимодействия. Для реализации CEA не нужны глубокие знания телефонии или протокола Session Initiation Protocol (SIP); CEA реализует управление вызовами, уведомления устройств, обмен данными в режиме реального времени и предоставляет платформу для облегчения интеграции этих возможностей в мобильные и Web-приложения.

CEA состоит из конвергентного системного приложения, предоставляющего REST-интерфейс и взаимодействующего по SIP-протоколу с PBX-серверами через TR 87 (CSTA over SIP) для управления сторонними вызовами. Также REST-интерфейс поддерживает возможность отправки данных общего вида непосредственно между двумя оконечными точками сервисов, например, для синхронного просмотра Web-страниц и чата.

На рисунке 1 представлена общая схема CEA-компонентов.

Рисунок 1. CEA-компоненты
Рисунок 1. CEA-компоненты

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


Набор виджетов CEA

Набор виджетов CEA можно использовать как в настольных, так и в мобильных Web-приложениях. Основная функциональность одинакова для обеих сред, но из-за подчас специфичных требований к визуализации и интерактивности для мобильных приложений в виджетах для настольных приложений были реализованы новый внешний вид и поведение.

Таблица 1. Виджеты для настольных браузеров
Название виджетаОписание
CallNotification.jsЭтот виджет предоставляет возможность вводить телефонный номер или SIP URI и следить за уведомлениями о вызовах. При обнаружении входящего звонка виджет уведомляет пользователя и предлагает базовые функции информирования о состоянии и управления вызовом (например, возможность повесить трубку). При необходимости этот виджет можно настроить на отображение диалогового окна CollaborationDialog, позволяющего пользователю запустить сценарий синхронного с вызывающей стороной просмотра Web-страниц. Для мобильных и настольных сред предоставляются отдельные виджеты CallNotification. Виджет CallNotification наследует функциональность виджета EventHandler, описанного ниже.
ClickToCall.jsЭтот виджет позволяет пользователю настроить телефонный номер или SIP URI вызывающей стороны и ввести телефонный номер или SIP UR вызываемой стороны, а затем инициировать телефонный звонок между своим телефоном и номером или SIP URI, закодированными в widgetNumber. После инициирования звонка виджет предоставляет основные функции информирования о состоянии и управления вызовом. При необходимости этот виджет можно настроить на отображение диалогового окна CollaborationDialog, позволяющего пользователю запустить сценарий синхронного с вызываемой стороной просмотра Web-страниц во время звонка. Для мобильных и настольных сред предоставляются отдельные виджеты ClickToCall. Виджет ClickToCall наследует функциональность виджета EventHandler, описанного ниже.
Cobrowse.jsЭтот виджет предоставляет пользователю возможность создавать ссылки-приглашения (invitation link) для отправки собеседнику. После создания приглашения виджет начинает ожидать уведомления о подключении этого собеседника. Когда собеседник открывает ссылку-приглашение, этот виджет загружается и выполняет соответствующий вызов для подключения к сеансу совместной работы. Виджет использует функциональность cea.widget.CollaborationDialog, отображая модальное окно для взаимодействия с собеседником.
CollaborationDialog.jsЭтот виджет предоставляет модальное диалоговое окно, расширяющее cea.widget.CollaborationDataTransfer, для совместного просмотра страниц, ссылок и т.д. Точнее, виджет предоставляет обработчики событий для настройки модального диалогового окна и отправки данных собеседнику, а также обработчики результата, активизируемые при получении данных. Виджет CollaborationDialog наследует функциональность виджетов CollaborationDataTransfer и CollaborationDialogBrowser, описанных ниже.
CollaborationDialogBrowser.jsЭтот виджет предоставляет основные обработчики истории работы браузера для кнопок "назад", "вперед" и "обновить", а также обработчик адресной строки.
EventHandler.jsЭто виджет базового уровня, работающий как в мобильных, так и в настольных средах времени исполнения. Он необходим для всех других CEA-виджетов, поскольку обрабатывает используемый канал асинхронного взаимодействия с системным приложением CEA. Имитация канала асинхронного взаимодействия с использованием HTTP основывается на длинных (long-polled) HTTP-запросах через CEA REST-интерфейс. Данный виджет инкапсулирует всю эту функциональность.

Этот класс принимает CEA-события, используя rest-сервис. Он также предоставляет базовые вызовы для получения событий, добавления/удаления обработчиков событий и запуска/останова ожидания событий.

CollaborationDataTransfer.jsЭтот виджет наследует функциональность виджета EventHandler, описанного выше. Этот класс используется для создания, подключения и удаления сеанса совместной работы с собеседником. Он предоставляет также методы для отправки и получения данных с использованием CEA REST-сервиса после создания сеанса. После инициализации сеанса этот виджет можно использовать для отправки данных собеседнику или для получения данных от него.
TwoWayForm.jsЭтот виджет предоставляет двум пользователям возможность совместно использовать форму ввода данных; т.е. любой из подключенных пользователей может вводить данные в поля формы. При необходимости поля можно разработать так, чтобы их редактировал только один из пользователей либо требовалось подтверждение на изменение каким-либо из пользователей.
Таблица 2. Мобильные виджеты
Название виджетаОписание
ClickToCall.js
CallNotification.js
Cobrowse.js
CollaborationDialog.js
Эти виджеты являются мобильными расширениями базовых виджетов для настольных ПК. Эти расширения изменяют внешний вид, поведение и взаимодействия виджетов с целью их оптимизации для работы в мобильных браузерах (iOS и Android). (Описания приведены в таблице 1.)
iFrame.jsЭтот виджет используется для устранения недостатков реализации iFrame по умолчанию в браузерах iOS и Android. Он добавляет поддержку сенсорной прокрутки и масштабирования, необходимых для реализации функциональности совместного просмотра Web-страниц на мобильных устройствах.

Исходный код CEA-виджета

С данной статьей предоставляется исходный код CEA-виджета, который можно использовать в качестве отправной точки при разработке своих собственных виджетов. Он упакован в файл cea-widgets-source.zip как обычный Dojo Toolkit. В каталоге cea (рисунок 2) находятся основные файлы определения виджета (в каталоге widget) и ассоциированные тестовые HTML-файлы (в каталоге tests). Мобильные виджеты рассматриваются как подпакеты, которые находятся в подкаталоге mobile.

Рисунок 2. Структура каталогов исходного кода CEA-виджета
Рисунок 2. Структура каталогов исходного кода CEA-виджета

В основном каталоге widget размещены каталоги для каждого виджета, которые содержат JavaScript™-файл (например, ClickToCall.js) и ассоциированный каталог, содержащий файл шаблона (ClickToCall/ClickToCall.html) и css-определения (ClickToCall/ClickToCall.css) виджета (рисунок 3). Для виджетов, требующих перевода на другой язык, имеется также ассоциированный пакет сообщений в каталоге nls (например, nls/ClickToCall.js).

Рисунок 3. Каталоги виджетов
Рисунок 3. Каталоги виджетов

Подкаталоги validation и handler содержат дополнительные подвиджеты, используемые функциональностью TwoWayForm.

Для мобильных виджетов используется такая же схема определения их JavaScript-файлов, HTML-шаблонов, таблиц стилей, сообщений и тестов (рисунок 4).

Рисунок 4. Каталоги мобильных виджетов
Рисунок 4. Каталоги мобильных виджетов

Компоновка CEA-виджетов

Специальная версия компоновки ceadojo упаковывает CEA-виджеты со специфической версией Dojo и устраняет необходимость объявлять путь к CEA-модулю и "импортировать" виджет. В WebSphere Application Server V8 для создания специализированных компоновок применяется новая версия Dojo 1.5.0. Специализированная компоновка использует Dojo Build System (Pre 1.7).

Нет гарантии, что исходный код виджетов, предоставляемый с данной статьей, будет компоноваться с любой версией Dojo, отличной от 1.5.0 IBM Dojo Toolkit. Скорее всего потребуются некоторые изменения в исходном коде для реализации совместимости с конкретной версией Dojo, с которой должны упаковываться виджеты.

В результате удаления CEA-виджетов из WebSphere Application Server и предоставления их исходного кода можно настраивать и упаковывать эти виджеты с любой версией Dojo, используемой вашим приложением. Поскольку после Dojo 1.5 вышло несколько новых версий, вы, вероятно, захотите выполнить компоновку с более новой версией. Имеется несколько способов загрузки версии Dojo для компоновки. Пользователи WebSphere Application Server могут обратиться к IBM Dojo Toolkit (IDT), загрузив последнюю версию WebSphere Application Server Feature Pack для Web 2.0 and Mobile, в которую входит самая новая версия Dojo. В качестве альтернативы можно загрузить исходный код Dojo.

Профиль ceadojo находится в cea widgets/ceadojo.profile.js и точно определяет, что будет включать в версию Dojo система компоновки. Ключевые разделы профиля ceadojo приведены в листингах 1, 2 и 3. В листинге 4 приведен полный файл ceadojo.profile.js.

Листинг 1. Уровень
dependencies = {
layers: [
{
        	name: "dojo.js",
Листинг 2. Зависимости
dependencies: [
			"dojo.i18n",
			"dojo.io.iframe",
			"dojox.layout.ContentPane",
			"dijit._Templated",
			"dijit._Widget",
			"dijit.Dialog",
			"dijit.layout.LayoutContainer",
			...
			"cea.mobile.widget.CallNotification",
			"cea.mobile.widget.ClickToCall",
			"cea.mobile.widget.Cobrowse",
			"cea.mobile.widget.CollaborationDialog",
			"cea.mobile.widget.iFrame"
Листинг 3. Префиксы
prefixes: [
[ "dijit", "../dijit" ],
	 	[ "dojox", "../dojox" ],
		[ "cea", "../cea" ]
]
Листинг 4. ceadojo.profile.js
dependencies = {
layers: [
{
        	name: "dojo.js",
		dependencies: [
			"dojo.i18n",
			"dojo.io.iframe",
			"dojox.layout.ContentPane",
			"dijit._Templated",
			"dijit._Widget",
			"dijit.Dialog",
			"dijit.layout.LayoutContainer",
			"dijit.form.Button",
			"dijit.form.CheckBox",
			"dijit.form.ComboBox",
			"dijit.form.DateTextBox",
			"dijit.form.FilteringSelect",
			"dijit.form.MultiSelect",
			"dijit.form.HorizontalSlider",
			"dijit.form.VerticalSlider",
			"dijit.form.Textarea",
			"dijit.form.TextBox",
			"dijit.form.TimeTextBox",
			"cea.widget.CallNotification",
			"cea.widget.ClickToCall",
			"cea.widget.Cobrowse",
			"cea.widget.CollaborationDataTransfer",
			"cea.widget.CollaborationDialog",
			"cea.widget.CollaborationDialogBrowser",
			"cea.widget.EventHandler",
			"cea.widget.TwoWayForm",
			"cea.widget.handler.dijit._DateTimeTextBoxHandler",
			"cea.widget.handler.dijit._DijitWidgetHandlerFactory",
			"cea.widget.handler.dijit._MultiSelectHandler",
			"cea.widget.handler.dijit._SimpleValueHandler",
			"cea.widget.handler.dijit._ToggleHandler",
			"cea.widget.handler.WidgetHandler",
			"cea.widget.handler.WidgetHandlerFactory",
			"cea.widget.validation._DefaultValidationWidget",
			"cea.widget.validation._ValidationManager",
			"cea.widget.validation.ValidationWidget",
			"dojox.html.ext-dojo.style",
			"dojox.mobile",
			"dojox.mobile.parser",				
			"cea.mobile.widget.CallNotification",
			"cea.mobile.widget.ClickToCall",
			"cea.mobile.widget.Cobrowse",
			"cea.mobile.widget.CollaborationDialog",
			"cea.mobile.widget.iFrame"	                    
	      ]
}
		],
		prefixes: [
			[ "dijit", "../dijit" ],
		 	[ "dojox", "../dojox" ],
		 	[ "cea", "../cea" ]
]

Для компоновки ceadojo можно использовать включенный файл сценария компоновки с атрибутами, приведенными в листинге 5.

Листинг 5. Атрибуты компоновки
profile=ceadojo
releaseName=ceadojo
version=<version-number>
action=release	
localeList=ar,ca,cs,da,de-de,el,en-gb,en-us,es-es,fi-fi,fr-fr,he-il,hu,it-it,ja-jp,ko-kr,
nl-nl,no,pl,pt-br,pt-pt,ru,sk,sl,sv,th,tr,zh-tw,zh-cn,ro
cssOptimize=comments.keepLines
scopeMap=[['dojo','ceadojo'],['dijit','ceadijit'],['dojox','ceadojox']]

Заключение

В статье представлена подробная информация о компоновке исходного кода CEA-виджетов IBM WebSphere Application Server и упаковке их с вашими версиями Dojo. После открытия доступа к исходному коду CEA-виджетов появилась возможность расширять их функциональность любым подходящим способом.


Загрузка

ОписаниеИмяРазмер
Примеры кодаcea-widgets-source.zip197 КБ

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


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

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere, Web-архитектура
ArticleID=845670
ArticleTitle=Разработка виджетов WebSphere Application Server Communication Enabled Application (CEA)
publish-date=11142012