Introdução à Composição de Serviços Web

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

Download "Introdução à Composição de Serviços Web"

Transcrição

1 Capítulo 8 Introdução à Composição de Serviços Web Julio Cesar Damasceno Abstract A service composition permits that services from different providers are put together to create a more sophisticated service. The present work aims to present the technologies and tools that supports the concept of web service composition, and presents how these concepts and technologies can be in the development and execution of a composition. Resumo Uma composição de serviços permite que serviços de diferentes provedores sejam colocados juntos para criar um serviço mais sofisticado. Este trabalho tem como objetivo apresentar as tecnologias e ferramentas que sustentam o conceito de composição de serviços web, e apresentar como tais conceitos e tecnologias podem ser utilizados no desenvolvimento e execução de uma composição Introdução Computação Orientada a Serviços (Service Oriented Computing) e SOA (Service Oriented Architecture) [36, 40] são conceitos importantes na área de sistemas distribuídos que têm sido amplamente utilizados em projetos e pesquisas relacionadas a serviços [31]. Em SOC/SOA, a funcionalidade da aplicação é descrita de tal forma que permite seu uso no desenvolvimento de aplicações que integram funcionalidades de outras aplicações, o que é conhecido como composição de serviços ou serviços compostos. Cada serviço encapsula a funcionalidade da aplicação tornando-a disponível através de uma interface. Além disto, serviços são normalmente autônomos e heterogêneos no sentido de que executam sobre diferentes plataformas e pertencem a diferentes organizações. SOC e SOA têm tido um papel importante no modelo de negócio de software conhecido como SaaS (Software as Service) [22]. SaaS é um modelo de disponibilização de aplicações no qual as empresas (fornecedores de software) desenvolvem, hospedam, operam e fornecem o software a outras empresas (consumidoras) que pagam para usar

2 a aplicação e não para possuí-las. Na prática, as empresas consumidoras alugam uma funcionalidade que é disponibilizada remotamente, por exemplo, através da Internet. Muitas empresas têm disponibilizado suas principais competências na Internet como uma coleção de serviços conhecidos como Web Services. Web Services de organizações diferentes ou da mesma organização são combinados para formar o que é conhecido como serviço Business-to-Business (B2B). Colaborações B2B comumente demandam interações de longa duração guiadas por um modelo de processo explícito. Por exemplo, um serviço de gerenciamento financeiro pode ser criado compondo serviços mais especializados para pagamentos, cálculo de taxas e gerenciamento de moeda. A composição de serviços é uma das áreas de maior interesse de pesquisa da atualidade. A motivação geral para composição de serviços está relacionada a dois pontos principais: possibilidade de criação de serviços mais elaborados a partir de serviços já existentes e a possibilidade de integração de negócios [11, 27, 39]. Na prática, a composição permite que serviços de diferentes provedores sejam colocados juntos para criar serviços mais sofisticados. A importância da composição de serviços tem sido reconhecida na comunidade de pesquisa da Internet devido a sua flexibilidade na construção de aplicações a partir de serviços primitivos e de uma forma plug-and-play [37, 5, 35, 7]. Neste cenário foi proposto o padrão WS-BPEL Web Services Business Process Execution Language [30]. Basicamente, este padrão é uma linguagem focada na execução de processos de negócio, permitindo que vários Web Services trabalhem de forma conjunta com o objetivo de executar uma tarefa relacionada ao negócio. Este trabalho visa apresentar as tecnologias e ferramentas que sustentam o conceito de Composição de Serviços Web, e apresentar como tais conceitos e tecnologias podem ser utilizados no desenvolvimento e execução de uma composição. O restante do trabalho está assim dividido: Seção 8.2 introduz os conceitos básicos e tecnologias associados a este trabalho. Os aspectos relacionados à arquitetura orientada a serviços (SOA), aos Web Services, aos processos de negócio (Business Processes) e a composição de serviços serão detalhados. Na Seção 8.3 é mostrado. Por fim, na Seção são mostradas as principais ferramentas disponíveis no mercado para a Composição de Serviços Conceitos Básicos Nessa seção serão introduzidos os conceitos e tecnologias básicos para o entendimento do restante desse trabalho. Inicialmente será dada uma visão geral sobre a arquitetura orientada a serviços (SOA - Service-Oriented Architecture), logo em seguida será abordada as tecnologias relacionadas. A composição de serviços, em especial de Web Services, também é apresentada nesta seção. Os processos de negócio são apresentados, e sua relação com a composição de Web Services é analisada. Por fim será feita uma introdução á linguagem de execução de processos de negócios para Services, WSBPEL Arquitetura Orientado à Serviços(SOA) Um dos requisitos mais importantes durante a implantação de Sistemas de Informação pelas empresas é a integração com outros sistemas. Para isso devemos encontrar uma maneira flexível, extensível e compatível com os sistemas que já existem, uma vez que

3 estes sistemas muitas vezes ultrapassa os limites da empresa. Realizar a substituição de sistemas legados tendo em vista a incorporação de novas tecnologias e requisitos pode trazer riscos ao funcionamento de aplicação, além de ter, em geral, um alto custo associado [24]. Em SOA, a unidade mais básica é o Serviço, que são entidades que provem alguma funcionalidade. A partir desses serviços e de suas interfaces novos serviços podem ser construídos. Como se pode reparar, as palavras chave para esse tipo de arquitetura são: integração e reuso [31, 36]. Web Services são um exemplo de como essa arquitetura está se difundindo rapidamente. E isso se deve ao fato dessa tecnologia usar de soluções simples para resolver problemas relacionados à integração entre aplicações. Web Services usam protocolos baseados em XML (extensible Markup Language) [8]: SOAP:ISimple Object Access Protoco) [28], WSDL:(Web Services Description Language) [14] sobre HTTP (Hypertext Transfer Protocol)[18] pra realizar a comunicação. Isso garante total independência de Sistemas Operacionais e Linguagens de Programação. E, por se tratar de um serviço, essa entidade mantém um baixo acoplamento com outros serviços e aplicações. SOA é mais do que apenas um conjunto de tecnologias e não está diretamente relacionada com qualquer tecnologia, embora seja mais freqüentemente implementada com Web Services. Os Web Services são a tecnologia mais apropriada para a realização de SOA. A Figura 8.1 mostra resumidamente a realização de SOA através de Web Services. Figura 8.1: Realização de SOA através de Web Services No entanto, apenas a utilização dos Web Services não é adequada para a construção de SOA. Web Services devem ser utilizados acordo com os conceitos definidos por SOA[34]: Serviços: fornecem a funcionalidade do negócio, como uma aplicação para cotação de passagens áreas;

