Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
http://www.rusdoc.ru. Версия для печати.

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

Раздел: Programming / Java @ 14.12.2009 | Ключевые слова: eclipse java eclipse communication framework

Автор: beq
Источник: habrahabr

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:anonymous@ecf1.osuosl.org:/ecf. Из дерева проекта выбираем каталог plugins, из которого в свою очередь закачиваем три бандла:

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

image

После компиляции проектов необходимо запустить org.eclipse.ecf.provider.twitter.ui.hub.product как Eclipse Application, при этом не забыть в настройках запуска выбрать Run a productorg.eclipse.ecf.provider.twitter.ui.hub.product. Когда приложение запустится, нужно залогиниться в твиттер под своим аккаунтом, после чего можно будет увидеть примерно следующее:

image

Выглядит довольно оригинально, не так ли?

Данная статья является перереаботанной версией статьи, размещенной в блоге Сурового челябинского программиста.


Вернуться в раздел: Programming / Java
© Copyright 1998-2012 Александр Томов. All rights reserved.