Знакомимся с Eclipse Communication Framework

. Posted in Fox populi - Защита

Eclipse — это прежде всего качественная платформа для построения самых разных приложений. Основным компонентом платформы является Equinox — реализация спецификации OSGi R4. На базе Equinox строятся другие компоненты, такие, как, например, Eclipse Communication Framework, о котором мы сегодня и поговорим.

Не секрет, что большинство создаваемых в наше время приложений работают в сетевой среде. Особенно это характерно для т.н. Enterprise-приложений, для разработки которых в основном Java и используется. Естественно, что такие приложения нуждаются в средствах взаимодействия с локальной сетью и/или Интернетом. Писать такое взаимодействие самому утомительно, поэтому для облегчения создания программ, использующих возможности сети и основанных на OSGi (в частности — Eclipse RCP-приложений), был разработан ECF.

ECF — это реализация концепции распределенных контейнеров, осуществляющих передачу данных по различным прикладным протоколам. Контейнеры могут обеспечивать связь с сохранением состояния (т.е. с сессией) и без сохранения. Поддерживается взаимодействие типа «точка-точка» (например, клиент — сервер) и типа «публикатор — подписчики». Само взаимодействие может быть как синхронным, так и асинхронным.

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

Единый API позволяет не беспокоиться о том, что у нас находиться «на другой стороне» — в случае изменения протокола мы просто меняем создаваемый контейнер, остальной код менять не требуется. Другим плюсом такой унификации является легкий переход от одной технологии (например, от Apache ActiveMQ, представленного в той же IBM WebSphere) к другой (например, Weblogic от Oracle).



Что касается использования ECF в OSGi-среде, то именно он содержит реализацию Distributed OSGi (RFC 119) для Equinox. Впрочем, давайте познакомимся с фреймворком поближе.

Рассмотрим основные API и некоторые контейнеры, которые их предоставляют.

1. Remote Services — удаленные сервисы. Суть в следующем: сервисы, зарегистрированные в OSGi-среде, запущенной на одной машине сети становятся доступны для использования на других машинах. Реализуется данный API с помощью протоколов: generic — специально разработанный для ECF протокол, r-osgi, XMPP/XMPP SSL, JavaGroups, ActiveMQ, Weblogic, REST.

2. Shared Object — позволяет распределять копии объекта по ECF-контейнерам. Такие копии называются репликами. Реплики могут обмениваться друг с другом сообщениями. Именно на основе Shared Object реализован механизм распределенной обработки сообщений. Реализуется данный API с помощью протоколов: generic, XMPP/XMPP SSL, Java Groups, ActiveMQ, Weblogic, Skype.

3. Datashare — позволяет обмениваться произвольными потоками данных между ECF-контейнерами. Реализуется с помощью: generic, XMPP/XMPP SSL, Java Groups, ActiveMQ, Weblogic, Skype.

4. Discovery — обеспечивает обнаружение доступных в сети сервисов. Используется, например, для реализации r-osgi. В ECF поддерживаются протоколы: Zeroconf/Bonjour/Rendevous и Java Service Locator Protocol (RFC 2608).

5. Presence — API для работы с Messengerами, IRC, Чатами. Поддерживаются следующие протоколы: XMPP/XMPP SSL, MSN, Yahoo, Skype.

6. File Transfer — как видно из названия, речь идет о передаче файлов. В ECF присутствует поддержка HTTP через URLConnector, HTTP через Apache HTTPClient, Bittorrent, XMPP/XMPP SSL.

Так же в ECF есть API для реализации телефонии, межпроцессного взаимодействия (IPC) и некоторые другие.

Как установить ECF? Все инструкции по установке собраны на этой странице. На сегодняшний день последней стабильной версией является 3.1, скачать которую можно отсюда.

Основная документация по проекту собрана в Eclipse WiKi. Там же находится документация по всем предоставляемым API. Отдельно можно ознакомиться с JavaDoc. Описание отдельных API с примерами можно найти в блоге Сурового челябинского программиста.

Интересным примером использования ECF является TweetHub — полнофункциональный твиттер-клиент, представляющий собой Eclipse RCP приложение. Данный проект пока находится в бете, официальных сборок нет, поэтому приходится собирать самостоятельно.

Для этого необходимо зачекаутить исходники с CVS-сервера OSU Open Source Lab. Строка соединения с CVS следующая: :pserver: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript :/ecf. Из дерева проекта выбираем каталог plugins, из которого в свою очередь закачиваем три бандла:

org.eclipse.ecf.provider.twitter — провайдер, предоставляющий ECF-контейнер для твиттера
org.eclipse.ecf.provider.twitter.ui.hub — плагин, предоставляющий пользовательский интерфейс
org.eclipse.ecf.provider.twitter.ui.hub.product — RCP-продукт.

 

Добавить комментарий


Защитный код
Обновить

Команды

Релиз Firefox 8, Thunderbird 8 и сопутствующих проектов Mozilla
Проект Mozilla официально представил релиз web-браузера Firefox 8.0, первый выпуск в рамках нового сокращенного цикла разработки, которому будет присвоен статус релиза с пр...14-11-2011

Хороший ход

События объекта Database Container
События объекта Database Container (DBC) предоставляют связь между событиями, написанными разработчиком, и активностью базы данных во время работы пользователя, такой как от...14-11-2011

Руководства

О правилах хорошего тона программирования на Лисе
1. Рекомендуется использовать на каждой рабочей станции копию Лисы. 2. Для ускорения необходимо разделить общедоступные базы и библиотеки. 3. Разделить функции для к...12-11-2011