4 Interfaces auto-descritas: os serviços são consumidos, utilizados, através de suas interfaces. A interface de um serviço define um conjunto de operações públicas juntamente com suas assinaturas. A interface é separa da implementação, autodescritiva e independente de plataforma; Troca de mensagens: operações são definidas como um conjunto de mensagens. Mensagens especificam os dados que serão trocados e os descreve em linguagem e plataforma independente utilizando XML Schemas [17]; Comunicação síncrona e assíncrona: a troca de mensagem é realizada através de um protocolo de transporte, como SOAP. Os "consumidores"dos serviços, ou clientes, podem invocar as operações de modo síncrona ou assíncrono. No modo assíncrono o cliente, após invocar a operação em um serviço, ficará travado aguardando a resposta desta operação. Enquanto no modo assíncrono, o cliente não recebe uma resposta do serviço e sim uma confirmação de que a mensagem foi recebida com sucesso, não ficando preso durante o processamento da mesma. Caso seja necessário uma resposta o cliente deverá disponibilizar uma operação (callback) na sua interface para recebê-la. Baixo acoplamento: conseguido através do uso das interfaces auto-descritas, troca de dados estruturados e suporte para comunicação síncrona e assíncrona. Serviços fracamente acoplados são serviços que expõem apenas as dependências necessárias. Mínimas dependências fazem com que as mudanças em outros serviços que dependem ou utilizam sejam também mínimas. Registro de serviços: visando automatizar a busca e simplificar a busca por serviços, informações sobre tais serviços são mantidas em um repositório de serviços. Os provedores de serviços registram seus serviços e os consumidores, quando necessário, fazem a busca nesse repositório. O UDDI Universal Description, Discovery and Integration [29] é um exemplo deste registro de serviços. Qualidade de serviços: atributos de qualidade normalmente estão associados à serviços, tais como segurança, confiabilidade, gerenciamento, transação, entre outros. No contexto de Wb Services estes atributos fornecidos pelos padrões WS-*[33]: WS-Security, WS-Addressing, WS-Coordination, etc. Composição de serviços em processo de negócios: serviços devem ser compostos de uma maneira específica seguindo uma conjuntos de regras de forma a prover suporte aos processos de negócio. Para execução do processo de negócio é utilizada uma linguagem dedicada, BPEL (Business Process Execution Language) e uma engine [25]. Um sistema orientado a serviços basicamente possui três papéis: consumidores de serviços (ou clientes), provedores dos serviços (ou servidores) e repositório (ou serviços de registro/localização). O consumir acessa o provedor através de uma interface padrão. Devido ao baixo acoplamento, mesmo que a implementação do serviço sofra alguma alteração, o cliente não irá ser afetado. A Figura 8.2 mostra os papéis(funções) de um sistema orientado a serviços.

5 Figura 8.2: SOA - Papéis e Funções As tecnologias relacionadas com serviços e Web Services, instâncias mais populares de serviços, serão abordadas nas próximas seções Web Services As arquiteturas tradicionais de sistemas distribuídos acoplam fortemente várias de seus componentes à aplicação, fato esse que as tornam frágeis diante do dinamismo que as novas aplicações requerem[1]. No contexto da Web os sistemas distribuídos são colocados em crise, pois não acompanham as mudanças referentes às necessidades do negócio e devido ao forte acoplamento e interdependência das suas partes. Para solucionar estes problemas surgiram os Web Services, uma proposta inovadora que descrevia de forma padrão interfaces para componentes de software e como acessá-las através de protocolos padrões e interoperáveis, além de fornecer mecanismos para a descoberta de novos serviços. A premissa básica para o sucesso dos Web Services foi a sua independência de linguagens e de sistemas operacionais. A Figura 8.3 mostra uma visão geral das principais características dos Web Services. Conceitualmente, um Web Service fornece um modo alternativo para expor a lógica por trás de aplicação ou serviço para clientes heterogêneos. Clientes executando em sistemas distintos podem acessar programaticamente as funcionalidades da aplicação expostas por um Web Service de um modo padrão. Um Web Service é independente de plataforma e de linguagem de programação pois usa protocolos padrões para comunicação e transferência de dados. Os clientes não precisam estar na mesma plataforma ou sistema operacional para um Web Service e normalmente não precisam ter nenhum conhecimento sobre a sua implementação ou plataforma de execução, necessita conhecer apenas a interface do Web Service ou WSDL (Web Services Description Language) [14]. A pilha de protocolos associados aos Web Services é formada por protocolos de rede responsáveis pela definição, localização, implementação e troca de mensagens.

6 Figura 8.3: Visão Geral dos Web Services Podemos agrupá-los em quatro camadas: busca, descrição, comunicação e transporte conforme mostrado na Figura 8.4. Figura 8.4: Camadas de Protocolo dos Web Services Os protocolos da camada de busca são responsáveis pelo registro e pela busca de Web Services em um repositório de serviços. O principal protocolo desta camada é O UDDI (Universal Description, Discovery and Integration) [29], que fornece um framework para descrever, buscar e integrar serviços na Web, funcionando de maneira análoga à uma lista telefônica. O UDDI utiliza várias APIs (Application Programming Interfaces) para ajudar na publicação e busca dos Web Services em um repositório de serviços. Conforme mostrado na Figura 8.5 o provedor de serviços responsável por manter o serviço cria a descrição do Web Service (WSDL) e publica a mesma no repositório

7 UDDI. O Cliente faz uma busca no repositório, onde obtém o WSDL do serviço, a partir do qual cria um cliente e finalmente comunica-se com o serviço. Figura 8.5: Visão Geral do UDDI Aplicações clientes precisam entender um Web Service antes de acessá-lo. Para isso é necessário que o Web Service seja descrito em um formato padrão para que possa ser utilizado por diferentes aplicações e em diferentes plataformas. WSDL 1.1 é uma especificação da W3C (World Wide Web Consortium) que fornece uma linguagem para descrever Web Services. Um documento WSDL é um documento XML que contém todas as informações necessárias para conectar ao Web Service. A Listagem 8.1 mostra um documento WSDL. Listagem 8.1: Documento WSDL <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions targetnamespace=" <wsdl:types> <xs:schema attributeformdefault="qualified" elementformdefault=" qualified" targetnamespace=" </xs:schema> </wsdl:types> <wsdl:message name="getadicaorequest"> <wsdl:part name="parameters" element="ns:getadicao" /> </wsdl:message> <wsdl:message name="getadicaoresponse"> <wsdl:part name="parameters" element="ns:getadicaoresponse" /> </wsdl:message> <wsdl:message name="interruptedexception">

