Развёртывание IBM Lotus Connections: Интеграция с другими системами

Шестая часть нашей серии статей посвящена интеграции IBM Lotus Connections с другими системами с помощью Atom API. Статья предназначена ИТ-специалистам и разработчикам и будет полезной при изучении возможностей интеграции Lotus Connections в ваши приложения.

Мак Гуидера, старший ИТ-специалист, IBM

Мак Гуидера (Mac Guidera) - старший ИТ-специалист, работающий в IBM Lotus с января 2006 г. С января 2007 г. он является сотрудником IBM Software Services и занимается проектом Lotus Connections Early Adoption. Читайте его блог, посвящённый Lotus, на www.macguidera.net.



Фрэнк Джейниа, популяризатор технологий, IBM

Фрэнк Джейниа (Frank Jania) в настоящее время является популяризатором технологий в подразделении IBM по совместной работе в реальном времени и социально-ориентированным технологиям (Real Time Collaboration and Social Computing Technologies). Он устанавливает и поддерживает отношения с бизнес-партнёрами, помогая им в использовании и расширении платформ IBM для совместной работы. За восемь лет работы в IBM Фрэнк разрабатывал инструменты для Web-сайта Олимпиады в Сиднее, возглавлял проект IBM Community Tools, работал над пользовательским интерфейсом IBM Research и руководил распределённой командой инженеров-программистов. Автор многих изобретений и член IP-сообщества IBM, Фрэнк в настоящее время обладает 30 находящимися в стадии рассмотрения патентами и руководит усилиями по возобновлению участия в программе IP в масштабах всего исследовательского центра Software Group Research Triangle Park. Фрэнк получил степени бакалавра и магистра по электротехнике в Союзе Купера за прогресс в науке и искусстве. Читайте его блог, посвящённый социально-ориентированному ПО.



Фуи Ли, старший инженер-программист, IBM

Фуи Ли (FuYi Li) - старший инженер-программист IBM Lotus Connections, работающий в Вестфорде, Массачусетс. Фуи Ли возглавляет группу Lotus Connections Integration User Experience и занимается установлением связей между Lotus Connections и существующими приложениями, например IBM Lotus Sametime, IBM Lotus Notes и IBM WebSphere Portal. Он работал над архитектурой и реализацией Lotus Connections Portlet. Фуи получил степени магистра наук по информатике в Бостонском университете и бакалавра наук по информатике в Пекинском университете аэронавтики и астронавтики, Пекин, Китай.



Джуди Дж. Пайпер, разработчик SDK, IBM

Джуди Дж. Пайпер (Judy J. Piper) - разработчик SDK из команды IBM Lotus Connections Activities. Она отвечает за приведение Activities Atom API в соответствие с последними спецификациями протокола публикации Atom. Она принимала активное участие в совместной работе группы Lotus Connections, направленной на обеспечение непротиворечивости каналов Atom в сервисах Connections. В 2004 г. она получила степень бакалавра наук по информатике в Университете Юты и начала работать в IBM.



15.01.2009

Сегодня для работы с Web-приложениями требуется открытый и динамический доступ к информации, вне зависимости от используемой платформы, что обеспечивает интеграцию данных и процессов. Протокол публикации Atom (AtomPub) представляет собой механизм, отвечающий этим требованиям и обеспечивающий стандартизированный способ работы с компонентами. Это протокол уровня приложения для публикации и редактирования Web-ресурсов, поддерживаемый в следующих функциях IBM Lotus Connections: Activities, Blogs, Communities и Dogear (в функции Profiles поддерживается только чтение). В статье идёт речь о работе с Lotus Connections при помощи его Atom API.

Знакомство с Atom API

Идея публикации и синдикации данных через Интернет с помощью XML не нова. Десять лет назад первопроходцем в этой области стал XML-RPC, нашедший своё отражение во Frontie в апреле 1998 г. Это удалённый вызов процедуры, использующий HTTP в качестве транспорта, а XML - как носитель информации. Его устройство было несложным, но в то же время он позволял передавать сложные структуры данных от сервера к клиенту и наоборот; это было остроумное и простое решение, которое со временем должно было стать только лучше.

К счастью (или к несчастью), в нарождающемся ПО для ведения блогов применялась как раз спецификация XML-RPC. Она стала отличным способом публикации и удалённой работы с блогами, давая пользователям возможность выбора ПО для их редактирования, а также способность работать в отрыве от сервера. С появлением LiveJournal Client/Server API, Blogger API и MetaWeblog API и т. д. спецификация претерпела эволюцию. В это время она стала чрезвычайно сложной и начала напоминать плохую реализацию собственных компонентов. XML-RPC ушла в сторону от изначально простой и понятной реализации.

