You are on page 1of 85

USCS Universidade Municipal de So Caetano do Sul

MARCO ANTONIO CAETANO JUNIOR

PROPOSTA DE ARQUITETURA DE SOFTWARE PARA APLICAES MVEIS UTILIZANDO WEB SERVICES

So Caetano do Sul 2011

MARCO ANTONIO CAETANO JUNIOR

PROPOSTA DE ARQUITETURA DE SOFTWARE PARA APLICAES MVEIS UTILIZANDO WEB SERVICES

Trabalho de Concluso de Curso apresentado Universidade Municipal de So Caetano do Sul, como parte dos requisitos para a obteno do ttulo de Bacharel em Cincia da Computao. Orientador: Prof. Fabricio Perrella

So Caetano do Sul 2011

RESUMO

O cenrio do mercado mobile est em ascenso e a utilizao desses aparelhos como meio de acesso a informaes est cada vez mais frequente nos dias de hoje. O Sistema Android da Google vem para assumir a linha de frente junto com o iOS (Sistema Operacional do Iphone e Ipad) na batalha de utilidades e tecnologias mais eficientes que atendam os consumidores atuais sedentos de novidades. Levando em conta os fatores de utilidade, usabilidade, integrao, algumas das caractersticas essenciais para sucesso de aplicativos mveis, este trabalho teve como objetivo projetar uma arquitetura modular de uma aplicao que servir de auxlio para o grande nmero de turistas que viro ao Brasil em 2014 e acompanharo a Copa do Mundo. A partir da implementao dessa especificao, o usurio do dispositivo mvel ter acesso a diversas opes, tais como localizar e traar rotas para os estdios, encontrar estabelecimentos convenientes prximos, como hotis e restaurantes, e visualizar informaes em tempo real de jogos, tabelas, estatsticas e informaes da Copa disponveis em diversas lnguas. Tudo isso ser disponibilizado pela arquitetura proposta nessa monografia, que com base em estudo em livros, artigos e sites confiveis, utilizar tecnologias de ponta para aplicaes com grande volume de acessos e dados e ir estabelecer uma comunicao com um servidor online mediador, encarregado de trazer informaes correntes de fontes confiveis na web e disponibiliz-las ao terminal mvel. Foram utilizadas as especificaes JEE, Web Services, EJB, tecnologias do Sistema Operacional Android e da API do Google Maps, ajudando na localizao do usurio. Palavras-chave: Android, JEE, Copa do Mundo, Web Crawler, Aplicaes Mveis

ABSTRACT

The scenario of the mobile market is rising and the usage of such equipment as a way to access information is getting more frequent nowadays. The Google Android system leads, together with the iOS (Iphone and Ipad Operational System), the battle of more efficient utilities and technologies that attend the present consumers, willing for news. Taking into account the features of usefulness, usability, integration, some of the essential features for the success of mobile applications, this work had the objective to design a modular architecture of an application that will help the large number of tourists that will come to Brazil in 2014 and will follow the World Cup. From the implementation of this specification, the user of the mobile device will have access to several options, such as finding and plot routes to stadiums, finding facilities nearby, like hotels and restaurants, and access information in real time of games, tables, statistics and other matters related to the Cup, in many languages. All of that will be available through the architecture proposed in this article, that based in books, articles and trustable websites, will use state of the art technologies to applications involving a great volume of data and access, establishing a communication with a mediator online server, in charge of bringing current information from trustable web sources and make them available to the mobile terminal. The specifications used were JEE, Web Services, EJB, Android Operational System and Google Maps API technologies, helping to locate the user. Keywords: Android, JEE, World Cup, Web Crawler, Mobile Applications

LISTA DE FIGURAS Figura 1 - A pilha Android oferece uma impressionante variedade de tecnologias e capacidades 27 Figura 2 - Aplicaes em camadas em cima do iOS Figura 3 - Camadas do iOS Figura 4 - Relatrio de Mercado de Smartphones Maro/2011 Figura 5 - Geraes de Sistemas Celulares Figura 6 - Representao de rede Piconet via Bluetooth Figura 7 - Representao de rede WiMAX Figura 8 - Exemplo de Aplicao N-Tier Figura 9 - Web Services fornecem uma camada de abstrao entre o aplicativo cliente e o cdigo da aplicao Figura 10 - Pilha de Tecnologias dos Web Services Figura 11 - Estrutura de um Envelope SOAP Figura 12 - Diagrama de Caso de Uso da Aplicao Figura 13 - Diagrama de Componentes da Aplicao Figura 14 - Diagrama de Atividades - Visualizar Classificao Figura 15 - Diagrama de Atividades - Visualizar Tabela de Jogos Figura 16 - Diagrama de Atividades - Visualizar Estatsticas de Jogos Figura 17 - Diagrama de Atividades - Traar Rota para o Estdio Figura 18 - Diagrama de Atividades - Procurar Estabelecimentos teis Figura 19 - Diagrama de Entidade-Relacionamento da Base de Dados Figura 20 - Exemplo de Web Crawler em Java Figura 21 - Representao Grfica dos Projetos em uma IDE Figura 22 - Exemplo de Consumidor de um Web Service utilizando KSOAP 31 32 35 38 40 42 45 50 51 54 59 61 63 64 65 66 67 68 70 72 76

Figura 23 - Exemplo de Layout XML para Android de um Mapa utilizando Google Maps API 77

LISTA DE TABELAS Tabela 1 Venda de Smartphones usurios finais em todo o mundo no 1 Trimestre de 2011 (Milhares de Unidades)

36

LISTA DE ABREVIATURAS E SIGLAS 2G 3G 4G ADT API CDMA CORBA EAR EJB GPS GSM HTTP IDE JAXWS JDK JEE JME JVM PDA RMI SDK WSDL XML Segunda Gerao de Padres e Tecnologias de Telefonia Mvel Terceira Gerao de Padres e Tecnologias de Telefonia Mvel Quarta Gerao de Padres e Tecnologias de Telefonia Mvel Android Development Tools Application Programming Interface Code Division Multiple Access Common Object Request Broker Architecture Enterprise Archive Enterprise Java Beans Global Positioning System Global System for Mobile Communications Hypertext Transfer Protocol Integrated Development Environment Java API for XML Web Services Java SE Development Kit Java Enterprise Edition Java Micro Edition Java Virtual Machine Personal Digital Assistant Remote Method Invocation Software Development Kit Web Service Description Language Extensible Markup Language

SUMRIO

1. INTRODUO / MOTIVAO .............................................................................. 15 2. MOBILIDADE ......................................................................................................... 19 2.1. Dispositivos Mveis ......................................................................................... 20 3. PLATAFORMAS .................................................................................................... 25 3.1. Google Android ................................................................................................ 26 3.1.1. Arquitetura ................................................................................................. 27 3.1.2. Ambiente de Desenvolvimento .................................................................. 29 3.2. Apple iOS ......................................................................................................... 30 3.2.1. Arquitetura ................................................................................................. 30 3.2.2. Ambiente de Desenvolvimento .................................................................. 33 3.3. Comparativo Mercadolgico ............................................................................ 35 4. INFRAESTRUTURA E CONECTIVIDADE ............................................................ 37 4.1. Geraes de Telefonia Celular ........................................................................ 37 4.2. Redes sem Fio ................................................................................................. 39 4.2.1 Bluetooth .................................................................................................... 39 4.2.2 WiFi ............................................................................................................ 41 4.2.3 WiMax......................................................................................................... 41 5. TECNOLOGIA E MODELAGEM ............................................................................ 43 5.1. Java Enterprise Edition .................................................................................... 44 5.1.1 N-Tier.......................................................................................................... 45 5.2. Google Maps API ............................................................................................. 47 5.3. Web Services SOAP ........................................................................................ 49 5.3.1 Pilha de Tecnologias dos Web Services .................................................... 50 5.3.2 SOAP - Simple Object Access Protocol ..................................................... 53 6. METODOLOGIA .................................................................................................... 55

7. DESENVOLVIMENTO DA SOLUO .................................................................. 57 7.1. Fatores Essenciais (Funcionamento e Usabilidade) ....................................... 57 7.2. Casos de Uso .................................................................................................. 59 7.3. Arquitetura da Implementao Organizao de Componentes ................... 61 7.4. Fluxo de Atividades ......................................................................................... 63 7.5. Modelagem da Base de Dados ....................................................................... 68 7.6. Camada de Integrao Extrao de Informao.......................................... 69 7.7. O Servidor de Aplicao (Tecnologias e Organizao) .................................. 72 7.7.1. Projeto EJB ............................................................................................... 73 7.7.2. Projeto Web Services ............................................................................... 74 7.7.3. Publicao do Projeto EAR ....................................................................... 74 7.8. O Cliente Dispositivo Mvel (Tecnologias e Organizao) ............................. 75 8. CONCLUSO ........................................................................................................ 79 9. REFERNCIAS BIBLIOGRFICAS ...................................................................... 81

15

1. INTRODUO / MOTIVAO

Em 2014, o Brasil sediar o evento esportivo mais famoso do planeta, a Copa do Mundo e, com o objetivo de dar o suporte necessrio e de qualidade grande massa de turistas estrangeiros que chegaro ao pas e mostrar a imagem de uma nao preparada para o resto do mundo, iniciou-se um perodo de grande investimento em diversas reas no pas.
At 2014 est prevista a entrada de mais R$ 804 bilhes por aqui para tanto, em reas como eletricidade, petrleo e gs, logstica, transporte e saneamento. Isto d uma mdia de R$ 116 bilhes a cada ano. (RICCIARDI, 2011).

O relato de residentes da frica do sul comprova os benefcios que o evento trouxe para o pas.
O que o mundial deixar para ns a infraestrutura; estradas, melhores transportes, novas rodovirias e o metr. Havia regies que nem tinham energia eltrica e que agora contam com esse benefcio. At os congestionamentos diminuram porque as pistas esto mais largas. Podemos acordar mais tarde. (TURISMO, 2010).

O Brasil ir abrigar milhares de estrangeiros devido Copa do Mundo.


A Embratur (Instituto Brasileiro de Turismo) espera receber de 500 mil a 600 mil turistas no Brasil durante a Copa de 2014 e 380 mil durante os Jogos Olmpicos no Rio em 2016. Acredita-se que 25% dos turistas que viro para a Copa visitem outros destinos tursticos no Pas. (TURISMO, 2010).

Muitas pessoas dependero das orientaes obtidas das mais variadas mdias, e alinhando a rapidez e praticidade, uma rede mundial de comunicaes tornou-se a principal fonte dessas informaes, a internet. A internet, como um dos principais meios de informao e divulgao, est cada vez mais presente na vida das pessoas e considerando a importantssima chegada dos dispositivos mveis, com acesso a essa rede mundial, as possibilidades tornaram-se imensas. A Terceira Gerao de Padres e Tecnologias de Telefonia Mvel (3G) foi uma das responsveis para o grande sucesso de utilizao desses aparelhos nos dias de

16

hoje e os capacitou a uma elevada taxa de transmisso de dados e multimdia em relao s geraes anteriores.
A tecnologia do 3G permanece mais tempo diante dos olhos do que do ouvido, pois apresenta configuraes como multimdias. Os diversos dados existentes passam a trafegar junto com os usurios, pois ns no estamos mais estticos e sim sempre em movimento, o espao fsico, onde determinada pessoa se encontra no significa mais nada j que tem acesso rede em diversos lugares. (ALONSO, 2009, p.10).

