UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

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

Download "UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ALEXANDRO NASCIMENTO DA SILVA Composição Automática de Web Services: Avaliando os planejadores JSHOP2 e JESS Salvador 2007

2 ALEXANDRO NASCIMENTO DA SILVA Composição Automática de Web Services: Avaliando os planejadores JSHOP2 e JESS Monografia apresentada ao Curso de graduação em Ciência da Computação, Departamento de Ciência da Computação, Instituto de Matemática, Universidade Federal da Bahia, como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação. Orientadora: Drª. Sc. Daniela Barreiro Claro Salvador 2007

3 ALEXANDRO NASCIMENTO DA SILVA Composição Automática de Web Services: Avaliando os planejadores JSHOP2 e JESS Objetivo: Avaliação dos planejadores JSHOP2 e JESS no ambiente de composição automática de serviços. UNIVERSIDADE FEDERAL DA BAHIA Bacharelado em Ciência da Computação Data de Aprovação: de Orientadora: Drª. Sc. Daniela Barreiro Claro, LaSiD/UFBA Salvador 2007

4 Dedico este trabalho a toda minha família, aos meus amigos e em especial meu filho Caio

5 AGRADECIMENTOS Primeiramente a DEUS, que me concedeu paciência e sabedoria para concluir esta etapa da minha vida. Aos meus pais que me proporcionaram a vida, a educação e o equilíbrio para batalhar por meus objetivos. A minha esposa que me apóia em todos os nossos projetos e preenche minha vida de amor e otimismo. Aos meus amigos da faculdade, de infância, do trabalho e todos os outros, que fazem parte de minha vida tornado-a mais alegre e solidaria. Aos meus professores que me enriqueceram de conhecimentos e ensinou a importância da dedicação para ser diferente. A minha orientadora Prof.ª Daniela Barreiro Claro, por ter me apoiado e dado à direção necessária para a conclusão desse trabalho. Ao meu filho que chegou e me deixou mais amadurecido para o mundo, me proporcionou alegrias indescritíveis, deixando claro que o amor transforma tudo em nossas vidas.

6 RESUMO A disponibilidade de serviços na Web através de Web Services tem trazido muitos benefícios para a integração de sistemas heterogêneos e distribuídos. Porém, muitas vezes um único serviço não atende a uma requisição de um cliente. Neste caso, faz-se necessária a composição de serviços, criando assim um novo serviço com o objetivo de atender a um novo tipo de requisição. A depender da quantidade de serviços envolvidos na composição e das restrições analisadas, esse trabalho pode ser muito dispendioso e falho devido às incertezas inerentes ao ambiente Web, como a disponibilidade dos serviços, mudanças das interfaces de comunicação e a concorrência de recursos. Assim, a composição automática de serviços Web determina quais serviços participam em uma composição a fim de atender a um objetivo pré-definido por um cliente. Planejadores da área de Inteligência Artificial têm sido utilizados com o intuito de automatizar o processo de composição de serviços. Assim, o presente trabalho visa analisar as características de dois planejadores da IA (JSHOP2 e JESS) na composição automática de serviços Web. Palavras-chave: serviços Web, composição de serviços Web, planejador, JESS, JSHOP2 Key-words: Web services, web service compositions, AI planning, JESS, JSHOP2

7 LISTA DE FIGURAS Figura 1 - Estrutura de uma mensagem SOAP... 6 Figura 2 Exemplo de uma mensagem SOAP para um serviço de meteorologia... 6 Figura 3 Uma requisição SOAP sobre HTTP... 7 Figura 4 Uma resposta SOAP sobre HTTP... 7 Figura 5 Elementos de um documento WSDL Figura 6 Exemplo de interface para o método getweather... 9 Figura 7 Exemplo de binding para o método getweather... 9 Figura 8 Exemplo de um processo WS-BPEL para e-commerce Figura 9 Nível topo da ontologia Service Figura 10 Exemplo de definição da classe Service Figura 11 Exemplo de definição da classe ServiceProfile Figura 12 Classes e propriedade do ServiceModel Figura 13 Exemplo de definição da classe ServiceModel Figura 14 Exemplo de definição da classe ServiceGrounding Figura 15 Mapeamento entre OWL-S e WSDL Figura 16 Estado inicial e final do mundo dos cubos Figura 17 Descrição do domínio do Mundo dos Cubos Figura 18 Solução para o mundo dos cubos... 24

8 Figura 19 Exemplo de regra em um sistema que utiliza motor de regras Figura 20 Solução para um simples problema de translado Figura 21 Exemplo do operador ride em JSHOP Figura 22 Exemplo dos métodos travel e travel-by-taxi Figura 23 Exemplo de uso de axioma em JSHOP Figura 24 Exemplo de definição do domínio Figura 25 Exemplo de definição do problema Figura 26 Estado inicial e final do mundo dos cubos Figura 27 Exemplo de deftemplate Figura 28 Semelhança da memória de trabalho do JESS e um banco relacional Figura 29 Representação do estado inicial e final em JESS Figura 30 Exemplos de defrule Figura 31 Tipo Nome dos parâmetros de entrada e saída Figura 32 Descrição em OWL-S do BookFinderProcess Figura 33 Descrição em OWL-S do BNPriceProcess Figura 34 Descrição em OWL-S do CurrencyConverterProcess Figura 35 Hierarquia de tipos de classes de entrada e saída Figura 36 Estado inicial do problema Figura 37 Definição do domínio em JSHOP Figura 38 Definição do problema em JSHOP Figura 39 Seqüência de comandos para iniciar o JSHOP2 para um domínio especifico. 50 Figura 40 Tela que mostra caminho percorrido pelo JSHOP2 para encontrar um plano. 50

