TIMELINE WEB BROWSER E ARQUITETURA DE SOFTWARE PARA



Documentos relacionados
UNIVERSIDADE. Sistemas Distribuídos

Web Services. Autor: Rômulo Rosa Furtado

Web Services. (Introdução)

UFG - Instituto de Informática

3 Serviços na Web (Web services)

Serviços Web: Arquitetura

Introdução a Web Services

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Kassius Vargas Prestes

Integração de sistemas utilizando Web Services do tipo REST

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Serviços Web: Introdução

3 SCS: Sistema de Componentes de Software

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Programação Cliente em Sistemas Web

Sistemas Distribuídos

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Programando em PHP. Conceitos Básicos

SISTEMAS DISTRIBUIDOS

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Service Oriented Architecture (SOA)

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

SOA Introdução. SOA Visão Departamental das Organizações

ESTUDO DE CASO WINDOWS VISTA

18/04/2006 Micropagamento F2b Web Services Web rev 00

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

2 Conceitos relativos a Web services e sua composição

2 Diagrama de Caso de Uso

SOA na Prática Ricardo Limonta

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Integre pela Internet com os Web Services OpenEdge

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

5 Mecanismo de seleção de componentes

MVC e Camadas - Fragmental Bliki

Parte I. Demoiselle Mail

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Arquitetura Orientada a Serviço

REST. Caio Nakashima


Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Sistemas Distribuídos

Microsoft.NET. Desenvolvimento Baseado em Componentes

LINGUAGEM DE BANCO DE DADOS

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

1

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues UNIVEM - Prof. Elvis Fusco

Desenvolvendo para WEB

Agregador de feeds RSS para dispositivos móveis

Entendendo como funciona o NAT

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

UFG - Instituto de Informática

JXTA. Alessandro Vasconcelos Ferreira de Lima.

Curso de Aprendizado Industrial Desenvolvedor WEB

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Documento de Análise e Projeto VideoSystem

Eduardo Bezerra. Editora Campus/Elsevier

Fase 1: Engenharia de Produto

Desenvolvendo Websites com PHP

CAPÍTULO 2. Este capítulo tratará :

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

SISTEMAS DISTRIBUÍDOS

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

Usando Service Design Thinking para criar SOA Corporativo

SISTEMA GERENCIADOR DE BANCO DE DADOS

CRIAÇÃO DE SITES (AULA 1)

Padrões de Projeto WEB e o MVC

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

DESENVOLVIMENTO DE APLICATIVO MÓVEL PARA AUXÍLIO NA PREVENÇÃO DE TRAGÉDIAS EM DECORRÊNCIA DE ENCHENTES


ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Aplicação Prática de Lua para Web

Java para Desenvolvimento Web

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Manual do Painel Administrativo

INE Sistemas Distribuídos

Documento de Arquitetura

5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Sistemas Operacionais. Conceitos de um Sistema Operacional

Associação Carioca de Ensino Superior Centro Universitário Carioca

Transcrição:

UNIVERSIDADEFEDERALDEPERNAMBUCO GRADUAÇÃOEMCIÊNCIADACOMPUTAÇÃO CENTRODEINFORMÁTICA TIMELINEWEBBROWSEREARQUITETURADESOFTWAREPARA APLICAÇÕESWEB2.0 TRABALHODEGRADUAÇÃO Aluno:LivarCorreiadeOliveiraCavalcantiCunha(lcocc@cin.ufpe.br) Orientador:Prof.SilvioLemosMeira(srlm@cin.ufpe.br)

24deSetembrode2006 2

ASSINATURAS EsteTrabalhodeGraduaçãoéresultadodosesforçosdoalunoLivarCorreia deoliveiracavalcanticunha,sobaorientaçãodoprofessorsilviolemosmeira,sob otítulode TimelineWebBrowsereArquiteturaparaAplicaçõesWeb2.0.Todos abaixo estão de acordo com o conteúdo deste documento e os resultados deste TrabalhodeGraduação. LivarCorreiadeOliveiraCalvancantiCunha SilvioLemosMeira 3

Timeisonmyside.Yesitis! Timeisonmyside (RollingStones 12X5) 4

Agradecimentos Estetrabalhomarcaofimdemaisumafasenaminhavida.Ajornadaatéaqui teriasidomaisdifícilsetivessepercorridoestecaminhosozinho.eusempreestive,e estarei bem acompanhado. É impossível agradecer a todas as pessoas que me ajudaramachegaratéaquiequevãomeajudarachegaraindamaislonge,portanto gostariadeagradecerprimeiroaspessoasquenãocouberemouqueeumeesquecer deagradecernaspróximaslinhasdestetexto. Gostaria de agradecer em segundo lugar minha família, os primeiros responsáveisporeuserquemeusouhoje.comcertezafoiamelhorcriaçãopossível. Gostariadeagradecertambémaosgrandesprofessoresquetive,todoseles,do começodocolégioatéofimdagraduação. Gostaria de agradecer a Allan e Rafael (Cabelo), pelas várias reuniões e discussões,queajudaramageraraversãofinaldestedocumento.etambém,renan, Thiago,Fernando,JoséCarlos,etodosqueforammeusamigos,maispróximosemais afastadosduranteagraduação. Porúltimo,gostariadeagradeceraKatharina,quepassouameacompanhar nosúltimosmeses,masseiqueestesmeseslogoserãoanos,equedesdejáestá fazendosacrifíciospelomeufuturoprofissionaleacadêmico. Gostaria de terminar este agradecimento como comecei, agradecendo as pessoasqueeunãociteiounãoreferencieiaqui.atodosobrigado,eseiqueaindavou termuitoqueagradeceratodosvocês. 5

