DESENVOLVIMENTO DE APLICAÇÕES WEB SERVICES COM JAVA

Tamanho: px
Começar a partir da página:

Download "DESENVOLVIMENTO DE APLICAÇÕES WEB SERVICES COM JAVA"

Transcrição

1 Leandro Luiz Costa Bordignon R.A º Semestre A DESENVOLVIMENTO DE APLICAÇÕES WEB SERVICES COM JAVA Jaguariúna 2007

2 Leandro Luiz Costa Bordignon R.A º Semestre A DESENVOLVIMENTO DE APLICAÇÕES WEB SERVICES COM JAVA Monografia apresentada à disciplina Trabalho de Graduação III, do Curso de Ciência da Computação da Faculdade de Jaguariúna, sob orientação do Prof. Ms. Peter Jandl Junior, como exigência parcial para conclusão do curso de graduação. Jaguariúna 2007

3 BORDIGNON, Leandro Luiz Costa. Desenvolvimento de Aplicações Web Services com Java. Monografia defendida e aprovada na FAJ em 13 de dezembro de 2007 pela banca examinadora constituída pelos professores: Prof. Ms. Peter Jandl Junior FAJ orientador Prof. Ms. Christiane Novo Barbato FAJ Prof. Ms. Ricardo Menezes Salgado FAJ

4 Dedico esta monografia à meu querido pai Sr. Luiz Antonio Bordignon, à minha querida mãe Sra. Mary Ap. Costa Bordignon, pela força, pelo grande incentivo, dedicação, amor e confiança nas minhas decisões, à minha querida esposa Elizandra Del Santo Bordignon que me ensinou que não há derrota que derrote quem nasceu para vencer, à minha família pelo incentivo e paciência e a todos os amigos que nunca deixaram de acreditar no meu sucesso.

5 AGRADECIMENTOS Gostaria de expressar meus sinceros agradecimentos à todos aqueles que de alguma forma me deram forças para que a conclusão desta Monografia fosse possível: Primeiramente, a Deus, pela minha vida, saúde e trabalho, por todas as oportunidades, pelo amparo nos momentos mais difíceis e de incertezas, por estar sempre ao meu lado, tornando possível a conclusão de minha Monografia e do meu curso em si; À minha família que soube compreender a minha ausência e por todo o apoio e dedicação neste momento tão importante da minha vida, não me deixando desanimar; Aos meus pais Sr. Luiz Antonio Bordignon e Sra. Mary Ap. Costa Bordignon por estarem sempre presentes e os quais sempre me incentivaram, ensinaram os melhores caminhos a serem percorridos e pelas lições que me ajudaram a vencer os obstáculos; À minha esposa Elizandra Del Santo Bordignon, pelo ombro amigo, apoio para enfrentar os desafios e o constante incentivo nas horas difíceis; Em especial ao meu orientador Prof. Ms. Peter Jandl Junior pela orientação, que demonstrou atenção, paciência e pela confiança, seriedade e profissionalismo com que conduziu todo o período de orientação, ajudando-me a traçar os caminhos a serem superados, pelo comprometimento e conhecimento compartilhado; À todos os professores e convidados da banca por passarem todos os conhecimentos atuais, pela dedicação, sugestões, criticas e conselhos sempre importantes que tanto contribuíram para o meu crescimento intelectual, pessoal e para realização desta Monografia; À todos os meus amigos e colegas, pela compreensão, convivência, ajuda, o companheirismo, o carinho e os momentos de conversa, com quem foi possível dividir a caminhada, trocar experiências e que auxiliaram no trabalho direta ou indiretamente, me dando forças e ajudando nos momentos difíceis e etapas que me fizeram chegar até aqui.. Vocês contribuíram muito para a minha caminhada até aqui.

6 Não é preciso ter olhos abertos para ver o sol, nem é preciso ter ouvidos afiados para ouvir o trovão. Para ser vitorioso você precisa ver o que não está visível Sun Tzu

7 BORDIGNON, Leandro Luiz Costa. Desenvolvimento de Aplicações Web Services com Java Monografia (Bacharelado em Ciência da Computação) Curso de Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna. RESUMO Com a necessidade de interligar aplicações, a crescente evolução tecnológica que estamos vivenciando e a difusão da Internet, acabou sendo natural a idéia da integração das aplicações via Web e como conseqüência daí o surgimento do conceito da tecnologia dos Web Services. Após o advento da Internet, diversas estratégias de desenvolvimento de software foram modificadas para promover maior reuso e interoperabilidade. A idéia de compor aplicações para que trabalhem juntas é bastante atrativa. Os Web Services tem se destacado nos últimos tempos no meio computacional como uma revolução em termos de interoperabilidade de sistemas heterogêneos. Esta tecnologia tem sido considerada como a evolução da arquitetura de middlewares tradicionais e ganhou o apoio dos grandes produtores de software do mercado que a tratam como um novo paradigma no desenvolvimento de sistemas. É o mais forte candidato a middleware universal. O uso da tecnologia dos Web Services nos permite pensar em uma solução que garanta interoperabilidade, reuso e flexibilidade entre ambientes heterogêneos. Eles tem feito grandes esforços em conjunto com os órgãos de padronização de tecnologias no sentido de criar normas padrões, de forma que os Web Services possam ser utilizados por todos e que realmente seja obtido um grande nível de interoperabilidade entre as aplicações. Esta Monografia faz um estudo dos Web Services apresentando os conceitos desta tecnologia, verifica como a plataforma Java pode ser usada para desenvolvimento de Web Services e também apresenta um estudo de caso com implementação de um protótipo de uma aplicação Web Services com Java. Palavras-chave: interligar aplicações, Internet, Web Services, interoperabilidade, sistemas heterogêneos, middlewares, padronização, plataforma Java.

8 BORDIGNON, Leandro Luiz Costa. Desenvolvimento de Aplicações Web Services com Java Monografia (Bacharelado em Ciência da Computação) Curso de Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna. ABSTRACT With the need to interconnect applications, the growing technological changes that we are living and the spread of the Internet, just as natural the idea of integrating applications via Web and as a consequence hence the emergence of the concept of the technology of Web services. After the advent of the Internet, various strategies for development of software were modified to encourage more reuse and interoperability. The idea of composing applications to work together is very attractive. The Web services has been highlighted recently in the computer as a revolution in terms of interoperability of heterogeneous systems. This technology has been regarded as the evolution of the architecture of middlewares traditional and won the support of the major producers of software in the market that deal as a new paradigm in the development of systems. It is the strongest candidate for universal middleware. The use of the technology of Web Services allows us to think of a solution that ensures interoperability, reuse and flexibility between heterogeneous environments. They have made great efforts together with the bodies of standardization of technology in order to create standards patterns, so that Web services can be used by everyone and that really is fetched from a large degree of interoperability between applications. The Monograph is a study of Web services presenting the concepts of this technology, there as the Java platform can be used to develop Web services and also presents a case study with implementation of a prototype implementation of a Web Services with Java. Keywords: interconnect applications, Internet, Web Services, interoperability, heterogeneous systems, middlewares, standardization, Java platform.

9 SUMÁRIO LISTA DE FIGURAS...10 LISTA DE TABELAS...11 LISTAGENS...12 LISTA DE ABREVIATURAS E SIGLAS INTRODUÇÃO METODOLOGIA VISÃO GERAL DOS WEB SERVICES Padronização Definições de Web Services XML XML Schemas XML-RPC SOAP WSDL UDDI FERRAMENTAS E FRAMEWORKS Axis REST API JAVA DESTINADA AOS WEB SERVICES PROTÓTIPO CONCLUSÕES REFERÊNCIAS BIBLIOGRÁFICAS ASSINATURAS...62