9 Figura 41 Tela de exibição do plano encontrado Figura 42 Exemplo de estrutura Sequence em JSHOP Figura 43 Processo composto para o cenário de BookPriceProcess Figura 44 Exemplo de chamada externa Figura 45 Exemplo de precondições OWL-S em linguagem nativa Figura 46 Exemplo de uso do operador forall Figura 47 Solução em JESS para o cenário Parte I Figura 48 Solução em JESS para o cenário Parte II-IV Figura 49 Resultado do JESS para o problema descrito no cenário Figura 50 É possível usar JESS a partir o Java e vice-versa Figura 51 Exemplos de JESS integrado com o Java Figura 52 Exemplos de Java integrado com o JESS Figura 53 Código em JESS para pesquisa de ontologias (books.jess) Figura 54 Código Java que executa o OWLJessKB Figura 55 Resultado da pesquisa pelo OWLJessKB Figura 56 Trecho de código da implemetação de uma interface Userfunction Figura 57 Exemplo de quantificador universal... 63

10 SUMÁRIO 1. INTRODUÇÃO COMPOSIÇÃO DE SERVIÇOS Web Services Tecnologias Básicas SOAP WSDL Tipos de Composição de Serviços Linguagens de composição de Serviços Web WS-BPEL OWL-S ServiceProfile ServiceModel ServiceGrounding Ciclo de vida de uma composição de serviços Web PLANEJAMENTO DA IA Planejamento Clássico Mundo dos Cubos Planejamento HTN... 24

11 3.3. Algoritmo Rete Outros tipos de planejadores PLANEJADORES PARA WSC Características específicas para WSC O Planejador JSHOP O Planejador JESS Outros planejadores para WSC COMPARATIVO ENTRE JSHOP2 E JESS APLICADOS A WSC Critérios de Comparação CENÁRIO JSHOP JESS CONCLUSÃO BIBLIOGRAFIA APÊNDICE A Mundo dos Cubos em JESS ANEXOS Mundo dos Cubos em JSHOP

12 1 1. INTRODUÇÃO Um Web service é um objeto distribuído cujo objetivo é garantir a interoperabilidade entre aplicações utilizando protocolos padronizados e se comunicando através de mensagens XML sobre a Internet. A Web Service Description Language (WSDL) é uma linguagem de definição de interface baseada em XML que permite a separação entre a descrição abstrata e a concreta da implementação do serviço. A padronização e a fácil manipulação contribuíram para a proliferação dos Web services na rede. Porém, muitas vezes não é possível encontrar um único serviço que atenda a um requisito especificado por um cliente. Neste contexto, Web services devem ser combinados com o intuito de atingir a demanda do cliente. A esta combinação de serviços Web dá-se o nome de composição de serviços Web (Web service composition). Diversas infraestruturas, dentre elas linguagens de composição, surgiram a fim de facilitar a manipulação destes serviços, tais como, OWL-S, SAWSDL e WS-BPEL. A composição de serviços Web pode ser feita atualmente através da Internet utilizando diversos serviços disponíveis e combinando-os. A depender da quantidade de serviços envolvidos, este processo pode ser complexo e demorado. Neste caso, a utilização de mecanismos que possam automatizar este processo de composição vem sendo amplamente estudados. A composição automática de serviços Web, a partir de um objetivo especificado e um conjunto de serviços, não é um problema com uma solução trivial. Além disso, ainda não está claramente definida quais técnicas são melhores aplicadas para resolvê-lo. Uma família de técnicas oriundas da IA tem sido proposta para resolver este tipo de problema, dentre elas o planejamento. Planejamento é um problema complexo que tem sido investigado extensivamente pela IA e é definido como uma espécie de problema onde um agente usa suas crenças sobre as ações disponíveis e suas conseqüências para identificar uma solução sobre um conjunto abstrato de planos [RUSSELL, 2004].

13 2 Neste contexto, este trabalho pretende descrever as principais características de um planejador e analisar o comportamento de dois planejadores (JSHOP2 e JESS) aplicados à composição automática de serviços Web. Os próximos capítulos são organizados da seguinte maneira: O Capítulo 2 apresenta os conceitos básicos necessários para a composição de serviços. O Capítulo 3 introduz conceitos de planejamento da IA, quais as técnicas utilizadas e como são utilizadas. O Capítulo 4 integra o ambiente de composição de serviços com a área de planejamento, analisando suas características. O Capítulo 5 descreve um estudo dos planejadores JSHOP2 e JESS aplicados a composição de serviços Web. Por fim, seguem as conclusões e ponderações sobre esta nova área da ciência da computação.