O mundo est no meio de uma exploso tecnolgica onde os atores principais so os dispositivos mveis que possuem um futuro promissor. As vendas no param de crescer na medida em que a ideia de mobilidade tem se tornado til tanto para usurios pessoais como empresariais, os objetivos so diversos. Comprovando essa grande expectativa,
segundo o instituto de pesquisas Gartner, o total de tablets comercializados neste ano deve alcanar 54,8 milhes e chegar a 103,4 milhes em 2012. (BARRETO; CAPUTO, 2011, p.66).

As perspectivas desse mercado so ainda maiores para 2014, ano do evento esportivo que ser tratado nesse trabalho, e mais alm, em 2017. De acordo com Barreto e Caputo (2011) com base no estudo da RBC Capital Markets, em 2014, tablets e smartphones representaro 64% de todos os computadores vendidos no mundo. No parecer dos analistas da consultoria DisplaySearch, para cada trs laptops vendidos em 2017, dois tablets sero comercializados. O mercado de aplicaes mveis tambm est avanando e o nmero de softwares fabricados crescendo exponencialmente para acompanhar as mais novas tecnologias e alcanar a maior quantidade possvel de plataformas que constantemente inovam seus padres.
No perodo, o Gartner estima que sejam realizados 17,7 bilhes de downloads, com acrscimo de 117% sobre 2010, quando o mesmo nmero foi de 8,2 bilhes. E as previses so de que, at o final de 2014, o mercado alcance a marca de 185 bilhes de transaes realizadas desde o lanamento da primeira loja do ramo, em julho de 2008. (OLHAR, 2011).

De acordo com o cenrio apresentado, pode-se sugerir que aplicaes mveis j possuem uma demanda grande, e a atuao em uma importante rea onde o pblico alvo seria a grande quantidade pessoas com necessidades de servios

17

relacionados a um determinado objetivo em comum, como acompanhar a Copa do Mundo, iria contribuir consideravelmente para o crescimento desse mercado. Outros exemplos de grandes eventos como as Olimpadas Rio 2016 tambm compartilham dessa mesma caracterstica, o aumento de turistas internacionais no pas, porm, imediatamente nasce um problema: Como ajudar os turistas internacionais a se localizarem em uma nao estrangeira, apresentando servios teis e provendo funcionalidades de acordo com seus objetivos no pas? O objetivo no pas representa a finalidade da viagem, que no caso trabalhado nessa monografia, ser acompanhar o evento esportivo da Copa do Mundo. A ajuda na localizao representa um auxlio prtico com mapas e rotas para estdios que necessitam alcanar. Os servios so a apresentao de locais teis no mapa como hotis e restaurantes, e suas respectivas informaes, prximos aos estdios para economizar tempo e ter uma viso geral sobre o local at ento desconhecido. As funcionalidades de acordo com seus objetivos representam utilitrios que trazem dados em tempo real sobre a Copa do Mundo, tabela de jogos e estatsticas. A importncia de trazer tal comodidade aos turistas internacionais nessa poca de total entendimento, considerando que esse bem ser revertido em benefcios para o prprio pas hospedeiro. Tendo em vista a situao, esse trabalho prope uma soluo tecnolgica a essa pergunta, que faz uso de aparelhos mveis do prprio utilizador e que integra todas essas facilidades em um software. O projeto proposto nesse trabalho tem o objetivo de atender um elevado nmero de requisies simultneas, que com certeza um pr-requisito se tratando de um nvel internacional de usurios, alm de estar disponvel em outras lnguas para facilitar seu entendimento para pessoas de outros pases. Atravs de uma arquitetura robusta e segura, esse projeto solucionaria essa demanda seguindo especificaes atuais de desenvolvimento de softwares corporativos e tecnologias igualmente preparadas.

18

19

2. MOBILIDADE

O tempo foi passando, os paradigmas sendo quebrados, e junto com outras inovaes tecnolgicas que o homem alcanou, chegaram os aparelhos mveis para atender os mais variados gostos e necessidades. As tecnologias desses dispositivos foram capazes de atingir a rotina das pessoas, fazendo com que a conexo com o mundo digital fosse mais frequente, e que o acesso aos dados e informaes em tempo real estivesse cada vez mais prximo dos utilizadores, e como resultado de tudo, a praticidade. Cavallini (2010) afirma que a mobilidade no apenas uma tecnologia, mas tambm uma mudana comportamental, e essa mudana foi grande e ainda est ocorrendo, a cada dia mais pessoas cedem s facilidades do mundo digital por diferentes razes e objetivos. O digital o mundo que torna a nossa vida mais fcil e no mais complicada. O mobile quase um rgo humano que traz o digital a tiracolo e deixa a nossa vida mais prtica. (SOCHACZEWSKI, 2010, p11)
O moderno mercado de telefonia mvel atende a uma ampla variedade de gostos e estilos de vida dos clientes. Alguns telefones so pequenos e discretos, alguns so escolhidos pela sua aparncia (como um acessrio de moda, com capas alternativas que permitem que a aparncia seja alterada para coincidir com a roupa do proprietrio), alguns s oferecem funcionalidade bsica, enquanto outros oferecem uma ampla gama de negcios e servios de lazer a seus usurios. (ATTEWELL, 2005, p.2, traduo nossa).

Com a chegada dos mais variados modelos desses dispositivos, as antigas tarefas predominantes desses aparelhos deixaram de serem suas nicas funcionalidades.

20 Telefones celulares e PDAs no so mais apenas para conversar e organizar contatos e dirios, so agora computadores de bolso e, como tal, tm a capacidade de entregar os objetos de aprendizagem e proporcionar o acesso aos sistemas e servios online. (ATTEWELL, 2005, p.16, traduo nossa).

A consolidao desse universo expandiu o conceito de mobilidade para a populao, porm muitas pessoas ainda tratam o termo equivocadamente como sinnimo de telefonia mvel ou celular. Pela fora do mercado de telefonia celular e a forte presena dos aparelhos em nossas vidas, para a maioria das pessoas, mobile virou sinnimo de celular. Mas mobilidade maior que o celular, mesmo ele sendo seu representante mais importante. (CAVALLINI, 2010, p.9).

2.1. Dispositivos Mveis A evoluo de aparelhos j existentes, a inveno de novos e revolucionrios e o surgimento de novas idias esto cada vez mais frequentes atualmente, hoje temos dispositivos de todos os tamanhos e finalidades para trazer praticidade e atender qualquer rea carente dessas tecnologias. Segundo Mallick (2003), junto com diferenas de tamanho existem muitas variaes nas caractersticas e desempenho que esses dispositivos oferecem, no importa que tipo de aplicao mvel voc esteja procurando, sempre existe um dispositivo que ir atender s suas necessidades. A baixo esto alguns dos mais importantes.

- Telefones Celulares Esses so os primeiros aparelhos mveis que fizeram uso da rede telefnica para comunicao por voz.
O nome celular decorrente do fato da rede de comunicao ser composta de uma rede de clulas, com transceptores de rdio, chamados de estao base, no centro de cada clula. A clula a rea de cobertura de uma nica estao base. medida que um telefone mvel se desloca em uma rede, ele tem acesso aos servios por intermdio da estao base da clula em que se encontra

21 naquele momento. A clula pode tomar diversas formas, de acordo com a topografia da regio, pois morros e prdios podem afetar e mesmo bloquear os sinais. De maneira geral, a forma adotada hexagonal. (TAURION, 2005, p.85).

As tecnologias dos telefones celulares foram base para a evoluo da comunicao sem fio, e conforme tratado nesse trabalho, seu crescimento deu margem a muitas descobertas que revolucionaram a rea.
Conforme foram evoluindo, os celulares passaram a incorporar as funes de cada vez mais dispositivos, tornando-se progressivamente mais importantes. Mesmo os aparelhos mais bsicos vendidos atualmente utilizam muitas vezes processadores ARM de 300 a 400 MHz e 64 MB ou mais de memria RAM (sem contar a memria Flash, usada para armazenamento). Ou seja, possuem um poder de processamento superior ao de muitos PCs do final da dcada de 1990. Com tanto poder de fogo disponvel, no de se estranhar que eles tenham passado a assimilar as funes de outros dispositivos, assim como no caso dos PCs. (MORIMOTO, 2009).

Os celulares so muito utilizados e sua integrao com tecnologias que apareceram com o decorrer dos anos, na medida em que as possibilidades cresceram, foi inevitvel. Alguns recursos novos foram sendo incorporados a esses aparelhos como cmeras, rdio e mp3 players.

- PDA Um PDA um pequeno computador com uma tela que substancialmente maior do que a de um telefone celular. (KORNAK; TEUTLOFF; WELIN-BERGER, 2004, p. 52, traduo nossa) Um Personal Digital Assistant (PDA) um computador de bolso utilizado normalmente para atividades de escritrio, como ler e criar documentos e acompanhar agendas, tambm capaz de processar informaes, diferenciando-o de uma simples agenda eletrnica. Alguns modelos tambm possuem capacidade de conexo com redes Wireless (redes sem fio), cmera digital e grande estoque de memria. Existem atualmente duas principais alternativas de PDA no mercado: o PocketPC e Palm Pilot. (KORNAK; TEUTLOFF; WELIN-BERGER, 2004, p. 52, traduo nossa)

22

Os Sistemas Operacionais mais utilizados nessa categoria so os: Palm OS para dispositivos PalmOne e Windows Mobile para dispositivos PocketPC.

- Smartphones
O termo smartphone foi inicialmente criado por estrategistas de marketing desconhecidos para se referirem a uma classe at ento nova de telefones celulares que poderiam facilitar o acesso aos dados e teriam um processamento com significativo poder computacional. Alm da comunicao de voz tradicional e funcionalidades de mensagens, um smartphone normalmente fornece gerenciamento de informaes pessoais (PIM) e alguma capacidade de comunicao sem fio. Grosseiramente falando, um smartphone como um computador, pequeno em rede na forma de um telefone celular. (ZHENG; NI, 2006, p.4, traduo nossa).

Os smartphones foram criados com base em um poder de processamento e memria maior do que os antigos aparelhos celulares. Os smartphones so a combinao de duas classes de dispositivos: os celulares e os assistentes pessoais (como os Palms e os PDAs). Diferente dos antecessores, os smartphones podem se conectar a web atravs de conexes 3G ou Wi-Fi, o que permite que eles ofeream uma enorme variedade de recursos. [...] O grande trunfo, entretanto, est na possibilidade de instalar aplicativos adicionais, o que permite que eles executem inmeras outras funes. Usando um smartphone, voc pode concentrar um volume surpreendente de funes em um aparelho de cento e poucos gramas, que pode carregar no bolso, com acesso contnuo web. Essa combinao de fatores tem feito com que eles se tornem cada vez mais indispensveis. (MORIMOTO, 2009). - Tablets Tablet um dispositivo em forma de prancheta, famoso pela sua interatividade e tela touchscreen, sensvel ao toque, um dos aparelhos mveis com maiores investimentos hoje em dia. Segundo Barreto e Caputo (2011), o tablet , em essncia, um dispositivo para consumo de contedo, enquanto o PC tornou-se uma importante ferramenta de produtividade.
Tablet PCs tm um teclado touchscreen, o que o faz menos til para escrever documentos extensos. No entanto, a capacidade de se

23 comunicar e ter acesso a todas as funcionalidades de um PC vai ser atraente para muitos usurios. (KORNAK; TEUTLOFF; WELINBERGER, 2004, p. 52, traduo nossa)