10 LISTA DE FIGURAS Figura 1.1 Funcionamento da Web...18 Figura 2.1 Protocolos Web Services...21 Figura 2.2 Principais papéis nesse tipo de arquitetura...22 Figura 2.3 Aplicação cliente acessando diretamente um Web Service...23 Figura 3.1 Funcionamento do XML-RPC...30 Figura 4.1 Estrutura da mensagem SOAP...35 Figura 4.2 Estrutura da mensagem SOAP com anexos...36 Figura 4.3 Funcionamento de envio de mensagens...37 Figura 5.1 Principais elementos de um WSDL...39 Figura 6.1 Interações registro UDDI...41 Figura 7.1 Apache Axis...55 Figura 7.2 Validate Apache Axis...55

11 LISTA DE TABELAS Tabela 1 APIs Java para Web Services incluídas em JSE

12 LISTAGENS Listagem 1 Exemplo de XML...25 Listagem 2 Declaração de um elemento simples e um composto...28 Listagem 3 Exemplo de uma RPC usando HTTP para o transporte...31 Listagem 4 Contato.java...50 Listagem 5 IF_Agenda.java...51 Listagem 6 AgendaList.java...51 Listagem 7 AgendaMap.java...52 Listagem 8 FabricaAgenda.java...53 Listagem 9 WebAgenda.java...55 Listagem 10 deploy.wsdd...56 Listagem 11 undeploy.wsdd...57 Listagem 12 MeuCliente.java...57

13 LISTA DE ABREVIATURAS E SIGLAS API B2B BP CGI CORBA DCOM DOM DTD EAI GIF HTTP HTML IBM IDL JAXB JAXP JAX-WS JEE JMS JPEG JSE JSON LDAP MIME MTOM NTT OASIS PDF POX REST RMI RPC SAAJ SAP Application Programming Interface Business to Business Basic Profile Common Gateway Interface Common Object Request Broker Architecture Distributed Component Object Model Document Object Model Document Type Definition Enterprise Application Integration Graphics Interchange Format HyperText Transfer Protocol HyperText Markup Language International Business Machines Interface Definition Language Java Architecture for XML Binding Java API for XML Processing Java API for XML Web Services Java Enterprise Edition Java Message Service Joint Photographic Experts Group Java Standard Edition JavaScript Object Notation Lightweight Directory Access Protocol Multipurpose Internet Mail Extensions Message Transmission Optimization Mechanism Nippon Telegraph and Telephone Corporation Organization for the Advancement of Structured Information Standard Portable Document Format Plain Old XML Representational State Transfer Remote Method Invocation Remote Procedure Call SOAP with Attachments API for Java Systems Applications and Products in Data Processing

14 SGML SMTP SOA SOAP SUN TCP / IP TI UBR UDDI URI URL W3C WS WSDD WSDL WSDP WS-I WSIT XML XOP XWSS Standard Generalized Markup Language Simple Mail Transfer Protocol Service-Oriented Architecture Simple Object Access Protocol Stanford University Network Transmission Control Protocol / Internet Protocol Tecnologia da Informação UDDI Business Registry Universal Description, Discovery and Integration Uniform Resource Identifier Uniform Resource Locator World Wide Web Consortium Web Services Web Service Deployment Descriptor Web Services Description Language Web Services Developer Pack Web Services Interoperability Web Services Interoperability Technology extensible Markup Language XML Optimized Packaging XML Web Services Security

15 15 1. INTRODUÇÃO As aplicações de negócio de hoje raramente vivem isoladas. Os usuários esperam acesso imediato à todas as funções de negócios que uma empresa pode oferecer, não obstante no que a funcionalidade que o sistema pode disponibilizar. Isto requer aplicações para serem conectadas em uma solução muito bem integrada. Esta integração é conseguida geralmente com o uso de Web Services, uma tecnologia que conecta aplicações diretamente com outras aplicações. Segundo Mahmoud (2006), SOA (Service-Oriented Architecture) e Web Services são duas coisas diferentes, mas os Web Services são a maneira preferida padrão-base para realizar SOA [...]. Web Services são sistemas de software projetados para suportar interação máquinaà-máquina sobre uma rede. Esta interoperabilidade é ganha através de um jogo de padrões abertos baseados em XML (extensible Markup Language), tais como WSDL (Web Services Description Language), SOAP (Simple Object Access Protocol), e UDDI (Universal Description, Discovery and Integration). Estes padrões fornecem uma aproximação comum definindo, publicando, e usando Web Services [...]. O advento de Web Services e SOA oferece potencial para custos mais baixos de integração e maior flexibilidade... [Tradução livre]. Para Ort (2006), a Arquitetura Orientada a Serviços é um tópico emergente nas empresas de computação por que muitos profissionais de TI (Tecnologia da Informação) veêm o potencial de uma SOA -- especialmente SOA baseada em Web Services -- em dramática velocidade no processo do desenvolvimento da aplicação. Eles também veêm isto como uma maneira para construir aplicações e sistemas que são mais adaptáveis, e em fazendo assim, eles veêm TI tornar-se mais ágil na resposta às necessidades em mudança do negócio. É não somente SOA um tópico quente, mas é claramente a onda do futuro... [Tradução livre]. De acordo com Mahmoud e Ort os Web Services são uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Para as empresas, os Web Services podem trazer agilidade para os processos e eficiência na comunicação entre cadeias de produção ou de logística. A necessidade de interligar aplicações é muito antiga. Originalmente a sigla usada era EAI (Enterprise Application Integration), definida como o uso de software e princípios de arquitetura de sistemas de computador, para integrar um conjunto de aplicações corporativas. A Integração de sistemas corporativos (EAI) é ainda um grande problema da informática.

16 16 Com a difusão da Internet, foi natural a idéia da integração das aplicações via web e daí surgiu o conceito de Web Services desenvolvendo as antigas idéias mas aproveitando a infra-estrutura da web. Os Web Services que possuem como suas bases para a construção os padrões XML e SOAP permitem que a integração de sistemas seja realizada de maneira compreensível, reutilizável e padronizada. É uma tentativa de organizar um cenário cercado por uma grande variedade de diferentes aplicativos, fornecedores e plataformas. É o mais forte candidato a middleware universal. Em termos de implantação, nota-se como ponto forte principal, o fato da tecnologia ser baseada em padrões abertos, como XML e SOAP. Além disto, é importante salientar que o ambiente criado com Web Services é capaz de unir a funcionalidade de aplicações já existentes de diversas plataformas. Para ilustrar a utilização de Web Services em uma situação real, imagine um site de vendas pela Internet, que necessita validar o crédito do comprador antes de proceder com a venda. O sistema então acessa um serviço (Web Service) que cuida de todos os passos necessários à verificação de crédito: checa o histórico das compras efetuadas pelo consumidor na empresa, checa a situação de crédito do consumidor no sistema público, etc. O Web Service obtém estes dados e retorna a situação de crédito deste consumidor para o site. Este é apenas um exemplo, entre tantos, de utilização de Web Services. Os Web Services são na essência interoperabilidade-conectando programas e aplicações a outros programas e aplicações, especialmente quando estes são desenvolvidos usando diferentes linguagens, ferramentas ou plataformas. A tecnologia chave para esse fim, o XML, tem todo um potencial de implementação e integração com a tecnologia JEE (Java Enterprise Edition). Os objetivos deste trabalho são determinar a aplicação da tecnologia Web Services para integração de sistemas heterogêneos e construção de sistemas abertos; verificar como a plataforma Java pode ser usada para desenvolvimento de Web Services e desenvolver um protótipo de uma aplicação Web Services com Java. No capítulo 2 encontra-se a metodologia utilizada neste trabalho. O capítulo 3 traz uma visão geral dos Web Services e o capítulo 9 descreve a API (Application Programming Interface) Java destinada aos Web Services. Enquanto que no capítulo 11 encontram-se as conclusões deste trabalho.