8 <wsdl:part name="parameters" element="ns:interruptedexception" /> </wsdl:message> <wsdl:porttype name="somadorserviceporttype"> <wsdl:operation name="getadicao"> <wsdl:input message="ns:getadicaorequest" wsaw:action="urn: getadicao" /> <wsdl:output message="ns:getadicaoresponse" wsaw:action="urn: getadicaoresponse" /> </wsdl:operation> </wsdl:porttype> <wsdl:binding name="somadorservicesoap11binding" type="ns: SomadorServicePortType"> <soap:binding transport=" style="document" /> <wsdl:operation name="getadicao"> <soap:operation soapaction="urn:getadicao" style="document" /> <wsdl:input> <soap:body use="literal" /></wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="somadorservice"> <wsdl:port name="somadorservicehttpsoap11endpoint" binding="ns: SomadorServiceSoap11Binding"> <soap:address location=" WSSomadorService/services/SomadorService. SomadorServiceHttpSoap11Endpoint/" /> </wsdl:port> </wsdl:service> </wsdl:definitions> Os elementos de um WSDL podem ser agrupados logicamente em dois diferentes grupos: descrições concretas e abstratas ou funcional e não funcional respectivamente. A definição da interface abstrata provê uma descrição genérica dos Web Services, contendo informações reusáveis sobre o serviço como formato de mensagens, tipos de dados e tipos de protocolo. A definição abstrata é formada pelos seguintes elementos: types: contém o tipo dos dados, definidos na forma de XML Schemas, a ser utilizado na troca de mensagens; message: unidade utilizada na troca de mensagens. Cada mensagem possui parâmetros de entra e saída definidos por elementos filhos chamados part; operation: definição abstrata de uma operação para a mensagem, como o nome da operação/método, assim como as mensagens de entrada/saída referente aos parâmetros da operação do serviço; porttype: porta, no contexto de Web Services é um único Web Service. O elemento porttype é o conjunto de todas as operações que um Web Service possui.

9 Os serviços descritos na interface abstrata precisam ser implementados. A definição concreta especifica detalhes, como o protocolo a ser utilizado e o endereço de rede onde o Web Services está localizado. A definição concreta é composta pelos seguintes elementos: bindding: define os requisitos para a chamada do método, como o formato e o protocolo de transporte utilizado na troca de mensagens de cada elemento abstrato porttype; service: utilizado para descrever os endpoints, que são localizações na rede de onde os Web Services podem ser acessados. O elemento filho endpoint, também chamado elemnto port, especifica o endereço IP da real implementação do Web Service. Na camada de comunicação o protocolo SOAP (Simple Object Access Protocol) [28] é uma das tecnologias mais importantes relacionadas ao contexto de Web Service. SOAP pode ser usado sobre quaisquer protocolos de transpore. Quando utilizado sobre HTTP ele pode atravessar firewalls, que em geral, liberam o tráfego na porta 80 do servidor HTTP, assim SOAP pode ser utilizado onde protocolos baseados em chamada remota não poderiam, pois utilizam um porta padrão que não está liberado no firewalls, como o RMI [21]. A unidade básica de transmissão SOAP é o elemento XML envelope, responsável por descrever o conteúdo da mensagem fornecendo informações sobre como processar esse conteúdo. O envelope possui dois elementos filhos: header que possui informações e controle e o body que contém o corpo da mensagem XML conforme mostrado na figura Figura 8.6: Representação XML do SOAP

10 Processos de Negócio (Business Proccess) Processos de negócio podem ser definidos como uma coleção de invocações de serviços e atividades relacionadas que produzem um resultado de negócio, tanto para uma única empresa ou diversas outras[24]. Desta maneira os processos a criação e a execução de processos de negócio está estreitamente relacionada com a composição de serviços. Um dos principais objetivos dos processos de negócio é a integração de sistemas, parceiros comerciais e usuários corporativos através de processos computacionais, visando redução de custo, melhoria da eficiência profissional Composição de Serviços O reuso é uma das principais idéias definidas pelo SOA, onde sistemas complexos podem ser desenvolvidos utilizando serviços mais básicos. Como exemplo de uma composição de serviços podemos citar um conversor de monetário que tem como requisito a conversão de dolar americano para euro. Existe um Web Service que faz a conversão de dolar pra real e outro que faz a conversão de real para euro, então uma composição é criada utilizando esses dois conversores. A criação de uma aplicação orientada à serviços não é diferente da programação imperativa tradicional, exceto pelo fato de ser estarmos trabalhando essencialmente de forma distribuída e que a principal linguagem de criação de composição de serviços é baseada em XML. Essa linguagem se chama-se WS-BPEL Web Services Business Process Execution Language [30] e vem sendo largamente utilizada pela indústria para descrever composições de serviços. Na Seção a linguagem WSBPEL será abordada com mais detalhes. Web Services podem ser combinados de diferentes maneiras para formar uma composição de serviços. Os principais modos são: seqüencial, paralela e com escolha. Na composição seqüencial, Figura 8.7 (a), o serviço WS2 só será invocado depois que o WS1 terminar a sua execução. Na composição com escolha, Figura 8.7 (b), apenas um dos serviços é escolhido para ser executado. Esta escolha é feita por um critério específico representado na figura por (C). Por fim, na composição paralela, Figura 8.7 (c), os dois serviços são executados de maneira simultânea. Figura 8.7: Formas Básicas de Composições

11 WS-BPEL (Web Services Business Process Execution Language) A linguagem WS-BPEL é um padrão criado pela OASIS (Organization for the Advancement of Structured Information Standards) para a execução de processos de negócio, descrevendo como ocorre o relacionamento entre os diversos Web Services participantes da composição. A primeira versão de BPEL foi desenvolvida em agosto de 2002 pela IBM, BEA, e Microsoft, após a SAP e a Siebel juntarem ao consorcio de estava desenvolvendo foi lançado em março de 2003 a versão 1.1 [4]. Em abril de 2003 a OASIS recebeu uma versão para padronização e em abril de 2007 foi lançado oficialmente a versão de 2.0 como o nome de WS-BPEL 2.0 [30]. A versão do WS-BPEL 2.0 será a utilizada no restante deste trabalho. A programação com WS-BPEL é parecida com a programação das linguagens de programação já existentes, na medida em que ela oferece determinados tipos de construções como estruturas de repetição, estruturas condicionais, variáveis e atribuições. Este fato possibilita que o processo de negócio seja visto como uma algoritmo. Porém, o uso desses recursos é bem simples e limitado, objetivando a facilidade de uso e aprendizagem da mesma. Uma composição de serviços especificada em WS-BPEL é vista como um serviço, ou seja quem uso um processo de negócio definido em WS-BPEL não tem ciência que na verdade está utilizando vários serviços para realizar uma determinada operação. Por ser um Web Service, a composição necessita ter sua interface baseada no padrão WSDL, troca de mensagens com outros web services através do padrão SOAP e pode ser cadastrado em um repositório UDDI para fins de consulta. O padrão WS-BPEL assume que os serviços participantes da composição estejam descritos usando WSDL. A propriedade mais importante de WS-BPEL está relacionada à invocação de Web Services. BPEL permite que as operações de um Web Service sejam invocadas sincronamente ou assincronamente de uma maneira mais fácil. Estas operações podem ser invocadas seqüencialmente ou paralelamente. As funcionalidades mais importantes de WS- BPEL podem estão listadas logo abaixo: descrever a lógica dos processos de negócio através da composição de serviços; tratar as invocações de operações de modo síncrono ou assíncrono; invocar serviços de maneira seqüencial ou paralela. prover mecanismos para tratar erros durante a invocação de serviços; manter atividades de longa duração (transacionais), assim como interrompe-las; reiniciar uma composição que foi interrompida ou apresentou erros; agendar a execução de atividades e definir a ordem em que elas irão executar;