Sua sensibilidade ao toque uma predominante caracterstica, possui um Sistema Operacional poderoso, tm acesso internet e diversas outras utilidades que do praticidade suas tarefas, porm no possui a capacidade de processamento e memria de um Notebook ou Desktop. A portabilidade, somada autonomia de bateria e incrvel experincia de uso podem colocar em xeque o futuro dos outros computadores pessoais portteis. (BARRETO; CAPUTO, 2011, p.71) Os diferenciais dos tablets so notveis no que se refere modernidade e praticidade que os dispositivos mveis nos oferecem, por essa razo, pesquisas encontram atualmente um grande aumento na venda desses dispositivos. Estimativa da IDC aponta que as vendas dos tablets por aqui ultrapassem 300 mil unidades neste ano. (BARRETO; CAPUTO, 2011, p.66)

24

25

3. PLATAFORMAS Com a exploso das tecnologias mveis e a necessidade desses aparelhos na vida das pessoas, a concorrncia aumentou. Muitas empresas encontraram uma boa visibilidade e comearam a investir nessa rea; as lderes em tecnologia deixaram seus postos confortveis e passaram a concorrer com outras fabricantes de olho no constante aumento de consumidores. Diversos sistemas operacionais foram desenvolvidos superando cada vez mais as verses anteriores. Esse fator, alm de outros que sero mostrados no decorrer do trabalho, se tornou uma caracterstica importante para a escolha do dispositivo, que influencia diretamente no objetivo que diferentes consumidores procuram alcanar.
Diferente de um PC, onde voc pode escolher qual sistema operacional utilizar, substituindo o Windows por Linux (ou viceversa), ou mesmo instalando vrios sistemas no mesmo micro, nos smartphones as escolhas so mais restritas, j que, com poucas excees, voc no tem como substituir o sistema pr-instalado por outros. (MORIMOTO, 2009).

Esse captulo ir focar na exposio das caractersticas de duas principais plataformas do mercado atual, Apple iOS e Google Android, considerando esses softwares os mais comercializados e inovadores para tablets e smartphones.

26

3.1. Google Android Segundo Ableson, Sem e King (2011), Android uma plataforma de software que est revolucionando o mercado e a primeira plataforma de aplicaes mveis com cdigo aberto em todo o mundo. Android o sistema operacional da Google para dispositivos mveis, e combinando esse conceito de distribuio livre e cdigo aberto, sem perder tecnicamente para outros concorrentes em desempenho e inovao, seu mercado vem aumentando consideravelmente.
Android um ambiente de software integrado para dispositivos mveis. No uma plataforma de hardware. Android inclui um sistema baseado no kernel do Linux, uma interface de usurio rica, aplicativos para usurio finais, bibliotecas de cdigo, frameworks de aplicao, suporte multimedia, e muito mais. E, sim, at mesmo a funcionalidade de telefone est includa! Enquanto que os componentes internos do sistema operacional so escritos em C ou C + +, os aplicativos de usurio so construdos para Android em Java. (ABLESON; SEN; KING, 2011, p.4, traduo nossa).

As possibilidades se tornaram grandes com a quantidade de funcionalidades e a facilidade de utilizao das bibliotecas contidas em seu pacote de desenvolvimento, e ainda melhor, a linguagem utilizada Java, eliminando a necessidade de aprender uma nova e especfica linguagem para essa construo.

27 Uma caracterstica da plataforma Android que no h diferena entre as aplicaes integradas e aplicaes que voc cria com o SDK. Isto significa que voc pode escrever aplicaes poderosas para explorar todos os recursos disponveis no dispositivo. (ABLESON; SEN; KING, 2011, p.4, traduo nossa).

3.1.1. Arquitetura
A pilha Android inclui um impressionante conjunto de funcionalidades para aplicaes mveis. Na verdade, olhando somente para a arquitetura, sem o contexto do Android ser uma plataforma projetada para ambientes mveis, seria fcil confundir Android com um ambiente geral de computao. Todos os componentes principais de uma plataforma de computao esto l. (ABLESON; SEN; KING, 2011, p.10, traduo nossa).

A arquitetura mostrada a seguir engloba, sob uma viso ampla, as camadas do sistema Android.

Figura 1 - A pilha Android oferece uma impressionante variedade de tecnologias e capacidades

Fonte: Ableson, Sen e King (2011)

28

A primeira camada a de Hardware, camada fsica, que apresentada na figura 1 apenas para ilustrar a fronteira com o Kernel e o incio das camadas lgicas.
Um kernel Linux fornece uma camada fundamental de abstrao de hardware, bem como servios essenciais, como processo, memria e gesto do sistema de arquivos. O kernel onde os drivers especficos do hardware so implementados -- capacidades, tais como Wi-Fi e Bluetooth esto aqui. . (ABLESON; SEN; KING, 2011, p.10, traduo nossa). Android construdo em um kernel Linux e em uma avanada e otimizada VM para suas aplicaes Java. Ambas as tecnologias so cruciais para o Android. O componente do kernel Linux da pilha Android promete agilidade e portabilidade, tirando proveito de inmeras opes de hardware para os futuros telefones equipados com Android. O ambiente Java do Android a chave: Faz o Android acessvel para programadores, tanto pelo nmero de desenvolvedores de software Java como para o meio ambiente rico que programao Java tem para oferecer(ABLESON; SEN; KING, 2011, p.11, traduo nossa).

Acima da camada do Kernel, est a camada das bibliotecas internas do Sistema e o Android Runtime. Essas bibliotecas so escritas C e C++, e controlam diversos componentes de nvel mais baixo como SQLite, o banco de dados interno. O Android Runtime contm o Core (Ncleo) Java que contem quase todos os recursos da linguagem Java disponveis, e a Dalvik VM, mquina virtual utilizada pelo Android. A camada de Application Managers, ou Gerentes de Aplicao, so gerenciadores que utilizam das camadas de bibliotecas internas e disponibilizam diversas Application Programming Interfaces (API) como para componentes visuais e acesso a dados do telefone.
Os desenvolvedores possuem pleno acesso s APIs do mesmo framework usado pelos aplicativos internos. A arquitetura do aplicativo projetada para simplificar a reutilizao de componentes; qualquer aplicao pode publicar suas capacidades e qualquer outra aplicao pode ento fazer uso dessas capacidades (sujeito a restries de segurana impostas pelo framework). Este mesmo mecanismo permite os componentes serem substitudos pelo usurio. (ANDROID, 2011, traduo nossa).

Essa camada utilizada tanto para aplicaes de softwares j existentes no sistema como para softwares construdos pelo usurio na primeira camada.

29

3.1.2. Ambiente de Desenvolvimento Um fator determinante para o desenvolvimento de uma aplicao mvel a disponibilidade de servios de seu Software Development Kit (SDK), e nesse campo o Android supera na facilidade de utilizao, alm de ser totalmente gratuita. A SDK do Android fornece um rico conjunto de funcionalidades que permite aos desenvolvedores criar uma ampla gama de aplicaes (ABLESON; SEN; KING, 2011, p.61, traduo nossa) A SDK um Kit de Desenvolvimento para o desenvolvedor arquitetar e construir seu software de acordo com os padres de desenvolvimento do respectivo sistema operacional, contendo todos os componentes necessrios para a criao de aplicativos e funcionalidades suportada pelo software.
A SDK do Android inclui documentao baseado em HTML, que consiste principalmente em pginas formatadas em Javadoc que descrevem os pacotes disponveis e classe. [...] Quando voc entende o contedo de cada uma dessas sees, o material de referncia Javadoc que vem com o SDK se torna uma ferramenta real e no apenas uma pilha de materiais aparentemente sem relao (ABLESON; SEN; KING, 2011, p.32, traduo nossa).

Sua documentao clara e objetiva e a referncia principal quando se quer explorar as possibilidades de desenvolvimento nesse sistema. Sua SDK contm tambm a Android Development Tools (ADT), ferramentas para auxiliar no desenvolvimento dos aplicativos para a plataforma. Essas ferramentas foram criadas para trabalhar com o Eclipse, Integrated Development Environment (IDE) que melhor suporta o desenvolvimento para Android. Eclipse e a ADT fornecem uma grande combinao de controle sobre o ambiente de desenvolvimento do Android (ABLESON; SEN; KING, 2011, p.40, traduo nossa) A ADT possui um gerenciador de plataformas para baixar atualizaes, bibliotecas e novas verses desse sistema operacional e um simulador que inicializa o sistema e testa as aplicaes criadas. Aps finalizar o aplicativo, o desenvolvedor pode instalar-lo gratuitamente em seu prprio dispositivo utilizando o pacote gerado, ou publicar no Android Market, loja virtual do Android.

30

3.2. Apple iOS


iOS o sistema operacional que roda nos dispositivos iPhone, iPod touch e iPad. Este sistema operacional gerencia os dispositivos de hardware e fornece as tecnologias necessrias para implementar aplicativos nativos. (APPLE, 2010, p.13, traduo nossa)

Esse sistema amplamente utilizado no mundo de dispositivos mveis, muito seguro e surpreende os usurios, com sua tima interface grfica, interao e tecnologias. O Sistema Operacional da Apple, o iOS, ao contrrio do Android, no Open Source (Cdigo Aberto), sua distribuio no gratuita, e no permitida sua utilizao em hardware de terceiros. Apesar de esse sistema operacional ser um dos lderes de mercado, o desenvolvimento e distribuio dos aplicativos mais difcil e burocrtico comparado ao Android, pois totalmente dependente da plataforma, no gratuito e utiliza uma linguagem mais especfica, a Objective C.

3.2.1. Arquitetura
Ao mais alto nvel, iOS atua como um intermedirio entre o hardware subjacente e os aplicativos que aparecem na tela [...] Os aplicativos que voc cria raramente fala com o hardware subjacente diretamente. Em vez disso, os aplicativos se comunicam com o hardware atravs de um conjunto de bem definidas interfaces de sistema que protegem seu aplicativo de alteraes de hardware. Essa abstrao facilita escrever aplicaes que trabalham de forma consistente em dispositivos com recursos de hardware diferentes. (APPLE, 2010, p.13, traduo nossa).

31

Figura 2 - Aplicaes em camadas em cima do iOS

Fonte: Apple (2010)

A implementao das tecnologias do iOS pode ser vista como um conjunto de camadas [...] Nas camadas inferiores do sistema esto os servios fundamentais e as tecnologias em que todas as aplicaes dependem; camadas de nvel superior contm servios e tecnologias mais sofisticadas. (APPLE, 2010, p.14, traduo nossa).

As camadas da arquitetura do iOS so representadas na figura 3 a seguir.

32

Figura 3 - Camadas do iOS

Fonte: Apple (2010)

Cada camada da arquitetura representa um conjunto de funcionalidades organizadas para o correto funcionamento das aplicaes no sistema operacional. - Cocoa Touch
A camada Cocoa Touch contm os frameworks chave para a construo de aplicaes iOS. Esta camada define a infra-estrutura de aplicativos bsicos e de apoio s tecnologias-chave, tais como multitarefa, a entrada baseada em toque, notificaes push, e muitos outros servios de alto nvel do sistema. (APPLE, 2010, p.19, traduo nossa).

Essa camada de mais alto nvel no desenvolvimento das aplicaes para iOS, a API utilizada Cocoa, que utiliza a Objective C. - Media
A camada de mdia contm as tecnologias de grficos, udio e vdeo cujo objetivo criar a melhor experincia multimdia disponvel em um dispositivo mvel. As tecnologias nesta camada foram projetadas para tornar mais fcil para voc construir aplicaes com timos visuais e sons. (APPLE, 2010, p.27, traduo nossa).