14 3 2. COMPOSIÇÃO DE SERVIÇOS A ciência da computação está em uma importante fase de abstração. Há um tempo atrás, observou-se a abstração do hardware, hoje se observa o crescimento da abstração do software. Esta nova fase está sendo atingida através de arquiteturas orientadas a serviços (SOAs) 1, que permite reutilizar e combinar arbitrariamente componentes de softwares para servir às necessidades através de interfaces padronizadas [FENSEL, 2007]. Web Services é especialmente uma nova tecnologia que tem como objetivo fazer componentes de software e aplicações comerciais disponíveis via interfaces padronizadas, tornando simples o desenvolvimento de aplicações distribuídas e a integração com sistemas existentes [FENSEL, 2007] Web Services Esforços na tentativa de desenvolver um padrão comum de desenvolvimento de aplicações distribuídas têm uma longa historia na ciência da computação. A maioria das propostas falharam completamente ou tiveram seu uso restrito a determinado uso ou adotado por algumas corporações. Na década de 80, Birell e Nelson apresentaram o Remote Procedure Calls (RPC), a primeira tecnologia utilizada para invocar métodos em sistemas distribuídos. A definição do RPC esconde detalhes de implementação dos desenvolvedores e utiliza uma linguagem padrão para descrição de interface (entrada/saída). O RPC oferece um mecanismo independente de plataforma e linguagem de programação para inserir chamada a métodos distribuídos em aplicações [BIRELL, 1984]. Arquiteturas, como a CORBA (Common Object Request Broker Architecture) apresentada por Object Management Group (OMG) na década de 90, já permitiam características avançadas como a seleção e execução dinâmica de serviços. Mas, não alcançaram o nível esperado de aceitação por não ter uma implementação simples [FENSEL, 2007]. 1 Do inglês Service-Oriented Arquiteture

15 4 As tecnologias que hoje em dia estão incluídas no termo Web Services têm várias vantagens comparadas com seus predecessores. Estas vantagens são as razões para a aceitação dos Web Services e a garantia da alta probabilidade de utilização por um longo período [FENSEL, 2007]: A comunicação entre Web Services depende de protocolos que já são amplamente aceitos, como os protocolos HTTP, SMTP e FTP. Com isso, tem a vantagem de permitir a reutilização das existentes infra-estruturas e experiências de seus usuários. Utiliza um protocolo para troca de mensagens entre Web Services, como o Simple Object Access Protocol (SOAP), que funciona sobre HTTP e utiliza o XML como formato de mensagem. Isso resolve um problema existente em outras soluções como RMI e CORBA, onde firewalls normalmente bloqueiam estes tipos de pacotes devido ao uso de protocolos proprietários. Similar ao RPC e CORBA, existe uma linguagem padrão para descrição da interface, a Web Service Description Language (WSDL). A WSDL permite a distinção entre a descrição das funcionalidades que o Web Service provê e os detalhes de como acessar o serviço. De um lado, métodos com seus parâmetros de entrada e saída, e por outro, o endereço onde o serviço está disponível e os protocolos de transporte suportados podem ser descritos independentemente. Uma estrutura modular onde cada módulo utiliza padrões e é responsável por certos subproblemas. Basicamente, Web Services permite acesso a funcionalidades utilizando um conjunto de padrões abertos que fazem a interação com aplicações heterogêneas e distribuídas de forma independente de aspectos de implementação como sistema operacional e linguagem de programação utilizada Tecnologias Básicas Esta seção aborda as tecnologias básicas atualmente aplicadas aos Web Services: SOAP e WSDL.

16 SOAP O principal objetivo do Simple Object Access Protocol (SOAP) em sua primeira versão, publicada como uma nota W3C em Maio/2000 [W3C, 2007], foi prover um framework 2 para comunicação de mensagens ponto a ponto em formato XML. Em Junho/2003, SOAP 1.2 tornou-se uma Recomendação W3C e tem ganhado forças desde então, sendo adotado na maioria das aplicações baseadas em Web Services. Serviços de mensagens comunicando sobre HTTP podem ser codificados diretamente em requisições HTTP Get ou Post, mas SOAP adicionou um rígido framework especialmente projetado para a troca de mensagens em formato XML. De fato, hoje em dia o termo Web Services é freqüentemente usado de forma sinônima com Web Services de comunicação sobre SOAP [FENSEL, 2007]. Uma mensagem SOAP é um documento XML contendo os seguintes elementos [W3SCHOOLS, 2007]: Um elemento obrigatório Envelope que identifica um documento XML como uma mensagem SOAP; Um elemento opcional Header que contém informações com instruções para processamento da mensagem; Um elemento obrigatório Body que contém as informações principais das requisições e respostas aos métodos; E um elemento opcional Fault que prover informações sobre erros ocorridos durante o processamento da mensagem. A Figura 1 mostra a estrutura de uma mensagem SOAP. A Figura 2 mostra um exemplo de um documento SOAP que é usado para invocar um serviço de meteorologia contendo dois textos indicando a cidade, descrita por seu nome e país. 2 Framework é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido [WIKIPEDIA, 2007].

