Интеграция социальных сетей в BPM: Часть 1. Сбор данных из Twitter

Использование механизма процесса и среды коннекторов Bonita для интеграции внешних приложений

Гибкие инструменты управления бизнес-процессами (business process management - BPM) позволяют интегрировать социальные сети в бизнес-процессы компании с минимальным объемом программирования. В этой статье из двух частей показано, как приложение, построенное с помощью инструмента BPM с открытым исходным кодом Bonita Open Solution, собирает, отображает и использует данные из социальных сетей. В первой части говорится о том, как настроить приложение для подключения к Web-сервису Twitter и предоставить пользователям возможность поиска по ключевым словам. Во второй части мы покажем, как это приложение взаимодействует с системой управления взаимоотношениями с клиентами (customer relationship management - CRM).

Билал Сиддикви, внештатный консультант, WaxSys

Билал Сиддикви (Bilal Siddiqui) является инженером-электронщиком, консультантом по XML и соучредителем WaxSys, компании, чья деятельность направлена на упрощение электронного бизнеса. После окончания в 1995 г. Инженерно-технологического Университета, г. Лахор, и получения степени по электронной технике, он начал разрабатывать программные продукты для промышленных систем управления. В дальнейшем он занимался XML и использовал свой опыт в программировании C++ для разработки Web- и Wap-базируемых инструментов для XML-технологий, серверных парсинговых программных продуктов и служебных приложений. Билал – проповедник передовых технологий и часто публикуется в этой области.



23.04.2012

IBM и BPM

IBM уже давно активно работает в области бизнес-процессов, предлагая широкий набор коммерческих инструментов для моделирования, имитации, выполнения, адаптации, контроля и оптимизации бизнес-процессов. В апреле IBM анонсировала Business Process Manager V7.5, существенное обновление своей комплексной платформы BPM. Его выход ожидается в июне 2011 года. А до тех пор следите за деятельностью IBM в области BPM по статьям портала developerWorks.

Растущее значение порталов социальных сетей, таких как Twitter и Facebook, вынуждает предприятия искать быстрые и простые способы интеграции социальных сетей в бизнес-процессы. Один эффективный подход заключается в использовании BPM-инструментов, которые позволяют интегрировать в бизнес-процессы внешние приложения и данные.

В этой статье из двух частей показано, как использовать Bonita, инструмент BPM с открытым исходным кодом, для создания программы поиска в социальных сетях для гипотетической компании. Программа состоит из бизнес-процесса, гладко интегрированного с внешними приложениями. Она позволяет искать по ключевым словам данные в социальной сети, а затем одним нажатием кнопки добавить некоторые из них в CRM-систему. В первой части описывается пользовательский интерфейс и архитектура приложения, а также процесс настройки Bonita для извлечения данных из Twitter и их отображения в бизнес-процессе. Во второй части разработка приложения завершается его интеграцией в CRM-систему компании.

Упражнение: IBM BPM в действии

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

Исходный код приложения для этой статьи приведен в загрузках. Для выполнения практических заданий статьи загрузите и установите Bonita и Twitter4J (см. ссылки в разделе Ресурсы). Для разработки приложения использовались Bonita версии 5.4 и Twitter4J версии 2.1.12.

Обзор приложения

Все приложение разрабатывается как бизнес-процесс с помощью настройки процесса Bonita. Простой пользовательский интерфейс позволяет искать данные в Twitter и выводит сообщения ("твиты"), соответствующие критериям поиска. Пользователь выбирает интересующий его твит и извлекает профиль опубликовавшего его пользователя Twitter. Поисковая программа позволяет также добавить пользователя Twitter в качестве потенциального контактного лица в SugarCRM, CRM-систему с открытым исходным кодом.

Пользовательский интерфейс

Пользовательский интерфейс поисковой программы состоит из трех простых форм, созданных с помощью дизайнера форм Bonita. Первая форма отображает два компонента пользовательского интерфейса: поле ключевых слов поиска Search Keyword и кнопку поиска Search, как показано на рисунке 1.

Рисунок 1. Форма поиска твитов
Скриншот формы поиска твитов в Bonita