- Core Services
A camada Core Services contm os servios fundamentais do sistema, que todas as aplicaes utilizam. Mesmo se voc no utiliza

33 esses servios diretamente, muitas partes do sistema so construdos em cima deles. (APPLE, 2010, p.35, traduo nossa).

- Core OS
A camada Core OS contm as funcionalidades de baixo nvel, as quais a maioria das outras tecnologias so construdas em cima. Mesmo se voc no usar essas tecnologias diretamente em seus aplicativos, elas so mais propensas a serem utilizado por outros frameworks. E em situaes onde voc precisa explicitamente lidar com a segurana ou a comunicao com um acessrio de hardware externo, voc faz isso usando os frameworks nesta camada. (APPLE, 2010, p.43, traduo nossa).

3.2.2. Ambiente de Desenvolvimento Ao contrrio da plataforma Android, para iniciar o desenvolvimento em iOS, algumas premissas exigidas, como possuir um Mac, computador pessoal desktop ou notebook da Apple. O SDK do iOS vem com todas as interfaces, ferramentas e recursos necessrios para desenvolver aplicaes iOS do seu computador Macintosh baseado em Intel. (APPLE, 2010, p.14, traduo nossa) Em sua SDK, as bibliotecas usadas para o desenvolvimento das aplicaes so agrupadas em frameworks.
A Apple oferece a maioria das interfaces de seu sistema em pacotes especiais chamados frameworks. Um framework um diretrio que contm uma biblioteca dinmica compartilhada e seus recursos (como arquivos de cabealho, imagens, aplicativos auxiliares, e assim por diante) necessria para suportar essa biblioteca. Para usar os frameworks, voc os liga em seu projeto de aplicao como se fosse qualquer outra biblioteca compartilhada. Ligando-os ao seu projeto da o acesso s funes do framework e tambm permite as ferramentas de desenvolvimento saber onde encontrar os arquivos de cabealho e outro recursos do framework. (APPLE, 2010, p.14, traduo nossa).

Alm dessas bibliotecas, sua SDK contm outros componentes com objetivo de facilitar a construo de softwares para essa plataforma, tais como:

- Xcode Tools

34

Conjunto de ferramentas que contm: XCode, IDE para desenvolvimento das aplicaes, Interface Builder, ferramenta para construo de interface grfica e Instruments, um analisador de desempenho e ferramenta de deupurao de softwares.

- iOS Simulator Simulador de iOS que pode ser utilizado no Mac para testar os projetos criados.

- iOS Developer Library Referncia e documentao conceitual do iOS.

A Apple tambm requer uma assinatura paga no programa iOS Developer Program, para a utilizao de aplicativos criados em dispositivos reais e a distribuio dos mesmos na AppStore, loja virtual da Apple.

35

3.3. Comparativo Mercadolgico Como apresentado nesse trabalho, os Sistemas Operacionais Android da Google e iOS da Apple esto no topo da lista dos sistemas mais comercializados no mundo para dispositivos mveis, logo a comparao entre os dois um fator essencial no momento da aquisio e na escolha apropriada para os fins desejados. Segundo a GARTNER (2011), Android e iOS da Apple continua a dominar as guerras entre sistema operacional para smartphones. A cada ms, uma nova batalha de vendas travada entre esses principais sistemas. Em maro de 2011, o cenrio desse mercado foi representado pela imagem abaixo.

Figura 4 - Relatrio de Mercado de Smartphones Maro/2011

Fonte: CNN (2011)

36

Tabela 1 - Venda de Smartphones a usurios finais em todo o mundo no 1 Trimestre de 2011 (Milhares de Unidades)

Fonte: Gartner (2011)

Segundo a pesquisa da Gartner (2011), Android na primeira posio e iOS na terceira dominam esse cenrio, enquanto o mercado do Symbian, Sistema Operacional da Nokia, continua diminuindo, situao que est forando sua aposentadoria como sistema.

37

4. INFRAESTRUTURA E CONECTIVIDADE

Segundo Kornak, Teutloff e Welin-Berger (2004, p.4, traduo nossa) a definio de mobilidade a aplicao de dispositivos mveis e tecnologia sem fio para permitir a comunicao, acesso a informao, e transaes de negcio a partir de qualquer dispositivo, de qualquer pessoa, de qualquer lugar, a qualquer momento. As tecnologias sem fio so fatores que concedem o atributo da mobilidade a um dispositivo, por isso desde o sucesso da primeira comunicao sem fio, um avano constante se iniciou na rea para alcanar objetivos cada vez maiores.

4.1. Geraes de Telefonia Celular As geraes de sistemas celulares so as divises das tecnologias que cresceram com o tempo nessa rea. Atualmente a realidade do pas a tecnologia 3G, porm a Segunda Gerao de Padres e Tecnologias de Telefonia Mvel (2G) tambm foi muito importante como sua antecessora, provendo base para muitas das capacidades existentes hoje, e a Quarta Gerao de Padres e Tecnologias de Telefonia Mvel (4G), por outro lado, j utilizadas em alguns locais fora do Brasil, o futuro mais prximo, e representa um grande avano na comunicao e transmisso de dados sem fio. A imagem a seguir representa as geraes de telefonia mvel mais prximas e relevantes e suas tecnologias mais utilizadas que sero comentadas.

38

Figura 5 - Geraes de Sistemas Celulares

Fonte: Teleco (2010)


A primeira gerao comeou a funcionar em torno de 1979, com velocidades muito baixas, cerca de 9,6 Kbps. Os telephones desta gerao so analgicos, ou seja, enviam informaes em uma forma de ondas continuamente variveis. [] Por volta de 1991, comearam a surgir as tecnologias digitais da 2G. (TAURION, 2005, p. 86).

Segungo Taurion (2005), a segunda gerao trabalha na forma digital, portanto, convertem toda a fala em bits, tornando o sinal mais ntido e permitindo servios como recurso de mensagens, correio de voz e identificador de chamadas. A gerao 3G, ou terceira gerao, como precursora, aperfeioou diversos fatores que partiram da 2G.
A 3G proporciona servios avanados como transferncia de dados com alta velocidade e potencializa um novo paradigma de uso, no mais centrado em voz, mas em imagem. Neste contexto, chamar os aparelhos de celulares tender a ser imprprio, pois voz ser apenas uma de suas inmeras facilidades. (TAURION, 2005, p. 86).

Hoje em dia, isso j uma realidade para o Brasil, e o cenrio atual confirma as ambies inovadoras que todos aguardavam para essa gerao. A um elevado investimento na chamada quarta gerao, 4G, fora do Brasil, e uma grande expectativa em seus resultados, sua principal caracterstica um grande aumento na taxa de transmisso de dados. O avano das tecnologias, responsveis por essa comunicao e a transmisso de dados, dividiu esse ambiente em geraes, e entre elas, duas se destacam por ter

39

um papel importante e extremamente necessrio para esse sucesso: Code Division Multiple Access (CDMA) e Global System for Mobile Communications (GSM). De acordo com Carneiro (2004), no CDMA tanto os dados quanto a voz so separados dos sinais por cdigos, e depois so transmitidos em um amplo conjunto de freqncias. Assim, sobra mais espao para a transferncia de dados, esse foi um dos motivos do CDMA ser a tecnologia mais indicada para o acesso ao 3G, que consiste em acesso a banda larga e troca de pesadas mensagens multimdias. O CDMA envia todos os sinais de uma s vez, mas codifica cada um deles de forma prpria, utilizando cdigos para identificar as diferentes chamadas compartilhadas pelo mesmo canal. (TAURION, 2005, p. 86). Conforme comenta Carneiro (2004), GSM, apesar de, no Brasil, ser vendida como "grande novidade", essa tecnologia anterior ao CDMA (e tambm ao TDMA). Mas bom lembrar que em momento algum isso significa que o GSM seja inferior ou mais atrasado que o CDMA. A facilidade de roaming e a dificuldade de fraudes representam duas vantagens dessa tecnologia. a tecnologia mais usada, com 73% do mercado mundial e na Europa o seu ponto global mais forte. 4.2. Redes sem Fio Em um nvel mais alto, mais prximo dos nossos aparelhos e suas caractersticas prprias, as redes sem fio suportadas variam de acordo com o dispositivo utilizado. Hoje os dispositivos mveis tem capacidade de utilizar uma ampla gama dessas tecnologias como WIFI e Bluetooth que fazem uma diferena mais direta e perceptvel ao usurio no momento em que a praticidade o objetivo principal.
Atualmente, os principais padres de redes sem fio so as tecnologias Bluetooth (para pico-redes), WiFi (padro IEEE 802.11), para redes locais sem fio (WLANs) e WiMax (padro IEEE 802.16), para redes de longa distncia. (JOHNSON, 2007, p.22).

4.2.1 Bluetooth
Bluetooth uma tecnologia para conexo sem fio (wireless) a curta distncia de dispositivos como celulares, palm tops, fones de ouvido, microfones, computadores, teclados, etc. A tecnologia desenvolvida inicialmente pela Ericsson (1994) com o objetivo de substituir os cabos que conectavam estes dispositivos ganhou o suporte da Intel, IBM, Toshiba, Nokia, Lucent, Motorola entre outras empresas que vieram a formar o Bluetooth Special Interest Group (SIG). Um Rei da

40 Dinamarca Harald Blatand (Bluetooth em ingls) serviu de inspirao para o nome pois simbolizava a unio de diferentes grupos de pessoas. (TUDE, 2009, p.1).

Essa tecnologia transmisso de dados entre dispositivos suportados em uma custa distncia e uma das grandes inovaes que fazem parte de quase todos dispositivos mveis e em muitos outros tipos de dispositivos. Um modo fcil de transferir informaes que estabelece uma conexo ponto a ponto sem necessidade de intermedirios. Segundo Tude (2009), o Bluetooth poderia ser comparado a um USB wireless onde um dispositivo mestre (PC no caso do USB) se comunica com seus perifricos. A diferena que no Bluetooth qualquer dispositivo pode assumir o papel de mestre e montar a sua rede de perifricos denominada de piconet.. Figura 6 - Representao de rede Piconet via Bluetooth

Fonte: Tude (2009)

41

4.2.2 WiFi
Uma Wireless LAN (WLAN) uma rede local sem fio padronizada pelo IEEE 802.11. conhecida tambm pelo nome de Wi-Fi, abreviatura de wireless fidelity (fidelidade sem fios) e marca registrada pertencente Wireless Ethernet Compatibility Alliance (WECA). (TELECO, 2011). O padro IEEE surgiu em 1997, que veio para padronizar as conexes e regulamentar o uso de freqncias para transmisso de dados. A sigla IEEE significa Institute of Electrical and Electronics Engineers. Esse instituto instaurou um comit para padronizar a conectividade sem fio em 1990, alm de ser considerada a maior organizao profissional do mundo de engenheiros eletrotcnicos e eletrnicos. (SILVA; SOARES, 2009, p.4).