6

Resumo Este trabalho se propõe a analisar o conceito de Web2.0 ede plataformawebe estabelecerumaarquiteturaparaaplicaçõesbaseadasnesteconceito.éapresentada uma visão geral destes conceitos, e em seguida são abordadas as principais tecnologiasusadasparadesenvolvimentodeaplicaçõesnaplataformaweb.aseguiré sugeridaumaarquiteturaqueuseestastecnologias.eporfimédescritaumaaplicação chamadade TimelineWebBrowser,quesebaseianoconceitodeWeb2.0eusaa arquiteturadescritanestetrabalho. Palavraschave:Web2.0,PlataformaWeb,WebServices,SOA,SOAP,Padrõesde Projetos,ArquiteturadeSoftware. Abstract ThisworkintendstomakeananalysisoftheWeb2.0andWebPlatformconceptsand establishanarchitecturetoapplicationsbasedonthisconcept.itpresentsanoverview oftheseconcepts,andthendescribesthemaintechnologiesusedonthedevelopment of web platform applications. Then it establishes an architecture that uses these technologies.atlast,itdescribesanapplicationcalledtimelinewebbrowser,which is based on the concepts of Web 2.0 and web platform and uses the architecture describedhere. KeyWords:Web2.0,WebPlatform,WebServices,SOA,SOAP,DesignPatterns, SoftwareArchitecture. 7

Índice 1.Int r o d ução...1 1 1.1.Objetivos...1 2 1.2.Tra bal ho s Existe n te s...1 2 1.3.Visão Geral...1 3 2.Web 2.0...1 4 2.1.Visão Geral...1 5 2.2.Um p o uco d e his t ória...1 6 2.3.Tecnologias Web 2.0...1 7 2.3.1.Platafor m a Web...1 7 3.Tecn ologias d a Platafor m a Web...1 9 3.1.Arq uite t u r a SOA...1 9 3.2.Web Services...2 1 3.2.1.XML...2 1 3.2.2.SOAP...2 2 3.2.3.WSDL...2 4 3.2.4.UDDI...2 7 4.Arq uite t u r a d e u m a a plicação Web 2.0...2 8 4.1.Int r o d uç ão ao p a d r ã o e m ca m a d a s...2 8 4.2.Int r o d uç ão ao p a d r ã o ar q uitet u r al d e N - Ca ma d a s...2 9 4.3.Aplicações b a s ea d a s e m se rviços...3 1 4.3.1.Ca m a d a Web...3 3 5.Ti meline Web Browser...3 4 5.1.Arq uite t u r a d o Timeline Web Browser...3 5 5.1.1.Estr u t u r a d e p acote s...3 5 5.1.2.Ca m a d a Cliente...3 5 5.1.3.Ca m a d a Web...3 6 5.1.4.Ca m a d a d e Negócios...3 8 5.1.5.Ca m a d a d e Da do s...4 0 Conclu s õe s...4 3 5.2.Tra bal ho s f u t u r o s...4 4 5.3. Con si der açõe s finais...4 4 Apê n dice A...4 5 Referê ncias...4 7 8

ÍndicedeFiguras Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a Figu r a 1: Google Maps, d el.icio.us, digg, Flickr, Yout u be...1 4 2: ThinkFree, Writely, EyeOS, Netvibe s...1 5 3: Arq uitet u r a SOA...1 9 4: Uma m e n s age m SOAP...2 3 5: Co m u nicação client e - s erviço u s a n d o WSDL...2 5 6: Diagra m a d e Objeto s WSDL...2 6 7: Pa dr ão a r q uite t u r al e m ca m a d a s...2 9 8: Pa dr ão a r q uite t u r al d e N - Ca m a d a s...3 1 9: Arq uitet u r a d a s a plicações d a pla taf or m a web...3 2 1 0: Ca ma d a Web...3 3 1 1: Estr u t u r a d e p aco te s...3 5 1 2: Ca ma d a Clien te d o Ti meline Web Browser...3 6 1 3: Co m u nicação Cliente - Servido r...3 7 1 4: Pa dr ão d e Proje to Co m p o site...3 9 1 5: Estr u t u r a d o Playback...4 0 1 6: Co m e n t á rios n o playback...4 0 1 7: Estr u t u r a d a p e r sis tê ncia d e d a d o s...4 1 1 8: Ca ma d a d e d a d o s...4 2 9