Достаточно мощный конструктор форм Bonita обеспечивает графические компоненты для разработки форм и позволяет связать действия пользователя с другими формами или фоновой деятельностью с помощью экранов настройки. Например, как показано на рисунке 1, Bonita позволяет связать кнопку поиска Search с фоновой деятельностью по поиску соответствующих твитов.

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

Рисунок 2. Форма с сообщениями Twitter
Скриншот формы интерфейса Bonita с твитами

Пользователь может выбрать любое сообщение и нажать кнопку View Profile. Управление вновь передается механизму процесса Bonita, который, работая в фоновом режиме, извлекает данные профиля пользователя Twitter, отправившего этот твит. Профиль пользователя Twitter отображается в третьей форме пользовательского интерфейса, как показано на рисунке 3.

Рисунок 3. Форма профиля пользователя
Скриншот формы Bonita с профилем пользователя Twitter

Нажав кнопку Add в CRM на третьей форме интерфейса, пользователь приложения может добавить пользователя Twitter к своим деловым контактам в SugarCRM. Механизм процесса Bonita делает это возможным, гладко взаимодействуя с SugarCRM.

Архитектура приложения

Такие инструменты BPM, как Bonita, обладают достаточной гибкостью для интеграции с различными приложениями. Гибкость Bonita придает ее механизм процесса и среда коннекторов. Я опишу архитектуру приложения, чтобы показать, как механизм процесса и среда коннекторов взаимодействуют с другими компонентами. Архитектура изображена на рисунке 4.

Рисунок 4. Архитектура программы поиска
Рисунок 4. Схема поискового приложения's architecture

На рисунке 4 видно, что программа поиска состоит из нескольких основных компонентов:

  • пользовательский интерфейс,
  • переменные процесса,
  • механизм процесса Bonita,
  • среда коннекторов Bonita,
  • Twitter4J,
  • SugarCRM API.

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

  • Переменные процесса: Bonita обеспечивает переменные процесса для хранения данных приложения. Имеются как переменные уровня приложения, так и локальные временные переменные. Bonita предоставляет графический интерфейс для настройки переменных в зависимости от бизнес-логики приложения и результатов математических и логических выражений на основе переменных процесса.
  • Механизм процесса Bonita: механизм процесса Bonita координирует все действия различных компонентов приложения. В самом начале он определяет форму интерфейса, которая будет отображаться пользователю приложения. Когда пользователь ввел ключевые слова, механизм процесса управляет потоком приложения и обеспечивает присвоение введенных данных переменным процесса. Можно сказать, что при выполнении приложения механизм процесса управляет жизненным циклом процесса в соответствии с бизнес-логикой.
  • Среда коннекторов Bonita: Среда коннекторов – это механизм расширения Bonita для интеграции с внешними приложениями. Эту среду можно использовать для создания специальных коннекторов. Как видно на рисунке 4, поле среды коннекторов содержит три коннектора - TwitterSearchConnector, TwitterUserProfileConnector и SugarCRMAddContactConnector . Все они построены с использованием среды коннекторов. Каждый коннектор решает конкретную задачу. Например, TwitterSearchConnector выступает в роли поисковой системы для поиска сообщений в Twitter.
  • Twitter4J: поле Twitter4J подключается через Интернет к Web-сервису Twitter, который позволяет клиентским приложениям (например, поисковым системам) взаимодействовать с порталом Twitter. Twitter4J ― это Java-API с открытым исходным кодом, который позволяет легко работать с Web-сервисом Твиттер (см. раздел ресурсы). TwitterSearchConnector помещает Twitter4J внутрь среды коннекторов Bonita, позволяя Bonita приступить к работе с Web-сервисом Twitter. (О том, как это сделать, говорится в разделе Реализация класса TwitterSearchConnector.)
  • SugarCRM API: об этом компоненте я расскажу во второй части.

Далее я опишу совместную работу компонентов поискового приложения.

Последовательность взаимодействия компонентов

На рисунке 5 показана последовательность событий, которые происходят, когда пользователь обращается к поисковому приложению для взаимодействия с Web-сервисом Twitter.

