Ознакомьтесь с разработкой плагинов для IBM Lotus Sametime V7.5 с помощью комплекта для разработки ПО (Software Development Kit - SDK) Lotus Sametime Connect. Узнайте о новой архитектуре Sametime, базирующейся на Eclipse и IBM WebSphere Everyplace Deployment.

Лори Отт, специалист по работе с бизнес-партнерами, IBM

Лори Отт (Lori Ott) - технический специалист по внедрению BP (Technical Enablement Specialist). Она присоединилась к IBM в 2000 г. как разработчик учебной программы для группы разработчиков ПО Lotus Notes для Lotus Education. Она также является соавтором "Красной книги" IBM под названием "IBM Workplace Managed Client: ISV Integration Guide."



Дэн Кен, ведущий инженер по программному обеспечению, IBM

Дэн Кен (Dan Kehn) – старший разработчик ПО IBM в Research Triangle Park, Северная Каролина. У него есть большой опыт работы с разнообразным ПО. Он имел дело со средствами разработки, например Rational Application Developer, а также работал над увеличением производительности операционных систем, анализом памяти и проектировал пользовательские интерфейсы. Он также является соавтором получившей награды книги Руководство Java-разработчика по Eclipse (The Java Developer's Guide to Eclipse). В настоящее время он работает техническим специалистом по внедрению (Technical Enablement Specialist) и помогает партнёрам по бизнесу интегрировать их продукты в IBM Lotus Sametime Connect.



15.12.2006

Статья developerWorks "Обзор новых возможностей и технологий в IBM Lotus Sametime 7.5" ввела вас в курс новых возможностей и пользовательского интерфейса Lotus Sametime V7.5, однако в ней только немного затрагивается возможность расширения функциональности продукта. Данная статья "принимает эстафету" и рассказывает о типах усовершенствований, которые разработчики могут дать сообществу своих пользователей с помощью IBM Lotus Sametime Connect Software Development Kit (SDK).

Одним из ценнейших качеств Lotus Sametime Connect V7.5 является возможность сторонним разработчикам использовать основанные на Eclipse плагины для расширения функциональности продукта. Lotus Sametime Connect V7.5 включает SDK, документирующий API, необходимые для расширения клиента с помощью модели разработки плагинов расширенных клиентских приложений Eclipse (Eclipse rich client application). В "Руководстве по интеграции Lotus Sametime Connect", входящем в состав SDK, объясняется реализация нескольких образцов плагинов, что служит хорошим началом для создания более сложных плагинов. Разработчики могут исследовать и модифицировать исходный код этих плагинов с помощью базовой интегрированной среды разработки (Integrated Development Environment - IDE) типа Eclipse или более продвинутой IDE, например IBM Rational Application Developer.

ПРИМЕЧАНИЕ: Прошлый опыт разработки, особенно в Eclipse, полезен, но не необходим для понимания представленных в статье тем. В следующей статье из этой серии объясняется шаги программирования, необходимые для расширения Lotus Sametime Connect, и предназначена она для программистов, имеющих опыт разработки плагинов с помощью Eclipse.

Статья знакомит вас с новой архитектурой Lotus Sametime, представляет подробный обзор разработки приложений в Lotus Sametime V7.5 и описывает образцы плагинов, входящих в поставку с Lotus Sametime Connect V7.5.

Долой старое, да здравствует новое!

IBM Lotus Sametime Connect V7.5 - лидер среди продуктов и платформ для совместной работы в реальном времени. Lotus Sametime обеспечивает информацию о присутствии (location awareness), обмен мгновенными сообщениями и возможности по проведению Web-конференций, что позволяет людям сотрудничать в реальном времени, вне зависимости от их физического местонахождения. В версию 7.5 включено много новых функций, например:

  • Значительно модернизированный пользовательский интерфейс
  • Новые возможности по установлению присутствия (например, location awareness, статусы In A Meeting и Do Not Disturb по выбору)
  • Расширенная поддержка платформ для пользователей Macintosh и Linux
  • Расширения сторонних производителей, использующие стандартную среду плагинов Eclipse

Пользовательский интерфейс (UI) Lotus Sametime V3.1 и Lotus Sametime V7.5 показаны на рисунках 1 и 2 соответственно.

Рисунок 1. Пользовательский интерфейс Lotus Sametime V3.1
Пользовательский интерфейс Lotus Sametime V3.1
Рисунок 2. Пользовательский интерфейс Lotus Sametime V7.5
Пользовательский интерфейс Lotus Sametime V7.5

Как вы видите, есть очевидные различия, однако самое значительное изменение в Lotus Sametime V7.5 - это то, что он перестал быть просто продуктом и стал платформой. Плагины, созданные IBM или сторонними производителями, могут расширять функциональность Lotus Sametime Connect с помощью его SDK.


Зачем расширять Lotus Sametime Connect?

Расширяемый клиент является более гибким, чем традиционные приложения. Например, вместо распространения ежеквартальных обновлений, вы можете создать плагин, который пользователи в состоянии установить сами. Кроме того, ваша компания может начать использовать встроенную в Lotus Sametime функцию click-to-voice-chat (нажать для начала голосового чата). Когда-нибудь в будущем вы, тем не менее, можете интегрировать Lotus Sametime с внутренней телефонной системой с входящей и исходящей связью для включения функции click-to-call при помощи плагина, разработанного вами, или купленного у стороннего производителя.

Предыдущие релизы клиента обмена мгновенными сообщениями Lotus Sametime не допускали возможности расширения. Версия 7.0 Lotus Sametime Java Toolkit позволяла повторное использование виджетов Sametime-aware и разрешала API доступ к данным сервера, но сегодняшний Lotus Sametime Connect идёт дальше.

Кроме того, и это, возможно, самое важное, компоненты присутствия и обмена сообщениями в Lotus Sametime Connect V7.5 могут быть использованы другими продуктами из серии IBM managed client products, среди которых следующий релиз IBM Lotus Notes под кодовым именем Hannover, а также будущие версии IBM Workplace Managed Client.

При создании Lotus Sametime Connect SDK компания IBM рассмотрела более 30 возможных сценариев, которые проиллюстрировали бы возможности расширения продукта, а затем сузила этот список до пяти образцов. IBM сделала это с той целью, чтобы исходный код образцов SDK был полезной отправной точкой для ваших собственных проектов, а также был достаточно практичным и пригодным для повседневного использования.


Расширение пользовательского интерфейса Lotus Sametime Connect

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

В меню Tools вы можете создать пункт меню действий, открывающий соответствующее приложения (см. рисунок 3). Либо вы может добавить новую опцию в контекстное меню Contact, вызывающую информацию о сотруднике для выбранного члена Списка контактов (Contacts list). Так как плагины встраиваются прямо в основной код, зачастую трудно отличить функции, изначально присущие продукту, от функций, задействованных плагинами сторонних производителей, если только к этим функциям не обращаться специально.

Рисунок 3. Пример расширяемого элемента интерфейса пользователя
Пример расширяемого элемента интерфейса пользователя

Рисунок 4 показывает интерфейс чата, модифицированный несколькими плагинами, например иконкой для запуска голосового чата с использованием протокола VoIP (Voice Over Internet Protocol). Ваши собственные расширения могут отображаться на панели инструментов, в меню Tools (Инструменты), и на панели инструментов Message (Сообщение).

Рисунок 4. Пользовательский интерфейс чата, модернизированный плагинами
Пользовательский интерфейс чата, модернизированный плагинами

Эти два примера дают вам представление о том, что можно сделать с Lotus Sametime Connect при помощи ваших подключаемых модулей.

Краткий обзор Eclipse

Одним из самых серьёзных изменений Lotus Sametime Connect является то, что теперь он построен поверх Eclipse. В сущности, Lotus Sametime Connect - это пакет плагинов Eclipse. Хотя некоторые считают, что Eclipse - среда разработки лишь для Java, он также является открытой платформой для разработки расширенных клиентов (rich client).

Плагин Eclipse - наименьшая отдельная часть приложения или проекта Eclipse. Одной из аналогий плагинов Eclipse может послужить электрический тройник: тройник является точкой расширения. Вилки, которые подключаются к выходам - расширения.

Точки расширения Lotus Sametime Connect задокументированы в Lotus Sametime Connect SDK. Вы можете расширить Lotus Sametime Connect, создав плагины, которые способствуют (или расширяют) точки расширения плагинов Lotus Sametime Connect. Ваши плагины могут получить доступ к любому из сервисов, которые открыты для доступа Lotus Sametime или расположенными под ним платформами типа WebSphere Everyplace Deployment.

Взаимосвязи между плагинами, расширениями и точками расширения определеляются манифестом плагинов. IDE Eclipse включает специализированные редакторы для создания и модификации артефактов плагинов в среде разработки плагинов (plug-in development environment - PDE). В этих редакторах имеются мастера, которые проводят разработчика через процесс создания плагина, декларируют его взаимозависимости, подключаются к точкам расширения других плагинов и декларируют свои собственные точки расширения.


Обзор архитектуры Lotus Sametime Connect

Eclipse Rich Client Platform (RCP) и IBM WebSphere Everyplace Deployment лежат в основе Lotus Sametime Connect. Основная выгода такого выборы платформы состоит в том, что она может легко интегрироваться с другими компонентами приложений, а именно с другими плагинами. Вклад этих плагинов может быть разным: от простого пункта в меню, отображающего информацию в диалоговом окне, до сложного, целиком интегрированного мини-приложения. Такая архитектура Lotus Sametime Connect призвана обеспечить три цели: расширяемость, интеграцию и многократное использование.

Преимуществом использования Eclipse в качестве платформы интеграции для пользователя является его способность добавлять в среду новую функциональность. Сильным коммерческим доводом в её пользу является то, что, несмотря на гибкость платформы, пользовательский опыт, необходимый для работы с ней, остаётся более или менее постоянным. Однако основным преимуществом для программистов Eclipse является возможность использования своих существующих навыков при разработке стандартных основанных на Eclipse RCP бизнес-приложений. Те, кто только начал работать с Eclipse, обнаружат, что Web-сайты Eclipse и developerWorks изобилуют полезными статьями. Также легкодоступны книги по разработки приложений Eclipse, например Руководство Java-разработчика по Eclipse.

Большинство принципов разработки приложений Eclipse можно непосредственно применять при создании расширений Lotus Sametime Connect. Даже пользователи, у которых отсутствует предыдущий опыт разработки приложений Eclipse, узнают в этих принципах обычные для объектно-ориентированного программирования модели. Например, Eclipse следует классическому разделению модели (Workbench) и вида (ViewParts и их графические компоненты низкого уровня в среде JFace). Таким образом, чёткое разделение ответственности компонентов уменьшает потребность в изучении каждого отдельного фрагмента для достижения продуктивности. Архитектура Lotus Sametime исповедует тот же самый принцип.

Рисунок 5 показывает основные компоненты Lotus Sametime Connect. Уровни Java runtime, Eclipse RCP и WebSphere Everyplace Deployment образуют общую основу для продуктов IBM managed client, в которые входит Lotus Notes (релиз Hannover) и будущие версии IBM Workplace Managed Client. Компоненты в рамке специфичны для Lotus Sametime Connect и включают публичные и зависящие от реализации плагины.

Рисунок 5. Основные компоненты Lotus Sametime Connect
Основные компоненты Lotus Sametime Connect

Большинство прямоугольников в ряду выше уровня Eclipse 3.2 RCP соответствуют одному или более плагину. Некоторые, например Lotus Sametime Java API, представляют библиотеки, на которые можно ссылаться с помощью расположенных над ними плагинов, но сами плагинами не являются. То есть, не весь код "знает" о плагинах, либо потому, что был написан до введения модели плагинов Eclipse, либо потому, что не требует расширяемости, предоставляемой Eclipse.


Образцы плагинов SDK Lotus Sametime Connect

Давайте теперь обсудим примеры, которые идут в комплекте с SDK Lotus Sametime Connect.

Плагин Quick Response (Быстрый ответ)

Многие чаты начинаются со слова "Привет" и заканчиваются коротким списком типичных ответов, например, "Спасибо, поговорим позже." А иногда беседа временно прерывается такими шаблонными ответами, как, "Извините, я сейчас на собрании. Могу я связаться с вами позже?" или "Давайте это обсудим. Пожалуйста, позвоните мне по номеру 555-1212." Некоторые пользователи систем обмена сообщениями в таких случаях используют аббревиатуры типа BRB (be right back - скоро вернусь) или OTP (on the phone - разговариваю по телефону), предполагая, что партнёр знает эти жаргонные сокращения. Плагин Quick Response поступает в таких ситуациях более искусно, позволяя пользователю определять заранее записанные ответы из полных предложений.

Нетрудно представить себе, что такой подход можно распространить и на другие ситуации, например на обработку типичных ответов в онлайновых чат-службах помощи. Например, представитель службы сервиса клиентов может отправить текст и ссылки на Web-страницу в ответ на типичные вопросы парой кликов. Так как Lotus Sametime Connect поддерживает расширенные текстовые возможности, представитель может также включить в ответ HTML-код и графику, если клиент службы обмена сообщениями его партнёра имеет точно такие же параметры.

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

  • Интеграцию новых возможностей с окном чата
  • Изменение интерфейса путём добавления иконки к панели инструментов и выпадающего меню
  • Добавление страниц настроек к диалоговому окну стандартных настроек Lotus Sametime Connect

На рисунке 6 показан пример изменения плагином Quick Response окна чата.

Рисунок 6. Пример плагина Quick Response
Пример плагина Quick Response

Плагин Recent Buddies (Недавние контакты)

Стандартный Список контактов Lotus Sametime Connect организует партнёров по группам, что помогает при управлении большими группами контактов, однако мы часто общаемся с гораздо более узким кругом людей, члены которого со временем меняются. Recent Buddies отличается от Списка контактов тем, что его содержимое определяется динамически на основе ваших недавних чатов. Начало чата с кем-либо из вашего Списка контактов или получение входящего чата от кого-либо, кто может быть (а может и не быть) в вашем Списке контактов, автоматически добавляет их к списку Recent Buddies. После того, как партнёр добавляется к этому списку, вы можете повысить его статус до Primary partner - Основной партнёр (что обозначается звёздочкой рядом с его именем), и запись перемещается в начало списка. Или же вы можете запретить динамически добавленному партнёру появляться в списке.

Итак, плагин Recent Buddies даёт пользователям динамически формируемый список контактов, основанный на их самых последних чатах. Для программиста плагин демонстрирует как:

  • Реагировать на важные события в клиенте Lotus Sametime Connect (например, входящие и исходящие чаты)
  • Доставлять информацию о пользователях из справочника (directory) Sametime
  • Хранить относящиеся к пользователям данные локально, в данном случае список пользователей, с которыми вы недавно общались в чате

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

Рисунок 7. Пример плагина Recent Buddies
Пример плагина Recent Buddies

Другие примеры из SDK

В SDK входят другие лёгкие для понимания примеры, которые демонстрируют, как использовать API Lotus Sametime Connect.

BuddyNote (Информация о контакте)

Этот пример определяет мини-приложение, "обитающее" в Списке контактов, как и Recent Buddies. В этом случае комплексное приложение содержит визитную карточку и текстовую область для ваших заметок. Когда вы выбираете партнёров в списке контактов, BuddyNote обновляется и показывает информацию с их визитных карточке и любые заметки об этих контактах, которые вы ввели ранее. С точки зрения сложности реализации этот пример немного сложнее вашего типичного примера "hello world".

Acronym Expander (Конвертор сокращений)

Этот пример автоматически конвертирует входящие сокращения, например LOL и BRB, в соответствующие фразы, то есть laughing out loud (очень смешно) и be right back (скоро вернусь). Исходный код можно легко адаптировать для обработки других типов трансформации, например перевода с одного языка на другой, специфичных для компании сокращений инвентарных номеров и т. д.

Snippets (Сниппеты)

Snippets - это "мешок" с примерами исходного кода, например, короткие примеры, которые добавляют пункты меню в различные представления, и объекты, расширяющие список участников чата и т. д.

Примеры самодостаточны не случайно; им не требуются сервисы, за исключением тех, которые предоставляются сервером Lotus Sametime. Однако, так как Lotus Sametime Connect построен на IBM WebSphere Everyplace Deployment, ваши собственные расширения могут наилучшим образом использовать корпоративный доступ к данным.

Партнёры IBM активно участвовали в программе бета-тестирования Lotus Sametime, и теперь, когда Lotus Sametime Connect V7.5 доступен повсеместно, вы можете увидеть в нём множество новых интегрированных возможностей!


Заключение

IBM Lotus Sametime прошёл путь от приложения обмена мгновенными сообщениями до полностью расширяемой среды разработки приложений. Плагины, например Quick Response и Recent Buddies, могут расширять функциональность Lotus Sametime Connect с помощью его SDK. Платформа Eclipse Rich Client Platform лежит в основе Lotus Sametime Connect, что позволяет добавлять в среду новые функции.

Обязательно поищите другие статьи, в которых объясняются шаги по созданию и развёртыванию плагинов Lotus Sametime Connect V7.5 с начала до конца.

Ресурсы

Научиться

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

Обсудить

Комментарии

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=183985
ArticleTitle=Расширение IBM Lotus Sametime Connect V7.5
publish-date=12152006