17 6 <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:header> [...] </soap:header> <soap:body> [...] <soap:fault> [...] </soap:fault> </soap:body> </soap:envelope> Figura 1 - Estrutura de uma mensagem SOAP [W3SCHOOLS, 2007] <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <GetWeather xmlns= > <CityName>Salvador</CityName> <CountryName>Brasil</CountryName> </GetWeather> </soap:body> </soap:envelope> Figura 2 Exemplo de uma mensagem SOAP para um serviço de meteorologia [FENSEL, 2007] Na prática, mensagens SOAP podem ser enviadas utilizando uma variedade de protocolos, embora no contexto Web seja usual a utilização sobre HTTP. Existem outros protocolos frequentemente usados e bem definidos, por exemplo SMTP 3. Quando uma mensagem SOAP é enviada sobre HTTP, basicamente um cabeçalho HTTP é adicionado à mensagem. Desta maneira, SOAP pode alcançar uma estrutura que já está pronta para interpretar o protocolo e desta forma eliminar os problemas com firewalls e routers que ocorrem quando usamos RPC [FENSEL, 2007]. A Figura 3 e a Figura 4 mostram um exemplo de envio de mensagens SOAP sobre HTTP. Somente o cabeçalho é dependente do atual protocolo de transporte utilizado, a mensagem SOAP transferida não necessita de mudanças para diferentes protocolos. O cabeçalho contém elementos padrões para um cabeçalho HTTP, como POST, Content-Type e Content-Length. 3

18 7 POST /InStock HTTP/1.1 Host: Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body xmlns:m="http://www.example.org/stock"> <m:getstockprice> <m:stockname>ibm</m:stockname> </m:getstockprice> </soap:body> </soap:envelope> Figura 3 Uma requisição SOAP sobre HTTP [W3SCHOOLS, 2007] HTTP/ OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body xmlns:m="http://www.example.org/stock"> <m:getstockpriceresponse> <m:price>34.5</m:price> </m:getstockpriceresponse> </soap:body> </soap:envelope> Figura 4 Uma resposta SOAP sobre HTTP [W3SCHOOLS, 2007] Em resumo, SOAP é um formato XML para troca de mensagens que pode ser combinado com diferentes protocolos de transporte para permitir o envio de mensagens XML, tornado-se uma ferramenta popular para o transporte de mensagens XML na Web WSDL O Web Services Description Language (WSDL) é uma linguagem baseada em XML utilizada para descrever Web Services. Trata-se de um documento que além de descrever o serviço, especifica como acessá-lo, quais as operações ou métodos disponíveis e suas mensagens de entrada e saída [WIKIPEDIA, 2007]. A Figura 5 mostra a definição de uma estrutura WSDL: O elemento types descreve os tipos de mensagens que o serviço irá enviar e receber;

19 8 O elemento interface descreve quais funcionalidades o Web Service provê; O elemento binding descreve como acessar o serviço; O elemento service descreve onde acessar o serviço. Figura 5 Elementos de um documento WSDL 2.0 [MARTIN, 2007] A Figura 6 mostra como as entradas e saídas são definidas em um documento WSDL e como eles podem ser associados a um método. A definição relevante no exemplo é o elemento para definir GetWeather. Ele indica que existe um elemento filho CityName e CountryName do tipo string. Mais abaixo no exemplo pode ser visto a definição da interface para o método GetWeather. O exemplo na Figura 7 mapeia a definição abstrata para o protocolo real. O elemento binding define o SOAP sobre HTTP como o protocolo padrão de comunicação. Finalmente o elemento service declara o ponto de acesso do serviço.

20 9 [...] <types> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.webservicex.net/schemas/weather" xmlns="http://www.webservicex.net/schemas/weather"> <xs:element name="weather" type="tweather"/> <xs:complextype name="tweather"> <xs:sequence> <xs:element name="cityname" type="s:string" /> <xs:element name="countryname" type="s:string" /> </xs:sequence> </xs:complextype> <xs:element name="weatherresponse" type="xs:double"/> <xs:element name="invaliddataerror" type="xs:string"/> </xs:schema> </types> <interface name="weatherinterface"> <fault name="invaliddatafault" element="ghns:invaliddataerror"/> <operation name="getweather" pattern="http://www.w3.org/2006/01/wsdl/in-out" style="http://www.w3.org/2006/01/wsdl/style/iri" wsdlx:safe="true"> <input messagelabel="in" element="ghns:weather" /> <output messagelabel="out" element="ghns:weatherresponse" /> <outfault ref="tns:invaliddatafault" messagelabel="out"/> </operation> </interface> [...] Figura 6 Exemplo de interface para o método getweather [FENSEL, 2007] [...] <binding name="weathersoapbinding" interface="tns:weatherinterface" type="http://www.w3.org/2006/01/wsdl/soap" wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/http"> <fault ref="tns:invaliddatafault" wsoap:code="soap:sender"/> <operation ref="tns:getweather" wsoap:mep="http://www.w3.org/2003/05/soap/mep/soap-response"/> </binding> <service name="weatherservice" interface="tns:weatherinterface"> <endpoint name="weatherendpoint" binding="tns:weathersoapbinding" address="http://www.webservicex.net/globalweather.asmx?wsdl"/> </service> [...] Figura 7 Exemplo de binding para o método getweather [FENSEL, 2007] Com este exemplo, ilustram-se as características do WSDL: (1) esquemas XML podem ser reutilizados em declarações de tipo; (2) interfaces são definidas independentemente do protocolo de transporte; (3) uma interface pode ser facilmente reutilizada por vários outros bindings.