17 17 2. METODOLOGIA Este trabalho foi desenvolvido segundo as etapas descritas a seguir: 1. Levantamento Bibliográfico, o qual foi feito buscando-se materiais através de sites na Internet, consultas e leituras de livros e artigos em revistas. 2. Estudo de Web Services, em continuidade ao levantamento de materiais, consistiu no estudo propriamente dito dos Web Services. 3. Elementos de aplicações Web Services foi feito o levantamento dos mesmos, utilizados pelos Web Services. 4. Estudo das APIs (Application Programming Interface) Java para desenvolvimento de aplicações Web Services foi iniciado o levantamento e estudo inicial das APIs Java relacionadas à Web Services. 5. Desenvolver protótipo foi feito o levantamento dos elementos necessários para o início do desenvolvimento do protótipo. 6. Avaliação de resultados foi iniciada assim que se começou a desenvolver o protótipo dos Web Services. 7. Escrita da monografia foi desenvolvida desde o decorrer dos estudo de Web Services e o início do levantamento e estudo dos elementos de aplicações Web Services e sendo dado continuidade na mesma com o decorrer dos estudos.

18 18 3. VISÃO GERAL DOS WEB SERVICES Com a popularização da web surgiram oportunidades. O protocolo HTTP (HyperText Transfer Protocol) e o formato de dados XML foram rapidamente adotados pela maioria das empresas criando uma base para formar uma infraestrutura comum de middleware com possibilidades de reduzir a heterogeneidade entre interfaces e sistemas. Na figura 1.1 pode-se verificar uma estrutura do funcionamento da web. Figura Funcionamento da web. Mas HTTP e XML sozinhos não são suficientes para suportar a integração de aplicações. Eles não definem linguagens de definições de interfaces, não definem serviços de nomes e diretórios, não definem protocolos transacionais. Faltam estas e muitas outras abstrações necessárias para integrar aplicações. Tudo isto que falta é o que se espera que os Web Services resolvam. Os Web Services se baseiam na idéia de que determinadas funcionalidades serão disponibilizadas pela empresa como serviços. Em termos de middleware, um serviço é uma procedure, um método ou um objeto com uma interface estável e publicada que pode ser acessada por um outro programa. Para Abinader e Lins (2006, p. 10) os Web Services surgiram como conseqüência natural da utilização da Internet. Alguns consideram essa utilização massificada, como um processo que produz a evolução desse meio de comunicação entre pessoas, e também como grande rede de computadores, o que naturalmente levou à possibilidade de se escrever aplicações e disponibilizá-las ao público em grande escala. Um dos aspectos básicos o modelo de desenvolvimento orientado a serviços, a chamada a um Web Service é feita por um outro sistema e esta chamada pode vir pela internet

19 19 de uma outra empresa que desenvolve seus sistemas de forma completamente diferente. Então é importante que os serviços sejam projetados de modo com menor acoplamento possível entre as diferentes aplicações. Com o aumento do uso de Web Services se pode chegar a tão sonhada e há longo tempo exaltada arquitetura baseada em serviços onde tudo são serviços e diferentes serviços são autônomos e independentes. Se um dia isto for alcançado, componentes individuais poderão ser reusados e arranjados de diferentes modos com facilidade. Em outro aspecto básico os protocolos de middleware, proporcionaram mudanças importantes. Com Web Services, os protocolos de middleware precisam ser encarados de outra forma pois atuam de modo ponto a ponto interligando empresas diferentes. Protocolos convencionais, como por exemplo o controle transacional do tipo two phase commit, se baseiam em premissas que não seguem mais válidas como a existência de um coordenador central de transações com poder de travar recursos. Outros protocolos e padrões são necessários também para levar em conta e obter um consenso sobre questões de segurança, confiabilidade, gerenciamento e muitos outros. O que antes era obtido por um coordenador central agora será garantido pelo uso de padrões.

20 PADRONIZAÇÃO A padronização, um outro aspecto básico, é mais do que um benefício, é uma necessidade. Sem padrões não se consegue a interoperabilidade. Isto tem sido reconhecido por todos e os muitos padrões que existem, foram feitos com a colaboração de grandes empresas de software (BEA Systems, Oracle, IBM (International Business Machines), Sun (Stanford University Network), Novell, Microsoft e outras). Essas empresas, que fazem parte do consórcio, são todas partidárias da linguagem Java (Jandl, 2007). Para Veloso (2007, p. 6) [...]. A internet é um bom exemplo de ambiente facilitador de interoperabilidade, e padronização é uma palavra importante na grande rede, pois nela deve-se garantir que a informação transmitida será entendida pelo receptor, como os diversos browsers e aplicações clientes existentes. As instituições responsáveis pela padronização dos Web Services são o W3C (World Wide Web Consortion) e o OASIS (Organization for the Advancement of Structured Information Standards), e ainda a WS-I (Web Services Interoperability Organization) e a Liberty Alliance. Todas, pretendem fomentar o desenvolvimento da padronização de protocolos de Internet. No entanto, a WS-I elegeu como principal foco a orientação da implementação e promoção da interoperabilidade entre as plataformas, aplicações e linguagens de programação. Empresas como IBM e Microsoft, duas das maiores do setor de tecnologia, apóiam o desenvolvimento deste padrão. Apesar disso, alguns padrões não são abertos. Os padrões WS-* da OASIS contém uma mensagem de copyright que poderia ser uma ameaça de futura cobrança de royalties pelo uso. Felizmente participam muitas empresas e algumas já fizeram declarações formais de que nunca cobrarão nada. Tem-se alguns exemplos de padrões como SOAP, WSDL, WS-ReliableMessaging, WS-Eventing, WS-Coordination, WS-Security, etc.

21 DEFINIÇÕES DE WEB SERVICES Segundo o W3C (2006), Web Service é uma aplicação de software identificada por uma URI (Uniform Resource Identifier) cujas interfaces e ligações são capazes de serem definidas, descritas e descobertas como artefatos XML. Um Web Service suporta interação direta com outros agentes de software usando mensagens baseadas em XML trocadas via protocolo baseado na Internet. Para Sampaio (2006, p. 38) um Web Service é um aplicativo servidor que disponibiliza um ou mais serviços para seus clientes, de maneira francamente acoplada. Web Services são serviços computacionais oferecidos através da web que são acessíveis a partir de qualquer serviço web habilitado em uma máquina com acesso à Internet. Web Services permitem a interoperabilidade através de um conjunto de normas abertas baseadas em XML. As empresas utilizam o WSDL baseando em XML para descrever os seus Web Services na Internet e listá-los em um registro como a UDDI baseada em XML. UDDI permite encontrar publicamente disponíveis Web Services como mostrado na figura 2.1. Um cliente envia um pedido ao serviço da secretaria, que irá informar o cliente sobre os serviços registados que atendam aos critérios do pedido. SOAP é então usada para comunicar (usando HTTP e XML como o mecanismo de troca) entre as aplicações rodando em diferentes plataformas. Figura 2.1 Protocolos Web Services. Uma das características dos Web Services é que eles são um recurso web. São acessados usando protocolos web independentes de plataforma e de linguagem como HTTP por exemplo. Estes protocolos web propiciam fácil integração de ambientes heterogêneos. Outra característica é que ele provê uma interface, a tal API web, que pode ser acessada por outro programa. Esta interface aplicação-aplicação pode ser invocada de