ÍndicedeListagens Listage m 1: Exe m plo d e XML...2 1 Listage m 2: Exe m plo d e Mensage m SOAP...2 4 Listage m 3: Especificação d e u m a o pe r ação p a r a u m se rviço...2 6 Listage m 4: Especificação d e u m d a d o d e e n t r a d a p a r a o pe r ação WSDL...2 6 Listage m 5: Especificação d e u m d a d o d e s aí da p a r a o pe r ação WSDL.2 7 Listage m 6: Invacação d e u m web s e rvice...3 8 Listage m 7: Arq uivo WSDL d e u m s e rviço d o Ti meline Web Browser...3 8 10

1. Introdução Alongjourneybeginswiththefirststep NeilArmstrong Comumaalusãoaosnúmerosdeversões,normalmenteusadosparaindicar novasversõesdesoftware,otermo Web2.0 indicaumaformaaprimoradadaworld WideWeb. Estanovawebdáênfaseaferramentaseplataformasquepermitemao usuárionãoapenasserumreceptordeinformações,masumprodutor. AWeb2.0sediferenciadesuaversãoanterior(Web1.0)àmedidaqueelase distanciadossitesestáticos,dousodeengenhosdebuscaedanavegaçãodeumsite paraumoutro,emdireçãoaumawebmaisdinâmicaeinterativa. Atualmente,váriosfatorescontribuemparaoavançodawebemdireçãoasua versão2.0: Apopularizaçãodabandalarga,proporcionandoumusocadavezmaiorda internet. Oaumentodepessoasusandoainternetpararealizar atividadesqueantes eramrealizadasdeformaoffline,comocompras,leituradenotíciasetc. ApopularizaçãodetecnologiascomoAJAX,quepossibilitamaousuáriouma experiênciadeusomaisricanaweb. São exatamente tecnologias como AJAX que possibilitam a web imitar aplicaçõesdesktopcomoprocessadoresdetexto,planilhasdecálculoeprogramasde apresentaçãodeslides.alémdesistemasoperacionaisquefuncionamdentrodeum browser. Não sistemas operacionais em si, mas sim, plataformas de aplicações. Serviços com características e aplicações similares a um ambiente desktop. A principaldiferençaéqueelespodemserusadosapartirdequalquerbrowser. Dandoumpassoadiante,ossites Web2.0 permitemquedesenvolvedores externos construam novos serviços em cima de serviços providos por sites já existentes, semelhante à maneira como a Microsoft incentiva os programados a desenvolverememcimadowindows. 11

Osserviçosdestessites Web2.0 sãoconstruídosedisponibilizadosparaos desenvolvedores em geral em cima de arquiteturas de web services que usam ferramentas de publicação para publicar suas APIs para a comunidade de desenvolvedores. Istolevaaumimportanteconceitode Web2.0 :odawebcomoplataforma deserviços,ondeaplicaçõesweb basednãodeveriamoferecersuasfuncionalidades apenas através do browser, mas também através de web services. Desta forma, transformandoestasaplicaçõesemprovedoresdeserviçoseawebemplataforma destesserviços,semelhanteaumsistemaoperacional. 1.1.Objetivos Estetrabalhotemcomoobjetivorealizarestudodoconceitodeweb2.0que coloca a internet como uma plataforma de desenvolvimento baseada em serviços, alémdadefiniçãodeumaarquiteturaparaaplicaçõesbaseadasnesteconceito.estes serviços são disponibilizados através de web services, que são usados por outras aplicaçõesparaprovernovasfuncionalidadesaindamaiscomplexas.otrabalhopossui doisobjetivosprincipais,listadosabaixo: 1. Definição de uma arquitetura para aplicações que se baseiam no conceitodequeainternetseriaumaplataformaparadesenvolvimento deaplicaçõesbaseadasemserviços; 2. DesenvolvimentodeumTimelineWebBrowser,umbrowserquegrava asaçõesdousuáriorealizadasnainterneteasdisponibilizaatravésde webservices,permitindoacriaçãodenovosserviços. 1.2.TrabalhosExistentes Apesquisadereferênciasbibliográficasmostrouqueexistemdiversosartigos quetratamdosconceitosdeweb2.0. Existem também livros e artigos que apresentam as tecnologias de Web Services e de Service Oriented Architecture. Porém, muitos destes documentos apresentamestesconceitosatreladosatecnologiasespecíficas,comojavaou.net. 12

Estetrabalhonãopossuiprecedente,poistemcomoobjetivounirtodosestes conceitosnacriaçãodeumaarquiteturapadrãoindependentedeprodutosespecíficos. 1.3.VisãoGeral Estedocumentoestádivididonosseguintescapítulos: Introdução: apresentaocontextonoqualotrabalhoseinsere,bem comoseusobjetivos. Web2.0:apresentaumavisãogeraldotermoWeb2.0,suahistóriae tratamaisafundoadefiniçãotratadanestetrabalho awebcomo plataformadesoftware. TecnologiasdaplataformaWeb: apresentaasprincipaissoluçõese tecnologiasusadasparaseconstruiraplataformaweb. Arquiteturadeumaaplicação Web2.0: apresentaumaarquitetura independentedesoluçõesproprietáriasparaconstruçãodeaplicações deacordocomoconceitodewebcomoplataformadesoftware. TimelineWebBrowser: descreveumtimelinewebbrowseresua arquitetura. Conclusões e considerações finais: conclui o trabalho e apresenta pontosdecontinuidade. 13