Этот неуклюжий, подобно первым шагам ребёнка, прогресс был необходим, чтобы пользователи убедились в надёжности удалённой синдикации и поверили в неё. Нужен был большой шаг вперёд, который обеспечил бы возможности совместной работы, более лёгкую интеграцию и совместимость различных приложений и компонентов при помощи безопасных транзакций. Таким необходимым шагом и стал Atom.

Atom - это собирательный термин, часто используемый для обозначения как формата синдикации Atom, так и протокола публикации Atom. Atom представляет собой модель данных, определяющую документы (Documents), канал (Feed) и запись (Entry) Atom. Документ Atom - это правильно сформированная и основанная на XML форма Web-контента и метаданных. AtomPub стандартизирует коммуникацию между клиентом и сервером для публикации и редактирования Web-ресурсов, что осуществляется при помощи формата синдикации Atom и протокола HTTP. При работе с Lotus Connections легко добиться интеграции с другими приложениями и функциональной совместимости различных компонентов, поскольку в его функциях имеется Atom API, совместимый со спецификациями Atom.

Типичная для Atom операция передачи данных между клиентом и сервером начинается с того, что клиент отправляет один из четырёх HTTP-методов (GET, POST, PUT и DELETE) на указанный URI ресурса, причём в качестве тела запроса указывается документ Atom. Сервер посылает заголовок HTTP-ответа и тело ответа после того, как клиент введёт пароль с помощью HTTP-метода аутентификации Basic. С помощью Lotus Connections Atom API можно разрешить приложению определять, каким образом лучше организовать доступ к сервису: с помощью JavaScript, PHP, J2EE или LotusScript, или каким-нибудь другим способом.


Интеграция с IBM Lotus Notes

С выходом нового клиента IBM Lotus Notes V8 появилась возможность легкого расширения среды рабочего пространства, что обеспечивает доступ к приложениям через составные приложения и клиентские плагины. Эта возможность демонстрируется в плагине боковой панели IBM Lotus Sametime, который обеспечивает полную функциональность Lotus Sametime при работе с Lotus Notes, а также в плагине боковой панели Activities: она позволяет пользователям взаимодействовать со своей панелью управления (dashboard) на сервере Lotus Connections Activities. Для работы с функциями Lotus Connections не требуется Lotus Notes V8; в настоящее время эта возможность реализуется путём разработки под заказ с помощью вызовов API.

Плагин Lotus Connections для Notes (текущая версия - 1.0.1) демонстрирует возможность доступа к данным Lotus Connections и добавления к ним своей информации. Этот плагин позволяет добавлять документы Lotus Notes в функцию Activity, создавать в Dogear закладку документа или базы данных или выполнять поиск по имени человека в функции Profile. Будучи установленными, эти опции появляются в Lotus Notes в виде панели инструментов, и позволяют пользователям выполнять следующие операции:

  • Добавлять документ Lotus Notes в функцию Activity, как показано на рисунке 1.
  • Делать закладки документов Lotus Notes, представлений или баз данных, как показано на рисунке 2.
  • Делать закладки представления базы данных.
  • Выполнять поиск по имени человека для просмотра его профиля, как показано на рисунке 4.
Рисунок 1. Добавление к Activity
Добавление к Activity
Рисунок 2. Добавление закладки
Добавление закладки
Рисунок 3. Поиск профиля
Поиск профиля

Для упрощения работы с Lotus Connections API можно использовать открытые Abdera API из Java-агентов IBM Lotus Domino Designer. В проекте Abdera API реализован формат синдикации Atom и AtomPub, и этот API легко подключается к Lotus Connections API. В листинге 1 показано использование объекта Abdera и класса Client для извлечения канала в Java-агенте Lotus Notes.

Листинг 1. Извлечение канала Overview из Activities
// С помощью объекта Abedera ClientResponse можно извлекать записи 
// из канала, как показано ниже.
Abdera _abdera = new Abdera();
Client _client = new CommonClient(_abdera);
client.usePreemptiveAuthentication(true);
client.addCredentials(“http://” + hostname, null, null, 
new UsernamePasswordCredentials(_username, _password)); 
            RequestOptions _options = _client.getDefaultRequestOptions();
            options.setUseChunked(false);            

