1 SmartAd Mário Antunes, Diogo Pinheiro, Edgar Domingues, Luís Silva, Diogo Gomes Abstract Still under study... Resumo Ainda em estudo... Keywords Service engineering, SIP, IMS, XMPP, Kannel, OpenIMS, Sailfin, GStreamer Palavras chave Engenharia de Serviços, SIP, IMS, XMPP, Kannel, OpenIMS, Sailfin, GStreamer I. Introdução Os operadores de telecomunicações sempre tiveram interesse em fornecer serviços para além da telefonia. Actualmente com as redes de nova geração (NGN - Next Generation Networks) existe um novo conjunto de oportunidades para a inclusão de 3 rd party aplications com o objectivo de enriquecer a oferto do operador de telecomunicações. Este conceito deu origem uma convergência entre os serviços de vídeo, áudio e dados, o conhecido Triple Play. Uma vantagem das NGN é a redução dos custos de manutenção da rede de transporte. O conceito de uma NGN consiste entre outros aspectos transportar Fig. 1 - Modelo de Telecomunicações Tradicional Fig. 2 - Modelo de Telecomunicações 3GPP dados em uma rede de comutação de pacotes que utiliza o protocolo IP. A generalidade dos serviços de um operador de telecomunicações assentam na arquitectura OSA/Parlay [1] e no modelo Walled Garden, um modelo fechado onde os operadores de telecomunicações possuem total controlo sobe os serviços fornecidos. A arquitectura OSA/Parlay suporta o conceito de SDP (Service Delivery Plataform), uma interface uniformizada e consistente para acesso aos diversos recursos que o operador de telecomunicações permite no seu Walled Garden, como por exemplo sistema de contabilização, sistema de mensagens, sistema de telefonia, etc. Os serviços desenvolvidos com recurso a esta arquitectura são serviços verticais e monolíticos, o que resulta em componentes de software bastante dependentes e pouco reutilizáveis, como ilustrado na figura 1 onde cada tecnologia possui componentes distintos para funcionalidades comuns. Actualmente esta a decorrer um processo de transição da arquitectura OSA/Parlay para a arquitectura 3GPP/IMS [2]. Esta plataforma desenvolvida pelo 3GPP para a terceira geração de telefonia móvel, segue vários princípios do IETF de forma a derrubar a barreira entre a telefonia e a Internet, por exemplo o sistema de sinalização utilizado é o SIP [3] em vez do H323 [4]. O protocolo H323 providência comunicação audiovisual sobre qualquer rede de comutação de pacotes e é recomendado pela ITU. Por outro lado o protocolo SIP, desenvolvido pelo IETF, permite estabelecer sessões interactivas entre utilizadores, sendo um dos seus objectivos principais a simplicidade e a reutilização dos protocolos já existentes na Internet. Enquanto que o modelo de negócio dos operadores de telecomunicações é um modelo fechado, o modelo de negócio da Internet é um modelo aberto, onde grande parte dos serviços são gratuitos e acessíveis a partir de qualquer tipo de rede de comunicação, pois os serviços não estão vinculados a nenhum operador específico. Devido a este factor os operadores de telecomunicações estão a tornar-se meros bit pipes. Apenas conseguem fazer negócio com a rede de transporte enquanto toda a oportunidade de negocio relacionada com novos serviços é subaproveitada. Face a esta realidade os operadores de telecomunicações sentiram a necessidade de adoptar uma estratégia semelhante à Internet para contrariar a tendência actual. A solução encontrada pelos operadores de telecomunicações passou por adoptar um modelo semelhante ao modelo aberto da Internet em detrimento do modelo fechado das Walled Gardens. Podendo assim fornecer um novo conjunto de serviços pagos que apenas um operador de telecomunicações pode oferecer, tais como localização, preferências dos clientes e capacidades e recursos em termos de rede e
2 Fig. 3 - SmartAd hardware. Para a introdução deste modelo é necessária uma nova abordagem. Tal é conseguido recorrendo à lógica SOA(Service-Oriented Architecture) [5], comum nos Sistema de Informação. Cada recurso, neste caso designado por serviço é individual e independente dos restante, o que permite que seja utilizado e reutilizado várias vezes e para diversas funções. Esta metodologia permite a construção de serviços horizontais, por camadas como ilustrado na figura 2 onde cada tecnologia apenas diverge no acesso à rede, o que origina serviços desacopulados e permite a composição e orquestração de serviços recorrendo apenas a serviços já existentes. Os operadores de telecomunicações conseguem novas margens para lucros fornecem um conjunto de serviços pagos mas que podem ser utilizados na criação de outros serviços mais complexos. Por outras palavras o Walled Garden foi aberto e existe um novo conjunto de recursos bem definido e independente que permite que tanto operadores de telecomunicações e 3 rd party developers possam coexistir e lucrar simultaneamente. O serviço apresentado neste artigo é designado por SmartAd e recorre a algumas funcionalidades da plataforma 3GPP/IMS para fornecer publicidade orientada ao contexto do utilizador quando este efectua uma chamada SIP. Este serviço é construindo através de composição de serviços, segundo a lógica SOA. II. SmartAd O SmartAd é um novo serviço multimédia construindo recorrendo a metodologia SOA e que utiliza algumas capacidades que uma NGN, tais como, desenvolvido unicamente em software, voz sobre IP e geolocalização. Explora uma oportunidade de negócio subaproveitada no mundo das telecomunicações. Sempre que um cliente efectua uma chamada o sinal de espera é um monótono bip ou em casos mais recentes alguma forma de áudio escolhida pelo destinatário, como por exemplo o serviço Wainting Ring da TMN [6] ou o Welcome Tone da Vodafone [7]. Nasce aqui a ideia de ocupar este bloco temporal com algum tipo de conteúdo áudio mais lucrativo. Esta é a ideia base do serviço desenvolvido. Ao efectuar uma chamada, esta é desviada pelo serviço que reproduz publicidade em formato áudio direccionada para aquele cliente, reencaminhando a chamada de seguida para o destinatário, como demonstrado na figura 3. A título de exemplo o utilizador Alice pretende efectuar uma chamada SIP para o utilizador Bob: 1. A chamada SIP é estabelecida. 2. A chamada é desviada pelo serviço SmarAd que selecciona uma publicidade baseada no contexto do utilizador Alice. 3. O utilizador Alice recebe publicidade em formato áudio através do serviço SmartAd. 4. No final da publicidade a chamada é novamente desviada, mas desta vez para o utilizador Bob, tornando-se agora um chamada SIP convencional Tudo este processo é transparente para os utilizadores do serviço, a única diferença para uma chamada normal, é a existência de publicidade. Outro componente do serviço é a utilização de SMS s para a pesquisa de empresas de determinada natureza. Um utilizador envia uma SMS com a palavra chave que lhe interessa, o serviço utiliza o seu repositório de empresas e retorna uma lista de empresas ordenadas pela proximidade geográfica ao utilizador. Através desta componente é possível construir uma base de dados de preferências para um determinado utilizador. Um aspecto diferenciador do serviço é a utilização de informação de contexto na escolha da publicidade a apresentar ao cliente. Por informação de contexto entende-se a posição geográfica actual do cliente e as suas preferências na utilização do serviço. Mas outros tipos de informação poderiam ser utilizados para criar o contexto do utilizador, como por exemplo o perfil do utilizador retirado das várias redes sociais, como por exemplo o Facebook [8] ou o MySpace [9]. Quanto mais um cliente utilizar o serviço, maior é a precisão na escolha de publicidades a apresentar ao utilizador. O serviço oferece vantagens para os clientes do operador de telecomunicações, pois este beneficiam de uma redução no custo das chamadas devido ao facto de existir uma nova fonte de rendimento para os operadores de telecomunicações. O serviço fornece um mecanismo publicitário que permite atingir uma maior quantidade de utilizadores que os mecanismos publicitários actuais, por outro lado os clientes voluntariamente fornecem as suas preferências aumentando assim a precisão do serviço quanto a escolha da publicidade a apresentar. Logo um a vantagem competitiva para as empresas que escolherem o serviço como principal meio publicitário. III. Implementação O serviço desenvolvido é constituído por quatro módulos principais e por um módulo adicional designado core da aplicação, responsável por interligar os quatro módulos principais criando um novo serviço multimédia, é este elemento que possui as regras de negócio. Segundo a metodologia SOA os serviços são independentes e consistentes, dai a necessidade de um elemento que interligue os restantes, como ilustrado na figura 4. O módulo de geolocalização é responsável por registar a posição geográfica dos clientes, pois os operadores de telecomunicações não disponibilizam esta informação de forma gratuita.
3 Fig. 5 - Arquitectura do Serviço de Geolocalização tuita, com uma vasta lista de codecs e mais importante trata-se de uma biblioteca com desenvolvimento activo e bem documentada. Como se trata de uma biblioteca para a linguagem C, todo o Media Gateway foi desenvoldido em C. A biblioteca SIP utilizada foi o Sofia-Sip [15], trata-se de uma biblioteca open source gratuita desenvolvida inicialmente pelo Nokia Research Center [16], actualmente o seu desenvolvimento encontra-se parado. Fig. 4 - Estrutura modular do serviço SmartAd O módulo SMS Center é responsável pela recepção e envio de SMS s. Permite a comunicação com os clientes do serviço através de SMS, permitindo assim pesquisas de empresas. O módulo Session Manager é responsável pelo desvio e reencaminhamento de chamadas. Permite desviar uma chamada para a reprodução de publicidade e o reencaminhamento da mesma para o destinatário original. O módulo MediaGateway é responsável pela conversão e reprodução da publicidade no terminal utilizado pelo cliente. Como já foi referido anteriormente o serviço SmartAd é executado sobre a plataforma 3GPP/IMS, uma abstracção da rede que disponibiliza funções para distribuição de conteúdos multimédia. A implementação escolhida foi o Open IMS [10] pois é uma implementação open source e gratuita. Para aplication server a escolha recaiu sobre o GlassFish [11] pois é o servidor por omissão do Java e uma alternativa gratuita. Sob o GlassFish é executado o Sailfin [12] que adiciona servlets próprias para a utilização do protocolo SIP. Para o cliente do serviço a plataforma escolhida foi o Android [13], pois é uma plataforma em constante evolução e como possui GPS facilita o desenvolvimento do módulo de geolocalização. O Media Gateway necessita da capacidade de converter fluxos audio em fluxos de pacotes RTP que permitem o transporte de audio e/ou video sobre IP. A bibloteca multimédia escolhida foi o GStreamer [14], pois trata-se de uma uma biblioteca open source, gra- A. Módulo de Geolocalização Como já foi referido anteriormente os operadores de telecomunicação não distribuem de forma gratuita a localização dos seus clientes. Por este motivo é necessário um serviço que permite registar e consultar a localização geográfica dos terminais. Existem duas abordagens possíveis, primeira o terminal do cliente possui uma aplicação que periodicamente comunica a sua posição ao serviço. Segunda pode ser adoptado o método designado por publish/subscriber em que o terminal possui um daemon que comunica a nova posição sempre que esta se altera. A principal vantagem do segundo método é a sua eficiencia energética, especialmente importante quando lidamos com equipamento que utilizam baterias. Um terminal apenas comunica a sua posição quando esta se altera. O protocolo XMPP [17] utilizado para a comunicação da posição geografica do cliente ao servidor de geolocalização, como ilustrado na figura 5. Suporta o método publish/subscriber e é baseado exclusivamente na troca de mensagem XML o que o torna bastante leve e expansível.a plataforma Android é baseada em Java, pelo que a biblioteca utilizada para desenvolver o serviço de geolocalição foi o SMACK [18]. No lado do cliente existe um daemon que sempre que existe um evento de alteração de posição comunica a alteração ao servidor de geolocalição. Por seu lado o servidor possui duas funções, escuta as notificações dos vários terminais, e possui um webservice que permite pedir a localização de um determinado cliente. Funcionalidade de elevada relevância para o serviço SmartAd.
4 B. SMS Center Para a construção deste componente é necessário um gateway de envio/recepção de SMS, a escolha recaiu sobre a aplicação Kannel [19]. É uma aplicação open-source bem documentada que permite o envio e recepção de SMS directamente por GSM utilizando para isso um telemóvel ou placa 3G. Além do gateway de envio e recpção de SMS é tambem necessário um serviço que responde automaticamente as SMS recebidas. Sempre que o gateway Kannel recebe uma SMS efectua um pedido ao servido enviando o conteúdo da SMS e o número do destinatário. Utilizando o numero de destinatário e através do serviço de geolocalização obtém-se a localização do terminal do cliente. O serviço prossegue com uma pesquisa na base de dados de empresas, cria uma lista das empresas relevantes e envia para o gateway de envio/recepção de SMS para este responder ao pedido do cliente. C. Session Manager Como a plataforma 3GPP/IMS utiliza o protocolo de sinalização SIP é necessário um componente capaz de gerir o fluxo de uma chamada SIP. Sempre que o aplication server recebe uma chamada SIP reencaminha-a para o Session Manager. O Session Manager comunica com a aplicação principal para escolher a publicidade correcta para este cliente. O Session Manager comunica ao Media Gateway qual a publicidade que deve ser carregada para esta sessão. Reenvia a chamada para o MediaGateway que se comporta como um normal terminal e transmite a publicidade seleccionada anteriormente. No final da transmissão de publicidade o Session Manager reencaminha a chamada para o destinatário original e a partir deste momento trata se de uma chamada SIP convencional. D. Media Gateway A comunicação entre o Session Manager e o Media- Gateway é efectuada utilizando SIP Messages. Quando o componente é executado regista-se na rede e aguarda uma Sip Message que indique a próxima publicidade a ser reproduzida. De seguida aguarda uma SIP Invite, que indica o inicio de uma sessão SIP. Processa o SDP(Session Description Protocol), protocolo utilizado para descrever sessões multimédia, converte o fluxo audio em um fluxo de pacotes RTP e transmite o fluxo de pacotes para o destinatário, no final comunica ao Session Manager que terminou o envio do fluxo áudio através de um SIP Bye, a chamada SIP procede normalmente. E. Aplicação Principal A aplicação principal é responsável pela gestão de todo os serviços anteriormente referidos organizandoos assim num novo e completo serviço. Possui duas funcionalidades principais, primeiro possui toda a lógica necessária para a selecção da publicidade mais indicada para o cliente, segundo possui uma interface Web que permite a adição de empresas ao repositório online do serviço. Possui uma base de dados Derby para o armazenamento do repositório online de empresas, foi utilizada uma base de dados Derby, pois o foco do projecto não é a gestão eficiente de uma base de dados mas a construção de serviços recorrendo à composição de serviços. Qualquer outro tipo de base de dados poderia ser utilizada. Cada entrada de uma empresa na base de dados possui o nome da empresa, uma lista de keywords relevantes e a posição geográfica da empresa, cada empresa pode ter várias publicidades associadas e cada publicidade pode ter um período de reprodução especifico, por exemplo publicidade de um restaurante produz maior impacto a hora de almoço e de jantar. A selecção da publicidade é baseada no contexto do utilizador, por contexto entende-se três dados distintos: 1. Distância da empresa (baseado na localização do utilizador) 2. Hora em que a chamada é realizada 3. Histórico de pedidos enviadas pelo utilizador através de SMS (guardadas no nosso sistema) De modo a fazer-se uma selecção aleatória da publicidade a passar, considerou-se os factores acima descritos, tendo em consideração em primeiro lugar uma lista de publicidades ordenadas por distância, considerando apenas publicidades configuradas para passarem na hora actual. Adicionalmente são seleccionadas publicidades baseadas nas preferências do utilizador, ou seja, se o utilizador já fez pesquisas por desporto irão ser adicionadas publicidades cuja empresa tenha associada a palavra-chave desporto. Utilizando esta lista efectua-se uma selecção aleatória, permitindo assim que o utilizador não ouça sempre a mesma publicidade. Este algoritmo de selecção de publicidade poderia ser melhorado no futuro de modo a fazer associação entre keywords relativas a um mesmo tema, ou até sugestão de possíveis interesses, baseado em utilizadores com interesses semelhantes. IV. Estado da Arte Existe no mercado vários serviços de telecomunicações que partilham algumas das funcionalidades do serviço proposto neste paper tais como o Wainting Ring da TMN ou o Welcome Tone da vodafone. Este tipo de serviços permite sinalização personalizada, isto é, o receptor da chamada escolhe o conteúdo áudio que o emissor da chamada ouve enquanto espera que a chamada seja atendida. As Paginas Amarelas [20] são o maior repositório de pesquisas locais de Portugal. Oferecem agora um serviço de pesquisa online, designado por PAI (Paginas Amarelas na Internet). Tornando assim possível efectuar pesquisas locais recorrendo para isso apenas a uma ligação à Internet. A principal vantagem deste serviço, em relação à versão impressa, é o conforto oferecido ao cliente que pode efectuar pesquisas virtualmente em qualquer local. A utilização de SMSs como meio de negócio é já bastante conhecida e utilizada. Por exemplo são utilizadas para efectuar pesquisas em repositórios online,
5 para alertar/actualizar o cliente de alguma actividade como jogos de futebol e até para efectuar o donwload de toques, imagens e outros conteúdos. A principal vantagem da utilização de SMS s é a sua simplicidade e divulgação, qualquer pessoa que utilize um telemóvel sabe utilizar o serviço de SMS, torna este serviço ideal para comunicar com os clientes de todos os tipos de terminais. No caso do serviço aqui apresentado o áudio que substitui o toque de sinalização é publicidade escolhida automaticamente pelo serviço consoante as preferências do utilizador, nenhum dos intervenientes da chamada perde dinheiro, podendo até existir algum tipo de compensação pelo operador de telecomunicações. O serviço SmartAd possui o seu próprio repositório online de empresas que pode ser consultado a partir de uma simples SMS, mas neste caso os resultados estão ordenados segundo a distância geográfica entre o utilizador e a posição da empresa. No caso de o repositório online não possuir registos suficientes será utilizado um serviço de pesquisa genérico e posteriormente ordenam se os resultados e transmite-se a resposta ao utilizador. [16] Nokia, Nokia research center, http://research.nokia. com/, 9 [17] XMPP, Xmpp standards foundation, http://xmpp. org/, 9 [18] Ignite Realtime, Smack api, http://www. igniterealtime.org/projects/smack/, 9 [19] Kannel, Kannel: Open source wap and sms gateway, http://www.kannel.org/, 9 [20] Páginas Amarelas, pai.pt, http://www.pai.pt/, 9 V. Conclusão No âmbito da disciplina de Engenharia de Serviços o serviço SmartAd foi planeado, modulo e desenvolvido com resultados bastante satisfatórios. Ainda deste projecto nasceu um projecto armazenado no Source- Forge para a distribuição do código do Media Gateway. References [1] PARLAY, Parlay, http://www.parlay.org/, 9 [2] 3GPP, Ip-multimedia subsystem, http://www.3gpp. org/article/ims, 9 [3] IETF, Session initiation protocol, http:// datatracker.ietf.org/wg/sip/charter/, 9 [4] ITU, Itu, http://www.itu.int/, 9 [5] Service-Oriented Architectures, Web services and service-oriented architectures, http: //www.service-architecture.com/, 9 [6] TMN, Tmn, http://www.tmn.pt/, 9 [7] Vodafone, Vodafone, http://www.vodafone.pt/, 9 [8] Facebook, Facebook, http://www.facebook.com/, 9 [9] MySpace, Myspace, http://www.myspace.com/, 9 [10] Open IMS Core, Open ims core, http://www. openimscore.org/, 9 [11] Oracle, Glassfish, https://glassfish.dev.java.net/, 9 [12] Oracle, Sailfin, https://sailfin.dev.java.net/, 9 [13] Google, Android, http://www.android.com/, 9 [14] GStreamer, Gstreamer, http://www.gstreamer.net/, 9 [15] Sofia-Sip, Sofia-sip library, http://sofia-sip. sourceforge.net/, 9