Рисунок 5. Последовательность событий в поисковом приложении
Схема последовательности событий в поисковом приложении
  1. Пользователь вводит ключевое слово в первую форму интерфейса (рисунок 1) и нажимает кнопку Search (поиск).
  2. Механизм процесса Bonita получает ключевое слово и сохраняет его в переменной процесса.
  3. Механизм процесса Bonita вызывает TwitterSearchConnector.
  4. TwitterSearchConnector использует Twitter4J для аутентификации в Web-сервисе Twitter и отправляет поисковый запрос с ключевым словом.
  5. Web-сервис Twitter получает поисковый запрос, выполняет операцию поиска в Twitter и возвращает соответствующие сообщения в TwitterSearchConnector.
  6. TwitterSearchConnector получает результаты поиска и передает их механизму процесса Bonita.
  7. Процесс Bonita заполняет переменную процесса с результатами поиска. Затем он определяет следующую задачу в последовательности и передает управление форме результатов поиска (рисунок 2).
  8. Форма результатов поиска получает ответ от переменной процесса и выводит сообщения пользователю.

Таким же образом последовательность поиска может продолжаться от второй формы пользовательского интерфейса (рисунок 2) до формы профиля пользователя (рисунок 3). Если пользователь выбирает один из твитов, отображаемых во второй форме, и нажимает кнопку View Profile, механизм процесса вызывает TwitterUserProfileConnector, который выбирает профиль пользователя, отправившего этот твит. Аналогично, если пользователь решит добавить контактные данные этого пользователя Twitter в SugarCRM (нажав кнопку Add to CRM), механизм процесса вызовет коннектор SugarCRM, который, в свою очередь, добавит контактную информацию в CRM-систему.

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


Настройка поискового приложения

Вот задачи настройки приложения, которые мы будем решать.

  1. Создание учетной записи Twitter.
  2. Регистрация приложения в Web-сервисе Twitter и получение учетных данных для аутентификации.
  3. Проектирование и настройка TwitterSearchConnector.
  4. Настройка остальных компонентов приложения в Bonita (окончание ― в части 2).

Первый шаг, создание учетной записи Twitter, даже проще, чем создание учетной записи электронной почты. Поисковое приложение выступает в качестве клиента Web-сервиса Twitter. Для целей этой статьи я создал учетную запись Twitter с именем searchMessages. Если вы хотите самостоятельно выполнить действия по настройке, зайдите по адресу https://twitter.com/signup и создайте свою собственную учетную запись.

Регистрация приложения в Twitter и получение учетных данных

Зарегистрировав приложение в Web-сервисе Twitter, вы получите две пары ключей:

  • ключ и секретный код для клиентского приложения: поисковое приложение будет использовать эту пару ключей для доступа к Web-сервису Twitter через созданную учетную запись;
  • маркер доступа и секретный код маркера доступа: маркер доступа в сочетании с секретным кодом будет использоваться для подписания запросов, направляемых поисковым приложением в Web-сервис Twitter.

Механизм безопасности, стоящий за этими двумя парами ключей, называется протоколом Open Authentication (OAuth) (см. раздел Ресурсы). Вам не нужно беспокоиться о том, как работает OAuth, потому что Twitter4J управляет этим за кулисами. TwitterSearchConnector использует классы Twitter4J.