21 Tipos de Composição de Serviços Para ilustrar as possíveis formas de compor serviços Web, um exemplo do domínio de manipulação de arquivos, citado por [MURTAGH, 2004], será utilizado. Suponha que uma pessoal deseja converter um documento.doc para um documento.pdf. Assuma que não exista um serviço capaz de desempenhar esta conversão diretamente, mas existe um serviço que converte documentos.doc para um formato intermediário.rtf e outro serviço que converte desse formato intermediário para um documento.pdf. Existem duas maneiras de compor esses dois serviços, associando suas interfaces, de forma seqüencial e correta para alcançar o objetivo de converter um documento.doc em.pdf: manual ou automático [CLARO, 2007]. Para esse exemplo, na composição manual o usuário deve buscar por serviços que convertam um documento.doc para formatos intermediários e para cada formato intermediário pesquisar um serviço que converta o formato intermediário para um documento.pdf. É obvio que este processo é muito dispendioso e que para um número grande de serviços é impraticável. A situação pode ser agravada ainda mais se, para obter a conversão de.doc para.pdf, várias conversões intermediarias sejam necessárias. Algumas linguagens surgiram no contexto da composição manual, como a WS-BPEL discutida mais adiante. Na composição automática o usuário apenas especifica um objetivo e então, o sistema automaticamente inicia o processo de busca e seleção de serviços e os integram de forma que o objetivo seja atingido, criando assim, um novo serviço, que no exemplo acima converteria um documento.doc em.pdf. Composição automática de serviços tem outras vantagens em relação à composição manual [MURTAGH, 2004]: Serviços selecionados podem ser substituídos no decorrer do tempo para incluir outros serviços que fariam o objetivo ser atingido mais rapidamente, com menor custo ou outras características não-funcionais; Ajustar a composição para encontrar serviços que melhor atenda as necessidades do usuário (ex. preferência no modo de pagamento);

22 11 Substituir serviços que estejam inacessíveis, criando um plano tolerante a falhas. Contudo, para tornar o processo de composição automática possível, deve existir uma linguagem que possa ser interpretada, entendida de forma não ambígua, por uma máquina ou software [BERNERS-LEE, 2001]. Por exemplo, para uma pessoa que ler a assinatura de um método public File converterdocparapdf(file doc), sabe que este método converte um documento.doc em.pdf, mas para uma máquina esta interpretação não é tão fácil Linguagens de composição de Serviços Web Esforços para tornar o processo de composição de Web Services possível, fizeram surgir algumas linguagens com este propósito. A seguir é explanado duas dessas principais linguagens WS-BPEL A maioria das linguagens de composição segue o paradigma workflow, no qual a composição é definida como um processo de negócio que determina manualmente quais Web Services participam da composição, quais dados são transferidos entre as atividades do processo e como acontecem as interações (fluxos de controle). A orquestração e a coreografia de Web Services são abordagens baseadas em padrões abertos para conectar os serviços e criar processos de negócios de alto nível. A orquestração apresenta um processo de negócio executável, que pode interagir com serviços internos e externos à organização, que descreve como os Web Services podem interagir em nível de mensagem e que inclui a lógica de negócio e a ordem de execução das tarefas (atividades). Com a orquestração, o processo é sempre controlado por uma das partes do negócio, o que difere da coreografia que é mais colaborativa e que permite que cada parte envolvida descreva sua participação na interação [PELTZ, 2003]. A WS-BPEL (Web Services Business Process Execution Language), padronizada pela OASIS [OASIS, 2007], é a linguagem mais popular para orquestração de Web Services. Diversas companhias de software, tais como Oracle, SAP, IBM, HP, entre outras,

23 12 comprovaram a aceitação deste padrão quando integraram motores de orquestração de workflows dentro de seus produtos. A Figura 8 mostra um exemplo de um processo WS- BPEL para venda e entrega de pedidos de um site de e-commerce. Figura 8 Exemplo de um processo WS-BPEL para e-commerce [TYPEPAD, 2007] OWL-S Embora um documento WSDL descreva a interface, protocolo de transporte e ponto de acesso de um Web Service, ele não provê nenhuma informação interpretável por máquinas sobre o objetivo do serviço, o quê ele faz. Por exemplo, assuma que um Web Service disponibiliza dois métodos, um que aceita como parâmetro um número x, e retorna e x, e outro que aceita um número de cartão de crédito x e retorna e x, uma quantidade em Real debitada de sua conta. Por consultar um documento WSDL, uma analise rápida por uma pessoa pode corretamente decidir qual o propósito de cada método, analisando os nomes dos métodos ou mensagens de entrada e saída. Mas, uma máquina não é capaz de