12 8.3. Composição de Serviços Web com WSBPEL Nesta seção, são discutidas as principais partes de uma composição de serviços definida em WS-BPEL. Num cenário típico de BPEL, um processo de negócio recebe uma requisição. Para processá-lo, a composição invoca os Web Services e finalmente responde o cliente que originou a chamada. O conhecimento profundo de WSDL e das tecnologias relacionadas é estritamente necessário durante o desenvolvimento de composição com WS-BPEL, pois a comunicação com os outros Web Services é fortemente ligada com a descrição WSDL dos mesmos. Essas relações são chamadas de ligações parceiras ou partner links. A Figura 8.8 mostra a relação entre a composição BPEL e os partner links. Figura 8.8: Comunicação entre a Composição BPEL e os Partner Links Conceitos Fundamentais de WSBPEL Os principais elementos de um documento WS-BPEL são enumerados logo abaixo e em seguia, na Listagem 8.2, será mostrado um fragmento de uma composição BPEL. import: utilizado para importar o WSDL de todos os Web Services envolvidos na composição; partnerlinks: contem uma coleção de elementos filhos partnerlink que informa a localização dos servidores onde estão disponibilizados os Web Services. Cada elemento partnerlink representa um Web Service, chamado de parceiro; variables: utilizados para armazenar as mensagens que são trocadas entre o processo BPEL e os parceiros ou para manter alguma informação durante a execução do processo; sequence: usado para definir um conjunto de atividades que serão invocadas em seqüencia;

13 flow: usado para definir um conjunto de atividades que serão invocadas em paralelo; receive: aguarda um cliente invocar o processo de negócio através do envio de uma mensagem. É o ponto de entrada da composição, ou seja, está relacionada à operação que foi definida no WSDL da composição; invoke: representa a invocação de uma operação em outro Web Service; assign: utilizada para a manipulação das variáveis; reply: usado para enviar a resposta de uma operação que foi chamada sincronamente. Listagem 8.2: Principais Elementos da Linguagem WS-BPEL 1 <?xml version="1.0" encoding="utf-8"?> 2 <process exitonstandardfault="yes" name="calculadoraservice" suppressjoinfailure="yes" targetnamespace=" br/ercemapi/calculadora"> 3 <import... /> 4 <partnerlinks> 5 <partnerlink>... </partnerlink> 6 </partnerlinks> 7 <variables> 8 <variable>... </variable> 9 </variables> 10 <sequence name="sequencial"> 11 <receive createinstance="yes" name="receiveinput" operation=" numbergeneration" partnerlink="initializer" porttype="tns: CalculadoraPortType" variable="servicerequest" /> 12 <assign>... </assign> 13 <invoke inputvariable="divisaorequest" operation="getdivisao" outputvariable="divisaoresponse" partnerlink="divisorinvoke" porttype="div:divisorserviceporttype" /> 14 </sequence> 15 <flow name="paralelo"> 16 <invoke inputvariable="multiplicacaorequest" outputvariable=" multiplicacaoresponse" operation="getmultiplicacao" partnerlink="multiplicadorinvoke" porttype="mul: MultiplicadorServicePortType"/> 17 <invoke inputvariable="geradoraleatoriorequest" outputvariable=" geradoraleatorioresponse" operation="getnumeroaleatorio" partnerlink="geradoraleatorioinvoke" porttype="gel: GeradorAleatorioServicePortType"/> 18 </flow> 19 <sequence name="respota"> 20 <reply name="replyoutput" operation="numbergeneration" partnerlink="initializer" porttype="tns:calculadoraporttype" variable="serviceresponse" /> 21 </sequence> 22 </process>

14 Caso ocorram falhas durante a execução do processo de negócio a tag <faulthandlers> deve ser utilizada para capturar falhas (eventos inesperados, erros, etc.) e tentar reverter a situação, a fim de que o trabalho seja finalizado. Em um processo de negócio, várias situações podem gerar problemas, desde a indisponibilidade momentânea de serviços até erros na própria lógica do processo. Em muitos processos de negócios, não se pode terminar toda a execução dos mesmos em uma única transação atômica, principalmente porque os processos exigem longo tempo de execução no qual várias transações processadas criam efeitos persistentes antes do processo ser completado. No WS-BPEL, a tag <compensationhandlers> reverte atividades completadas. Ele é bastante utilizado associado ao <faulthandler>, situação na qual ele possibilita que atividades já realizadas (inclusive com resultados armazenados) em um processo de negócio que apresentou algum tipo de erro em sua execução sejam canceladas e retorne ao estado inicial. Para a execução de um processo de negócio baseado no padrão WS-BPEL, é necessária a existência de um ambiente de execução específico para esta tarefa. As Engines WS-BPEL são responsáveis por disponibilizarem tal ambiente. Pode-se afirmar que a engine é o motor que executa a lógica de negócio especificada na aplicação, invocando as operações definidas pela mesma. Cada execução de um serviço composto é denominada uma instância da composição. Podem existir diversas instâncias ao mesmo tempo, e cabe também a Engine o gerenciamento dessa questão. Sob um ponto de vista arquitetural, a Engine gerencia a execução de um ou vários processos WS-BPEL. Por sua vez, os processos são compostos basicamente por atividades, que implementam a funcionalidade desejada do negócio. O foco desta Engine é a execução de processos executáveis Definição da Composição de Serviços Para demonstrar como um processo de negócio é descrito em WS-BPEL, será definido um simples processo de negócio para um sistema de empréstimo. Neste cenário o cliente requisita um empréstimo informando seu nome, CPF, valor do empréstimo e em quantidade de parcelas. O processo de negócio primeiramente verifica se o cliente já é cadastro. Supõe-se que exista um Web Service que faça está verificação. Em seguida, será verificado seu o CPF do cliente está possui alguma restrição de crédito, para isso supõe-se que existam Web Services para fazer esta consulta ao SPC e Serasa. Finalmente é feita uma análise da solicitação de empréstimo para o cliente, caso ele não tenha nenhuma restrição de crédito. Para o estudo de caso proposto foi construído um processo BPEL síncrono, para manter a simplicidade. Também foi assumido que todos os Web Services envolvidos são síncronos. A Figura 8.9 ilustra a definição da composição para o sistema de empréstimo. A composição inicia sua execução quando receba uma chamada no endpoint relativo à operação de solicitação de empréstimo, pois a composição também é um Web Service e para isso um WSDL deve ser definido. Após receber a invocação através do elemento BPEL <receive> o Web Service ClienteWS é chamado sincronamente para validar os dados do cliente, ao receber a resposta, sendo 1 para válido e 0 para inválido. Caso

