quinta-feira, 25 de setembro de 2008

Skype Wrappers

Depois de tanto tempo parado parece que recuperei o gás... Não vou cantar vitória antes do tempo, mas creio que desta vez consigo de fato, "manter" este Blog e transforma-lo em algo realmente decente e digno de ser visitado. Bem meninos e meninas, queridos e queridas, a pauta deste post envolve nada mais nada menos que o grande Skype e seus "wrappers" adestrados!

O Skype[bb] tem se mostrado uma ferramenta corporativa eficiente, não só pelos seus méritos técnicos, mas por um aspecto "social": O Skype não encontra-se tão prostituído, sodomizado, esculhambado, como o seu concorrente mais popular, preferido de dez entre dez miguxos. Normalmente a garotada não vê muita graça no Skype... Não tem "uinquis" (sic), não da para instalar (facilmente) emoticons extras, etc.

E falando em ferramentas , por que não integrar o Skype as outras ferramentas empresariais disponíveis? Ótimo!! Mas como eu faço isso "seu Anapropegua"? Simples!! Basta utilizar os Wrappers!!

Wrapper (algo como "empacotador" ou "envelopador" em uma tradução livre) pode ser entendido como um adaptador, algo que faz a ponte entre duas soluções aparentemente incompatíveis.

Os pré-requisitos básicos para implementação desta solução são:
  • Skype
  • Container JSP/Servlets (Tomcat)
  • Wrapper Java para Skype (Skype4Java)
  • JSDK 6+ (Obviamente)
  • Conhecimento prévio da plataforma Java (J2SE,J2EE, etc...)
  • Café[bb] (também óbvio)
  • Paciência
Agora segurem-se em seus assentos!! Para demonstrar os porquês desta implementação envolvendo Java e Skype, vou ser forçado a tirar a UML da manga!! Mas calma! Não vai ser nada muito complexo... Algo trivial... Sem diagramas de estado, etc... Só o básico... Let's go!!

Projeto: Integração do Skype com um software de chamados técnicos

Requisitos

Devo integrar o Skype com um software de gerenciamento de "chamados" (uma espécie de CRM interno), para que, sendo aberta uma nova solicitação, uma mensagem deverá ser encaminhada ao responsável através do Skype. Não utilizaremos voz por hora (em nome da simplicidade), e obviamente me concentrarei na "parte Skype" da coisa, abstraindo todo o resto do sistema.

Caso de Uso

Basicamente o usuário deve ter as capacidades de abrir, alterar, excluir e acompanhar seus chamados.


















Modelo do Domínio de Classes


Este não é um diagrama de classes efetivo, notem que ele é mais abstrato, mais próximo do negócio do que da implementação em si. A partir deste, você pode derivar seu modelo de classes, se preocupando mais com os detalhes do desenvolvimento.











Let's Start Coding!


O trecho de código abaixo é muito simples, e compreensível até para aqueles que não tem muita intimidade com a linguagem Java.
import com.skype.Skype;
import java.sql.*;

...

ResultSet rs;

...

String sContato = rs.getString("CONTATOSKYPE"); // Nome do destinatario de mensagem
String sMensagem = rs.getString("MENSAGEM"); // Mensagem em si
...

Skype.chat(sContato).send(sMensagem);

Atenção: O pacote java.sql não é necessário, está presente com a finalidade de ilustrar o uso em um sistema real.

O método "chat" é estático, não sendo necessário instanciar a classe "Skype" para invoca-lo.

Só isso?

Lembrando que o Skype deve ser previamente instalado e configurado no servidor.

Quando o programa for executado pela primeira vez, o Skype deve pedir confirmação em uma janela semelhante a esta:


















Voilà!!


Existem ainda Wrappers para Python e WSH, tanto para Windows como Linux (no caso do WSH, só para a plataforma Microsoft, obviamente).

Bem pessoal, é isto. A Partir deste ponto vocês poderão construir muitas coisas interessantes, basta se aprofundar na documentação da API (RTFM!!). As possibilidades são muitas, usem a criatividade!

Abraços!!

2 comentários:

  1. rapaz, virei teu fã...

    isso me deu várias idéias hehe...

    ResponderExcluir
  2. @Andrey, agradeço o comentário... É o incentivo que preciso para continuar tocando esta joça para frente!

    ResponderExcluir