22 22 qualquer tipo de aplicação. A API web habilita o acesso a lógica da aplicação que implementa o serviço. Um Web Service é registrado e pode ser localizado através de um registro de Web Services. O registro permite aos consumidores encontrar os serviços que satisfazem suas necessidades. Os consumidores dos serviços normalmente são outras aplicações mas podem também ser humanos. Os sistemas conectados aos Web Services devem ser fracamente acoplados. Os Web Services se comunicam passando mensagens XML entre si pela API web. Isto adiciona uma camada de abstração ao ambiente fazendo que as conexões sejam flexíveis e fáceis de se adaptar. Os serviços participantes de uma arquitetura baseada em serviços devem ser coesos e com o mais fraco acoplamento possível. Um Web Service expõe suas funcionalidades para os clientes através de um documento XML conhecido como WSDL, isto é, Web Services Description Language. O WSDL é um schema e por ele se pode saber quais tipos de dados, formatos das mensagens e serviços disponibilizados. Os principais papéis nesse tipo de arquitetura podem ser vistos na figura 2.2: Figura 2.2 Principais papéis nesse tipo de arquitetura. Fonte: Disponível em: O Web Service provider é onde se implementa uma aplicação do tipo Web Service, como um servidor de aplicação web, por exemplo. O UDDI registry é o local onde se publica os Web Services. E o Web Service requestor é o ponto onde se localiza a aplicação que necessita usar um Web Service, isto é, o cliente. A figura 2.3 nos fornece uma visão geral deste processo: A aplicação cliente, após localizar o serviço remoto (definido por um documento WSDL), invoca os seus serviços

23 23 através de RPC (Remote Procedure Call). O Web Service recebe a chamada, a processa e envia uma resposta. É válido lembrar, que ambos (cliente e Web Service) "conversam" usando SOAP encapsulado sobre HTTP. Figura 2.3 Aplicação cliente acessando diretamente um Web Service. Fonte: Disponível em:

24 24 4. XML Segundo Faria (2005, p. 11) o XML é uma linguagem de marcação que consegue armazenar todo tipo de dados, descrevendo-os. Essa capacidade também é chamada de selfdescribe data, ou dados autodescritivos e, por utilizar caracteres Unicode, pode armazenar qualquer tipo de caractere ou símbolo, fazendo a representação de informações em qualquer idioma ou cultura. Aplicações Web Services freqüentemente transmitem informações usando documentos XML. Os desenvolvedores cujas aplicações aceitam documentos XML devem compreender qual a melhor forma de extrair informações a partir desses documentos XML e utilizar essa informação no processamento de seus negócios. Eles também devem entender como montar documentos XML a partir dos resultados deste processamento de negócios. Graças a portabilidade do XML, pode-se ter então aplicações trocando informações com plataformas diferentes. É na camada de rede via HTTP que os Web Services se comunicam, isto é, um programa feito em uma linguagem precisa apenas "entender" um arquivo XML para se conectar a um Web Service feito em outra linguagem. Muitos destes conceitos para projetar aplicativos baseados em XML, são de natureza genérica, que se aplica a qualquer aplicação com manipulação de documentos XML. Desde que Web Services são aplicativos baseados em XML, estes conceitos são especialmente aplicáveis à concepção de parâmetros e clientes dos Web Services. É importante compreender conceitos XML do ponto de vista das aplicações com manipulação de documentos XML. Com este conhecimento, você está em melhor posição para avaliar o impacto da sua concepção de decisões sobre a execução e os resultados das suas aplicações baseadas em XML. Essencialmente, o XML é uma linguagem de marcação que permite conteúdo de dados hierárquicos extrapolados a partir da linguagem de programação das estruturas de dados a ser representada como um documento de texto marcado. Como uma linguagem de marcação, XML usa as tags para marcar pedaços de dados. Cada tag tenta atribuir significado aos dados a ela associados, ou seja, transformar os dados em informações. Se você souber SGML (Standard Generalized Markup Language) e HTML (HyperText Markup Language), então XML, em seguida, irá se tornar familiar a você. XML é derivado de SGML e também tem algumas semelhanças com HTML, que também é um subconjunto do SGML. Mas ao contrário de HTML, XML é centrado na representação de dados ao invés da exposição do usuário final.

25 De acordo com Décio (2000, p. 12) XML é uma linguagem usada para descrever e manipular documentos estruturados. A manipulação de documentos XML é feita por meio desta estrutura. Um documento XML é estruturado em forma de árvore. Possui sempre um elemento-raiz, de onde outros elementos vão se ramificar. Essa estrutura em árvore estabelece como documentos XML vão ser definidos e como vão ser tratados. O tratamento envolve principalmente encontrar um determinado elemento, ou grupo de elementos para serem processados. XML: Na listagem 1 existe um documento formatado de acordo com a especificação da <?xml version="1.0" encoding="iso "?> <!DOCTYPE documento SYSTEM "Documento.dtd"> <?xml-stylesheet type="text/xsl" href="documento.xsl"?> <documento> <título>servidor de Documentos XML Usando JAVA</título> <capítulo> <título>capítulo 1 - Introdução</título> <seção> <título>1.1 - Considerações Iniciais</título> <conteúdo> <parágrafo>...</parágrafo> <parágrafo>com esse crescimento, os documentos eletrônicos estão tornando-se cada vez mais complexos, gerando, com isso, uma grande limitação na sua manipulação e falta de extensibilidade e intercâmbio com outras aplicações. </parágrafo> <parágrafo>...</parágrafo> </conteúdo> </seção> <seção> <título>1.2 - Motivação</título > <conteúdo> <parágrafo>...</parágrafo> </conteúdo> </seção> </capítulo> </documento> Listagem 1 Exemplo de XML. No exemplo de XML na listagem 1, <?xml version="1.0"?> esta é uma instrução padrão, que sempre deve ser inserida no começo de um documento XML. É importante ressaltar que se você for usar elementos da língua portuguesa como acento, cedilha, etc, deverá usar o seguinte código: <?xml version="1.0" encoding="iso "?>. A seguir à declaração do XML vem a declaração do tipo de documento <!DOCTYPE documento SYSTEM "Documento.dtd"> <?xml-stylesheet type = "text/xsl" href = "Documento.xsl"?>. Em um documento XML sempre deve ter um Elemento Principal (root tag), e nesse exemplo na listagem 1, <documento> é o elemento principal. Ele é importante para receber e 25

26 26 organizar as demais marcações. Sem ele os dados ficam "soltos" pelo código. <título> </título>, <capítulo> </capítulo>, <seção> </seção>, <conteúdo> </conteúdo>, <parágrafo> </parágrafo>, estes são elementos secundários de um documento XML, eles são "campos" onde você armazenará os dados. Após à inserção de todos os elementos necessários a root tag é fechada. Os comentários não podem aparecer dentro dos elementos e possuem a mesma sintaxe do HTML, <!- - isto é um comentário - ->. O XML é case-sensitive, <Título> é diferente de <título>, as marcações XML fazem distinção entre letras minúsculas e maiúsculas. As tags de abertura e de fechamento devem ser iguais. Todos os elementos devem estar contidos num elemento raiz que identifica o domínio. Os elementos XML não podem começar por números, ou sinais de pontuação, embora possam incluir números e os caracteres: "_" e ":".