Essa uma rede sem fio abrangente e bastante utilizada por dispositivos mveis e computadores pessoais (desktops). Segundo SILVA e SOARES (2009), como o sinal de acesso aberto, quem estiver no raio de alcance conseguir acessar sem problemas a sua rede. Por esse motivo, quando se configura uma rede com essa caracterstica, deve-se utilizar o servio de criptografia de dados, deste modo, mesmo que outros usurios consigam captar o sinal, no conseguiro conectar-se rede sem a chave de decriptografia. Atravs desse tipo de rede sem fio possvel, alm de outras funcionalidades, compartilhar a internet de um ponto de origem para todos a quem estiverem conectados. O ponto de origem pode ser roteadores, pontos de acesso e at mesmo os prprios dispositivos que tambm utilizam os recursos da rede. O sucesso do WiFi tambm se deve a grande quantidade de pontos de acesso pblicos e a facilidade com que os aparelhos se conectam a mesma, tornando a rede, e na maioria das vezes, a internet, acessvel para todos atravs de um modo prtico.

4.2.3 WiMax WIMAX uma tecnologia wireless desenvolvida para oferecer acesso banda larga a distncias tpicas de 6 a 9 Km. (TELECO, 2008) Esse tipo de rede uma especificao criada para atender um espao maior e uma elevada demanda de usurios em relao s redes sem fio convencionais.

42 A exemplo do que ocorre no celular o WIMAX implantado em clulas. Da estao base possvel a transmisso para uma estao terminal que fornece acesso a uma rede local (WiFi por exemplo) ou diretamente at os dispositivos dos usurios. (TELECO, 2008).

A imagem a seguir apresenta uma configurao simples da especificao. Figura 7 - Representao de rede WiMAX

Fonte: Teleco (2008)


Uma das principais aplicaes do WIMAX a oferta de acessos banda larga a Internet, como alternativa ao ADSL. Ele foi desenvolvido visando aplicaes fixas, nmades, portteis e mveis. (TELECO, 2008).

43

5. TECNOLOGIA E MODELAGEM O cenrio de aplicativos mveis tem expandido seu horizonte de possibilidades de uma forma rpida e eficaz. A cada dia que passa novos problemas nascem e novas solues so encontradas para resolv-los. Essas solues muitas vezes ultrapassam a fronteira da plataforma mvel do usurio final e fazem acesso a internet e aplicaes que l se encontram. A integrao a chave e uma boa arquitetura distribuda o caminho para o sucesso. De acordo com KAR e VERBRAECK (2007, p.4, traduo nossa), um sistema de servio mvel um grupo de componentes que trabalham juntos para entregar um conjunto coerente de atividades de natureza intangvel que agregam valor para um usurio mvel usando uma rede mvel. Para que todos esses componentes trabalhem de uma forma harmoniosa e organizada em um cenrio crtico de demandas, muitas tecnologias podem ser utilizadas. Esse captulo apresenta algumas das tecnologias que podem ser integradas e aproveitadas em um sistema distribudo onde o produto para o usurio final a aplicao mvel.

44

5.1. Java Enterprise Edition Para o desenvolvimento dessas grandes aplicaes existe uma linguagem em ascenso que, alm de muitas outras vantagens, estvel e Open Source. Java, diferentemente de outras linguagens de programao uma tecnologia multiplataforma, ou seja, o aplicativo poder ser executado com o mesmo cdigo em plataformas diferentes. Essa vantagem decorrente da ao da Java Virtual Machine (JVM), uma mquina virtual que converte os bytecodes em cdigo executvel de mquina. Partindo para a utilizao da linguagem Java para ambiente web, o Java Enterprise Edition (JEE) supre muitas necessidades de aplicaes empresariais. O controle e segurana de transaes, suporte grande quantidade de requisies simultneas, necessidade de comunicao eficiente entre sistemas heterogneos, auditoria, fila de requisies e muitos outros fatores de arquitetura se tornaram necessidades bsicas para Sistemas desse porte. O Servidor de aplicao, que ir executar a aplicao, quem gerencia esses fatores utilizando a especificao JEE. Em um servidor de aplicao, componentes da web e de negcios existem dentro de containers e interagem com a infraestrutura Java EE atravs de interfaces bem definidas. (MUKHAR; ZELENAK, 2006, p. 11, traduo nossa) Para atender essas demandas, o JEE surgiu como um conjunto de especificaes para organizar e padronizar as arquiteturas que utilizam linguagem Java.
Java EE um conjunto de especificaes para APIs, uma arquitetura de computao distribuda, e definies para embalagem de componentes distribuveis para implantao. uma coleo de componentes padronizados, containers e servios para a criao e implantao de aplicativos distribudos dentro de uma arquitetura de computao distribuda bem definida. (MUKHAR; ZELENAK, 2006, p. 2, traduo nossa).

Para a utilizao de uma arquitetura que aplica conceitos de Aplicaes distribudas e JEE preciso ter uma estrutura completa e organizada de acordo com os requisitos da aplicao. Segundo MUKHAR e ZELENAK (2006, traduo nossa), como o prprio nome indica, Java EE dirigido a sistemas em larga escala de negcios. Softwares que funcionam neste nvel no so executados em um nico PC, pois requerem

45

significativamente maior poder de computao e de taxa de transferncia do que isso. Por este motivo, o software precisa ser dividido em mdulos funcionais e implantado nas plataformas de hardware adequadas. Essa a essncia da computao distribuda..

5.1.1 N-Tier Outro ponto importante pertencente a arquitetura de uma aplicao distribuda empresarial a utilizao do modelo N-Tier. Nesse modelo de construo o JEE se destaca com a facilidade de implementao dos mdulos do Sistema.
A arquitetura Java EE baseada na noo de N-Tier. Java EE torna muito fcil a construo de aplicaes robustas e industriais baseadas em duas, trs ou mais camadas de aplicao, e fornece todo o encanamento e fiao para tornar isso possvel. (MUKHAR; ZELENAK, 2006, p. 8, traduo nossa).

Figura 8 - Exemplo de Aplicao N-Tier

Fonte: Mukhar e Zelenak (2006)

46

Segundo MUKHAR e ZELENAK (2006, traduo nossa), neste modelo, toda a lgica de negcios extrada da aplicao em execuo no desktop [ou cliente]. A aplicao no desktop responsvel por apresentar a interface de usurio para o usurio final e para a comunicao com a camada de lgica de negcios. J no mais responsvel pelo cumprimento das regras de negcio ou acessar bancos de dados. Seu trabalho apenas como a camada de apresentao. No caso desse trabalho, a primeira camada, User Interface Logic, representada na imagem, ser a lgica de interface do usurio que atuar no cliente, o aplicativo mvel instalado no dispositivo do usurio.

47

5.2. Google Maps API Um dos servios que vem se tornando um grande atrativo para a utilizao em dispositivos mveis atualmente, o Google Maps que permite visualizao, busca e identificao de lugares de interesse na forma de um mapa.
Na Web de hoje, solues de mapeamento so um ingrediente natural. Ns as usamos para ver a localizao das coisas, para procurar a posio de um endereo, para obter instrues de direo, e fazer inmeras outras coisas. A maioria das informaes tem uma localizao, e se algo tem uma localizao, pode ser exibidas em um mapa. (SVENNERBERG, 2010, p.1, traduo nossa).

As solues de mapeamento so comuns nas aplicaes de hoje, qualquer dado geogrfico usado para qualquer finalidade, pode ser demonstrado graficamente no mapa para que seu software seja mais interativo.
Uma srie de novas ferramentas de visualizao geoespacial, dos principais jogadores na indstria da Internet, recentemente apareceu em cena e esto tomando o mundo geoespacial. Google, Yahoo, Microsoft, Amazon tem todas as ferramentas de mapeamento baseadas na web lanadas no passado recente, e coletivamente esses novos jogadores tm levantado a barra para o setor de mapeamento na Internet. Apesar de suas capacidades funcionais no fornecerem qualquer coisa que ns ainda no vimos em ofertas de fornecedores de GIS tradicionais na internet, sua emergncia tem sido significativa na medida em que conseguiram captar um pblico mais amplo. Google, em particular, emergiu como o lder desse bloco com o seu recm-lanado produto Google Maps, que fornece uma habilidosa, interface visual altamente responsiva construda usando tecnologias AJAX junto com ruas detalhadas e dados de imagens areas, e uma API aberta que permite a personalizao do mapa de sada, incluindo a capacidade de adicionar dados de aplicaes especficas no mapa. (PIMPLER, 2006, p3, traduo nossa).

O lanamento dessa API revolucionou e terceirizou as funcionalidades de triangularizao e geolocalizao dos softwares, e facilitou muito a integrao com esses componentes. Imagens areas e dados de ruas esto includos com o Google Maps, portanto, eliminando a necessidade de obter e gerenciar esses grandes conjuntos de dados. (PIMPLER, 2006, p.3, traduo nossa)

48

As tarefas difceis de coleta e organizao dessas informaes geogrficas ficaram sob responsabilidade do Google e o desenvolvedor somente se preocupa nas regras de utilizao em mais alto nvel para aproveitar os servios. Problemas de estrutura e desempenho foram e ainda esto sendo resolvidos e melhorados pela Google. Um ponto j alcanado na verso 3 da API foi a mudana para processamento assncrono.
A nova API assncrona por natureza, que lhe permite ser modularizada. [...] A API velha precisava carregar grandes partes da API antes de exibir um mapa simples, at mesmo partes da API que no foram utilizados. A nova API, sendo modularizada, s precisa carregar as peas necessrias antes de inicializar o mapa. Portanto, o desempenho percebido muito melhor, em outras palavras, o mapa mostra-se na pgina web muito mais rpido. (SVENNERBERG, 2010, p.8, traduo nossa).

Porm, as aplicaes que faziam uso dessa API, teria que ter capacidade de permitir as tecnologias de AJAX e JavaScript, e somente aplicaes que rode em um navegador teriam essa vantagem. Logo surgiu a necessidade de sua utilizao para outros tipos de plataformas, ento foi apresentada uma soluo, a API Google Maps para Dispositivos Mveis.
especificamente adaptado para funcionar bem em dispositivos mveis avanados como o iPhone e telefones mveis usando o sistema operacional Android. A criao de mapas para esses dispositivos feito da mesma maneira de browsers de desktops, mas como eles tm telas menores e tm outras maneiras de interagir com os itens na tela, como o gesto de zoom-to-pinch no iPhone, existem alguns consideraes que precisam ser feitas. (SVENNERBERG, 2010, p.43, traduo nossa).

49

5.3. Web Services SOAP H um momento no desenvolvimento de uma aplicao distribuda de dimenso empresarial em que surge a necessidade eminente de comunicaes entre sistemas externos e ocasionalmente distintos, casos onde h interesse de acesso e entrega pela internet de uma informao processada. Segundo Rubin (2002, p.3, traduo nossa) na computao distribuda, os mdulos do programa podem existir em diferentes processos na mesma mquina ou em mquinas diferentes, e essa uma considerao obrigatria no momento de arquitetar novas solues. Algumas tcnicas, arquiteturas e tecnologias como Common Object Request Broker Architecture (CORBA), Remote Method Invocation (RMI) e Sockets so exemplos, com funcionamentos diferentes para alcanar o objetivo dessa comunicao. Rubin (2002, p5, traduo nossa) explica que o RMI, permite que para ambos os locais desse modelo, possvel utilizar modos de chamadas a mtodos orientados a objetos, assumindo que a linguagem Java utilizada tanto no cliente como no mtodo chamado.
RMI uma API simples, porque sabendo que ambos os lados suportam a mesma linguagem e arquitetura de mquina, faz com que o problema de chamada remota seja mais fcil para resolver. (RUBIN, 2002, p.7, traduo nossa).