Войдите на сайт Twitter (http://www.twitter.com) с использованием созданной учетной записи. Наберите в адресной строке браузера https://dev.twitter.com/apps/new. Вы увидите страницу Register an Application, как показано на рисунке 6.

Рисунок 6. Страница Register an Application на сайте Twitter
Рисунок 6. Скриншот страницы Twitter Register an Application

Заполните страницу следующим образом.

  1. В текстовое поле Application Name введите Bonita search client.
  2. Введите краткое описание в поле Description (например, Client that searches for data on Twitter).
  3. Введите адрес URL своего приложения в поле Application Website.
  4. Выберите пункт Client в разделе Application Type. Это означает, что ваше поисковое приложение будет выступать в качестве клиента Web-сервиса.
  5. Выберите пункт Read-only в разделе Default Access Type (так как приложение будет только искать данные в Twitter, не отправляя никаких сообщений).

Поля Organization и Callback URL оставьте пустыми и отправьте заполненную форму. Появится страница Bonita search client Settings с вашими учетными данными, как показано на рисунке 7.

Рисунок 7. Страница Bonita search client Settings в Twitter
Рисунок 7. Страница Bonita search client Settings в Twitter

Запишите ключ и секретный код - они понадобятся позже.

Чтобы получить вторую пару ключей (маркер доступа и секретный код маркера), нажмите кнопку My Access Token, которая на рисунке 7 обведена красным овалом. Маркер доступа и секретный код отображаются на другой странице Twitter, Bonita search client Access Token Requisition, как показано на рисунке 8.

Рисунок 8. Страница Bonita search client Access Token Requisition в Twitter
Рисунок 8. Страница Bonita search client Access Token Requisition в Twitter

Запишите маркер доступа и код маркера доступа.

Теперь, когда у вас есть две пары ключей, следующий шаг заключается в разработке и настройке коннектора TwitterSearchConnector

Проектирование и настройка коннектора TwitterSearchConnector

Реализация коннектора Bonita ― это главным образом задача настройки, состоящая из нескольких этапов.

  1. Предоставление описательной информации.
  2. Настройка входных и выходных параметров коннектора.
  3. Создание шаблона кода Java для коннектора. Для создания шаблона коннектора Bonita использует Eclipse Modeling Framework (EMF) и Graphical Modeling Framework Framework (GMF) (см. раздел Ресурсы). Шаблон содержит весь код Java, который требуется среде коннекторов Bonita, что позволяет программисту сосредоточиться на бизнес-логике коннектора. Java-код приложения придется написать единственный раз – при использовании Twitter4J.

Bonita предоставляет графический мастер почти для каждого шага настройки.

Запустите Bonita. На рисунке 9 показана страница приветствия:

Рисунок 9. Страница приветствия Bonita
Рисунок 9. Страница приветствия Bonita

Выберите Connector > New connector из меню страницы приветствия. (На рисунке 9 пункт меню Connector обведен красным овалом.) Появится мастер создания нового коннектора, как показано на рисунке 10.

Рисунок 10. Мастер создания коннектора
Рисунок 10. Скриншот мастера создания коннектора Bonita

На рисунке 10 видно, что мастер создания коннектора разделен на верхнюю и нижнюю части. В верхней части собрана описательная информация о коннекторе (идентификатор, описание, категория и имя класса Java, который будет представлять коннектор). Нижняя часть состоит из двух графических виджетов табличного типа (Pages и Outputs), которые позволяют определить входные и выходные параметры.

Введите TwitterSearchConnector в текстовое поле Id и Search tweets в текстовое поле Description. Затем выберите Social из списка Category. Поле категории помогает Bonita классифицировать коннекторы. Как видите, Bonita автоматически использует поле Id для заполнения поля Class Name, которое содержит имя класса Java для этого коннектора.

Нажмите кнопку Browse рядом с полем Package, чтобы выбрать пакет нужного класса TwitterSearchConnector. Можно также добавить значок коннектора. На этом ввод описательной информации завершен.

После ввода описательной информации мастер, изображенный на рисунке 10, принимает вид, показанный на рисунке 11.

Рисунок 11. Мастер создания коннектора с описательной информацией о коннекторе TwitterSearchConnector
Рисунок 11. Мастер создания коннектора с описательной информацией о TwitterSearchConnector

Теперь определим входные параметры TwitterSearchConnector.

Настройка входных параметров TwitterSearchConnector

С помощью таблицы Pages, расположенной в нижней части окна мастера создания коннектора, настройте входные параметры TwitterSearchConnector. Обратите внимание, что Bonita будет передавать входные параметры TwitterSearchConnector. Мастер создания коннектора позволяет группировать входные параметры в страницы. Это означает, что при настройке бизнес-процесса можно передать набор входных параметров с одной страницы. Эта страница будет отображаться при добавлении этого коннектора к процессу поиска во второй части.

Для TwitterSearchConnector требуется две пары ключей (ключ с секретным кодом и маркер доступа с секретным кодом) и ключевое слово поиска, введенное в первую форму интерфейса пользователя (рисунок 1). Таким образом, нужно определить пять входных параметров TwitterSearchConnector: четыре элемента учетных данных, которые фиксируются при добавлении TwitterSearchConnector к процессу поиска, а также ключевое слово поиска, которое является динамическим параметром - пользователь вводит его всякий раз, когда выполняет поиск.

Нажмите кнопку Create (обведена красным овалом на рисунке 11) справа от таблицы Pages. Это открывает новую страницу, содержащую поля для настройки входных параметров для TwitterSearchConnector, как показано на рисунке 12.

Рисунок 12. Страница настройки входных параметров
Рисунок 12. Скриншот страницы Bonita для настройки входных параметров

На рисунке 12 видно, что страница входных параметров содержит три поля: Page Id, Page Title и Description. Просто введите TwitterSearchConnectorInputParametersPage в поле Page Id, а затем Twitter Search Connector Input Parameters Page в поля Page Title и Description.

Под тремя полями находится таблица Widgets, в которой нужно заполнить четыре поля для каждого из входных параметров. Field name – это имя параметра; Mandatory указывает, обязательный ли это параметр; Widget определяет, какой визуальный компонент связан с этим входным параметром; а Data - тип данных переменной, связанной с этим параметром.

Теперь настройте четыре поля для каждого из пяти входных параметров. Нажмите кнопку Create (обведена красным овалом на рисунке 12). В таблице Widgets появится строка, в которую можно ввести consumerKey в качестве имени поля, Mandatory (обязательный) в поле Mandatory, Password (пароль) в поле Widget и Text в поле типа данных. Используйте эти же значения для всех пяти входных параметров, как показано на рисунке 13.

Рисунок 13. Заполненная страница входных параметров
Рисунок 13. Скриншот заполненной страницы входных параметров конфигурации в Bonita, включая введенные данные

Нажмите кнопку OK в нижней части страницы. Bonita сохранит конфигурацию входных параметров и вернется к предыдущему мастеру создания коннектора, см. рисунок 10.

Настройка выходного параметра

Теперь для TwitterSearchConnector нужно определить один выходной параметр SearchResults. Нажмите кнопку Create (обведена синим овалом на рисунке 11) рядом с таблицей результатов (Outputs). В таблице результатов появится новая строка. Как видите, для выходных параметров достаточно заполнить два столбца. В столбец Field name (Имя поля) введите searchResults. В столбце Data type (Тип данных) выберите List (Список) из выпадающего меню. Мастер создания коннектора, который теперь содержит все данные конфигурации входных и выходных параметров, должен выглядеть, как на рисунке 14.

Рисунок 14. Мастер создания коннектора, содержащий данные конфигурации входных и выходных параметров
Рисунок 14. Мастер создания коннектора, содержащий данные конфигурации входных и выходных параметров

Нажмите кнопку Finish мастера создания коннектора. Bonita немедленно сгенерирует весь код для входных и выходных параметров класса TwitterSearchConnector и отобразит этот код в редакторе, как показано на рисунке 15.

Рисунок 15. Шаблон кода класса TwitterSearchConnector
Рисунок 15. Скриншот шаблона кода класса TwitterSearchConnector

Bonita сохраняет автоматически сгенерированный код класса TwitterSearchConnector в папке X:\BOS-5.4\studio\workspace\local_default_My Extensions\src-connectors\org\bonitasoft\connectors\twitter вашей установки Bonita. (Для вашего удобства в исходный код загрузки для этой статьи включен класс TwitterSearchConnector.java.) Позднее вы узнаете, что нужно делать с этим кодом.

Реализация класса TwitterSearchConnector

Класс TwitterSearchConnector показан в листинге 1.

Листинг 1. Класс TwitterSearchConnector, сгенерированный Bonita
public class TwitterSearchConnector extends ProcessConnector {

private String consumerKey;
private String accessToken;
private String accessTokenSecret;
private String consumerSecret;
private String searchKeyword;

@Override
protected void executeConnector() throws Exception {
// TODO Заглушка автоматически генерируемого метода
}

@Override
protected List<ConnectorError> validateValues() {
// TODO Заглушка автоматически генерируемого метода 
return null;
}

public void setConsumerKey(String consumerKey) {
this.consumerKey = consumerKey;
}

public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}

public void setSearchKeyword(String searchKeyword) {
this.searchKeyword = searchKeyword;
}

public void setAccessTokenSecret(String accessTokenSecret) {
this.accessTokenSecret = accessTokenSecret;
}
public void setConsumerSecret(String consumerSecret) {
this.consumerSecret = consumerSecret;
}

public List getSearchResults() {
// TODO Сюда нужно добавить возвращаемое значение результата
return null;
}
}