2. Web2.0 Theworldischanging. TreeBeard(TheLordoftheRings:TheTwoTowers) OtermoWeb2.0serefereaumasegundafasededesenvolvimentodaweb,no quedizrespeitoasuaarquitetura,suasaplicaçõeseprincipalmente,suasformasde uso.otermoestáassociadoaváriossignificados,entreeles: A transição de sites estáticos para gerenciadores de conteúdo e funcionalidades,transformandoawebemplataformacomputacional; Umfenômenosocialrelacionadoàcriaçãoedistribuiçãodeconteúdo naweb,deformaabertaedescentralizada; Umamudançanovaloreconômicodaweb; Umtermodemarketing,paradiferenciarosnovosnegóciosdaweb daquelasdabolhadainternet. Figura1:GoogleMaps,del.icio.us,digg,Flickr,Youtube Noentanto,aindanãosechegouaumconsensoemrelaçãoaosignificado termo.talvez,umaformamaissimplesdeentenderosignificadodeweb2.0seja 14

atravésdaassociaçãodotermocomprodutosbaseadosnosseusprincípios.alguns desses produtosmais conhecidossãogooglemaps,del.icio.us,digg,flickr e Youtube. 2.1.VisãoGeral Aversãoanteriordaweb(Web1.0)consistiabasicamentedepáginasHTML estáticasqueeramraramenteatualizadas,setanto.osucessoda Era.com dependia de uma webmais dinâmica, ondesistemas degerenciamento deconteúdo (CMS) geravam páginas HTML dinâmicas a partir de um banco de dados que podia ser atualizadomais facilmente.emambos os casos, aquestãovisualeraconsiderada intrínsecaaousodaweb,tornandoestéticavisualumfatordeextremaimportância.a Web 2.0 transforma a aparência das aplicações web, deixando as com cara de aplicaçõesdesktopeelevandooconceitodepáginasdinâmicas.algunsexemplosde produtos, onde isso acontece de forma mais explicita, são ThinkFree, Writely, EyeOSeNetVibes. Figura2:ThinkFree,Writely,EyeOS,Netvibes A web é, cada vez mais, baseada em interação e em redes sociais rudimentares. De certa forma, sites Web 2.0 são como portais dependentes de usuários.awebestácadavezmenossobocontroledeespecialistaseseaproximando maisdoseuconceitooriginaldemeiodecomunicaçãodemocráticoepessoal. 15

Comumaalusãoaosnúmerosdeversões,normalmenteusadosparaindicar novasversõesdesoftware,otermo Web2.0 indicaumaformaaprimoradadaworld WideWeb.OtermofoipopularizadoporumaconferênciapatrocinadapelaO Reilly MediaepelaMediaLivedepoisqueDaleDougherty,mencionouotermoemuma sessão de brainstorming.dougherty afirmouque a webestava passandopor uma revolução. 2.2.Umpoucodehistória Na abertura da primeira conferência sobre Web 2.0, O Reilly e Battelle resumiramascaracterísticasprincipaisdasaplicações2.0: A web como uma plataforma, onde a web se coloca como uma provedora de serviços que podem ser usados para criar novas aplicações; Dadoscomoaforçaprincipal; Efeitosderedecriadosporuma Arquiteturadeparticipação ; Inovaçãonamontagemdesistemasesites.Ondeajunção(mashup)de doisserviçoscomuns,geraumnovo,completamenteinovador; Modelodeprogramaçãoleve,apartirdousodewebservicesebaixo acoplamento; Fimdociclodereleasedesoftware,ondesoftwarepassaaserum serviço, ao invés de um produto, exigindo das companhias uma manutençãodiáriadeseusserviços; Softwareacimadoníveldeumúnicodispositivo,ouseja,nãoestá maislimitadoaumaplataformapc. Assim, uma forma de uso inicial do termo Web 2.0 se referia a Web Semântica,e,decertaforma,osdoisconceitossecomplementam.Acombinaçãode sistemasderedessociais,comodesenvolvimentodefolksonomias1baseadasemtags edisponibilizadasatravésdeblogsewikis criaumabasenaturalparaumambiente semântico.apesardastecnologiaseserviçosdaweb2.0seremmenospoderososque 1 Folks o n o mia é u m n e ologis m o p a ra a p r á tica d e categori z ação colabora tiva u s a n d o p alavra s d e livre e scolha. 16