24 13 distinguir entre eles, por que ambos têm o mesmo número de mensagens de entrada e saída como os mesmos tipos de dados [MURTAGH, 2004]. É obvio que para atingir o propósito de compor Web Services automaticamente, uma linguagem deve possibilitar que máquinas distingam entre esses dois métodos. De maneira geral, para que isso aconteça serviços devem ser descritos em uma forma que não seja ambígua e que máquinas possam entender o que um serviço se propõe a fazer, a linguagem deve descrever [MURTAGH, 2004]: Propriedades e habilidades para busca e seleção automática; Precondições, efeitos, mensagens de entrada e mensagens de saída para composição automática; Interfaces, pontos de acesso e protocolos para execução automática. A Web Semântica apareceu para tentar resolver esses problemas. A Web Semântica permite que dados e serviços sejam interpretados por software, sem o problema de ambigüidade [BERNERS-LEE, 2001]. Uma das atuais linguagens que possibilita descrever semanticamente Web Services é a o Ontology Web Language for Service (OWL-S). Sua origem tem como base a Web Ontology Language (OWL), que é uma linguagem baseada em XML usada para descrever ontologias. OWL-S é uma ontologia que fornece classes e propriedades em OWL, adequados para a descrição de Web Services [OWL-S, 2007]. Uma ontologia OWL consiste em um conjunto de classes, instancias e propriedades que descrevem o conceito dentro de um domínio particular. Embora classes, instâncias e propriedades em OWL possuam características herdadas da Orientação a Objeto (OO), OWL prover uma rica opção de construtores para especificar relacionamentos entre classes, propriedades e indivíduos [MURTAGH, 2004]. A Figura 9 mostra as classes que compõe o OWL-S. A classe Service age como um ponto de referência organizacional para descrições OWL-S. Cada descrição de um Web Service terá uma simples instância de Service, com apropriados valores para presents, describedby e supports. As respectivas extensões dessas propriedades são ServiceProfile, ServiceModel e ServiceGrounding, cada uma detalha diferentes tipos de conhecimentos sobre o serviço sendo descrito. Uma introdução em cada uma dessas extensões é exposta a seguir.

25 14 Figura 9 Nível topo da ontologia Service [MARTIN, 2007] [...] <!-- Service description --> <service:service rdf:id="currencyconverterservice"> <service:presents rdf:resource="#currencyconverterprofile"/> <service:describedby rdf:resource="#currencyconverterprocess"/> <service:supports rdf:resource="#currencyconvertergrounding"/> </service:service> [...] Figura 10 Exemplo de definição da classe Service [MINDSWAP, 2007] ServiceProfile O serviço apresenta um ServiceProfile, que tem uma subclasse Profile. O Profile contem um vocabulário para caracterizar propriedades funcionais (ex. inputs 4, output 5, precondições e efeito) e não-funcionais (ex. informação para contato, categoria do serviço). O Profile anuncia as habilidades do serviço e torna mais fácil o processo de descoberta automática [MARTIN, 2007]. 4 A palavra input daqui em diante será sinônimo para mensagem de entrada. 5 A palavra output daqui em diante será sinônimo para mensagem de saída.

26 15 [...] <!-- Profile description --> <mind:currencyservice rdf:id="currencyconverterprofile"> <service:ispresentedby rdf:resource="#currencyconverterservice"/> <profile:servicename xml:lang="en">price Converter</profile:serviceName> <profile:textdescription xml:lang="en"> Converts the given price to another currency. </profile:textdescription> <profile:hasinput rdf:resource="#inputprice"/> <profile:hasinput rdf:resource="#outputcurrency"/> <profile:hasoutput rdf:resource="#outputprice"/> </mind:currencyservice> [...] Figura 11 Exemplo de definição da classe ServiceProfile [MINDSWAP, 2007] ServiceModel O serviço é descrito por um ServiceModel, que tem uma subclasse Process. A Figura 12 mostra a classe Process, suas subclasses e propriedades. Figura 12 Classes e propriedade do ServiceModel [MARTIN, 2007]

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

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

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

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

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

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

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

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

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

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

Balanceamento de carga: Conceitos básicos

Balanceamento de carga: Conceitos básicos Balanceamento de carga: Conceitos básicos Introdução A tecnologia de balanceamento de carga está viva e está bem; de fato, ela é a base sobre a qual operam os application delivery controller (ADCs). A

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

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

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: SERASA Experian. Produto: Autorizador Básico. Versão: 1.0. Autor: Angelo Bestetti Junior

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: SERASA Experian. Produto: Autorizador Básico. Versão: 1.0. Autor: Angelo Bestetti Junior Manual de Integração Tecnologia: WebServices SOAP XML Área: SERASA Experian Produto: Autorizador Básico Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

Leia mais

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0. Autor: Angelo Bestetti Junior

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0. Autor: Angelo Bestetti Junior Manual de Integração Tecnologia: WebServices SOAP XML Área: CDC Produto: CDC Pessoa Física NFE (RFB) Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros (regras de interação)

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 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

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Estendida (Física) Versão: 1.0. Autor: Angelo Bestetti Junior

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Estendida (Física) Versão: 1.0. Autor: Angelo Bestetti Junior Manual de Integração Tecnologia: WebServices SOAP XML Área: CDC Produto: CDC Estendida (Física) Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