Как видно из листинга 1, TwitterSearchConnector расширяет класс ProcessConnector, который входит в состав среды коннекторов. ProcessConnector обеспечивает функциональность для управления несколькими экземплярами коннекторов, работающими в отдельных потоках исполнения внутри механизма процесса Bonita.

Класс ProcessConnector, в свою очередь, расширяет класс Connector, который служит базовым классом среды коннекторов. Он обеспечивает функциональность для обработки обычных задач, таких как проверка входа и обработки исключений.

Если посмотреть на переменные уровня класса в листинге 1, то можно заметить, что Bonita объявляет пять переменных, соответствующих пяти входным параметрам, которые мы настроили в разделе Настройка входных параметров TwitterSearchConnector.

Мы настроили также выходную переменную в разделе Настройка выходного параметра, но Bonita не объявляет выходную переменную в классе TwitterSearchConnector. Поэтому шестую переменную SearchResults для хранения выхода коннектора нужно добавить вручную, как показано жирным шрифтом в листинге 2.

Листинг 2. Переменные класса TwitterSearchConnector
//Переменные уровня класса
private String consumerKey;
private String accessToken;
private String accessTokenSecret;
private String consumerSecret;
private String searchKeyword;

//Ручное добавление выходной переменной
private List<Tweet> searchResults;