uma internetonde as máquinas podem entender e extrair significados, a Web 2.0 representaumpassonessadireção. 2.3.TecnologiasWeb2.0 A infra estrutura da Web 2.0 é complexa e está em evolução. Ela inclui softwaresbaseadosemservidores,protocolosdecomunicação,browsersbaseadosem padrões evárias aplicações cliente.estas abordagens diferentes ecomplementares provêemaweb2.0comcapacidadesdecriação,disseminaçãoearmazenamentode informaçõesalémdaimaginadainicialmenteparapáginasweb. ExemplosdetecnologiascomumenteusadasemsitesWeb2.0são: Ajax XULeSVG RSS SOAeWebServices 2.3.1.PlataformaWeb Web Platform (Plataforma Web) foi o nome da primeira conferência promovida pela O Reilly e pela MediaLive tratando do tema Web 2.0. Durante a conferênciaelesperceberamqueweb2.0iamuitoalémdesteconceitoinicial,mas istonãotornouesteaspectomenosimportante. O conceito de plataforma web se baseia na idéia de aplicações que são desenvolvidasusandoserviçosdisponibilizadosnainternet.assim,awebfuncionade forma muito semelhante a um sistema operacional, como Windows, que fornece funções (serviços) para que terceiros possam desenvolver novas aplicações e funcionalidades. A web fornece seus serviços através de APIs (Application Programming Interface),quesãoconjuntosdefunçõesusadaspelosprogramadores.Exemplosde APIssãoasdisponibilizadasnaMFC(MicrosoftFoundationClasses),usadaspara desenvolver aplicações windows; a API de java.io, que fornece funções para manipulaçãodearquivosemjava;ouainda,aapidogooglesearch,disponibilizada 17

atravésdawebparaqueoutrosdesenvolvedorespossamfazerusodaenginedebusca dogoogleemseusprópriossites,desenvolvendonovoseinovadoresserviços. AsaplicaçõeswebquedisponibilizamouutilizamAPIsnawebimplementam a arquitetura SOA (Service Oriented Architecture) através da tecnologia de web services.webservicesusamxmlparadescreverasfunçõesdaapiepararealizaro transporte de informações do cliente para o servidor, e vice versa, de forma independente de plataforma e de linguagem de programação, garantindo a heterogeneidadedaweb. 18

3. TecnologiasdaPlataformaWeb Liveinfragmentsnomore.Onlyconnect E.M.Forster O desenvolvimento na plataforma web exige que serviços possam ser desenvolvidoseusadosdeformaindependentedeplataformaedelinguagem.essa necessidade se apresenta pelo fato da web ser um ambiente extremamente heterogêneo.astecnologiasdescritasabaixoatendemperfeitamenteaesterequisitoe sãoasmaislargamenteusadas.umaindicaçãodissoéumrelatóriodagartnerquediz que Em 2008, SOA será uma prática prevalecente de engenharia de software, acabandocomumdomíniode40anosdearquiteturasdesoftwaremonolíticas e aindaque Durante2008,SOAewebservicesserãoimplementadosjuntosemmais de75%dosprojetosqueusaremsoaouwebservices. Estastecnologiasdeformaalgumacobremtodasastecnologiasrelacionadasà Web 2.0, mas são as tecnologias básicas mais usadas para o desenvolvimento de aplicaçõesqueseencaixamnoconceitodeplataformaweb. 3.1.ArquiteturaSOA Figura3:ArquiteturaSOA UmaarquiteturaSOA(Service OrientedArchitecture)éumaabordagemna qualasaplicaçõesfazemusodeserviçosdisponíveisemumarede,comoaworld Wide Web. Implementar uma arquitetura SOA envolve o desenvolvimento de 19

aplicaçõesqueusamserviçosouquesãodisponibilizadascomoserviços,deforma queoutrasaplicaçõesposamusarestesserviçosevice versa. Umserviçopodeproverumaúnicafuncionalidadesimples,comorealizara conversãodevalordeumamoedaparaoutra,atépodeprovarumconjuntodefunções complexas, como lidar com as várias operações em um sistema de reservas de passagensaéreas. Uma maneira deolhar paraa SOA é como uma abordagem paraconectar diferentesaplicações(disponibilizadascomoserviços)deformaqueelaspossamse comunicar umas com as outras. Em outras palavras, SOA é uma forma de compartilhar funções (serviços) de uma maneira abranjente e flexível. E esta é exatamenteasuaprincipalcaracterísticaparaaweb2.0. O conceito de SOA não é novo. Service Oriented Architectures têm sido usadasporanos.oquediferenciasoadeoutrosmodelosdearquiteturaéobaixo acoplamento. Esse baixo acoplamento significa que o cliente de um serviço é, essencialmente,independentedoserviço.aformacomoocliente(quepodeseraté umoutroserviço)secomunicacomoserviçoindependedamaneiracomooserviço foiimplementado.issosignificaqueoclientenãoprecisasaberalinguagemnaqualo serviçofoiimplementadoouemqualplataformaoserviçoestárodando,característica essencialparaaplataformaweb.nasoaoclientesecomunicacomoserviçoatravés de uma interface bem definida, edeixa que oserviço em sirealize as operações necessárias. Se a implementação de um serviço mudar, o cliente continua se comunicandocomoserviçodamesmamaneira,desdequeainterfacecontinuea mesma. Noentanto,oqueérelativamentenovoemSOAsãooswebservicesbaseados emsoa.umwebserviceéumserviçoquesecomunicacomumclienteatravésde umconjuntodeprotocolosetecnologiaspadrões.estespadrõesdewebservicessão implementadosportodososgrandesvendedoresdesoftware,tornandopossívelpara clienteseserviçossecomunicaremdeformaconsistentedentrodeumagrandegama deplataformasesistemasoperacionais.estasadoçõesuniversaisdoswebservicesos tornaaabordagemmaiscomumparaimplementarumasoa. 20