No caso do RMI, o problema que as duas plataformas que desejam estabelecer essa comunicao necessitam estar na linguagem Java, ao contrrio do famoso mtodo CORBA, que possui maior capacidade de heterogeneidade.
CORBA um padro de indstria para permitir chamadas e retornos de mtodos remotos, mas ao contrrio do RMI, pode ser usado quando o cliente e o mtodo chamado usarem diferentes linguagens de programao, incluindo o caso onde nenhum dos lados use a linguagem Java. (RUBIN, 2002, p.7, traduo nossa).

Porm outras necessidades chegaram ao mercado, e com a evoluo dessa rea nasceram os Web Services. Um web service uma interface de rede acessvel funcionalidade do aplicativo, construdo utilizando tecnologias padres da Internet (SNELL, 2001, p.6, traduo nossa)

50

Segundo Snell (2001, p.6, traduo nossa), um servio web uma interface posicionada entre o cdigo da aplicao e o utilizador desse cdigo. Ele age como uma camada de abstrao, separando a plataforma dos detalhes, especficos da linguagem de programao, de como o cdigo da aplicao realmente invocado. Esta camada padronizada significa que qualquer linguagem que suporte o servio web pode acessar a funcionalidade da aplicao. Figura 9 - Web Services fornecem uma camada de abstrao entre o aplicativo cliente e o cdigo da aplicao

Fonte: Snell (2011)


Por causa da abstrao fornecida pelas interfaces baseadas em padres, no importa se os servios de aplicativos so escritos em Java e o navegador escrito em C + +, ou os servios de aplicativo sejam implantado em Unix enquanto o navegador implantado em Windows. Web Services permitem a interoperabilidade entre plataformas de uma maneira que faz com que a plataforma seja irrelevante. (SNELL, 2011, p.7, traduo nossa).

5.3.1 Pilha de Tecnologias dos Web Services A Arquitetura dos Web Services implementada a partir de cinco camadas de tecnologias.
O objetivo a modularizao total do ambiente de computao distribuda em vez de recriar as solues grandes e monolticas das mais tradicionais plataformas distribudas como Java, CORBA e COM. (SNELL, 2011, p.10, traduo nossa).

51

Figura 10 - Pilha de Tecnologias dos Web Services

Fonte: Snell (2011)

- Discovery (Descoberta) Essa a camada onde se descobre o Web Service adequado para determinada tarefa. Segundo Snell (2011, p.10), a camada Discovery fornece o mecanismo para buscar as descries de servios disponveis em uma arquitetura. Um dos mecanismos de descoberta mais amplamente reconhecido disponvel o projeto Universal Description, Discovery, and Integration (UDDI).
O projeto UDDI um esforo do setor para definir um registro localizvel de servios e suas descries para que os consumidores possam descobrir automaticamente os servios de que necessitam. (SNELL, 2011, p.93, traduo nossa).

UDDI um protocolo que especifica um mtodo de publicao e descoberta de Web Services disponveis, apesar de sua utilizao ser predominante, h uma alternativa para seu uso, a Web Services Inspection Language (WS-Inspection). Web Services Inspection Language (WS-Inspection), uma linguagem baseada em Extensible Markup Language (XML) que fornece um ndice de todos os servios de um determinado local da web. (SNELL, 2011, p.93, traduo nossa)

- Description (Descrio)

52 Quando um servio web implementado, deve-se tomar decises em todos os nveis para cada rede, transporte, embalagem e protocolos que vai suportar. A descrio desse servio representa as decises de tal forma que o consumidor pode entrar em contato e utilizar esse servio. [] O Web Service Description Language (WSDL) o padro para fornecer essas descries (SNELL, 2011, p.12, traduo nossa).

A WSDL uma linguagem para descrever os Web Services, como acess-los e as operaes que esto disponveis.
WSDL um formato XML para descrever servios de rede como um conjunto de terminais que operam em mensagens contendo algum documento ou procedimento orientado informaes. (W3C, 2001, traduo nossa). A Extensible Markup Language (XML) um formato baseado em texto simples para representar informaes estruturadas: documentos, dados, configuraes, livros, transaes, faturas e muito mais. derivado de um formato padro mais antigo chamado SGML (ISO 8879), a fim de ser mais apropriado para o uso da Web. (W3C, 2011, traduo nossa).

- Packaging (Empacotamento)
Para os dados dos aplicativo poderem ser movidos em torno da rede, a camada de transporte deve empacot-los em um formato que todas as partes possam entender (outros termos para este processo so "serializao" e "triagem"). Este engloba a escolha de tipos de dados compreendida, a codificao de valores, e assim por diante. (SNELL, 2011, p.12, traduo nossa).

Essa camada representa as tecnologias utilizadas para o empacotamento das informaes que iro ser transferidas, XML tem sido amplamente adotado como base para os protocolos de empacotamento de mensagens. Simple Object Access Protocol (SOAP), ou em portugus, Protocolo Simples de Acesso a Objetos, a estrutura de dados padro baseada em XML para o empacotamento das mensagens a serem permutadas, esse empacotamento chamado de envelope SOAP. SOAP se encontra na pilha de tecnologia dos Web Services como um protocolo de embalagens padronizadas para as mensagens compartilhadas por aplicaes. (SNELL, 2011, p.15, traduo nossa)

53

- Transport (Transporte) Essa camada representa a forma como as mensagens vo ser transportadas de um ponto a outro. A camada de transporte inclui as diversas tecnologias que permitem a comunicao direta de aplicao para aplicao em cima da camada de rede. (SNELL, 2011, p.13, traduo nossa) A utilizao de um protocolo depende das caractersticas necessrias para uma determinada comunicao, porm o protocolo padro para Web Services SOAP o Hypertext Transfer Protocol (HTTP), ou em portugus, Protocolo de Transferncia de Hipertexto.
O Hypertext Transfer Protocol (HTTP) um protocolo de nvel de aplicao para sistemas distribudos, colaborativos, sistemas de informao hipermdia [...] O protocolo HTTP um protocolo de solicitao/resposta. (W3C, 1999, traduo nossa). A escolha do protocolo de transporte baseada em grande parte, as necessidades de comunicao do web service que est sendo implementado. HTTP, por exemplo, fornece o suporte de firewall mais onipresentes, mas no fornece suporte para comunicao assncrona. (SNELL, 2011, p.15, traduo nossa).

- Network (Rede) Network a camada de elementos bsicos para a comunicao, permite o encaminhamento correto e a montagem para sua recepo. Ele fornece a comunicao crtica bsica, endereamento e capacidades de roteamento. (SNELL, 2011, p.13).

5.3.2 SOAP - Simple Object Access Protocol SOAP se tornou o protocolo padro do World Wide Web Consortium (W3C), baseado em XML, para troca de dados entre dois pontos via Web Service. A especificao define nada mais do que um envelope com base em XML simples para a informao que est sendo transferida, e um conjunto de regras para a traduo da aplicao e tipos especficos de tipos de dados em representaes

54

XML. O design SOAP torna til para uma grande variedade de mensagens de aplicativos e padres de integrao. Isto, na maioria das vezes, contribui para a sua crescente popularidade. (SNELL, 2011, p.15, traduo nossa). Segundo Snell (2011, p.13, traduo nossa), uma mensagem SOAP consiste em um envelope contendo um cabealho opcional e um corpo necessrio [...] O cabealho contm blocos de informaes relevantes para a forma como a mensagem ser processada. Isto inclui o roteamento e entrega de definies, afirmaes de autenticao ou autorizao, e contextos transao. O corpo contm a mensagem real a ser entregue e processada. Qualquer coisa que pode ser expressa em sintaxe XML pode ir no corpo de uma mensagem. Figura 11 - Estrutura de um Envelope SOAP

Fonte: Snell (2011) O Envelope SOAP uma forma eficaz de estruturao de mensagens e utilizada na maioria dos casos de implementao de um Web Service para uma aplicao distribuda.

55

6. METODOLOGIA

O tipo da pesquisa foi exploratria, na qual foi necessrio um levantamento bibliogrfico completo, identificando fundamentaes tericas que foram utilizadas para que o objetivo fosse alcanado. Essa especificao foi criada para contribuir no esclarecimento de como aplicaes mveis podem interagir com aplicaes web atravs de uma arquitetura robusta. A especificao apresentada nesse trabalho teve como base uma pesquisa bibliogrfica em livros, artigos e sites confiveis sobre as mais eficientes tecnologias e conceitos que beneficiariam a criao desse software em especfico, tambm tiveram como base outros aplicativos para dispositivos mveis com arquiteturas prximas e que suprissem algumas das mesmas necessidades dos fatores essenciais definidos.

56

57

7. DESENVOLVIMENTO DA SOLUO

O desenvolvimento do projeto arquitetural relatado nesse trabalho decorrente de uma soluo tecnolgica com o objetivo de trazer informaes teis e facilidade de localizao para usurios que acompanharo a Copa do Mundo 2014 no Brasil. Levando em conta alguns fatores essenciais para a elaborao do ponto de vista tcnico, essa parte do trabalho foi dividida em alguns tpicos essenciais que sero detalhados.

7.1. Fatores Essenciais (Funcionamento e Usabilidade)

- Praticidade Para o fator principal tratado nesse trabalho, a arquitetura proposta far uso das mais atuais tecnologias mveis, onde o cliente final ser o utilizador de qualquer dispositivo mvel da plataforma Android. Alguns dos motivos para a escolha dessa plataforma como base de desenvolvimento esto abaixo: - Conceito Open Source, permitindo que qualquer pessoa possa contribuir para seu desenvolvimento e aperfeioamento. - timas APIs para desenvolvimento que utilizam linguagem Java (multiplataforma). - Mercado de Aplicativos livre de restries, tornando os desenvolvedores mais autnomos e livres para criar e vender aplicativos e customiz-los sem necessidade de pr-aprovao. - Independncia de Hardware, na plataforma Android os dispositivos podem ser de fabricantes diferentes, tornando o Sistema mais acessvel e com maior nmero de opes para oramentos diferentes. - Integrao nativa com servios da Goggle.

58

- O crescimento exponencial de vendas e popularidade da plataforma

- Suporte grande quantidade de conexes e requisies simultneas Considerando o cenrio discorrido na introduo, os usurios desse software so de nvel internacional, isso exige uma estrutura preparada para milhares de conexes e requisies simultneas sem gerar atrasos ou falha na comunicao. Em resposta para essa demanda esse projeto utilizar de tecnologias da especificao JEE, mais especificamente dos componentes para Web Services em Java, Java API for XML Web Services (JAXWS), para comunicao entre cliente e servidor e Enterprise Java Beans (EJB), para o desenvolvimento baseado em solues distribudas que fornecer suporte transacional e facilidade para tratar com esse elevado nmero de requisies.

- Informaes atualizadas constantemente de fontes confiveis de informaes sobre o evento Para a atualizao da base de informaes ser necessria uma comunicao segura e constante com servios de informaes confiveis da Copa do Mundo, essa comunicao ser projetada por um Web Crawler, utilizando a linguagem Java.

59

7.2. Casos de Uso Sob uma viso ampla, as funcionalidades do sistema esto representadas pelo diagrama de caso de uso a seguir:

Figura 12 - Diagrama de Caso de Uso da Aplicao

Fonte: Prprio Autor (2011)

- Ver Tabela de Jogos Essa funcionalidade permite o usurio visualizar a Tabela de Jogos da Copa do Mundo, incluindo data, horrio e resultado, caso o jogo j tenha sido realizado.