Теперь посмотрите на методы setter и getter в листинге 1. Для каждого из пяти входных параметров имеется метод setter (setConsumerKey(), setConsumerToken(), setAccessToken(), setAccessTokenSecret() и setSearchString()). Отметим также, что в классе есть только один метод getter, getSearchResults(). Он соответствует выходной переменной SearchResults. Однако в листинге 1 метод getSearchResults() возвращает null, поэтому нужно изменить его вручную, как показано в листинге 3, чтобы он вместо null возвращал значение выходной переменной SearchResults.

Листинг 3. Ручное редактирование метода getSearchResults()
//Ручное редактирование метода getSearchResults()
public List<Tweet> getSearchResults() {
return searchResults;
}

Теперь посмотрите на метод executeConnector() в листинге 1. Этот пустой метод нужно заполнить бизнес-логикой TwitterSearchConnector. В следующем разделе описывается, как реализовать эту логику, используя Twitter4J.

Реализация метода executeConnector()

Метод executeConnector() среды коннекторов Bonita позволяет реализовать бизнес-логику коннекторов. При каждом обращении к TwitterSearchConnector механизм процесса Bonita будет вызывать метод executeConnector(). Метод executeConnector показан в листинге 4.

Листинг 4. Метод executeConnector()
protected void executeConnector() throws Exception {
//Шаг 1: 
Twitter twitter = new TwitterFactory().getInstance();

//Шаг 2: 
twitter.setOAuthConsumer(consumerKey, consumerSecret);
twitter.setOAuthAccessToken(new AccessToken(accessToken, accessTokenSecret));

//Шаг 3: 
twitter4j.Query query = new twitter4j.Query(searchKeyword);
twitter4j.QueryResult queryResult = null;

//Шаг 4: 
try
{
queryResult = twitter.search(query);
searchResults = queryResult.getTweets();
}
catch (TwitterException e) {
System.out.println ("Twitter follow a user exception");
e.printStackTrace();
}
}

Для реализации бизнес-логики метод executeConnector() использует Twitter4J. Метод executeConnector() прост и состоит из четырех шагов.

  1. Создание экземпляра класса Twitter с помощью класса factory с именем TwitterFactory. Класс Twitter позволяет использовать много полезных методов Twitter4J.
  2. Вызов методов setOAuthConsumer() и setOAuthAccessToken() класса Twitter и передача аутентификационных данных (consumerKey, consumerSecret, accessToken и accessTokenSecret). Проверку подлинности выполняет Twitter4J.
  3. Создание экземпляров объектов Query и QueryResult. Объект Query содержит поисковое ключевое слово, а объект QueryResult ― результаты поиска.
  4. Вызов метода search() класса Twitter, который принимает объект Query в качестве параметра и возвращает результаты поиска внутри объекта QueryResult. Затем сообщения извлекаются из объекта QueryResult с помощью вызова метода getTweets() и сохраняются в переменной SearchResults.