3.2.WebServices Web Services representam uma nova geração de tecnologia de desenvolvimento.comelaépossívelcriaraplicaçõesmodulareseindependentesque sãofacilmentedistribuídasemqualquerestruturaderedestcp/ip,poisestefoium dosprincipaisfundamentosdesuaimplementação. Umgrandepontopositivodestatecnologiaéqueacriaçãodeservidorese clientesindependedalinguagemdeprogramaçãoedosistemaoperacionalemquesão implementados.istotornaestetipodetecnologiaidealparaoambienteheterogêneo daweb. A abordagem de web services é baseada em padrões que são amplamente aceitoseusados.estaaceitaçãoabranjentetornapossívelqueclienteseserviçosse comuniquemeseentendammesmoemumavariedadedeplataformaseindependente delinguagens.osprincipaispadrõeseprotocolosusadosporwebservicessão:xml, SAOP,WSDLeUDDIeebXML,descritosaseguir. 3.2.1.XML extensiblemarkuplanguage(xml)setornouopadrãoparatrocadedados naweb.comoopróprionomeindica,xmléumalinguagemdemarcação,como HTML.Elafazusodetagspara marcar aoconteúdodeumdocumento.umatag XML identifica a informação dentro de um documento, e também identifica (ou marca)aestruturadainformação.porexemplo,aestruturaxmlaseguiridentifica informações a respeito de uma estante de livros. Os marcadores XML também descrevemaestruturadaestante.nestaestrutura,umelemento<estante>,possuium subelemento <livro>, que por sua vez possui três outros subelementos, <titulo>, <autor>e<preco>. <estante> <livro> <titulo>thesoawithinreach</titulo> <autor>dionhinchcliffe</autor> <preco>50.00</preco> </livro> </estante> Listagem1:ExemplodeXML 21

Apesardastagsacimapossuírem,aparentemente,umsignificadoinerentepara a informação que eles identificam, elas não possuem. Informações marcadas em XMLpossuemsignificaapenasseaspessoasassociaremsignificadosastagsXML. Apenasseaspessoasconcordaremcomossignificadosdastagseusaremastagsde formaconsistentexmlpoderáproverumaformaconsistentedetrocadeinformações. SuasaplicaçõespodemtrocardocumentosXMLentresi,eprocessarainformação nestesdocumentos,confiandonossignificadosqueforamestabelecidosparaastags. Documentos XML possuem uma estrutura bem formada, ou seja, toda tag XMLdevepossuirumatagdefechamento(<estante>...</estante>)equalquertag quecomecedentrodeumaoutratemquefecharantesdofimdaoutra.tipicamente, umdocumentoxmléassociadoaumesquema(schema)queespecificasuas regras gramaticais.estedocumentoespecificaquetagssãopermitidasdentrododocumento XML,aestruturadestastags,alémdeoutrasregras. Como documentos XML válidos devem ser bem formados e estar em conformidadecomoesquemaaqueestãoassociados,elessetornamrelativamente fáceisdeprocessar.comoresultado,xmléopadrãogeralmenteadotadoparatroca dedadosemwebservices. 3.2.2.SOAP Apesar de XML ser um meio efetivo para troca de informações, não é o suficienteparaatrocadedadosnaweb.porexemplo,aindaénecessáriodefinirum protocoloparaaformataçãodeumdocumentoxml,deformaqueoreceptorentenda oqueéaparteprincipaldamensagem, payload,equepartescontêminstruçõese conteúdoadicionais. 22

Figura4:UmamensagemSOAP Este protocolo é o Simple Object Access Protocol (SOAP). SOAP é um protocolobaseadoemxmlparatrocadeinformaçõesemumambientedistribuído, como aweb.soapestabeleceumformatodemensagemcomumparaatrocade dadosentreclienteeserviço. OelementobásicoparaumatransmissãousandoSOAPéamensagem(SOAP Message),queéformadaporumelementoobrigatório,oenvelope(SOAPEnvelope), porumcabeçalhoopcional(soapheader),emaisumelementoobrigatório,ocorpo damensagem. Oenvelopeéformadopordoiselementos,umXMLnamespaceeumencoding style. O XML namespace especifica os nomes que podem ser usados dentro da mensagemeevitamconflitosdenomes.o encodingstyle defineostiposdedados reconhecidospelamensagem. Se a mensagem possuir um cabeçalho, ele será usado para estender a mensagemdeformamodular.éimportanteentenderqueumamensagemviajadeum clienteparaumservidor,equenocaminhoelapassaporumconjuntoindeterminado denós.cadanóéumaaplicaçãoquepoderecebereencaminharmensagenssoap.e um nó intermediário pode prover serviços adicionais, como realizar operacionais relacionadasàsegurança.ocabeçalhopodeserusadoparaindicarqueénecessário realizar algum processamento extra em um dos nós intermediários. Este processamentoseriaindependentedoprocessamentofeitononófinal. Ocorpocontémamaiorpartedeumamensagem,ouseja,apartedestinadaao nódedestino.oexemploabaixomostraumamensagemsoapcomoobjetivode 23

obter o preço de um livro. Os elementos <SOAP ENV: Envelope>, <SOAP ENV: Header>e<SOAP ENV:Body>marcamrespectivamenteoenvelope,ocabeçalhoeo corpo da mensagem. O elemento <SOAP ENV: mustunderstand= 1 > dentro do cabeçalhoindicaqueoreceptordamensagemdeveprocessá laobrigatoriamente. <SOAP ENV:Envelope xmlns:soap ENV= http://schemas.xmlsoap.org/soap/envelope/ SOAP ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <SOAP ENV:Header> <t:transactionxmlns:t="some URI"> <SOAP ENV:mustUnderstand="1"> </t:transaction> </SOAP ENV:Header> <SOAP ENV:Body> <m:getbookpricexmlns:m="some URI"> <title>mylifeandtimes</title> <author>felixharrison</author> </m:getbookprice> </SOAP ENV:Body> </SOAP Envelope> Listagem2:ExemplodeMensagemSOAP MensagensSOAPsãoindependentesdeplataformaesistemaoperacional,e podemsertransportadasusandováriosprotocolos,porexemplo,httpousmtp. 3.2.3.WSDL Comoumclientesabequeformatousarquandofizerumarequisiçãodeum serviço? Como o cliente e o serviço sabem o que uma requisição significa? As respostasparaestasperguntasestãoemumdocumentoxmlchamadodedocumento WSDL. Este documento contém a descrição da API de um web service. WSDL define um esquema XML para descrição de um web service. Para descobrir a especificaçãodeumwebservice,umclienteprecisaencontrarodocumentowsdl deste serviço. A forma mais típica de localizar este documento é através de um ponteiroparaestedocumentoquepodeserencontradonoregistrodowebservice,que podeestaremumregistrouddiouemumregistro/repositórioebxml. Porexemplo,alguémregistraumserviço.Oregistroincluiumponteiropara umarquivowsdlquepossuiodocumentowsdlparaesteserviço.umcliente 24

procura o registro e encontra o serviço. Um programador usa as informações no documento WSDL para conhecer a interface do serviço e realizar as chamadas necessáriasàsfunçõesdestainterface. Figura5:Comunicaçãocliente serviçousandowsdl UmdocumentoWSDLdescreveumwebservicecomoumacoleçãodeitens abstratoschamadasdeportsouendpoints.eletambémdescreve,deformaabstrata,as açõesrealizadasporumwebserviceeasinformaçõestransmitidasparaestasações. Ações sãorepresentadasporoperaçõesedados sãorepresentadospor mensagens. Umacoleçãodeoperaçõeséchamadadeporttype. O que transforma uma descrição WSDL de abstrata em concreta é um binding.umbindingespecificaumprotocoloderedeeumformatodemensagem paraumporttypeemparticular.umportédefinidoassociandoumendereçoderede comumbinding. 25

Figura6:DiagramadeObjetosWSDL Se um cliente localizar um documento WSDL e encontrar o binding e o endereçoderedeparacadaporta,elepodechamarasoperaçõesdoserviçodeacordo comoprotocoloeoformatodemensagensespecificado. O ApêndiceA possuiumexemplodeumdocumentowsdlqueespecifica umserviçodebuscadelivrosonline.noexemplo,umaoperaçãoéespecificadapara oserviço: <operationname= getbooks... Listagem3:Especificaçãodeumaoperaçãoparaumserviço Amensagemdeentradaparaaoperação,BookSearchInputpossuiumastring chamadaisbn: <complextype> <all> <elementname="isbn"type="string"/> </all> Listagem4:EspecificaçãodeumdadodeentradaparaoperaçãoWSDL 26

A mensagem de saída da operação, BookSearchOutput retorna uma string chamadatitle: <complextype> <all> <elementname="title"type="string"/> </all> Listagem5:EspecificaçãodeumdadodesaídaparaoperaçãoWSDL 3.2.4.UDDI Como foi mencionado anteriormente, uma arquitetura SOA pode possuir tambémumserviçoqueprovêumdiretórioouregistrodeserviços.mascomoum serviço pode ser descrito em um registro de forma que um outro registro possa facilmentelocalizá lo?o UniversalDescription,DiscoveryandIntegration (UDDI) descreve como publicar e recuperar informações sobre serviços em um registro baseadoemuddi. OregistroUDDIpodeservistocomoumconjuntode PáginasAmarelas de webservices.comoaspáginasamarelasdenúmerosdetelefone,oregistrouddi provêinformaçõesemrelaçãoaumserviço,comoonomedoserviço,umabreve descrição do que ele faz, um endereço onde o serviço pode ser acessado, e uma descriçãodainterfaceparaacessaresteserviço. 27

4. ArquiteturadeumaaplicaçãoWeb2.0 Imaginationismoreimportantthanknowledge IsaacNewton Aarquiteturapropostanestecapítulofoiprojetadacomoobjetivodepermitir odesenvolvimentodeaplicaçõesbaseadasnoconceitodewebcomoplataformade software.porisso,essasaplicaçõesdevemsercapazesdeutilizarserviçosdisponíveis naweb,bemcomodisponibilizarserviçosprópriostambémnaweb. Além desta característica, a arquitetura também tem como objetivo ser genéricaobastanteparapoderserusadanodesenvolvimentodeoutrasaplicaçõespara aplataformaweb. Dois padrões arquiteturais serão usados para definir a arquitetura geral. O padrão em camadas (Layers pattern), que ajuda a separar os vários conceitos presentes no tipo de aplicação que a arquitetura visa atender. E o padrão de N Camadas(N Tierarchitecturepattern),umaderivaçãodopadrãoemcamadas,com umaaplicaçãomaisespecífica. 4.1.Introduçãoaopadrãoemcamadas Opadrãoemcamadasébásicopornatureza,masextremamenteimportantena prática. O conceito essencialdo padrão é que as aplicações devemser projetadas divididasemcamadas,comcadacamadarepresentandoumconjuntodeconceitos relacionados.cadacamadapossuiclassesecomponentesrelacionados,epossuiuma interfaceestruturadaeummecanismodecomunicaçãoparaacessarascapacidadesde umaoutracamada. Ascamadastipicamenteseempilhamumasemcimadasoutras,construindo asfuncionalidadesgeraisdaaplicação,comomostraa Figura7.Écomumqueuma camadasóacesseacamadaimediatamenteinferioraela,apesardeque,comumente, ascamadastenhamacessoamúltiplascamadasnaprática. Apartemaisdifícilemtrabalharemcamadasédeterminarquantascamadasa aplicação será separada e como realizar a separação entre elas. A separação em 28

camadasdevefazersentidodeumpontodevistatécnicoetambémdeumpontode vistadeestruturaorganizacional.énecessáriomanteremmentequeoaspectotécnico prevalecerá sobre o aspecto organizacional, portanto é necessário ter cuidado ao consideraroméritotécnicocomoprincipioorganizacionalprimário.camadastípicas são: a camada de apresentação, camada de negócios, camada de dados e camada cliente.porexemplo,aspreocupaçõesdacamadadeapresentaçãocomobrowsersão completamentediferentes das preocupações da camada de dados com o banco de dados. CamadaX CamadaY CamadaZ Figura7:Padrãoarquiteturalemcamadas Épossívelsepararascamadasdeváriasformasdiferentes.Tambémépossível implementaraarquiteturaemcamadaseaindaassimrodartodaaaplicaçãoemum únicoprocessofísico.tambémépossívelsepararascamadasemprocessosemum único computador, ou ainda, separar as camadas em processos em diferentes computadores,essencialparaaimplementaçãonosconceitosdaplataformaweb. Noentanto,apenasdizerqueaarquiteturadeumaaplicaçãoéemcamadasnão éosuficienteparaosdesenvolvedoreseprojetistas.énecessárioiralémeexplicaros conteúdosdecadacamadanaarquitetura. 4.2.IntroduçãoaopadrãoarquiteturaldeN Camadas 29

O padrão arquitetural de N Camadas é uma generalização do padrão arquiteturaldetrêscamadas.opadrãoarquiteturaldetrêscamadaséformadopor umacamadadeapresentação,umacamadadelógicadonegócioeumacamadade persistênciadedados.noentanto,umaarquiteturadetrêscamadasnãopossuiespaço para uma camada de comunicação, própria para os web services, necessários a disponibilizaçãodeserviçosparausodeterceiros. Uma descrição das camadas, assim como uma descrição de como essas camadassecomunicam,tipicamentefazempartedadescriçãodeumaarquiteturade N Camadas.A Figura8 mostraumexemploquepossuiumacamadacliente,uma camada de apresentação, uma camada de lógica do negócio e uma camada de persistência de dados. A comunicação entre a camada cliente e a camada de apresentação pode acontecer usando Hypertext Transfer Protocol (HTTP), a comunicaçãoentreacamadadeapresentação,acamadadenegóciospodeacontecer usando Remote Method Invocation (RMI) e a comunicação entre a camada de negócioseacamadadedadospodeacontecerusandojdbc(éimportanteressaltar queastecnologiascitadasacimasãoapenasexemplo). No entanto, uma aplicação que funcione de acordo com os conceitos de plataforma web, precisa ter seus serviços acessados a partir de qualquer outra aplicação na web, ou seja, ela possui múltiplos pontos de acesso ao sistema. Os usuáriospodemusarosistemaapartirdeumainterfacegráfica,eprogramaspodem acessarosistemaapartirdeapis.odesenvolvedordosistema,edosserviços,não sabetodasasformasqueosclientesdaaplicaçãovãousarseusserviços;elespodem desenvolver sua própria lógica, ou sua própria camada de apresentação baseadas nessesserviços. 30