- Ver Estatstica de Jogos

60

Essa funcionalidade, acessada atravs da Tabela de Jogos, permite a visualizao das estatsticas do jogo selecionado: Faltas cometidas, quantidade de passos errados, assistncias, escanteios, impedimentos, finalizaes e roubadas de bola de cada seleo durante a partida.

- Ver Classificao Essa funcionalidade permite ao usurio visualizar a classificao geral da Copa do mundo, incluindo quantidade de jogos, vitrias, empates, derrotas, gols pr, gols contra, saldo de gols e pontos de todas as selees participantes.

- Traar Rota para o Estdio Essa funcionalidade, acessada atravs da tela de Estatsticas de Jogos, apresenta para o usurio o melhor trajeto at o estdio onde ser o jogo selecionado partindo do local onde o dispositivo cliente se encontra. Essa funo apresentada em um mapa, que atualizado conforme o usurio se move, como em um Global Positioning System (GPS).

- Procurar Estabelecimentos teis Essa funcionalidade, tambm acessada atravs da tela de Estatstica de Jogos, apresenta para o usurio estabelecimentos teis prximos ao estdio onde ser jogo selecionado, esses so representados no mapa, incluindo informaes bsicas: Endereo, tipo do estabelecimento e nome.

61

7.3. Arquitetura da Implementao Organizao de Componentes

A organizao dos componentes da arquitetura est representada pelo Diagrama de Componentes a seguir: Figura 13 - Diagrama de Componentes da Aplicao

Fonte: Prprio Autor (2011) O Provedor de Informaes deve ser um portal confivel de informaes oficiais da Copa do Mundo, pois a fonte onde ser extrado via Web Crawler todos os dados apresentados no sistema. O Servidor de Aplicao ir hospedar a aplicao servidora, que constantemente ir executar uma rotina que far a busca dessas informaes, e atualizar a base de dados que ficar em um servidor externo dedicado. Tambm dever prover os servios que disponibilizaro essas informaes, localizadas no banco de dados para o dispositivo mvel.

62

O Servidor de Banco de Dados ir hospedar o banco de dados da aplicao, que de uma forma consolidada e organizada ir armazenar todos os dados utilizados no software. O Dispositivo Mvel executar aplicao cliente, que ir consumir os servios da aplicao servidora e apresentar as informaes para o usurio final.

63

7.4. Fluxo de Atividades

O Fluxo das atividades de cada funcionalidade esperada est representado pelos Diagramas de Atividades a seguir:

- Funcionalidade Visualizar Classificao

Figura 14 - Diagrama de Atividades - Visualizar Classificao

Fonte: Prprio Autor (2011)

64

- Funcionalidade Visualizar Tabela de Jogos

Figura 15 - Diagrama de Atividades - Visualizar Tabela de Jogos

Fonte: Prprio Autor (2011)

65

- Funcionalidade Visualizar Estatsticas de Jogos

Figura 16 - Diagrama de Atividades - Visualizar Estatsticas de Jogos

Fonte: Prprio Autor (2011)

66

- Funcionalidade Traar Rota para o Estdio

Figura 17 - Diagrama de Atividades - Traar Rota para o Estdio

Fonte: Prprio Autor (2011)

67

- Funcionalidade Procurar Estabelecimentos teis

Figura 18 - Diagrama de Atividades - Procurar Estabelecimentos teis

Fonte: Prprio Autor (2011)

68

7.5. Modelagem da Base de Dados

A Base de Dados um importante item nessa especificao, e sua modelagem dever atender requisitos para consolidar os dados extrados de uma forma eficaz e organizada. O Diagrama DER (Entidade-Relacionamento) da Base est representado a seguir: Figura 19 - Diagrama de Entidade-Relacionamento da Base de Dados

Fonte: Prprio Autor (2011)

69

7.6. Camada de Integrao Extrao de Informao

A extrao das informaes que sero utilizadas como fonte de dados do software uma tarefa essencial para o sucesso e confiabilidade do aplicativo. Algumas tcnicas foram estudadas para que fosse escolhida a mais adequada estrutura que se encaixe na especificao proposta nesse trabalho. Feed Rss foi uma delas, que funcionaria como um leitor que desserializa notcias em formato XML que so atualizadas automaticamente por fontes confiveis da Copa do Mundo. Porm essa opo no foi escolhida pela falta de feeds com todas as informaes necessrias para o suprimento de todas as funcionalidades da aplicao. O consumo de Web Services tambm foi estudado como um forte candidato a extrator de dados para o software, pois uma forma eficaz que se encaixaria bem nessa arquitetura, principalmente pela praticidade que a linguagem Java oferece para essa utilidade, porm foi descartado pela falta de servios disponveis confiveis atualizados constantemente sobre a Copa do Mundo. Por essa razo, a tcnica escolhida para a especificao foi a do Web Crawler, feito em Java, que ir fazer a leitura e extrao em um provedor confivel de informaes. O Web Crawler utilizado ser uma rotina que constantemente ser acionada para fazer a leitura de cdigo HTML gerado por uma pgina e tratar esse cdigo aproveitando as informaes vlidas para popular a base de dados. A linguagem Java deve ser utilizada, para efetuar a requisio e tratamento da resposta ser necessrio utilizar a API nativa da linguagem. O exemplo a seguir indica como dever ser basicamente a estrutura.

70

Figura 20 - Exemplo de Web Crawler em Java

Fonte: Prprio Autor (2011)

Para que a rotina seja agendada e executada constantemente dever ser utilizada a biblioteca Quartz, que corretamente configurada, dever acionar o mtodo em um intervalo de 5 segundos, tempo necessrio para que dados desatualizados no afetem o usurio final. Ser necessria uma validao e gerao de log em cada passo da rotina, para registrar todas as gravaes dos dados na base e evitar que informaes sujas e mal filtradas gerem inconsistncia no banco de dados. A gerao do log tambm

71

ser importante para a identificao de possveis mudanas no template original do site que o mtodo ir realizar a requisio, pois com essas mudanas, o tratamento da requisio e filtragem dos dados tambm dever ser alterado. Tratando-se de um software que ser acessado por uma grande quantidade de usurios, a confiabilidade e disponibilidade deve ser alta, por isso, tambm ser necessrio implementar um chaveamento para que a extrao de informaes no seja feita atravs de apenas um site provedor, pois podem ocorrer alguns problemas durante a rotina, tais como: - O provedor pode identificar uma grande quantidade de requisies por um mesmo endereo de origem, no caso o endereo do servidor onde a rotina est sendo executada, e assim, bloquear temporariamente o acesso. - O template do provedor pode ser modificado constantemente, ocorrendo assim falhas no tratamento das requisies e na filtragem dos dados. - O provedor pode ficar fora do ar.

72

7.7. O Servidor de Aplicao (Tecnologias e Organizao)

O Servidor de Aplicao hospedar a aplicao web, que por sua vez, ser responsvel por duas tarefas essenciais. A primeira tarefa a execuo agendada da rotina de extrao de dados da Copa do Mundo e gravao dessas informaes j organizadas na base de dados. A segunda tarefa disponibilizar os servios necessrios para a comunicao com a aplicao mvel, e que suprir as funcionalidades do software cliente. O Servidor que atender a essa arquitetura de uma forma eficaz e confivel ser o JBOSS, pois alm de outros benefcios de Controle Transacional e Inverso de Controle (Inversion of Control - IOC), oferece servios de auxilio a criao dos Web Services. Esse captulo abordar a arquitetura da tarefa de disponibilizao dos Web Services e a forma de processamento dessas informaes utilizando EJB. Sero necessrios trs projetos implementar nessa etapa: o projeto do Web Crawler que j foi abordado pelo captulo anterior, o projeto onde sero disponibilizados os Web Services e o projeto EJB de servios internos. Quando finalizados, os trs projetos tero que ser agrupados em um projeto Enterprise Archive (EAR) para a publicao no servidor. A seguir a representao dos projetos na IDE: Figura 21 - Representao Grfica dos Projetos em uma IDE

Fonte: Prprio Autor (2011)

73

7.7.1. Projeto EJB O primeiro projeto ser responsvel por disponibilizar servios internos, ir se comunicar com o banco de dados de forma padronizada, processar as informaes e servir mtodos prontos a serem consumidos por rotinas internas ao servidor. EJB um importante elemento da plataforma JEE e ser o ator principal desse projeto. EJBs so componentes que so executados no servidor e oferecem diversos recursos que aplicaes empresariais de grande porte necessitam. Para essa etapa ser necessrio utilizao de um determinado tipo de EJB chamado Stateless Session Bean. Os Stateless Session Beans so objetos transientes gerenciados pelo Servidor de Aplicao, no caso, o JBOSS. Eles serviro como servios, sero objetos alocados em um pool (reserva) que servir as requisies, esse tipo de EJB ser utilizado, pois no caso dessa arquitetura, no ser necessrio salvar o estado dos objetos utilizados. Esses objetos atendem diversos requisitos de grandes aplicaes, como controle transacional, grande facilidade para injeo de dependncia e prover alto desempenho no gerenciamento. Nesse projeto em especfico, esses componentes atendero o principal objetivo desse projeto: permitir uma grande quantidade de requisies simultneas de uma maneira inteligente, e a melhor parte, ser feito pelo servidor de aplicao. Conforme esse servio for recebendo requisies, o servidor criar novas instncias do mesmo de acordo com a necessidade, para poder atender a demanda. Conforme a quantidade de requisies diminui, o servidor se encarregar de eliminar as instncias desses objetos que no esto sendo mais utilizadas, funo caracterstica desse tipo de Session Bean. Os componentes a serem criados como Stateless Session Beans devero atender os seguintes servios: - Consultar Classificao; - Consultar a Tabela de Jogos com Informaes Bsicas; - Consultar Estatsticas de um determinado Jogo; - Consultar Local do Estdio; e

74

- Consultar Estabelecimentos Prximos de um determinado estdio.

7.7.2. Projeto Web Services Esse projeto disponibilizar os servios externos para consumo da aplicao mvel, fazendo uso interno dos mtodos j implementados do projeto EJB. O projeto EJB dever ser includo no classpath da aplicao atual para que os mtodos estejam disponveis para uso. Os Web Services sero criados a partir do mtodo bottom-up: uma classe com mtodos pblicos implementados que consumam os servios do projeto EJB e a utilizao de uma ferramenta do servidor de aplicao, WSGEN, para a gerao dos artefatos. WSGEN uma ferramenta que constri os artefatos necessrios para a o funcionamento dos servios na web, pode ser executada por linha de comando ou pela ferramenta ANT que automatiza tarefas por meio de instrues em XML. Aps a criao dos artefatos, ser necessria apenas a incluso dessas classes no projeto para que seja finalizado.

7.7.3. Publicao do Projeto EAR Partindo do projeto EAR finalizado que agrupa os 3 outros projetos, ele dever ser publicado no servidor JBOSS. Ao realizar a publicao o WSDL ser gerado automaticamente e poder ser acessado atravs do Uniform Resource Locator (URL) do web service, adicionando os caracteres ?WSDL ao final do endereo, esse ser o produto final que ser consumido pela aplicao mvel.

75