15 Figura 8.9: Exemplo de Processo WS-BPEL para Solicitação de Emprestimos o cliente seja válido os Web Services SerasaWS e SPCWS são chamados paralelamente para verificar se o cliente possui alguma restrição de débito. Se não houver nenhuma restrição, o Web Service EmprestimoWS é chamado para concessão do empréstimo e, após receber o resultado, uma resposta é enviada ao cliente através do elemento <reply>. A Listagem 8.3 mostra os fragmentos mais importantes do código fonte para o estudo de caso expressa em WS-BPEL 2.0 Listagem 8.3: Processo de Negócio Empréstimo em WS-BPEL <?xml version="1.0" encoding="utf-8"?> <bpws:process exitonstandardfault="yes" name="solicitacaemprestimo" suppressjoinfailure="yes" targetnamespace=" ufpe.br">... <bpws:sequence name="main"> <bpws:receive createinstance="yes" name="recebesolicitação" operation="process" partnerlink="me" porttype="tns: SolicitacaEmprestimo" variable="input" /> <bpws:assign name="preparacpf" validate="yes">... </bpws: assign> <bpws:invoke inputvariable="validaclienterequest" name=" validacliente" operation="validacliente" outputvariable=" validaclienteresponse" partnerlink="customerinvoke" porttype ="ns:customerserviceporttype" /> <bpws:if name="clientevalido"> <bpws:flow name="flow">

16 <bpws:sequence name="verifcadebitoserasa"> <bpws:assign name="preparaserasa" validate="yes">... </ bpws:assign> <bpws:invoke inputvariable="serasainput" name=" invocaserasa" operation="possuidebito" outputvariable ="serasaoutput" partnerlink="serasainvoke" porttype=" ns0:serasaserviceporttype" /> </bpws:sequence> <bpws:sequence name="verifcadebitospc"> <bpws:assign name="preparaspc" validate="yes">... </ bpws:assign> <bpws:invoke inputvariable="spcinput" name="invocaspc" operation="possuidebito" outputvariable="spcoutput" partnerlink="spcinvoke" porttype="ns2: SPCServicePortType" /> </bpws:sequence> </bpws:flow> <bpws:condition><![cdata[$validaclienteresponse.parameters/ns: return=1]]></bpws:condition> </bpws:if> <bpws:if name="possuidebito"> <bpws:sequence name="solicitacaoemprestimo"> <bpws:invoke inputvariable="emprestimoinput" name=" invocaemprestimo" operation="validaemprestimo" outputvariable="emprestimooutput" partnerlink=" emprestimoinvoke" porttype="ns1: EmprestimoServicePortType" /> <bpws:assign name="preparaemprestimo" validate="yes">... </bpws:assign> </bpws:sequence> <bpws:condition><![cdata[$serasaoutput.parameters/ns0:return=0 and $spcoutput.parameters/ns2:return=0]]></bpws:condition > </bpws:if> <bpws:assign name="prepararesposta" validate="yes">.. </bpws: assign> <bpws:reply name="replyoutput" operation="process" partnerlink=" me" porttype="tns:solicitacaemprestimo" variable="output" /> </bpws:sequence> </bpws:process> Por fim a Figura 8.10 mostra a modelagem completa do estudo de caso Ferramentas para Composição de Serviços Nesta seção será descrito todo o ferramental existente na atualidade que trabalha com composição de serviços e com isso saberemos o que já tem sido feito e o que pode ser melhorado com relação a essas técnicas. A Figura 8.11 mostra um resumo das principais ferramentas existentes no mercado.

17 Figura 8.10: Processo de Negócio Completo Descrito em WS-BPEL JOpera Dando inicio a análise das ferramentas sobre composição de serviços vamos falar sobre o JOpera[32]. O JOpera é uma ferramenta de modelagem e execução de composição de serviços projetado como um plugin do Eclipse, que é uma plataforma de aplicações em geral. O JOpera usa uma linguagem proprietária para representar uma composição chamada JVCL (The JOpera Visual Composition Language) [10]. Esta linguagem é baseada em XML sendo considerada uma linguagem de mais alto nível em comparação com outras linguagens de descrição/execução de composições de serviço, como WS-BPEL. Ela foi projetada para não compor apenas Web Services, mas também serviços em outras tecnologias. A modelagem das composições com o JOpera é baseada em diagramas de fluxo de dados. O sistema de controle de cada atividade da composição é feito através de

18 Figura 8.11: Ferramentas Para Composição de Serviços duas construções muito simples mas igualmente poderosas presentes em cada atividade: Activation e Condition. O Activation define quais atividades são pré-requisitos para que uma atividade possa executar. Essa construção é usada para definir, entre outras coisas, condições de seqüencialidade e paralelismo entre as atividades da composição. Já a construção Condition é usada para definir quando uma atividade deve executar ou não levando em consideração o estado atual das variáveis da composição visto que os pré-requisitos definidos no Activation já foram alcançados. O Deploy e a execução de uma composição são feitos internamente à ferramenta. O JOpera não necessita de nenhum servidor Web ou de qualquer outra ferramenta para executar as suas composições. Antes de executar a composição, a JVCL é transformada em código Java para depois ser efetivamente executada pela Engine do JOpera. A Engine é interna ao JOpera. Além disso, a Engine do JOpera possui um Web Service de controle onde se pode visualizar diversas informações das composições que estão executando no momento, bem como implantar ou remover composições remotamente. As interfaces que são usadas pelo JOpera são descritas em WSDL padrão. Essa característica indica uma preocupação dos projetistas com a compatibilidade das composições criadas pelo JOpera. O JOpera possui a funcionalidade de depuração onde cada passo da composição, cada transição entre as atividades são visualizadas e a ferramenta mantém para o desenvolvedor informações sobre as variáveis envolvidas em cada operação. Outra característica dessa ferramenta é o fato de ela estar sendo sempre melhorada inclusive sendo usada para outros tipos de serviços mais específicos, como é o caso do suporte que ela fornece à GridServices [15].