27 XML SCHEMAS Um Schema é um termo do vocabulário XML para expressar regras de negócio (W3C, 2007 B). O Schema especifica também que o vocabulário XML criado será válido em um namespace. Costuma-se usar URLs (Uniform Resource Locator) para identificar um namespace, lugar onde todos os nomes são únicos. O programa interpretador não vai até a URL para validar o namespace. Serve apenas para garantir que os nomes são únicos no documento. Um dos objetivos dos Schemas (e DTDs, Document Type Definitions) é especificar a estrutura da instância dos documentos, isto é, este elemento contém tais elementos, que por sua vez contém estes outros elementos, etc. Outro objetivo é especificar também o tipo de dado de cada elemento/atributo, isto é, este elemento deve ser um inteiro variando de 0 a (DTDs não servem para especificar tipos de dados como estes do exemplo com faixa de variação). A motivação para usar Schemas é a insatisfação com DTDs. Para Faria (2005, p. 28) o DTD estabelece um conjunto de regras que definem a composição do documento a partir de uma gramática formal. Sua estrutura é a de uma base hierárquica e granular, detalhando quais elementos podem ser usados e onde eles podem ser aplicados. DTDs possuem sintaxe diferente, isto é, escreve o documento XML (instância) usando uma sintaxe e o DTD usando outra o que é ruim e inconsistente. Possuem capacidade limitada de definir tipos de dados, não suportam elementos variando dentro de uma faixa. Faltam um monte de tipos de dados suportados pelos bancos de dados. DTDs suportam 10 tipos de dados e Schemas XML suportam mais de 44 tipos de dados. Os pontos fortes dos Schemas é que possuem mais e melhores tipos de dados, mais de 44 ao invés de 10 e possibilidades de criar tipos de dados próprios, a mesma sintaxe dos documentos XML com menos a memorizar, é orientado a objeto, onde pode estender ou restringir um tipo e derivar novas definições de tipos baseados em outros já definidos, pode definir que os elementos filhos ocorram em determinada ordem, pode especificar o conteúdo de um elemento como sendo único, pode definir elementos de mesmo nome mas conteúdo diferente, pode definir elementos com conteúdo nulo e pode definir elementos substituíveis (aliases). Os elementos de um Schema são schema, simpletype, Atributos, restrições, complextype, Indicadores e outros elementos. Todo schema é um arquivo XML que começa com o elemento schema (xfront, 2007).

28 28 O elemento schema pode ter atributos, contém os namespaces de todos os elementos, os namespaces qualificam elementos declarando sua validade em determinado namespace e indica se os elementos precisam do namespace qualificado. Um elemento simples (simpletype) é um elemento XML que contém somente texto e não contém outros elementos ou atributos. Por texto entenda-se que pode ser um dos diferentes tipos pré definidos (boolean, string, date, etc.) ou pode ser um tipo customizado. Se pode impor restrições em um tipo de dado para limitar seu conteúdo ou especificar um padrão. Elementos simples não podem ter atributos e se tiverem passam a ser um tipo complexo (complextype). Porém atributos são declarados como tipo simples. Restrições são usadas para definir valores aceitáveis para os elementos XML ou os atributos. Um elemento complexo é um elemento XML que contém outros elementos ou atributos. Há quatro tipos de elementos complexos que são os elementos vazios, elementos contendo outros elementos, elementos contendo somente texto, elementos contendo outros elementos e também texto. Cada um dos tipos citados também pode ter atributos. Elementos complexos são definidos como complextype. O controle de como os elementos são usados nos documentos é feito usando um dos sete indicadores, que são os indicadores de ordem: All, Choice, Sequence, os indicadores de ocorrências: maxoccurs, minoccurs e os indicadores de grupos: Group name, attributegroup name. Outros elementos que podem ser usados é o elemento <any> e o atributo <anyattribute>. O elemento <any> permite extender o documento XML com elementos não especificados no schema. O atributo <anyattribute> permite extender o documento XML com atributos não especificados no schema. Substituição de elementos com <substitutiongroup>, no documento XML o elemento poderá ser chamado por mais de um nome. Há muitos tipos de dados já pré definidos tais como: string, boolean, decimal, float, double, duration, datetime, time, date e muitos outros. Segundo Faria (2005, p. 45 e 49) um elemento simples é um elemento XML que comporta apenas texto, não podendo conter outros elementos ou atributos. Em um elemento composto, pode-se guardar outros elementos ou atributos; reservar elementos sem conteúdo, ou outros elementos e textos; como também inserir apenas texto em sua estrutura. Na listagem 2 tem-se um exemplo da declaração de um elemento simples e um composto: <xsd:simpletype name= idade >

29 <xsd:restriction base= xsd:positiveinteger > <xsd:maxexclusive value= 100 /> </xsd:restriction> </xsd:simpletype> <xsd:complextype name= tipoendereco > <xsd:sequence> <xsd:element name= rua type= xsd:string > <xsd:element name= numero type= xsd:decimal > </xsd:sequence> </xsd:complextype> Listagem 2 Declaração de um elemento simples e um composto. 29

30 XML-RPC O RPC (Remote Procedure Call) que significa chamada a uma procedure em uma máquina remota é uma técnica poderosa para construir aplicações distribuídas. É baseada na extensão do conceito de chamada de procedure. Como o nome Remote sugere, a procedure chamada não precisa estar na mesma máquina. Os dois processos podem estar no mesmo sistema ou separadas pela internet. Usando RPC os programadores não precisam se preocupar com detalhes das interfaces de rede. XML-RPC é um padrão que permite fazer chamadas remotas a procedures pela internet usando XML sobre HTTP. É muito mais simples e mais fácil de usar do que o SOAP. Tem implementações para praticamente todas as linguagens. O Apache XML-RPC é a implementação Java do XML-RPC (Apache Web Services Project, 2007 A). Na figura 3.1 verifica-se o funcionamento do XML-RPC: Figura 3.1 Funcionamento do XML-RPC. Fonte: Disponível em: Um objetivo do XML-RPC é funcionar em diversos ambientes e passar por firewalls, onde um dos objetivos deste protocolo é ter uma base compatível com diversos ambientes sem precisar nada além do que pode ser feito com um script CGI (Common Gateway Interface). Todos os softwares de firewall podem ler POSTs cujo Content-Type é text/xml. Outro objetivo é ser fácil de usar e entender. A idéia é ter um formato extensível que seja bem simples. Deve ser possível para alguém que saiba escrever HTML entender o conteúdo de um arquivo com uma chamada de procedure XML-RPC e ser capaz de modificálo se necessário.

31 Um outro objetivo é ser fácil de implementar. E além disto, que possa ser rapidamente adaptado para rodar em outros ambientes ou outros sistemas operacionais. A especificação do XML-RPC é extremamente simples e sua implementação independe de plataforma. Foi escrita por um dos criadores do SOAP. XML-RPC é suportado por implementações em Java, C/C++,.NET, ASP, PHP, Python, Lisp, Perl, Ruby, Tcl, Delphi, WebObjects, Zope e outras. Uma mensagem XML-RPC vai no corpo de uma requisição POST HTTP e o retorno da procedure volta no corpo da resposta HTTP. O corpo da requisição e da resposta é em XML. Uma procedure é executada no servidor e o valor retornado também é formatado em XML. A resposta pode também conter motivos de uma falha na chamada da procedure remota. Os parâmetros da procedure podem ser escalares, números, strings, datas, etc. e também tipos mais complexos como structs e arrays. Se o tipo do dado não for especificado, assume string. XML-RPC suporta os seguintes tipos de dados: int, string, double, boolean, base64, date.time.iso8601, C/C++ struct e arrays. A Fundação Apache tem uma ótima implementação em Java para escrever tanto o lado cliente como o lado servidor. A versão 3 do Apache XML-RPC é conforme com a especificação XML-RPC. Porém o usuário pode habilitar várias extensões disponíveis que podem aumentar o poder do XML-RPC. As principais são as seguintes: aceita todos os tipos primitivos do Java e mais objetos Calendar, podem ser transmitidos nós DOM (Document Object Model) e objetos JAXB (Java Architecture for XML Binding). E objetos que implementam a interface java.io.serializable, tanto o servidor como o cliente podem operar no modo streaming. Isto preserva recursos de modo muito melhor do que o padrão XML-RPC baseado em grandes arrays de bytes. O uso das extensões só tem sentido se ambos os lados usam Apache XML-RPC. Na listagem 3 tem-se um exemplo de uma RPC, usando HTTP para o transporte: POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:soap-env=" SOAP-ENV:encodingStyle=" <SOAP-ENV:Header> <t:transaction xmlns:t="some-uri" SOAP-ENV:mustUnderstand="1"> 5 31