Проверка класса TwitterSearchConnector в автономном режиме

Я включил метод main() в класс TwitterSearchConnector, чтобы вы могли проверить функциональность класса в автономном режиме, не запуская Bonita. Метод main() показан в листинге 5.

Листинг 5. Метод main() класса TwitterSearchConnector
public static void main(String args[]) {
//Шаг 1:  Создание экземпляра
TwitterSearchConnector twitterSearchConnector =
new TwitterSearchConnector();

//Шаг 2:  Предоставление информации безопасности 
twitterSearchConnector.setConsumerKey(args[0]);
twitterSearchConnector.setConsumerSecret(args[1]);
twitterSearchConnector.setAccessToken(args[2]);
twitterSearchConnector.setAccessTokenSecret(args[3]);
twitterSearchConnector.setSearchKeyword(args[4]);

//Шаг 3:  Поиск в Twitter
try
{
twitterSearchConnector.executeConnector();
}catch (java.lang.Exception e){
e.printStackTrace();
}
List <Tweet> tweets = twitterSearchConnector.getSearchResults();

//Шаг 4:  Распечатка сообщений Twitter
for (int i=0; i<tweets.size(); i++)
{
System.out.println ("User Name: ["+tweets.get(i).getFromUser()+"]");
System.out.println ("Message ["+tweets.get(i).getText() +"/r/n");
}
}//main

Метод main() выполняет следующие действия.

  1. Создание экземпляра класса TwitterSearchConnector.
  2. Передача всех данных безопасности и ключевых слов поиска классу TwitterSearchConnector.
  3. Вызов метода executeConnector().
  4. Вывод результатов поиска на консоль.

Для компиляции и исполнения класса TwitterSearchConnector в качестве самостоятельного приложения можно использовать файлы SearchTweetsCompile.bat и SearchTweetsRun.bat, входящие в исходный код для этой статьи (см. Загрузки). В файле SearchTweetsRun.bat жестко заданы две пары ключей.

Класс TwitterSearchConnector использует библиотеки Bonita, а также Twitter4J, так что в переменной classpath должен быть указан путь к классам Bonita-client-5.4.jar из загрузки Bonita и twitter-core-2.1.12.jar из Twitter4J.

На рисунке 16 показан вывод на консоль после исполнения файла SearchTweetsRun.bat.

Рисунок 16. Содержание вывода на консоль в автономном режиме
Рисунок 16. Скриншот с содержимым консоли при выполнении класса TwitterSearchConnector в автономном режиме

Консоль отображает имя пользователя и содержание сообщений для каждого твита, найденного по ключевому слову CRM.


Заключение

Я рассказал об архитектуре приложения поиска, показав, как механизм процесса Bonita и его среда коннекторов могут взаимодействовать друг с другом для интеграции данных из социальных сетей в бизнес-процесс. Вы узнали, как настроить TwitterSearchConnector, и протестировали класс TwitterSearchConnector в автономном режиме. Во второй части статьи будет показано, как завершить приложение, настроив остальные коннекторы для ввода профилей пользователей Twitter и их интеграции в SugarCRM. Затем на этом же приложении мы всесторонне продемонстрируем, как интегрировать бизнес-процесс, работающий внутри Bonita, с различными внешними приложениями.


Загрузка

ОписаниеИмяРазмер
Исходный код для примеров из этой статьиj-sb1.zip7 КБ

Ресурсы

Научиться

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

  • IBM BPM в действии: моделирование и выполнение бизнес-процессов в визуальной среде, не требующей программирования.
  • Bonita Open Solution: загрузите Bonita.
  • Twitter4J: загрузите Twitter4J.

Обсудить

Комментарии

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=Технология Java
ArticleID=811398
ArticleTitle=Интеграция социальных сетей в BPM: Часть 1. Сбор данных из Twitter
publish-date=04232012