Leia mais

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: SERASA Experian. Produto: Pefin Pendências Financeiras. Versão: 1.0

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: SERASA Experian. Produto: Pefin Pendências Financeiras. Versão: 1.0 Manual de Integração Tecnologia: WebServices SOAP XML Área: SERASA Experian Produto: Pefin Pendências Financeiras Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais...

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

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES Sistema de Informação e Tecnologia FEQ 0411 Prof Luciel Henrique de Oliveira luciel@uol.com.br Capítulo 5 INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES PRADO, Edmir P.V.; SOUZA, Cesar A. de. (org). Fundamentos

Leia mais

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: Serviços de Informação. Produto: CEP. Versão: 1.0. Autor: Angelo Bestetti Junior

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: Serviços de Informação. Produto: CEP. Versão: 1.0. Autor: Angelo Bestetti Junior Manual de Integração Tecnologia: WebServices SOAP XML Área: Serviços de Informação Produto: CEP Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

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

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

Unidade II GERENCIAMENTO DE SISTEMAS. Prof. Roberto Marcello

Unidade II GERENCIAMENTO DE SISTEMAS. Prof. Roberto Marcello Unidade II GERENCIAMENTO DE SISTEMAS DE INFORMAÇÃO Prof. Roberto Marcello SI Sistemas de gestão A Gestão dos Sistemas Integrados é uma forma organizada e sistemática de buscar a melhoria de resultados.

Leia mais

Consultar Tabelas Administrativas

Consultar Tabelas Administrativas STN Coordenação-Geral de Sistemas e Tecnologia de Informação Sistema Integrado de Administração Financeira do Governo Federal SIAFI Secretaria do Tesouro Nacional STN Documentação de Serviços de Interoperabilidade

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

Software de gerenciamento do sistema Intel. Guia do usuário do Pacote de gerenciamento do servidor modular Intel

Software de gerenciamento do sistema Intel. Guia do usuário do Pacote de gerenciamento do servidor modular Intel Software de gerenciamento do sistema Intel do servidor modular Intel Declarações de Caráter Legal AS INFORMAÇÕES CONTIDAS NESTE DOCUMENTO SÃO RELACIONADAS AOS PRODUTOS INTEL, PARA FINS DE SUPORTE ÀS PLACAS

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

SOA 2.0 ou Event-Driven SOA

SOA 2.0 ou Event-Driven SOA SOA SOA 2.0 ou Event-Driven SOA 1 Introdução Recentemente, a Oracle anuciou o termo SOA 2.0. E já deu para imaginar a repercussão que isto teve. Estamos em um momento onde SOA (Service-Oriented Architecture),

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

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

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

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

Manual de Integração Redirecionamento. Versão 1.3

Manual de Integração Redirecionamento. Versão 1.3 Manual de Integração Redirecionamento Versão 1.3 Janeiro de 2012 Histórico de versões Data Versão Descrição Responsável 28/10/11 1.0 Criação do documento Erivelton Oliveira 19/12/11 1.1 Adição dos campos

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

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

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

SOA: Service-oriented architecture

SOA: Service-oriented architecture SOA: Service-oriented architecture Roteiro Breve História O que é Arquitetura de Software? O que é SOA? Serviços Infraestrutura Composição Sua empresa está preparada para SOA? Breve História Uma empresa

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Banco de Dados I Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Dados

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

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Guia do Nexus. O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado. Desenvolvido e mantido por Ken Schwaber e Scrum.

Guia do Nexus. O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado. Desenvolvido e mantido por Ken Schwaber e Scrum. Guia do Nexus O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado Desenvolvido e mantido por Ken Schwaber e Scrum.org Tabela de Conteúdo Visão Geral do Nexus... 2 O Propósito

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

2 Auto-sintonia de Bancos de Dados e Agentes de Software

2 Auto-sintonia de Bancos de Dados e Agentes de Software 2 Auto-sintonia de Bancos de Dados e Agentes de Software A uso da abordagem de agentes de software 1 pode trazer benefícios a áreas de aplicação em que é necessário construir sistemas autônomos, ou seja,

Leia mais

Instalação do IBM SPSS Modeler Server Adapter

Instalação do IBM SPSS Modeler Server Adapter Instalação do IBM SPSS Modeler Server Adapter Índice Instalação do IBM SPSS Modeler Server Adapter............... 1 Sobre a Instalação do IBM SPSS Modeler Server Adapter................ 1 Requisitos de

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

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

Modelagem de Casos de Uso (Parte 2)

Modelagem de Casos de Uso (Parte 2) Modelagem de Casos de Uso (Parte 2) Roteiro (1) Método para Modelagem de Casos De Uso Estudo de Caso: Sistema de Controle para Videolocadora Levantamento Inicial dos Casos de Uso Identificação dos Casos

Leia mais

A Estrutura de um Web Service

A Estrutura de um Web Service A Estrutura de um Web Service Paulo Vitor Antonini Orlandin paulovitor_e@hotmail.com Resumo Atualmente, o Serviço Web é a solução mais utilizada para integração entre sistemas, pois apresenta vantagens