32 32 <t:transaction> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:getlasttradeprice> xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Listagem 3 Exemplo de uma RPC usando HTTP para o transporte. As primeiras 4 linhas do exemplo na listagem 3 definem o cabeçalho HTTP, incluindo dados como o tamanho do pacote, o tipo dos dados transmitidos, etc. Note que, em seguida, aparece um campo chamado SOAPAction. Ele é usado para informar o propósito da requisição HTTP SOAP. Seu valor é uma URI (Uniform Resource Identifier), identificando esta intenção. Toda requisição HTTP SOAP deve conter este campo de cabeçalho. A presença do campo SOAPAction definido pode ser utilizado por firewalls, para filtrar as requisições SOAP feitas usando HTTP. Por exemplo, um pacote poderia ser filtrado (bloqueado) caso a mensagem não possuísse este campo definido, ou com um valor previamente especificado. O elemento Envelope especifica, a URI que identifica o namespace utilizado por esta requisição SOAP. Especifica que é o namespace padrão para todas as mensagens SOAP e que o estilo de codificação (encodingstyle) é definido pela URI e identifica o estilo de codificação definido na seção 5 da especificação SOAP. O cabeçalho Header define, que um atributo chamado Transaction que define um namespace (URI) para o elemento. Define o atributo mustunderstand=1 que especifica que o cabeçalho deve ser processado pelo receptor da mensagem e define o valor 5, que deve ser um valor compreendido pelos serviços que processam esta mensagem. O elemento Body define, que uma chamada de método GetLastTradePrice e seu respectivo namespace e que o elemento DIS especifica um parâmetro contido na chamada de método GetLastTradePrice.

33 33 5. SOAP Os serviços são acessados através de mensagens formatadas usando o padrão SOAP, Simple Object Access Protocol. Segundo Sampaio (2006, p. 25) SOAP foi criado inicialmente para possibilitar a invocação remota de métodos através da Internet. Surgiu na época em que as alternativas eram DCOM (Distributed Component Object Model), CORBA (Common Object Request Broker Architecture) ou RMI (Remote Method Invocation). Uma mensagem SOAP é escrita em XML de acordo com alguns schemas e usa HTTP como transporte. Além do estilo RPC para o qual foi criado, atualmente SOAP pode ser usado também para mensagens no estilo Document, isto é, simples mensagens de texto. SOAP é um protocolo de comunicação baseado em XML e formato de codificação para comunicação entre aplicação. Originalmente concebida pela Microsoft e Userland softwares, que se desenvolveu através de várias gerações, a especificação atual é a versão, SOAP 1.2, embora versão 1.1 está mais disseminada. O grupo de trabalho Protocolo XML do W3C (World Wide Web Consortium) está a cargo da especificação. SOAP é largamente visto como a espinha dorsal de uma nova geração de multi plataforma, multi linguagem de aplicações de computação distribuída, denominada Web Services. O SOAP é um protocolo elaborado para facilitar a chamada remota de funções via Internet, permitindo que dois programas se comuniquem de uma maneira tecnicamente muito semelhante à invocação de páginas web. Os clientes podem procurar os serviços de duas maneiras, onde uma delas através do acesso direto ao documento WSDL e a outra usando um serviço de registro via interface UDDI. As mensagens SOAP para serviços com características especiais como segurança, tratamento de eventos, coordenação, controle transacional, etc., isto é, serviços que se enquadram nos padrões WS-*, devem incluir trechos de XML padronizados pelas especificações WS-*. As mensagens SOAP devem também se manter de acordo com WS-I Basic Profile 1.0, que é definido como um conjunto de especificações não proprietárias mais esclarecimentos e emendas, que visam promover a interoperabilidade. O WS-I Basic Profile 1.0 ainda não inclui a versão SOAP 1.2.

34 34 SOAP é um protocolo de comunicação, é para comunicação entre aplicações, é um formato para enviar mensagens, é projetado para comunicar via internet, é independente de plataforma, é independente de linguagem, é baseado em XML, é simples e extensível, permite passar mensagens por firewalls e é um padrão W3C. W3C iniciou com SOAP em A atual recomendação W3C é 1.2 e cobre quatro áreas: O formato de mensagens para comunicação one-way descrevendo como uma mensagem pode ser empacotada como um documento XML, a descrição de como deve ser transportada usando HTTP ou SMTP uma mensagem SOAP (ou o documento XML que é a mensagem SOAP), o conjunto de regras a ser seguido quando processando uma mensagem e uma classificação simples das entidades envolvidas no processamento da mensagem. Também especifica quais partes da mensagem devem ser lidas e por quem e ainda como reagir quando o conteúdo não for compreendido, o conjunto de convenções de como transformar uma chamada RPC em uma mensagem SOAP e vice-versa. De acordo com Hendricks et al (2002, p. 33) o SOAP é um protocolo de computação superficial distribuído que permite a troca de informações em um ambiente descentralizado e distribuído. A especificação SOAP define um framework para a transmissão de mensagens entre sistemas distribuídos, além de convenções para a transmissão de chamadas e respostas de procedimentos remotos. SOAP foi originalmente projetado para servir de infra-estrutura mínima para fazer RPC pela internet. Com o uso do XML como representação intermediária comum entre sistemas para uma estrutura simples da mensagem e mapeamento para HTTP para fazer tunneling através de firewalls e usar a infra-estrutura web. A idéia era evitar os problemas associados com CORBA que fazia papel similar usando representação intermediária não padrão. O objetivo era ter uma extensão que pudesse ser facilmente conectada nas plataformas de middleware existentes. Eventualmente SOAP começou a ser apresentada como um veículo genérico para troca de mensagens entre computadores através da Internet e então foi aberto para suportar outras interações além de RPC e a usar protocolos de transporte além de HTTP. SOAP é fundamentalmente um modelo de troca de mensagens one way e sem estado. Mas permite que as aplicações criem modelos mais complexos de interação (Request/Response). O foco de SOAP é a integração entre aplicações heterogêneas e troca de dados. É um arquivo XML, mais regras que ditam seu uso. Encapsula dados e define regras para transmitir e receber dados. Trafega como payload de outros protocolos de rede.

35 35 A estrutura da mensagem SOAP é formada por: Envelope, Header: (opcional) conteúdo do header, Body: conteúdo do body ou fault e anexos (opcionais). Na figura 4.1 verifica-se a estrutura da mensagem SOAP. Figura 4.1 Estrutura da mensagem SOAP. O elemento Envelope é a raiz da mensagem SOAP e é obrigatório, ele define o documento XML como uma mensagem SOAP e define os namespaces da mensagem. As mensagens SOAP do tipo fault são os mecanismos pelos quais as aplicações SOAP reportam os erros para os nós anteriores na trilha das mensagens. São como as Exceptions do Java. Elas são geradas pelos receivers que tanto podem ser os intermediários como o último (ultimate receiver). O receiver é obrigado a enviar uma mensagem fault somente no modo de mensagens Request/Response. No modo one-way, o receiver deve criar a mensagem fault e pode guardar em qualquer lugar mas não a transmitirá para o sender. As mensagens faults são retornadas para o sender imediatamente anterior ao receiver. Estas mensagens contém no campo body um único elemento fault com dois sub elementos obrigatórios e opcionalmente mais dois sub elementos. Os dois sub elementos obrigatórios são: Code: precisa conter o sub elemento Value com o valor do erro definido no namespace do SOAP. Os valores de Value podem ser: VersionMismatch: namespace do XML não bate com o do recipiente; MustUnderstand: atributo obrigatório do header não entendido; DataEncodingUnknown: o recipiente não suporta o encoding especificado;