ClientResponse clientResponse = 
_client.get(“http://” + hostname + atomFeedPath);             
            InputStream in = clientResponse.getInputStream();                  
            Document doc = (Document)_abdera.getParser().parse(in);
Feed feed = (Feed)doc.getRoot();
List links = feed.getEntries(); 
Iterator iterator = links.iterator();
while( iterator.hasNext()){
   Entry entry = (Entry)iterator.next();
}

Интеграция с IBM WebSphere Portal

IBM WebSphere Portal предоставляет единую точку доступа к Web-контенту и приложениям, настраиваемую под потребности каждого пользователя. Интеграция WebSphere Portal и функций Lotus Connections даёт бизнес-пользователям полный пакет ПО для совместной работы с поддержкой Web 2.0. Возможности интегрированного решения на основе WebSphere Portal и Lotus Connections значительно превосходят возможности каждого из этих продуктов по отдельности. В этом разделе мы продемонстрируем некоторые возможности интеграции WebSphere Portal и Lotus Connections.

Lotus Connections Portlet

Lotus Connections Portlet поддерживает все пять функций Lotus Connections: Dogear, Profiles, Communities, Activities и Blogs. Lotus Connections Portlet представляет собой стандартный портлет JSR168; он поддерживает режимы View, Personalize, Edit Shared Settings и Configuration.

В Lotus Connections Portlet используются каналы Atom, поддерживаемые функциями Lotus Connections, для предоставления пользователям портала панели управления Lotus Connections. Lotus Connections Portlet поддерживает просмотр всех пяти функций и различных их представлений, отображение облаков тегов, многоязычный поиск (supporting search) и специальную настройку представлений, а также обеспечивает быстрый запуск пользовательского Web-интерфейса Lotus Connections. См. рисунок 4.

Ajax-портлет использует XMLHttpRequest для извлечения каналов из функций Lotus Connections, обрабатывает каналы с помощью объектной модели документов (DOM) и применяет DHTML для динамического отображения контента без обновления всей страницы портала.

Рисунок 4. Портлет Dogear
Портлет Dogear

Если портлет настроен на работу с несколькими функциями Lotus Connections, пользователи могут просматривать данные из выбранных приложений с помощью выпадающего меню. В каждом приложении пользователь может выбрать представления из выпадающего меню. Представления бывают встроенные (out-of-the-box) и пользовательские (custom). Пользовательские представления можно определять в режиме Portlet Edit Shared Settings. В следующем разделе мы покажем, как определять пользовательские представления.

Основное содержимое портлета представляет собой список записей выбранных сервисов в выбранном представлении: My Activities, My Blogs, My Bookmarks и My Communities. При выборе опции Read More выводится краткое описание каждой записи.

В каждой из функций портлет поддерживает полнотекстовый поиск и фильтрацию по тегам. Если вы хотите уменьшить размер окна портлета, можно скрыть облако тегов и поле для поиска. В некоторых функциях имеется более одной поисковой области. Например, в Dogear можно искать все закладки (All Bookmarks), теги (Tags), людей (People) и свои закладки (My Bookmarks).

Установка и настройка

Если вы предпочитаете иметь для каждого портлета отдельный сервис, можно клонировать портлет и создать таким образом несколько портлетов. Каждый портлет можно настроить на подключение к одному сервису. Как вариант можно также настраивать каждый экземпляр портлета на работу с одной функцией Lotus Connections.

Портлет поддерживает технологию единого входа (single sign-on - SSO), что означает, что если WebSphere Portal и Lotus Connections настроены на использование SSO, при работе с порталом не нужно вводить имя пользователя и пароль. Если же SSO на Websphere Portal и Lotus Connections на настроен, в режиме персонализации необходимо будет ввести имя пользователя и пароль, как показано на рисунке 5.

Рисунок 5. Режим персонализации
Режим персонализации

В режиме Edit Shared Settings можно определять пользовательские представления. Кроме того, можно указать, какие приложения будут отображаться в режиме представления (View mode), выбрав опцию Show the application. Представление по умолчанию показано на рисунке 6.

Рисунок 6. Настройки совместного использования портлета
Настройки совместного использования портлета

Lotus Connections Portlet может выступать как портлет для совместной работы. На рисунке 7 показан пример использования Lotus Connections Portlet как целевого портлета для отображения интегрированных результатов поиска по четырём функциям Lotus Connections. Каждая функция представляет собой экземпляр Lotus Connections Portlet. Четыре функции (Communities, Dogear, Activities и Blogs), а также Google, отображают результаты поиска из исходного портлета, в котором в качестве строки поиска было введено слово "marketing".

Рисунок 7. Отображение портлета
Отображение портлета
Другие возможности интеграции WebSphere Portal

Поскольку все функции Lotus Connections поддерживают Atom/AtomPub, а Websphere Portal является Web-приложением, разработчики могут без труда создавать ситуационные приложения с помощью Atom API, поддерживаемых Lotus Connections. Например, можно создать расширение Firefox, в котором рядом с Web-контентом, для которого можно создать закладку, расположен значок Dogear или Activities. Нажимая на этот значок, пользователи могут создать закладку для этого контента в Dogear или отправить ссылку в Activities.


Интеграция с Microsoft Windows Explorer и Microsoft Office

В плагинах Lotus Connections для Microsoft Windows Explorer и Microsoft Windows Office для публикации документов в Activities и Blogs и поиска в Profiles используется Lotus Connections Atom/AtomPub API.

Плагин Lotus Connections для Microsoft Windows Explorer позволяет пользователю публиковать документы в Activities, выделяя документ правой кнопкой мыши в Microsoft Windows Explorer. Плагин Lotus Connections для Microsoft Word позволяет пользователям Microsoft Windows публиковать документ в Activities, отправлять сообщения в Blog, осуществлять поиск в Profiles и создавать список текущих дел (to-do list).

С помощью опции "Make To Do List" можно быстро отправить список текущих дел в Activities из документа Microsoft Word, выделив необходимые строки. При отправке документа в Activities, как показано на рисунке 8, можно выбрать конкретную Activity, в которую нужно отправить документ. Можно также добавлять в это сообщение описания и теги.

Рисунок 8. Добавление в Activity
Добавление в Activity

Аналогично, плагин Lotus Connections для Microsoft PowerPoint и Excel поддерживает функции Add to Activities и Search Profiles. В документе достаточно выделить имя и выбрать Search Profiles из меню Lotus Connections. Результаты поиска отображаются в диалоговом окне, показанном на рисунке 9. В нём можно выделить имя и просмотреть профиль этого человека через пользовательский Web-интерфейс Profiles.

Рисунок 9. Поиск в Profiles
Поиск в Profiles

Интеграция с Web-браузерами

Lotus Connections - это мощный набор Web-приложений, обеспечивающий лёгкую интеграцию с Web-браузерами. Эти приложения могут размещаться в букмарклетах и плагинах.

Букмарклеты

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

Lotus Connections поставляется с букмарклетами для трёх своих сервисов:

  • Букмарклет Activities позволяет добавлять URL-адрес, который в настоящий момент открыт в браузере, в Activity. В открывшемся окне выводится список доступных вам Activities.
  • Букмарклет Communities позволяет добавлять URL-адрес, который в настоящий момент открыт в браузере, к списку закладок Community.
  • Букмарклет Dogear позволяет добавлять URL-адрес, который в настоящий момент открыт в браузере, к вашим закладкам.

В этих сервисах можно перейти на страницу Tools и перетащить эти букмарклеты на панель ссылок вашего браузера. Поскольку букмарклеты - это просто JavaScript, можно использовать их в качестве шаблона для добавления к вашей странице какой-либо функциональности. В листинге 2 показано содержимое букмарклета, идущего в комплекте с функцией Dogear Lotus Connections. (Букмарклет из листинга 2 отформатирован для облегчения восприятия. Изначально он не был разбит на строки.)

Листинг 2. Содержимое букмарклета функции Dogear
javascript:
var h='https://paxos.lotus.com/dogear';
var d=document;
var b=d.body;
var e=encodeURIComponent;
var t=setTimeout;
var dw;
(function() {
 if(b){
  var p=d.createElement('script');
  p.charset='UTF-8';
  p.src=h+'/tools/blet.js';
  b.appendChild(p);
  }

 t("var u=d.getElementById('dogear_postUrl');
    if(u){u=u.href;}
    else{u=h+'/post?url='+e(location.href)+'&title='+e(d.title);}
    dw=open(u+'&ver=0.9','dogear','toolbars=no,width=670,height=650');
    if(!(dw==null||typeof(dw)=='undefined')){dw.focus()}",250)}
 )()

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

Расширения браузера

В этом разделе мы приводим примеры расширений браузера, не вникая в механизм создания расширений для различных браузеров. Более подробную информацию по разработке расширений Firefox см. на Web-сайте Mozilla. Эти примеры были созданы разработчиками IBM с помощью Lotus Connections API, о котором пойдёт речь в следующей статье из этой серии.

Панель списка текущих дел в Firefox


Панель списка текущих дел в браузере Firefox позволяет быстро и легко управлять текущими делами, определённым в какой-либо Activity. См. рисунок 10.

Рисунок 10. Расширение браузера Firefox
Расширение браузера Firefox

Плагин Dogear


Расширение Dogear можно установить из Web-приложения Dogear. Найти его можно на странице Tools приложения Dogear.

Расширение браузера для работы с Dogear показывает, кто ещё создал закладку на текущую страницу, и какие теги они использовали. В нём также имеется ссылка для сохранения самой закладки. См. рисунок 11.

Рисунок 11. Расширение браузера для работы с Dogear
Расширение браузера для работы с Dogear

Инструментальная панель Lotus Connections


Инструментальная панель Lotus Connections обеспечивает лёгкий поиск и добавление закладок для различных сервисов. См. рисунок 12.

Рисунок 12. Инструментальная панель Lotus Connections
Инструментальная панель Lotus Connections

Использование Javlin – ярлыки с информацией о контакте (Person Tag)

Lotus Connections содержит JavaScript-библиотеки многократного использования для внедрения расширенной информации о людях в каталог Profiles из вашего приложения. В нижеприведённых примерах показаны два типа таких ярлыков – встроенный и всплывающий – в открытом и закрытом состояниях. На рисунках с 13 по 16 показаны состояния ярлыков.

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

Рисунок 13. Встроенный ярлык - закрыт
Встроенный ярлык - закрыт
Рисунок 14. Встроенный ярлык - открыт
Встроенный ярлык - открыт
Рисунок 15. Всплывающий ярлык - курсор наведён
Всплывающий ярлык - курсор наведён
Рисунок 16. Всплывающий ярлык - отображение информации
Всплывающий ярлык - отображение информации

Код, генерирующий эти ярлыки, очень прост. В листинге 3 приведён весь код, необходимый для генерации обоих ярлыков на примере страницы, которая работает в любом браузере с доступом к серверу Lotus Connections Profiles.

Листинг 3. Генерация ярлыков
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
	<!-- Copyright IBM Corp. 2001, 2006 All Rights Reserved. -->
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title> Person Tag test page </title>
	<script type="text/javascript" 
	src="http://connections.company.com/ibm_semanticTagServlet/
	javascript/semanticTagService.js"></script>
	<link rel="stylesheet" href="http:// connections.company.com/profiles/css/
	styles.css" type="text/css" />
</head>
<body>
	<script>
		var appName = "communities";	
		var microfmtTagScope = "div,h2";
	</script>
	<h1>Person tag (inline)</h1>
	<div class="vcard X-person-display-inline">
		<span class="fn" style="display:none;">Frank Jania</span> 
		<span class="email" style="display:none;">fjania@us.ibm.com</span>
	</div>
	<h1>Person tag (popup)</h1>
	<h2 class="vcard">
		<a href="http:// connections.company.com/profiles/html/
		profileView.do?uid=6A1212897&lang=en" 
		class="fn url person">Frank Jania</a>
		<span class="email" style="display:none;">fjania@us.ibm.com</span>
	</h2>
</body>
</html>

Заключение

Как мы продемонстрировали в этой статье, реализация Atom API в Lotus Connections облегчает интеграцию приложений сторонних производителей с пакетом для работы с социальными сетями. Возможность расширения Lotus Connections, а также лёгкого создания гибридных приложений (mash-ups), плагинов или новых интерфейсов являются ключевыми функциями продукта.

Благодарности

Авторы этой статьи хотят выразить благодарность членам аналитической группы Lotus Connections Atom API за их усилия и предоставленные ресурсы, которые сделали возможным написание этой статьи: Робу Йейтсу (председатель), Энди Майерсу (Activities), Джуди Пайпер (Activities), Джеймсу Снеллу (Blogs), Алексу Кордуну (Communities), Дэвиду Бруксу (Dogear) и Коллин Коннерни (Profiles). Кроме того, мы приносим благодарность Дэну Гурни из группы разработки плагинов за отличную работу и готовность оказать помощь и поддержку.

Ресурсы

Научиться

Обсудить

Комментарии

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=Lotus
ArticleID=363898
ArticleTitle=Развёртывание IBM Lotus Connections: Интеграция с другими системами
publish-date=01152009