19 NetBeans (Módulo BPEL) O NetBeans [6] é uma das ferramentas mais completas do mercado. Ela possui módulos para se trabalhar com uma infinidade de linguagens de programação, (Java, C/C++, Ruby, entre outros), tecnologias (Hibernate, Struts, JSF, entre outras) e com diversos tipo de aplicações. Um desses módulos é SOA. Com esse módulo a ferramenta se transforma numa plataforma para composição de Web Services. O NetBeans se encaixa no grupo de ferramentas que, a nível de modelagem da composição, fornece apenas uma interface gráfica para a linguagem em que as composições são descritas, ou seja, essa ferramenta fornece um novo tipo de visualização para uma composição em BPEL. Esse tipo de abordagem exige que o desenvolvedor da composição precise ter um conhecimento considerável da linguagem de execução em questão, no caso WS-BPEL. Para executar as composições criadas, o NetBeans já vem integrado com um Servidor de Aplicação desenvolvido pela Sun Microsystems chamado GlassFish[20]. O NetBeans possui um módulo voltado para a construção e execução de testes. Esse módulo já faz parte do NetBeans para BPEL e se baseia em ferramentas de testes de unidade, como JUnit [26], para realizar testes em composições de Web Services. Esses testes funcionam de forma parecida com os testes JUnit. O NetBeans monta uma requisição SOAP com os dados arbitrários fornecidos pelo usuário, essa requisição é então enviada para o Web Service que retorna uma resposta um XML que será analisado pela ferramenta que vai comparar com uma espécie de gabarito e assim informar se o resultado está correto ou não, fazendo assim o teste "passar"ou "falhar", respectivamente. WebRatio O WebRatio [2] é uma ferramenta que essencialmente é usada para a criação de aplicações Web (em HTML, por exemplo) e até Web Services. Mas, como na criação de Web Services ela também pode usar outros Web Services (criando assim uma composição) essa ferramenta também pode ser utilizada para composição de serviços. O WebRatio possui uma interface bem diferente das outras ferramentas. Até porque o foco dessa ferramenta é diferente. A interface sai bem da linha das ferramentas baseadas em BPEL e chega a se aproximar um pouco do JOpera por ser algo mais genérico mas, por outro lado, o grande numero de elementos que são usados apenas para a criação de Aplicações Web deixa pouco familiar para programadores de composições. A forma de estruturar a seqüência com que as operações são realizadas é feita graficamente usando setas que conectam operações que são feitas seqüencialmente. A linguagem de execução utilizada pelo WebRatio é a WebML [12]. Essa linguagem é utilizada para modelagem visual de aplicações Web, através dela e de uma série de transformações o WebRatio consegui gerar aplicações web tipicamente MVC (Model View Controller ) [3] em várias tecnologias (Java/JSP, AJAX, HTML, XHTML). O WebRatio possui um servidor Web integrado, o Apache Tomcat [13]. Com o Tomcat, o WebRatio pode implantar as aplicações que foram geradas através das transformações do WebML. Uma dos artefatos criados pelo WebRatio automaticamente é o WSDL de todas os Web Sevices que ele cria.

20 Como o foco da ferramenta é a criação de aplicações Web que não envolvem muita programação ou regras de negócio, ela não possui uma ferramenta de Debug muito bem elaborada como visto nas outras ferramentas. Oracle solucion (Oracle SOA Suite + JDeveloper) A Oracle também está interessada nesse tipo de arquitetura de software (SOA), tanto que criou um conjunto de ferramentas e aplicativos que foram concebidos para suportar esse tipo de aplicação. Esse conjunto de ferramentas "100 percent standards-based" (100% baseadas em padrões) promete ser totalmente inter-operável com infra-estruturas legadas de qualquer empresa. Esse é o Oracle SOA Suite [9], um conjunto de aplicações que dá suporte a construção, implantação e gerenciamento de composição de serviços. O JDeveloper é uma ferramenta também da Oracle, totalmente integrada com o SOA Suite, que oferece recursos para o desenvolvimento de composições de serviço utilizando um poderoso editor gráfico e que gera código BPEL para a composição. Como mencionado anteriormente, o JDeveloper tem uma poderosa e rica interface gráfica. Vale reparar as semelhanças entre os editores gráficos do JDeveloper e do NetBeans, os editores gráficos, as formas em que os componentes são dispostos no editor, as formas que eles são instanciados pelo usuário, tudo isso é muito parecido. Elas diferem mais na hora de detalhar os atributos ou funcionalidades dos componentes BPEL da composição. O NetBeans consegui ser ainda mais "gráfico"que o JDeveloper, o JDeveloper ainda contém muitas coisas que não são resolvidas graficamente, ou seja, essas coisas necessitam de um conhecimento maior da linguagem WS-BPEL. Outra semelhança com o NetBeans é que as duas ferramentas trabalham com WS- BPEL gerando código diretamente para WS-BPEL e as suas interfaces gráficas são totalmente ligadas a essa linguagem de execução. Essa ferramenta reforça mais uma vez a importância de BPEL na indústria. Mas, mais uma vez, temos uma ferramenta que não aumenta o nível de abstração em relação à linguagem de execução em que ela vai ser definida posteriormente. Todo o suporte para execução da composição criada pelo JDeveloper é dado pelo SOA Suite e suas aplicações. Dentro do SOA Suite tem, dentre outras coisas, uma Engine de execução desenvolvida pela Oracle para executar BPEL. O JDeveloper possui uma ferramenta de testes bastante interessante. Os testes são divididos em dois tipos: Unit Tests e Composite Test. Todos os dois tipos de teste são baseados no JUnit e consiste em analisar a resposta de um método através do conhecimento prévio de suas entradas. A diferença entre o Unit e o Composite Test é que no Unit Test o comportamento dos partners é apenas simulado e fazem parte dos parâmetros do teste; no caso do Composite Test os partners são realmente invocados, esse teste é uma simulação da composição no mundo real. O JDeveloper tem uma ferramenta que verifica quanto da composição é "coberta"pelos casos de teste, ou seja, quais as possibilidades que estão sendo previstas pelo engenheiro de teste.

21 ActiveVOS Designer O ActiveVOS Designer [16] é o sucessor da ferramenta Active BPEL Designer da empresa Active Endpoints. O Active BPEL Designer é uma ferramenta muito conhecida na comunidade [23]. Assim como na versão anterior, o ActiveVOS Designer é uma ferramenta que facilita a criação de uma composição apenas através de uma abstração de BPEL por uma interface gráfica.o manuseio da sua interface gráfica exige do usuário um conhecimento grande a respeito de BPEL. Diferentemente de sua antiga versão, o ActiveVOS Designer agora trabalha com uma Engine de execução BPEL externa, o ActiveVOS Server. No processo de depuração (Debug) as aplicações BPEL Designer e e BPEL Server são conectadas para prover tal funcionalidade para o usuário. Nessa nova versão foi criado um sistema de testes chamados de B-Unit (Business Unit) como uma variante do sistema de testes de unidade, JUnit. Que funciona de maneira semelhante ao JUnit onde uma entrada é fornecida à composição e a saída esperada é comparada com a saída que efetivamente é dada pela Composição. Assim como o NetBeans, essa ferramenta não possui um nível de abstração muito alto para a construção de Composição de Serviços. Não utiliza modelos. Eclipse (BPEL Project) O projeto BPEL [19] da plataforma Eclipse é um projeto ainda em fase de desenvolvimento. Hoje, ele ainda não possui arquivos binários. Só é possível executar essa ferramenta baixando o código fonte diretamente do repositório CVS (Concurrent Version System) [38] de desenvolvimento e compilá-la para depois executar. Um dos pontos fortes dessa ferramenta pretende prover é o suporte total para as especificações de WS-BPEL 2.0 [30] que é uma versão mais recente dessa linguagem de execução. Por esta em fase de construção ainda não possui algumas funcionalidades comuns entre ferramentas de composição, como, por exemplo, DEBUG. A interface gráfica dessa ferramenta é comparável com outras ferramentas, como WebRatio, funcionando apenas como um editor para BPEL.

22 Referências [1] Jorge Abilio Abinader and Rafael Dueire Lins. Web Services em Java. Brasport, 1st edition, [2] Roberto Acerbis, Aldo Bongio, Stefano Butti, Stefano Ceri, Fulvio Ciapessoni, Carlo Conserva, Piero Fraternali, and Giovanni Toffetti Carughi. WebRatio, an innovative technology for web application development. In Web Engineering, volume 3140 of Lecture Notes in Computer Science. Springer Berlin / Heidelberg, [3] Deepak Alur, Dan Malks, and John Crupi. Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition). Prentice Hall PTR, 2 edition, [4] Tony Andrews, Francisco Curbera, Hitesh Dholakia, Yaron Goland, Johannes Klein, Frank Leymann, Kevin Liu, Dieter Roller, Doug Smith, Satish Thatte, Ivana Trickovic, and Sanjiva Weerawarana. Business Process Execution Language for Web Services Version 1.1. Technical report, BEA, IBM, Microsoft, SAP AG and Siebel Systems, may [5] Manu De Backer, Guido Dedene, and Jacques Vandenbulcke. Web services composition, execution and visualization. International Conference on Program Comprehension, 0:264, [6] Heiko Böck. The Definitive Guide to NetBeans Platform. Apress, [7] Boualem Benatallah, Quan Z. Sheng, and Marlon Dumas. The self-serv environment for web services composition. IEEE Internet Computing, 7(1):40 48, [8] Tim Bray, Jean Paoli, and C. M. Sperberg-McQueen. XML 1.0 recommendation. first edition of a recommendation, W3C, feb [9] Heidi Buelow, Manas Deb, Jayaram Kasi, Demed LHer, and Prasen Palvankar. Getting Started With Oracle SOA Suite 11g R1 A Hands-On Tutorial. Packt Publishing, [10] G. Alonso C. Pautasso. The JOpera Visual Composition Language. Journal of Visual Languages and Computing (JVLC), 16: , [11] Luca Cardelli and Rowan Davies. Service combinators for web computing. IEEE Transactions on Software Engineering, 25(3): ,

23 [12] Stefano Ceri, Piero Fraternali, and Aldo Bongio. Web Modeling Language (WebML): A Modeling Language for Designing Web Sites. Computer Netwwork, 33(1-6): , [13] Vivek Chopra, Sing Li, and Jeff Genender. Professional Apache Tomcat 6 (WROX Professional Guides). Wrox, 1 edition, [14] Erik Christensen, Francisco Curbera, Greg Meredith, and Sanjiva Weerawarana. Web service definition language (wsdl). Technical report, W3C, March [15] Carmela Comito, Domenico Talia, and Paolo Trunfio. Grid services: principles, implementations and use. Int. J. Web Grid Serv., 1(1):48 68, [16] Active Endpoints. Activevos designer. Available: activevos.com/products-activevos.php, [17] David C. Fallside and Priscilla Walmsley. XML schema part 0: Primer second edition. W3C recommendation, W3C, October [18] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners- Lee. Hypertext transfer protocol HTTP/1.1. Technical report, The Internet Society, June [19] The Eclipse Foundation. Eclipse bpel designer. [20] Antonio Goncalves. Beginning Java EE 6 Platform with Glass- Fish 3: From Novice to Professional. Apress, 1 edition, [21] William Grosso. Java RMI. O Reilly Media, Inc., 1st edition, [22] Dean Jacobs. Enterprise software as service. Queue, 3(6):36 42, [23] F.A.A. Lins, J.C. dos Santos, and N.S. Rosa. Improving Transparent Adaptability in Web Service Composition. In Proc. IEEE International Conference on Service-Oriented Computing and Applications SOCA 07, pages 80 87, [24] F.A.A. Lins, J.C. Santos Junior, and N.S. Rosa. Adaptive web service composition. SIGSOFT Softw. Eng. Notes, 32(4):6, [25] Panagiotis Louridas. Orchestrating web services with bpel. IEEE Software, 25(2):85 87,

24 [26] Vincent Massol and Ted Husted. JUnit in Action. Manning Publications, [27] Nikola Milanovic and Miroslaw Malek. Current solutions for web service composition. IEEE Internet Computing, 8(6):51 59, [28] N. Mitra. Soap version 1.2, w3c recommendation, 24 june Technical Report August 9, W3C, [29] S. Oasi. Oasis uddi specifications version 3. Technical report, OASIS, [30] OASIS. Web services business process execution language. Technical report, Organization for the Advancement of Structured Information Standards, April [31] Michael P. Papazoglou, Paolo Traverso, Schahram Dustdar, and Frank Leymann. Service-Oriented Computing Research Roadmap. Technical report, Tilburg University, Tilburg, The Netherlands, [32] Cesare Pautasso and Gustavo Alonso. Jopera: A toolkit for efficient visual composition of web services. Int. J. Electron. Commerce, 9(2): , [33] Jothy Rosenberg and David Remy. Securing Web Services with WS-Security: Demystifying WS-Security, WS-Policy, SAML, XML Signature, and XML Encryption. Sams, May [34] Poornachandra Sarang, Matjaz Juric, and Benny Mathew. Business Process Execution Language for Web Services BPEL and BPEL4WS 2nd Edition. Packt Publishing, 2nd edition, [35] Maurice ter Beek, Antonio Bucchiarone, and Stefania Gnesi. Web service composition approaches: From industrial standards to formal methods. Internet and Web Applications and Services, International Conference on, 0:15, [36] W.T. Tsai, Yinong Chen, Gary Bitter, and Dorina Miron. Introduction to Service-Oriented Computing. In IFIP International Federation for Information Processing 2004, pages , [37] Wil M.P. van der Aalst, Marlon Dumas, and Arthur H.M. ter Hofstede. Web service composition languages: Old wine in new bottles? EUROMICRO Conference, 0:298,

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

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