Leia mais

Software e Serviços MANUAL DE HOMOLOGAÇÃO WEB SERVICE X SISTEMA DE AUTOMAÇÃO COMERCIAL

Software e Serviços MANUAL DE HOMOLOGAÇÃO WEB SERVICE X SISTEMA DE AUTOMAÇÃO COMERCIAL MANUAL DE HOMOLOGAÇÃO WEB SERVICE X SISTEMA DE AUTOMAÇÃO COMERCIAL CONSIDERAÇÕES INICIAIS Este manual tem como objetivo propiciar a integração do SISTEMA DE AUTOMAÇÃO COMERCIAL junto as ADMINISTRADORAS

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB

Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB Alt-N Technologies, Ltd 1179 Corporate Drive West, #103 Arlington, TX 76006 Tel: (817) 652-0204 2002 Alt-N

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

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

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

Sistemas Distribuídos Arquiteturas Middlewares

Sistemas Distribuídos Arquiteturas Middlewares Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 02 Agentes Inteligentes Agentes Inteligentes Um agente é algo capaz de perceber seu ambiente por meio de sensores e de

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos Aula 23 Distribuídos SOs de Rede Em sistemas operacionais de rede você sabe quando é local e quando é remoto. Assim, o trabalho não muda, com exceção de comandos para acesso remoto: - telnet - ftp - etc.

Leia mais

Cap 03 - Camada de Aplicação Internet (Kurose)

Cap 03 - Camada de Aplicação Internet (Kurose) Cap 03 - Camada de Aplicação Internet (Kurose) 1. Qual a diferença entre um Programa de computador e um Processo dentro do computador? R. Processo é um programa que está sendo executado em uma máquina/host,

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Modelagem do Processo de Negócio

Modelagem do Processo de Negócio Análise e Projeto 1 Modelagem do Processo de Negócio Modelos de processos de negócios descrevem as diferentes atividades que, quando combinados, oferecem suporte a um processo de negócio. Processos de

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Programas e Linguagens Para executar uma tarefa

Leia mais

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5 Para entender bancos de dados, é útil ter em mente que os elementos de dados que os compõem são divididos em níveis hierárquicos. Esses elementos de dados lógicos constituem os conceitos de dados básicos

Leia mais

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

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ção Elementar de Computadores Jurandy Soares

Programação Elementar de Computadores Jurandy Soares Programação Elementar de Computadores Jurandy Soares Básico de Computadores Computador: dispositivos físicos + programas Dispositivos físicos: hardware Programas: as instruções que dizem aos dispositivos

Leia mais

Frameworks. Pasteur Ottoni de Miranda Junior

Frameworks. Pasteur Ottoni de Miranda Junior Frameworks Pasteur Ottoni de Miranda Junior 1-Definição Apesar do avanço das técnicas de desenvolvimento de software, a construção de software ainda é um processo extremamente complexo.a reutilização tem

Leia mais

BPMN (Business Process. George Valença gavs@cin.ufpe.br

BPMN (Business Process. George Valença gavs@cin.ufpe.br BPMN (Business Process Modeling Notation) George Valença gavs@cin.ufpe.br 31/10/2012 Introdução Modelagem de processos No ciclo de vida BPM, a etapa de modelagem de processos consiste em um conjunto de

Leia mais

Kerio Exchange Migration Tool

Kerio Exchange Migration Tool Kerio Exchange Migration Tool Versão: 7.3 2012 Kerio Technologies, Inc. Todos os direitos reservados. 1 Introdução Documento fornece orientações para a migração de contas de usuário e as pastas públicas

Leia mais

PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS

PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS Élysson Mendes Rezende Bacharelando em Sistemas de Informação Bolsista de Iniciação Científica

Leia mais

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

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens Web Services Pós-Graduação em Tecnologias para o desenvolvimento de aplicações WEB Conteúdo da Aula de Hoje Conceitos básicos Teste com WS Implementação de WS (Provedor e usuário) Instrutor : Avaliação

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

Porque adotar SOA. (Service Oriented Architecture) SOA. Por Ricardo de Castro Barbosa. Publicado Setembro/2008. 1 Portal BPM - www.portalbpm.com.

Porque adotar SOA. (Service Oriented Architecture) SOA. Por Ricardo de Castro Barbosa. Publicado Setembro/2008. 1 Portal BPM - www.portalbpm.com. SOA Porque adotar SOA (Service Oriented Architecture) Por Ricardo de Castro Barbosa Publicado Setembro/2008 Ricardo de Castro Barbosa é sócio da SOA- Savoir Faire (www.soa-savoirfaire.com.br) empresa dedicada

Leia mais

ERP: Pacote Pronto versus Solução in house

ERP: Pacote Pronto versus Solução in house ERP: Pacote Pronto versus Solução in house Introdução Com a disseminação da utilidade e dos ganhos em se informatizar e integrar os diversos departamentos de uma empresa com o uso de um ERP, algumas empresas

Leia mais

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados.

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Histórico Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Sistemas Integrados: racionalização de processos, manutenção dos

Leia mais

Lição 1 Introdução à programação de computadores

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

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: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais