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]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

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

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

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

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

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

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

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

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

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

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

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

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

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

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Este capítulo apresenta trabalhos relacionados ao problema da travessia de firewalls/nat por aplicações CORBA, alguns dos quais tiveram grande influência no desenvolvimento desta

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

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

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

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

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

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

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

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

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

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

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

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

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

3 Modelo de Controle de Acesso no Projeto de Aplicações na Web Semântica

3 Modelo de Controle de Acesso no Projeto de Aplicações na Web Semântica 3 Modelo de Controle de Acesso no Projeto de Aplicações na Web Semântica Este trabalho tem o objetivo de integrar o controle de acesso no projeto de aplicações na web semântica. Uma arquitetura de software

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

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

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

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

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

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

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

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

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

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

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

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

Exemplo da Solução 1 da Lição de Casa 1.264 Exemplo de distribuição de peças da aeronave

Exemplo da Solução 1 da Lição de Casa 1.264 Exemplo de distribuição de peças da aeronave Exemplo da Solução 1 da Lição de Casa 1.264 Exemplo de distribuição de peças da aeronave Esta é uma solução apresentada em forma de esboço somente, e não abrange todas as formas e detalhes. Ela define

Leia mais

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

Leia mais

Integração de Dados Plataforma Hub Magento E-Commerce

Integração de Dados Plataforma Hub Magento E-Commerce Integração de Dados Plataforma Hub Magento E-Commerce Facilitando Negócios Conectando softwares com Magento Plataforma de E-Commerce Integração de Dados Plataforma Hub Magento E-Commerce Este documento

Leia mais

Aplicação Cliente. Consumo Indevido do Ambiente de Autorização

Aplicação Cliente. Consumo Indevido do Ambiente de Autorização Projeto Conhecimento de Transporte Eletrônico Nota Técnica 2012/006 Aplicação Cliente Consumo Indevido do Ambiente de Autorização Setembro 2012 Pág. 1 / 9 Prazos de entrada em vigência das orientações

Leia mais

Aplicação Cliente. Consumo Indevido do Ambiente de Autorização

Aplicação Cliente. Consumo Indevido do Ambiente de Autorização Projeto Manifesto Eletrônico de Documentos Fiscais Aplicação Cliente Consumo Indevido do Ambiente de Autorização Março 2014 Pág. 1 / 9 Prazos de entrada em vigência das orientações e possíveis ações restritivas:

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

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

Leia mais

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

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

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

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

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

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

Planejando uma política de segurança da informação

Planejando uma política de segurança da informação Planejando uma política de segurança da informação Para que se possa planejar uma política de segurança da informação em uma empresa é necessário levantar os Riscos, as Ameaças e as Vulnerabilidades de

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

Documento de Casos de Uso. MC436 Introdução à Engenharia de Software Profª Ariadne Maria Brito Rizzoni Carvalho

Documento de Casos de Uso. MC436 Introdução à Engenharia de Software Profª Ariadne Maria Brito Rizzoni Carvalho Documento de Casos de Uso MC436 Introdução à Engenharia de Software Profª Ariadne Maria Brito Rizzoni Carvalho 1. Índice 2. Introdução 3 3. Descrição dos atores 3 4. Diagrama de caso de uso 4 5. 5.1 5.2

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

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 SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Arquiteturas Capítulo 2 Agenda Estilos Arquitetônicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas

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

Engenharia de Software

Engenharia de Software Engenharia de Software Roteiro Inspeção Defeitos dos Software Classificação dos Erros Técnica de Leitura Ad-hoc Checklist Exercício Inspeção Inspeção de Software Definição É um método de análise estática

Leia mais

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

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

Curso de Licenciatura em Informática

Curso de Licenciatura em Informática Curso de Licenciatura em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita EXERCÍCIOS SOBRE MODELAGEM DE CASOS DE USO Exercício 1: construa um Diagrama de Casos de

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

Programação de Computadores

Programação de Computadores Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 1 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Programas e Programação

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

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

O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa?

O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa? Que tipo de navegadores são suportados? Preciso permitir 'cookies' O que são 'cookies' da sessão? O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa?

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Instruções de Instalação do IBM SPSS Modeler (Licença de Usuário Autorizado)

Instruções de Instalação do IBM SPSS Modeler (Licença de Usuário Autorizado) Instruções de Instalação do IBM SPSS Modeler (Licença de Usuário Autorizado) Índice Instruções de Instalação....... 1 Requisitos do sistema........... 1 Código de autorização.......... 1 Instalando...............

Leia mais

Tutorial 5 Questionários

Tutorial 5 Questionários Tutorial 5 Questionários A atividade Questionário no Moodle pode ter várias aplicações, tais como: atividades de autoavaliação, lista de exercícios para verificação de aprendizagem, teste rápido ou ainda

Leia mais