WS-BPEL Web Service Business Process Execution Language

WS-BPEL Web Service Business Process Execution Language DAS5316 WS-BPEL Web Service Business Process Execution Language Prof. Ricardo J. Rabelo (rabelo@das.ufsc.br) Responsável pela elaboração dos slides Alexandre Perin (perin@das.ufsc.br) Florianópolis (SC),

Leia mais

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

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

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

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

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

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

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

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

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

Prof. Ricardo J. Rabelo (rabelo@das.ufsc.br)

Prof. Ricardo J. Rabelo (rabelo@das.ufsc.br) DAS5316 - Integração de Sistemas Corporativos BPEL Business Process Execution Language Prof. Ricardo J. Rabelo (rabelo@das.ufsc.br) Responsável pela elaboração dos slides Alexandre Perin (perin@das.ufsc.br)

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

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

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

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento. SOA Arquitetura Orientada a Serviços Conceitos e Aplicações Prof. MSc. Edilberto Silva edilms@yahoo.com/ http://edilms.eti.br Gestão de TI Conceitode SOA SOA - Service OrientedArchitecture (Arquitetura

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

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

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

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

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

Combinação de serviços já existentes para criar um novo serviço. jcd@cin.ufpe.br. cin.ufpe.br. cin.ufpe.br. Composição de Serviços Com WS-BPEL

Combinação de serviços já existentes para criar um novo serviço. jcd@cin.ufpe.br. cin.ufpe.br. cin.ufpe.br. Composição de Serviços Com WS-BPEL Introdução à Composição de serviços Web Júlio César Damasceno jcd@ Agenda Definição Motivação Background Arquitetura Orientada a Serviço (SOA) Computação Orientada a Serviço (SOC) Web Services Composição

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

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

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 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 Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

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

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Integração Orientada a Serviços

Integração Orientada a Serviços Integração Orientada a Serviços Porto Alegre, Agosto de 2006 Agenda Sobre a e-core SOA O que é? Web Services x SOA Principal Motivação - Integração SOI ESB BPEL JBI ServiceMix Solução Proposta A Empresa

Leia mais

Programação para Web Artefato 01. AT5 Conceitos da Internet

Programação para Web Artefato 01. AT5 Conceitos da Internet Programação para Web Artefato 01 AT5 Conceitos da Internet Histórico de revisões Data Versão Descrição Autor 24/10/2014 1.0 Criação da primeira versão HEngholmJr Instrutor Hélio Engholm Jr Livros publicados

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

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

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

SOA na Prática Ricardo Limonta

SOA na Prática Ricardo Limonta SOA na Prática Ricardo Limonta Arquiteto JEE Objetivo Apresentar os conceitos de Arquiteturas Orientadas a Serviços; Entender a relação entre SOA e a tecnologia Web Services; Implementar SOA com Web Services

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

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

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB WEBSERVICES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é um WebService e sua utilidade Compreender a lógica de funcionamento de um WebService Capacitar

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso 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 Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

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

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações Universidade de São Paulo Escola Politécnica Programa de Educação Continuada em Engenharia PROGRAMA DE MBA em Gestão e Engenharia do Produto O Produto Internet e suas Aplicações Tecnologias de Informação

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Arquitetura Orientada a Serviço

Arquitetura Orientada a Serviço Arquitetura Orientada a Fabio Perez Marzullo IEEE Body of Knowledge on Services Computing Sponsored by Technical Committee on Services Computing, IEEE Computer Society 1 SOA e Web Services SOA é um modelo

Leia mais

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

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

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

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

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

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

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008 Arquiteturas, Padrões e Serviços para Geoprocessamento Lúbia Vinhas 13/05/2008 Desejo saber estatísticas sobre áreas queimadas. Desejo fazer análises por localização, por classes de uso ou ainda por seleção

Leia mais

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Web Service Plínio Antunes Garcia Sam Ould Mohamed el Hacen Sumário Introdução conceitual O Web Service

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

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

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

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

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da

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

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

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

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

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

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

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

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira SOA - Service Oriented Architecture Marcelo Canevello Ferreira Índice Arquitetura baseada em componentes Introdução a SOA Principais conceitos de SOA SOA Framework Abordagem de integração Conclusões Evolução

Leia mais

Obtendo Qualidade com SOA

Obtendo Qualidade com SOA Obtendo Qualidade com SOA Daniel Garcia Gerente de Prática BPM/SOA daniel.garcia@kaizen.com.br 11 de Novembro de 2009 Copyright 2009 Kaizen Consultoria e Serviços. All rights reserved Agenda Sobre a Kaizen

Leia mais

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge. Projeto Demoiselle Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net Palestrantes: Antônio Carlos Tiboni Luciana Campos Mota 20/07/2009

Leia mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1. Número: Nome: Página 1 de 6 LEIC/LETI, 2014/15, Repescagem do 1º Teste de Sistemas Distribuídos 30 de Junho de 2015 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

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

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

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 5 Servidores de Aplicação

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT 1. IDENTIFICAÇÃO Padrão Segmento Código P06.002 Revisão v. 2014 Plataformas Web 2. PUBLICAÇÃO Recursos Tecnológicos Versão Data para adoção Publicação v. 2014 23 de dezembro de 2014 PORTARIA N Nº 225 de

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

IV. Intercâmbio Eletrônico de Dados (EDI)

IV. Intercâmbio Eletrônico de Dados (EDI) IV. Intercâmbio Eletrônico de Dados (EDI) 1. Funcionamento do EDI 2. EDI tradicional X WEB EDI 3. EDI Tradicional 4. WEB EDI Intercâmbio Eletrônico de Dados (EDI) EDI: Electronic Data Interchange Troca

Leia mais

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet

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 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Guia de Especificação de Caso de Uso Metodologia CELEPAR Guia de Especificação de Caso de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiaespecificacaocasouso.odt Número de páginas: 10 Versão Data Mudanças Autor 1.0 09/10/2007

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello 1/39 Serviços Web (Web Services) Emerson Ribeiro de Mello Departamento de Automação e Sistemas Universidade Federal de Santa Catarina 22 de Maio de 2007 2/39 Arquitetura Orientada a Serviços Arquitetura

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

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

JXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br

JXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br JXTA Alessandro Vasconcelos Ferreira de Lima Roteiro Motivação Introdução Arquitetura de JXTA Elementos de JXTA Os Protocolos Comparações e Desvantagens Conclusão Motivação Limitações do Modelo Cliente

Leia mais

IBM Software Demos The Front-End to SOA

IBM Software Demos The Front-End to SOA Hoje em dia, as pequenas e grandes empresas utilizam software baseado em uma arquitetura voltada para serviços, ou SOA, para promover a inovação, otimizar processos comerciais e aumentar a eficiência.

Leia mais