36 36 Receiver: ocorreu um erro no recipiente não relacionado com a mensagem; Sender: a mensagem não foi processada por erro do sender (falta informação ou mensagem mal formada). Pode ter um outro sub elemento opcional Subcode para refinar o código de erro. Reason: explicação do erro legível por humanos contida no sub elemento Text. Os dois sub elementos opcionais são: Detail: pode aparecer dentro dos outros sub elementos e serve para conter mais detalhes do erro; Node: opcional quando vem de um ultimate receiver, obrigatório quando vem de um recipiente intermediário. Este elemento é inserido por uma aplicação antes do ultimate receiver que encontra um erro. Na figura 4.2 verifica-se uma estrutura de mensagem SOAP com anexos. Os anexos podem ser imagens, PDFs (Portable Document Format), arquivos binários, etc. O SOAP com anexos não está no BP (Basic Profile) 1.1. Attachments Profile 1.0 é o complemento do BP para tratar anexos. Figura 4.2 Estrtura da mensagem SOAP com anexos.

37 37 Os modelos de troca de mensagens (Message Exchange Patterns) são: one-way, Request/Response, Notification e Solicit/Response. Nas mensagens one way o cliente envia uma mensagem a um Web Services, mas não espera uma resposta. Nas mensagens Request/Response o cliente inicia a comunicação enviando ao Web Services uma requisição e o Web Services devolve uma mensagem resposta. Na figura 4.3 pode-se verificar o funcionamento de envio de mensagens. Figura 4.3 Funcionamento de envio de mensagens.

38 38 6. WSDL WSDL é um documento XML que segue um schema XML próprio dos WSDL, é usado para descrever Web Services, é também usado para localizar Web Services. WSDL representa um contrato entre o cliente que requisita os serviços e o provedor dos serviços (W3C, 2007 A). WSDL não é simples pois a intenção dos seus criadores foi criar para os Web Services, uma linguagem de definição de interface (IDL, Interface Definition Language) não amarrada a nenhum protocolo, nenhuma linguagem de programação e nenhum sistema operacional, e também pela preocupação dos criadores com sua modularidade de modo a permitir seus artefatos. Isto dificulta a leitura de um documento WSDL. WSDL em geral são criados e processados de forma automática por ferramentas computacionais. Assim raramente precisamos ler ou escrever documentos WSDL. Sem uma linguagem padrão de descrição dos serviços, seria preciso ler um manual de instruções para entender os Web Services (W3Schools, 2007). Um documento WSDL mostra o formato da mensagem, o protocolo Internet e o endereço onde localizar o Web Service. Com WSDL se pode descrever precisamente como usar o serviço e usar ferramentas computacionais que entendem WSDL facilitando bastante várias etapas do uso dos Web Services. Os elementos básicos de um documento WSDL mostrados na figura 5.1 são: definitions, types, message, porttype, binding e service. Figura 5.1 Principais elementos de um WSDL.

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

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

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

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

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica Desenvolvimento de Web Services com SOAP. 1. Introdução. Com a tecnologia de desenvolvimento

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Serviços Web: Arquitetura

Serviços Web: Arquitetura Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Projeto: Plataforma de Integração. Data: 01/08/2014

Projeto: Plataforma de Integração. Data: 01/08/2014 Manual do Usuário - Autenticação Plataforma de Integração Arquitetura de Software 1.0 20/03/2014 1 de 8 Histórico de Revisões Data Versão Descrição 01/08/2014 1.0 Criação do documento 04/08/2014 1.1 Revisão

Leia mais

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/2007 20.10.2006. Faculdade de Ciências da Universidade de Lisboa

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/2007 20.10.2006. Faculdade de Ciências da Universidade de Lisboa Alexandre Zua Caldeira Tecnologias de Middleware 2006/2007 Faculdade de Ciências da Universidade de Lisboa 20.10.2006 1 Introdução Definições Limitações do Middleware Estudado Integração com Web Services

Leia mais

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação Internet Gabriela Trevisan Bacharel em Sistemas de Infomação Histórico da Web World Wide Web o nosso www é o meio de comunicação mais utilizado no mundo atualmente. Através da WWW qualquer usuário conectado

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas BPM e SOA Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Como funcionam as organizações? O que ébpm Business Process Management (BPM)

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente

Leia mais

Criando Web Services. Palestrante: Daniel Destro do Carmo

Criando Web Services. Palestrante: Daniel Destro do Carmo Criando Web Services com Apache Axis Palestrante: Daniel Destro do Carmo Tópicos do Tutorial Introdução O que são Web Services? Padrões Web Services SOAP WSDL Web Services com Java O que é Apache Axis?

Leia mais

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

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML. Web services Um web service é qualquer software que está disponível através da Internet através de uma interface XML. XML é utilizado para codificar toda a comunicação de/para um web service. Web services

Leia mais

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano. No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano. Essa estratégia foi deixada para trás. Atualmente, o software de rede é altamente

Leia mais

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

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL Sistemas Distribuídos na Web Pedro Ferreira DI - FCUL Arquitetura da Web Criada por Tim Berners-Lee no CERN de Geneva Propósito: partilha de documentos Desde 1994 mantida pelo World Wide Web Consortium

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

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

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

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

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

3 Qualidade de Software

3 Qualidade de Software 3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

2 Ferramentas Utilizadas

2 Ferramentas Utilizadas 2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]

Leia mais

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Sistemas de Informação RENATO SULZBACH MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

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

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

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

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. Modelo Cliente/Servidor Por HIARLY ALVES Fortaleza - CE Apresentação. O mais famoso tipo de arquitetura utilizada em redes de computadores

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações

3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações 34 3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações As classes do Modelo de Operações representam a definição de como deve ser uma operação em uma aplicação, ou seja, quais os valores

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP Web Services & SOAP Tecnologias de Middleware 2004/2005 SOAP Simple Object Access Protocol Os web services necessitam de comunicar entre eles e trocar mensagens. O SOAP define a estrutura e o processamento

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Projuris Enterprise Visão Geral da Arquitetura do Sistema

Projuris Enterprise Visão Geral da Arquitetura do Sistema Projuris Enterprise Visão Geral da Arquitetura do Sistema Março/2015 Página 1 de 17 Projuris Enterprise Projuris Enterprise é um sistema 100% Web, com foco na gestão de contencioso por empresas ou firmas

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

HTML Página 1. Índice

HTML Página 1. Índice PARTE - 1 HTML Página 1 Índice HTML A HISTÓRIA... 2 O COMEÇO E A INTEROPERABILIADE... 3 Primeira Página... 4 Entendendo seu código... 5 Abrindo o código fonte da sua página... 6 Comentários na página...

Leia mais

ITBI ONLINE MANUAL DE INTEGRAÇÃO

ITBI ONLINE MANUAL DE INTEGRAÇÃO SEMFAZ ITBI ONLINE MANUAL DE INTEGRAÇÃO O Manual de Integração é um documento que apresenta as especificações e critérios técnicos necessários para utilização do Web Service que irá recepcionar o lote

Leia mais

REDE DE COMPUTADORES

REDE DE COMPUTADORES SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL REDE DE COMPUTADORES camadas do Modelo de Referência ISO/OSI Pilha de Protocolos TCP Prof. Airton Ribeiro de Sousa E-mail: airton.ribeiros@gmail.com 1 Camadas

Leia mais

Rede de Computadores (REC)

Rede de Computadores (REC) Rede de Computadores (REC) Aula 04 Camada de Aplicação Prof. Jackson Mallmann dcc2jm@joinville.udesc.br Exemplos de requisição via telnet. iniciar / executar / cmd (Windows) telnet endereço telnet 192.168.1.3

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo Universidade Federal do Espírito Santo Inteligência Artificial Agenda Semântica Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo Vitória 2007/02 Agenda Semântica

Leia mais

2 Gerenciamento de Log 2.1 Definições básicas

2 Gerenciamento de Log 2.1 Definições básicas 2 Gerenciamento de Log 2.1 Definições básicas Os logs são fontes riquíssimas de informação e são gerados pelos servidores e pelas aplicações conforme eventos significativos acontecem. Em [1], log é definido

Leia mais

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

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

Arquitetura Orientada a Serviços (SOA) Copyright e-core LTDA, 2010. Todos os direitos reservados.

Arquitetura Orientada a Serviços (SOA) Copyright e-core LTDA, 2010. Todos os direitos reservados. Arquitetura Orientada a Serviços (SOA) Visão Geral e-coree Estabelecida em 1999 Escritórios rios no Brasil e EUA Aproximadamente 100 profissionais Atua em prestação de serviços offshore desde 2004 Roteiro

Leia mais

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo Tópicos abordados Surgimento da internet Expansão x Popularização da internet A World Wide Web e a Internet Funcionamento e personagens da

Leia mais

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA FACILITADOR VIRTUAL DA APRENDIZAGEM EM QUÍMICA Campina Grande-

Leia mais

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela? Exercícios sobre Linguagem PHP: 1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela? 2) Considere a linguagem de programação PHP e seus operadores. A execução da sentença:

Leia mais

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova; Software Básico 2008.2 Trabalho Prático 1: programação de E/S, uso de sinais Prática de programação voltada a eventos Trabalho individual ou em dupla Data de entrega: 01/10/2008 1 O Objetivo Utilizando

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

CAPÍTULO 2. Entendendo a Internet

CAPÍTULO 2. Entendendo a Internet CAPÍTULO 2 Entendendo a Internet 2.1 O que é a Internet Internet é a rede mundial pública de computadores interligados, por meio da qual se transmite informações e dados para outros computadores conectados

Leia mais

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através

Leia mais

11/20/10. Resoluções: Teste de Áudio. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares.

11/20/10. Resoluções: Teste de Áudio. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares. Teste de Áudio Quero adaptar os softs que já temos e você não sabe como faz e diz que não é

Leia mais

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Alexandro Deschamps (Ápice) alexandro@apicesoft.com Everaldo Artur Grahl (FURB/DSC) egrahl@furb.br Resumo. Uma das grandes

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2 1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador

Leia mais

Java NET: Interaja com a Internet. Ricardo Terra (rterrabh [at] gmail.com) Java NET: Interaja com a Internet Maio, 2011 1

Java NET: Interaja com a Internet. Ricardo Terra (rterrabh [at] gmail.com) Java NET: Interaja com a Internet Maio, 2011 1 Java NET: Interaja com a Internet Ricardo Terra rterrabh [at] gmail.com Ricardo Terra (rterrabh [at] gmail.com) Java NET: Interaja com a Internet Maio, 2011 1 CV Nome: Ricardo Terra Email: rterrabh [at]

Leia mais

Portal do Projeto Tempo de Ser

Portal do Projeto Tempo de Ser Sumário Portal do Projeto Tempo de Ser O que é um Wiki?...2 Documentos...2 Localizando documentos...3 Links...3 Criando um Documento...4 Criando um link...4 Editando um Documento...5 Sintaxe Básica...5

Leia mais

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA Mário Meireles Teixeira DEINF-UFMA Motivação extensible Markup Language W3C: World Wide Web Consortium http://www.w3.org 1.0 W3C Recommendation, 10/Fev/1998 (inicial) W3C Recommendation, 04/Fev/2004, 3

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Componentes para Computação Distribuída

Componentes para Computação Distribuída Componentes para Computação Distribuída Conceitos Foi a partir do fenômeno da Internet (WWW), no início dos anos noventa, que a computação distribuída passou a ter relevância definitiva, a ponto de a Internet

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Microsoft.NET. Desenvolvimento Baseado em Componentes

Microsoft.NET. Desenvolvimento Baseado em Componentes Microsoft.NET Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br Desenvolvimento Baseado em Componentes Resolução de problemas específicos, mas que podem ser re-utilizados em

Leia mais

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

Leia mais

SISTEMAS DE INFORMAÇÃO GERENCIAIS

SISTEMAS DE INFORMAÇÃO GERENCIAIS SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo

Leia mais

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO Engenharia Elétrica Eletrônica Tutorial: Programação

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Atualizações de Software Guia do Usuário

Atualizações de Software Guia do Usuário Atualizações de Software Guia do Usuário Copyright 2009 Hewlett-Packard Development Company, L.P. Windows e Windows Vista são marcas registradas da Microsoft Corporation nos EUA. Aviso sobre o produto

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

Leia mais

Aula 1 Cleverton Hentz

Aula 1 Cleverton Hentz Aula 1 Cleverton Hentz Sumário da Aula Introdução História da Internet Protocolos Hypertext Transfer Protocol 2 A Internet é um conjunto de redes de alcance mundial: Comunicação é transparente para o usuário;

Leia mais

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite Resolução de Problemas de Rede Disciplina: Suporte Remoto Prof. Etelvira Leite Ferramentas para manter o desempenho do sistema Desfragmentador de disco: Consolida arquivos e pastas fragmentados Aumenta

Leia mais

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com REST Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com 1 RESTful REpresentation State Transfer Estilo de arquitetura de software para sistemas distribuídos Termo proposto por Roy Fielding

Leia mais

MANUAL DA SECRETARIA

MANUAL DA SECRETARIA MANUAL DA SECRETARIA Conteúdo Tela de acesso... 2 Liberação de acesso ao sistema... 3 Funcionários... 3 Secretaria... 5 Tutores... 7 Autores... 8 Configuração dos cursos da Instituição de Ensino... 9 Novo

Leia mais

ANEXO V Edital nº 03508/2008

ANEXO V Edital nº 03508/2008 ANEXO V Edital nº 03508/2008 Projeto de integração das informações de mandado de prisão e processos dos Tribunais Regionais Federais e do Tribunal de Justiça do Distrito Federal e Territórios O objetivo

Leia mais

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011 XML Básico Murillo Vasconcelos Henriques B. Castro 17 de maio de 2011 O QUE É? Sigla para extensible Markable Language É uma linguagem de marcação, assim como HTML Desenvolvida para ser auto explicativa

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

Programação Cliente em Sistemas Web

Programação Cliente em Sistemas Web Programação Cliente em Sistemas Web WEBSERVICES Cap 18. - Sistemas distribuídos e serviços web em Deitel, H.M, Sistemas Operacionais, 3 ª edição, Pearson Prentice Hall, 2005 Fonte: Rodrigo Rebouças de

Leia mais

Capítulo 2 Usabilidade... 24 2.1 Definição de usabilidade... 25 2.2 Resumo... 39 2.3 Leitura recomendada... 39

Capítulo 2 Usabilidade... 24 2.1 Definição de usabilidade... 25 2.2 Resumo... 39 2.3 Leitura recomendada... 39 Prefácio... IX Lista de Siglas e Abreviaturas... XIII Lista de Figuras e Quadros... XVI Capítulo 1 Portal web... 1 1.1 Definição de portal web... 3 1.2 Portal corporativo... 8 1.3 Resumo... 22 1.4 Leitura

Leia mais

DISTRIBUTED SYSTEMS ARCHITECTURES. Ian Sommerville, 8º edição Capítulo 12 Aula de Luiz Eduardo Guarino de Vasconcelos

DISTRIBUTED SYSTEMS ARCHITECTURES. Ian Sommerville, 8º edição Capítulo 12 Aula de Luiz Eduardo Guarino de Vasconcelos DISTRIBUTED SYSTEMS ARCHITECTURES Ian Sommerville, 8º edição Capítulo 12 Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos Explicar as vantagens e desvantagens das arquiteturas de sistemas distribuídos

Leia mais

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE Padrões de Projeto J2EE J931 Introdução Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos de aprender padrões J2EE Conhecer padrões para uso na plataforma J2EE Padrões permitem maior reuso, menos

Leia mais