7.8. O Cliente Dispositivo Mvel (Tecnologias e Organizao) A Aplicao Mvel far o papel de front-end do sistema, pois apenas consumir os Web Services j existentes disponveis na aplicao web. Para que todas as funcionalidades sejam implementadas, trs passos essenciais devero ser seguidos: a construo dos consumidores dos Web Services, a utilizao da API do Google Maps para auxiliar nas funcionalidades que necessitam de mapa e a apresentao de todas as informaes de uma maneira amigvel e com boa usabilidade. Ser necessria a criao de um projeto Android em uma IDE, de preferncia Eclipse, pela recomendao da prpria Google. Para construir os clientes dos Web Services, a partir de um projeto Android, ser necessrio o uso da biblioteca KSOAP que auxilia o consumo de Web Services em um ambiente Java para dispositivos mveis, como Java Micro Edition (JME) e Android. O exemplo a seguir representa um mtodo que consome um web service utilizando a biblioteca KSOAP:

76

Figura 22 - Exemplo de Consumidor de um Web Service utilizando KSOAP

Fonte: Prprio Autor (2011) O parmetro url do mtodo consumidor dever ser o endereo WSDL do web service desejado, os parmetros soapAction e namespace estaro disponveis ao acessar o WSDL dos Web Services, gerado pelo Servidor de Aplicao, e o parmetro methodName ser o nome do mtodo remoto que deseja consumir. Caso na construo dos Web Services da aplicao web tenha sido usado como retorno de mtodo algum objeto complexo, esse mesmo objeto dever ser criado no projeto da aplicao mvel e o retorno do web service necessitar ser desserializado e convertido para esse objeto complexo criado.

77

Aps implementar a estrutura do consumo de todos os Web Services, ser necessrio criar uma estrutura capaz de economizar requisies, para que s execute uma chamada a um mtodo remoto quando for realmente necessrio. Uma requisio a um web service resulta em algum tempo gasto at o retorno e consumo de banda. Por isso, no desenvolvimento para dispositivos mveis, cuidados como esse devem ser tomados para que as aplicaes possam ser eficientes e ter o desempenho suficiente. Para as funcionalidades que dependem de representao no mapa, ser necessria a utilizao da API do Google Maps. Para a utilizao dessa API ser preciso a obteno de uma chave de utilizao, portando dever ser utilizada a ferramenta keytool do Java Development Kit (JDK) para obter a fingerprint e, em seguida, obter sua chave de utilizao no site de signup do Google Maps. Essa chave de utilizao ser necessria no arquivo de layout do mapa representado. Uma vez que os layouts estejam criados com a chave prpria, a API Java do Google Maps dever ser utilizada para construo dos locais, rotas e todas as utilidades referentes s funcionalidades da aplicao. A seguir, um exemplo de um arquivo XML de layout de um mapa utilizando a chave adquirida: Figura 23 - Exemplo de Layout XML para Android de um Mapa utilizando Google Maps API

Fonte: Prprio Autor (2011) importante ressaltar que, ao assinar a aplicao quando a mesma for finalizada, a chave de assinatura dever ser a mesma usada no momento da obteno do fingerprint para que a chave de utilizao do Google Maps API seja vlida. Uma vez construda essa estrutura, restar apenas criao das views da aplicao.

78

A apresentao grfica e usabilidade tambm so partes importantes para o sucesso do aplicativo, pois sero responsveis para que as informaes sejam apresentadas de uma forma interativa e objetiva ao usurio final, e consequentemente, atingir uma boa adequao do utilizador para com o software. Nessa etapa, essa apresentao deve ser disponibilizada em trs lnguas principais, para que o software atinja um pblico internacional, as lnguas devem ser: Portugus, Ingls e Espanhol. Essa disponibilizao do software em trs lnguas no altera o restante da arquitetura, pois apenas a parte visual da aplicao mvel ser dependente disso. Para facilitar a manuteno e tornar o cdigo mais limpo e simples, ter que ser construdo um mecanismo de alterao de linguagem de cada palavra do aplicativo. Para que isso acontea, no lugar de utilizar palavras fixas no layout implementado, dever ser utilizado referncias de acordo com a lngua escolhida pelo usurio, e essas referncias devero buscar o ndice correspondente em um arquivo de propriedades com as palavras de cada linguagem. Ao finalizar a aplicao mvel, o projeto inicial estar concludo e a rotina de testes, que anteceder a publicao, poder ser iniciada.

79

8. CONCLUSO Atravs desse trabalho foi possvel estudar possibilidades tecnolgicas, em uma arquitetura para plataformas mveis e web, identificando vantagens e desvantagens de cada uma. Esse trabalho tambm levou a um estudo mais aprofundado de Web Services e sua grande importncia nas aplicaes distribudas atuais. Tambm foi possvel identificar muitas funcionalidades do Sistema Operacional Android e os recursos de sua API, assim como da API do Google Maps para dispositivos mveis e detalhes da especificao JEE, alm da funo essencial de um Web Crawler em um software com base de dados com informaes que devem ser constantemente atualizadas. Como consequncia desse estudo, foi encontrada uma soluo tecnolgica vivel para suprir a necessidade principal apresentada nesse trabalho: Prover funcionalidades referentes Copa do Mundo em um dispositivo mvel com suporte a um elevado nmero de usurios simultneos. Partindo da contribuio desse trabalho, existem alguns caminhos que podem levar a avanos nesse estudo, tais como: implementao dessa especificao, desenvolvimento do software para outras plataformas mveis, desenvolvimento de softwares com arquiteturas similares para outros fins e a atualizao da arquitetura especificada utilizando tecnologias futuras que venham a dar novos benefcios de desempenho e funcionalidades.

80

81

9. REFERNCIAS BIBLIOGRFICAS ABLESON, W. Frank; SEN, Robi; KING, Chris. Android in Action. 2 ed. Manning Publications, 2011. ALONSO, Fernanda Leite. Tecnologia 3G: uma juno de todas as mdias. Minas Gerais. 2009 ANDROID, Developer. What is Android?. Disponvel em: < http://developer.android.com/guide/basics/what-is-android.html>. Acesso em 04 de Agosto de 2011. APPLE. iOS Technology Overview. 2010. Disponvel em <http://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPh oneOSTechOverview/iPhoneOSTechOverview.pdf>. Acesso em 10 de Outubro de 2011. BARRETO, Juliano; CAPUTO, Victor. A Era dos Tablets. Revista Exame INFO. 302 ed. So Paulo, Editora Abril, Abril 2011 CARNEIRO, Alessandra. Que tecnologia melhor: GSM ou CDMA? Disponvel em: <http://www.clubedohardware.com.br/artigos/104>. Acesso em 09 de Setembro de 2011. CAVALLINI, Ricardo; SOCHACZEWSKI, Alon; XAVIER, Lo. Mobilize. 1. ed. So Paulo, 2010. CNN, Money. Millennial Media: iOS gained on Android in March. Disponvel em: <http://tech.fortune.cnn.com/2011/04/14/millennial-media-ios-gained-on-android-inmarch>. Acesso em 30 de Setembro de 2011. GARTNER. Gartner Says 428 Million Mobile Communication Devices Sold Worldwide in First Quarter 2011, a 19 Percent Increase Year-on-Year. Disponvel em: <http://www.gartner.com/it/page.jsp?id=1689814>. Acesso em 30 de Setembro de 2011. JOHNSON, Thienne M. Java para Dispositivos Mveis. 1 ed. Editora Novatec., 2007 KAR, Els van de; VERBRAECK, Alexander. Designing Mobile Service Systems. IOS Press, 1 ed. 2007. KORNAK, Adam; TEUTLOFF, Jorn; WELIN-BERGER, Michael. Enterprise Guide to Gaining Business Value from Mobile Technologies. 1 ed. Wiley Publishing, Inc., 2004.

82

MALLICK, Martin. Mobile and Wireless Design Essentials. 1.ed. Indiana, Wiley Publishing, 2003. MORIMOTO, Carlos E. Smartphones, Guia Prtico. 1 ed. GDH Press e Sul Editores, 2009. ATTEWELL, Jill. Mobile Technologies and Learning. 1.ed. London, Learning and Skills Development Agency, 2005. MUKHAR, Kevin; ZELENAK, Chris. Beginning Java EE 5. Apress, 1 ed. 2006 OLHAR, Digital. Mercado de aplicativos mveis vai crescer 190% em 2011. Disponvel em: <http://olhardigital.uol.com.br/negocios/digital_news/noticias/mercado_de_aplicativos _moveis_vai_crescer_190_em_2011>. Acesso em 07 de Junho de 2011. PIMPLER, Eric, Google Maps API: The New World of Web Mapping. 2. ed. San Antonio, 2006. RICCIARDI, Alex. Brasil precisa investir R$ 804 bi em infraestrutura para 2014. Disponvel em: <http://www.panoramabrasil.com.br/brasil-precisa-investir-r$-804-biem-infraestrutura-para-2014-id64183.html>. Acesso em 20 de Maio de 2011. RUBIN, Brad, Google Java distributed objects: Using RMI and CORBA. 1. ed. San Antonio, 2002. Disponvel em < http://www.ibm.com/developerworks/java/tutorials/j-rmicorba/j-rmicorba-pdf.pdf>. Acesso em 12 de Novembro de 2011. SILVA, Anderson Porto; SOARES, Bruno Tarouco lvares. Wi-Fi e WiMAX I: Caractersticas do Wi-Fi Disponvel em: <http://www.teleco.com.br/tutoriais/tutorialww1>. Acesso em 06 de Setembro de 2011. SNELL, James, Programming Web Services with SOAP . 1. ed. O'Reilly, 2001 SVENNERBERG, Gabriel. Beginning Google Maps API 3. 1.ed. New York , Apress, 2010. TAURION, Cezar. Software Embarcado: A Nova Onda da Informtica. Brasport Livros e Multimedia Ltda., 1 ed. 2005. TELECO, Inteligncia em Telecomunicaes. Geraes de Sistemas Celulares Disponvel em: <http://www.teleco.com.br/tecnocel.asp>. Acesso em 09 de Setembro de 2011. ---------------------------------- WLAN/Wi-Fi. Disponvel em: <http://www.teleco.com.br/wifi.asp>. Acesso em 06 de Setembro de 2011. ---------------------------------- WiMAX. Disponvel em: < http://www.teleco.com.br/wimax.asp>. Acesso em 09 de Setembro de 2011.

83

TUDE, Eduardo. Bluetooth: O que ? Disponvel em: <http://www.teleco.com.br/tutoriais/tutorialblue>. Acesso em 06 de Setembro de 2011. TURISMO, Ministrio do. Copa do Mundo: quem ganha a populao. Disponvel em: <http://www.turismo.gov.br/turismo/noticias/todas_noticias/20100706.html>. Acesso em 30 de Maio de 2011. ---------------------------------- Brasil est entre os melhores para viajar em 2011. Disponvel em: <http://www.turismo.gov.br/turismo/noticias/todas_noticias/201012092.html>. Acesso em 30 de Maio de 2011. W3C, World Wide Web Consortium. Web Services Description Language (WSDL) 1.1. Disponvel em: < http://www.w3.org/TR/wsdl>. Acesso em 7 de Julho de 2011. ------------------------------------------------ Hypertext Transfer Protocol HTTP/1.1. Disponvel em: < http://www.w3.org/Protocols/rfc2616/rfc2616.html>. Acesso em 12 de Julho de 2011. ------------------------------------------------ XML Essentials. Disponvel em: <http://www.w3.org/standards/xml/core>. Acesso em 12 de Julho de 2011. ZHENG, Pei. NI, Lionel. Smart Phone and Next-Generation Mobile Computing. 1 ed. San Francisco, Morgan Kaufmann Publishers, 2006.

You might also like