Na Parte 1 deste artigo com duas partes, você aprendeu sobre os dispositivos e a arquitetura de um aplicativo de busca de mídia social que usa o Bonita, um mecanismo de BPM que é um software livre. Você começou a desenvolver o aplicativo fazendo o seguinte:
- No Bonita, configurar o conector
TwitterSearchConnector, que permite que um processo de negócios se conecte ao Twitter. - Usar o Bonita para gerar um modelo para a classe
TwitterSearchConnector, que empacota a funcionalidade de conexão ao Twitter. - Editar a classe
TwitterSearchConnectormanualmente para permitir que use o Twitter4J — uma biblioteca Java que é software livre para trabalhar com a API do Twitter. - Testar o
TwitterSearchConnectorno modo independente.
Se você não realizou todas as etapas de configuração referentes ao TwitterSearchConnector na Parte 1, pode simplesmente importar o arquivo TwitterSearchConnector.jar a partir do código de origem apresentado neste artigo faça o download na instalação do Bonita. A partir do menu Connectors do Bonita, escolha a opção Import connector . Navegue para o arquivo TwitterSearchConnector.jar e clique em Open para exibir o código Java completo do TwitterSearchConnector, — inclusive a parte editada manualmente, mostrada na Parte 1, — no editor do Bonita.
Aqui na Parte 2, você conhecerá todas as atividades, formulários e variáveis que o aplicativo usa e configurará o processo de negócios do aplicativo. Você conectará o TwitterSearchConnector ao processo de negócios e testará o aplicativo executando-o no Bonita e fazendo uma busca de mensagens do Twitter por palavras-chave. Em seguida, você aperfeiçoará o aplicativo configurando-o para exibir o perfil do usuário do Twitter associado a um resultado de busca selecionado e, em seguida, incluir os dados do perfil em um sistema de CRM.
O processo de negócios do aplicativo de busca
O download do código de origem deste artigo inclui um arquivo chamado SocialMediaSearchApplication_ProcessFormsAndVariables_1.0.proc. Ele contém todas as definições de processos, formulários e variáveis necessários para configurar o aplicativo de busca. (É possível consultar "Bonita para Gerenciamento de Processos de Negócios" para obter informações detalhadas sobre a configuração de processos, formulários e variáveis no Bonita.) Basta importar o arquivo SocialMediaSearchApplication_ProcessFormsAndVariables_1.0.proc para a instalação do Bonita. Clique em Import na barra de ferramentas principal do Bonita e, em seguida, navegue para o arquivo SocialMediaSearchApplication_ProcessFormsAndVariables_1.0.proc, como mostra a Figura 1:
Figura 1. Importando as definições de processo do aplicativo
Clique em Finish. O processo do aplicativo de busca abre no quadro branco da janela do editor do Bonita, como mostra a Figura 2:
Figure 2. Definição de processos para o aplicativo de busca
É possível ver na Figura 2 que a definição do processo contém seis caixas, sendo que cada caixa é uma atividade do aplicativo de busca. Se você clica em qualquer atividade, as propriedades dela aparecem abaixo do quadro branco, na janela do canto inferior direito, com quatro guias: General, Application, Appearance e Simulation.
A caixa mais à esquerda na Figura 2 chamada Present the search page. Essa atividade exibe uma amostra de página de busca— o formulário Search Tweets (Figura
1 da Parte 1), na qual o usuário insere uma palavra-chave de busca. Configurei uma variável de processo, chamada searchKeyWord, para conter a palavra-chave de busca que o usuário insere. É possível ver a variável searchKeyWord (entre outras variáveis) clicando em qualquer ponto do quadro branco que esteja fora das seis caixas de atividade e, em seguida, selecionando a guia General na janela do canto inferior direito e selecionando a guia Data , como mostra a Figura 3:
Figura 3.
searchKeyWord selecionado entre as variáveis de processo do aplicativo
A segunda caixa da esquerda para a direita na Figura 2 é Search messages on Twitter. Na próxima seção deste artigo, você configurará o TwitterSearchConnector para se conectar a essa atividade. O TwitterSearchConnector recebe a palavra-chave de busca a partir do formulário Search Tweets e a envia para o serviço da Web do Twitter. Uma variável chamada tweetsFound contém os resultados de busca retornados por TwitterSearchConnector.
A terceira atividade na Figura 2 (Display Twitter messages) exibe os resultados de busca (tweets encontrados) para o usuário, como mostra a Figura 2 da Parte 1. Conforme você aprendeu na Parte 1, no aplicativo concluído, o usuário poderá selecionar qualquer mensagem e clicar em um botão para ver o perfil do usuário do Twitter que a enviou.
A próxima atividade (Fetch profile of Twitter user) usa outro conector do Bonita que você configurará mais adiante neste artigo (TwitterUserProfileConnector, como mostra a Figura 5 da Parte 1). O TwitterUserProfileConnector se conecta ao Twitter para obter o perfil do usuário do microblog. Toma quatro entradas: os dois pares de chaves de segurança que você obteve na Parte 1 para fazer login no serviço da Web do Twitter e uma variável chamada twitterUserName, que especifica o nome do usuário do Twitter cujo perfil deve ser obtido.
O TwitterUserProfileConnector retorna sete parâmetros sobre o usuário do Twitter — nome, local, idioma, imagem do perfil, URL do Website do usuário, número de seguidores no Twitter e descrição — sendo que cada parâmetro corresponderá a uma variável de processo.
A quinta atividade (Display Twitter user profile) apresenta o perfil do usuário do Twitter no formulário User Profile (Figura 3 da Parte 1). O perfil contém os sete atributos do usuário do Twitter. O formulário User Profile também permite que os usuários cliquem em um botão para incluir o usuário do Twitter no SugarCRM como uma nova conta.
A última atividade (a caixa mais à direita na Figura 2 identificada como Add profile to SugarCRM) inclui o usuário do Twitter no SugarCRM. Para implementar essa funcionalidade, você conectará um conector chamado Create Sugar Account (que vem no pacote do Bonita) à atividade Add profile to SugarCRM.
Conectando o TwitterSearchConnector ao processo de negócios
Agora você está pronto para configurar o TwitterSearchConnector para se conectar ao processo empresarial do aplicativo. Você irá conectá-lo à atividade Search messages on Twitter.
Clique na atividade Search messages on Twitter no quadro branco do processo para exibir suas propriedades na janela do canto inferior direito. Clique na guia Connectors da guia General, circulada em azul na Figura 4:
Figura 4. Guia Connectors da atividade Search messages on Twitter
A guia Connectors mostra os conectores associados à atividade. Atualmente, não há nenhum conector associado. Clique no botão Add (circulado na Figura 4). O diálogo Select a connector se abre, mostrando a lista de conectores disponíveis para configuração com a atividade.
É possível ver conectores para vários aplicativos bem conhecidos, como o Jasper e o SugarCRM, dispostos em categorias. Você especificou a categoria Social para o TwitterSearchConnector ao configurá-lo na Parte 1. Expanda a categoria Social e selecione TwitterSearchConnector, como mostra a Figura 5:
Figura 5. Selecionando
TwitterSearchConnector na categoria Social
A seguir, você realizará as seguintes etapas para conectar o TwitterSearchConnector à atividade Search messages on Twitter:
- Fornecer informações descritivas sobre a função do
TwitterSearchConnectorna atividadeSearch messages on Twitter. - Fornecer credenciais de segurança (os dois pares de chaves) para o
TwitterSearchConnector. - Passar a palavra-chave de busca do formulário Search para o
TwitterSearchConnector. - Configurar a variável
tweetsFoundpara receber resultados de busca doTwitterSearchConnector.
Fornecendo informações descritivas
Clique no botão Next no diálogo Select a connector. Aparece um diálogo Name the connector, como mostra a Figura 6:
Figura 6. Diálogo Name the connector
Preencha os campos a seguir no diálogo Name the connector:
- Name: insira
Connection of the search application with Twitter. - Description: insira
Pass the search keyword to TwitterSearchConnector and fetch Twitter data. - Select event: nesse campo, você especifica exatamente quando chamar o
TwitterSearchConnector— , ou seja, no início ou no final da atividade. Mantenha o valor padrão. (Já que você quer associar apenas uma tarefa à atividade, não faz diferença chamar oTwitterSearchConnectorno início ou no final.) - If connector fails: nesse campo, você especifica o que as mensagens da atividade Search messages on Twitter deverão fazer se o
TwitterSearchConnectorfalhar. Esse campo permite criar aplicativos à prova de erros no Bonita. A característica de ser à prova de erros está fora do escopo deste artigo — portanto, mantenha o valor padrão.
Agora o diálogo Name the connector deve se parecer com a Figura 7:
Figura 7. Diálogo Name the connector preenchido
Clique em Next. Agora a página Twitter Search Connector Input Parameters aparece.
Fornecendo chaves de segurança para o TwitterSearchConnector
Como se pode ver na Figura 8, é necessário inserir os dois pares de chaves (chave do consumidor, segredo do consumidor, token de acesso e segredo do token de acesso) que você obteve na Parte 1:
Figura 8. Diálogo de configuração para inserir informações de segurança
A Figura 8 também inclui um campo chamado SearchKeyword.
O download do código de origem deste artigo contém um arquivo chamado SecurityKeyValues.txt, para o qual eu copiei as chaves obtidas do Twitter na Parte 1. Se você não obteve as suas chaves de segurança, pode copiar os valores desse arquivo no diálogo de configuração. Deixe o campo SearchKeyword em branco por enquanto. Com os dados de segurança inseridos, o diálogo deve se parecer com a Figura 9:
Figura 9. Diálogo de configuração depois da inserção dos dados de segurança
Na Figura 9, o conteúdo dos campos de chave de segurança está esmaecido e o campo SearchKeyword permanece em banco.
Passando a palavra-chave de busca para o TwitterSearchConnector
A palavra-chave de busca pode mudar todas as vezes que você executar o aplicativo; portanto, não é possível inserir o seu valor diretamente no campo SearchKeyword. Por isso, a palavra-chave de busca é armazenada na variável searchKeyWord (consulte O processo de negócios do aplicativo de busca). Selecione searchKeyWord na lista suspensa para passar essa variável como a quinta entrada para o TwitterSearchConnector, como mostra a Figura 10:
Figura 10. Selecionando
searchKeyWord na lista suspensa
Configurando a variável tweetsFound para receber a saída do TwitterSearchConnector
Clique no botão Next . Agora, um novo diálogo solicita que você correlacione as saídas do conector às variáveis do processo. Nesse diálogo, você informará ao processo qual variável deve armazenar a lista de mensagens que o TwitterSearchConnector encontrar no Twitter para você. Lembre-se que, de acordo com a explicação da Figura 2 , uma variável chamada tweetsFound conterá os tweets que o TwitterSearchConnector encontrar para o usuário.
O TwitterSearchConnector tem apenas uma saída, chamada searchResults (como você já sabe por meio da Listagem 2 na Parte 1). A saída contém as mensagens do Twitter que o TwitterSearchConnector localiza. É possível ver searchResults na lista suspensa Connector output no lado esquerdo da Figura 11:
Figura 11. Correlacionando a saída do conector a uma variável de processo
Deixe searchResults selecionado e atribua o seu valor à variável tweetsFound na lista suspensa Destination variable. Como resultado dessa correlação, o conteúdo de searchResults (mensagens encontradas no Twitter) será copiado para a variável de processo tweetsFound .
Clique em Finish. O arquivo TwitterSearchApplication_CompleteWithTwitterSearchConnector _2.0.proc no download do código de origem reflete tudo o que foi feito até o momento.
Exibindo mensagens encontradas no Twitter
Você configurou as duas primeiras caixas da Figura 2 (Present the search page e Search messages on Twitter). A próxima tarefa é configurar a terceira atividade: Display Twitter messages.
A atividade Display Twitter messages é apenas um formulário no qual você usa a variável de processo tweetsFound para exibir as mensagens encontradas no Twitter. O download do código de origem inclui um arquivo chamado TwitterSearchApplication_CompleteWithTwitterMessageDisplay_3.0.proc, que contém todas as configurações para usar a variável de processo tweetsFound . (É possível consultar "Bonita para Gerenciamento de Processos de Negócios" para ver detalhes de como projetar formulários usando variáveis.) Agora, importe o arquivo TwitterSearchApplication_CompleteWithTwitterMessageDisplay_3.0.proc para o Bonita.
Executando o aplicativo de busca
Agora é possível experimentar o seu aplicativo de busca pela primeira vez. Clique no botão Run na barra de ferramentas principal do Bonita, como mostra a Figura 12:
Figura 12. O botão Run na barra de ferramentas do Bonita
Espere o formulário Search Tweets aparecer em uma janela do navegador, como mostra a Figura 13:
Figura 13. O formulário Search Tweets
Insira uma palavra-chave que você quer procurar no Twitter e clique no botão Search . O aplicativo de busca exibe mensagens encontradas no Twitter no seu segundo formulário, como mostra a Figura 14:
Figura 14. Mensagens encontradas no Twitter
Até o momento, o funcionamento do aplicativo de busca não vai além disso, porque você ainda não configurou o resto das atividades.
Configurando e conectando o TwitterUserProfileConnector
A próxima tarefa é configurar a quarta atividade da Figura 2
(Fetch profile of Twitter user). Essa atividade requer outro conector do Twitter, chamado TwitterUserProfileConnector, semelhante ao TwitterSearchConnector. Consultando as etapas que você realizou com o TwitterSearchConnector, implemente e configure TwitterUserProfileConnector:
- Use o assistente Connector para criar o
TwitterUserProfileConnectore fornecer informações descritivas sobre ele. - Configure cinco parâmetros de entrada: dois pares de chaves como credenciais de segurança para fazer login no serviço da Web do Twitter e a variável de processo
twitterUserName, que contém o nome do usuário do Twitter cujo perfil deve ser obtido. - Configure sete parâmetros de saída: nome, local, idioma, caminho da imagem do perfil, URL do Web site, número de seguidores do usuário no Twitter e descrição.
- Correlacione os parâmetros de saída às variáveis de processo
profileName,profileLocation,profileLanguage,profilePath2Image,profileWebSiteURL,profileNumFollowerseprofileDescription, respectivamente. - Edite manualmente o código de origem da classe Java
TwitterUserProfileConnectorusando a biblioteca Twitter4J.O TwitterUserProfileConnectorusa o métodosearchUsers()da classeTwitter, em vez do métodoTwitter.search()que você usou manualmente na etapa 4 da Listagem 4 na Parte 1. O métodosearchUsers()retorna informações detalhadas sobre o perfil de um usuário do Twitter. - Configure o
TwitterUserProfileConnectorpara se conectar à atividade Fetch profile of Twitter user.
Eu já demonstrei e expliquei detalhadamente as etapas anteriores ao abordar o TwitterSearchConnector — portanto, não irei repetir toda a explicação para o TwitterUserProfileConnector. Da mesma forma, não irei demonstrar a configuração da quinta atividade (Display Twitter User Profile, que mostra o perfil do usuário), porque é apenas um formulário. O arquivo TwitterSearchApplication_CompleteWithProfileConnectorAndDisplay_4.0.proc no download do código de origem contém todas as configurações das cinco atividades do processo de negócios. É possível importar e executar o arquivo TwitterSearchApplication_CompleteWithProfileConnectorAndDisplay_4.0.proc file no Bonita para ver que todos os três formulários explicados no início da Parte 1 estão totalmente funcionais agora.
Fazendo a interface entre o SugarCRM e o Bonita
Só falta configurar a última atividade da Figura 2 (Add profile to SugarCRM). Nessa atividade, você usará um conector do Bonita chamado Create Sugar Account, que "conversa" com o SugarCRM por meio de uma API de serviços da Web (da mesma forma que o TwitterSearchConnector conversa com o Twitter por meio da API de serviços da Web do microblog).
O conector Create Sugar Account vem no pacote do Bonita e trata internamente todas as comunicações com o SugarCRM. Sendo assim, basta conectar o conector Create Sugar Account à atividade Add profile to SugarCRM .
Antes de continuar, é necessário ter o SugarCRM instalado na sua máquina ou em algum ponto da rede. (consulte Recursos para ver os detalhes sobre a instalação do SugarCRM). O SugarCRM Community Edition versão 6.1.6 (compilação 5860) foi instalado na minha máquina quando eu desenvolvi o aplicativo de busca.
Clique na atividade Add profile to SugarCRM para exibir as suas propriedades na janela inferior direita. Selecione a guia General e, em seguida, selecione Connectors e clique no botão Add . O diálogo Select a connector (veja a Figura 5) aparece. Expanda a categoria SugarCRM e selecione o conector Create Sugar Account , como mostra a Figura 15:
Figura 15. Selecionando o conector
Create Sugar Account
Clique no botão Next . Um diálogo Name the connector (veja a Figura 6) aparece. Digite Twitter to Sugar connection e Create a new SugarCRM account using the Twitter user como valores dos campos Name e Description, respectivamente. Deixe os outros campos com seus valores padrão. Agora, o diálogo Name the connector deve se parecer com a Figura 16:
Figura 16. O diálogo Name the connector do conector
Create Sugar Account
Clique em Next. Agora o Bonita apresenta o diálogo SugarCRM Configuration, solicitando informações sobre o serviço SugarCRM, como mostra a Figura 17:
Figura 17. Diálogo solicitando informações sobre a instalação do SugarCRM
Pela Figura 17, pode-se ver que é necessário preencher quatro campos:
- Sugar SOAP Port: insira a URL do servidor de SOAP onde o SugarCRM está escutando. (Consulte Recursos para saber mais sobre o serviço de SOAP do SugarCRM.) O servidor de SOAP na minha máquina estava executando em http://127.0.0.1:8080/sugarcrm/service/v2/soap.php (o valor mostrado na Figura 17) quando eu experimentei o aplicativo de busca com o SugarCRM.
- User e Password: digite o nome de usuário e a senha que você usa para fazer o logon na instalação do SugarCRM.
- Application name: insira
Twitter user accountcomo o nome do aplicativo que está se conectando ao SugarCRM.
Clique em Next. Depois disso, aparece um diálogo Parameters solicitando os parâmetros de entrada, como mostra a Figura 18:
Figura 18. Parâmetros de entrada para o conector
Create Sugar Account
É possível ver na Figura 18 que o conector Create Sugar Account está solicitando três parâmetros — Account name, Phone number e Website — por meio de listas suspensas para criar uma conta. O perfil do usuário do Twitter que você obteve por meio do TwitterUserProfileConnector não contém o número de telefone do usuário do Twitter — sendo isso, não é possível fornecer esse parâmetro. Eu correlacionei os outros dois parâmetros, que estão disponíveis, às variáveis de processo profileName e profileWebSiteURL , respectivamente. Selecione esses valores nas listas suspensas, como mostra a Figura 19:
Figura 19. Parâmetros de entrada para o conector
Create Sugar Account
Clique em Next. O próximo diálogo solicita a correlação da saída do conector a uma variável de processo. O aplicativo de busca não faz nada com a saída do conector Create Sugar Account — portanto, não altere esse diálogo e clique em Finish. Salve o aplicativo.
Inicie o servidor do SugarCRM e, em seguida, execute o aplicativo de busca concluído, passando por todos os três formulários. Clique no botão Add to CRM do formulário User Profile. Pode-se ver que o usuário do Twitter cujo perfil é exibido no formulário User Profile é incluído no SugarCRM como uma nova conta.
Você viu como o Bonita usa o seu framework de conectores para integrar o seu processo de negócios a aplicativos externos por meio de serviços da Web. Você criou os seus próprios conectores (TwitterSearchConnector e TwitterUserProfileConnector) e usou um conector (Create Sugar Account) que vem no pacote do Bonita. Com as técnicas que você aprendeu neste artigo de duas partes, é possível levar dados de redes sociais a partir de outros aplicativos bastante conhecidos, como o Facebook, para o seu processo de negócios.
| Descrição | Nome | Tamanho | Método de download |
|---|---|---|---|
| Source code | j-sb2.zip | 19KB | HTTP |
Informações sobre métodos de download
Aprender
-
Zona de tecnologia do BPM do developerWorks: o gerenciamento de processos de negócios IBM fornece as ferramentas necessárias para modelar, simular, executar, adaptar, monitorar e otimizar os seus processos de negócios.
-
Business Process Management da IBM: os softwares e serviços de BPM da IBM ajudam as organizações a otimizar o desempenho nos negócios ao descobrir, documentar, automatizar e melhorar continuamente os processos de negócios para aumentar a eficiência e reduzir os custos.
-
Exercício IBM BPM em ação: Modele e execute processos de negócios em um ambiente visual e sem código.
-
IBM Business Process Management Journal: Saiba mais sobre a abrangente plataforma de BPM da IBM.
-
Bonita Open Solution: Visite o Web site Bonita.
-
Documentação do SugarCRM: Obtenha guias de instalação e de aplicativo referentes ao SugarCRM.
-
Serviços da Web do SugarCRM: conheça os serviços da Web e recursos de SOAP do SugarCRM.
-
"Bonita para gerenciamento de processos de negócios, Parte 1: Configure um fluxo de trabalho simples" (Bilal Siddiqui, developerWorks, outubro de 2010) e "Bonita para Gerenciamento de Processos de Negócios, Parte 2: Configure formulários e variáveis" (Bilal Siddiqui, developerWorks, novembro de 2010): Leia sobre a configuração de processos de negócios e o design de formulários no Bonita.
Obter produtos e tecnologias
-
Bonita Open Solution: Faça o download do Bonita.
-
SugarCRM: Faça o download do SugarCRM.
-
Twitter4J: Faça o download do Twitter4J.
-
Avalie os produtos IBM da maneira mais adequada para você: faça o download de um produto de teste, teste um produto on-line, use um produto no ambiente da nuvem ou gaste algumas horas na SOA Sandbox aprendendo como implementar Arquitetura Orientada a Serviços de forma eficiente.
Discutir
-
Fórum IBM Business Process Manager: Participe do debate na comunidade do developerWorks.
- Participe da comunidade do developerWorks.
Entre em contato com outros usuários do developerWorks, enquanto explora os blogs, fóruns, grupos e wikis orientados ao desenvolvedor.
Bilal Siddiqui is an electronics engineer, XML consultant, technology evangelist, and frequently published technical author. He is the founder of XML4Java.com, a company focused on simplifying e-business. After graduating in 1995 from the University of Engineering and Technology, Lahore, Bilal began designing software solutions for industrial control systems. Later, he turned to XML and built web- and WAP-based XML processing tools, server-side parsing solutions, and service applications. Since 2006, he has focused exclusively on Java- and XML-based open source tools and solutions. A strong advocate of open source tools, he not only designs solutions based on them but also trains software and IT personnel at Lahore universities in using open source technologies. Bilal is the author of JasperReports 3.6 Development Cookbook (Packt Publishing, 2010).