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=" soap:encodingstyle=" <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=" soap:encodingstyle=" <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=" soap:encodingstyle=" <soap:body xmlns:m=" <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=" soap:encodingstyle=" <soap:body xmlns:m=" <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=" targetnamespace=" xmlns=" <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=" style=" 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=" wsoap:protocol=" <fault ref="tns:invaliddatafault" wsoap:code="soap:sender"/> <operation ref="tns:getweather" wsoap:mep=" </binding> <service name="weatherservice" interface="tns:weatherinterface"> <endpoint name="weatherendpoint" binding="tns:weathersoapbinding" address=" </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]

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

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

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

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

Entendendo como funciona o NAT

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

Leia mais

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

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

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

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

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

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

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

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

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

3 SCS: Sistema de Componentes de Software

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

Leia mais

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

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

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

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

Leia mais

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

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

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

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

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

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

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

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

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

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

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

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

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

Leia mais

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

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

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

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

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

Leia mais

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

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

Sistemas Distribuídos

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

Leia mais

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

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

Leia mais

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

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

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

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

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

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Como Processos Criam Valor?

Como Processos Criam Valor? Como Processos Criam Valor? Eu comecei este Advisor há um mês. Li um artigo sobre processos e valor que pensei estar inadequado e decidi ver se eu poderia disponibilizar uma descrição mais clara e compreensível.

Leia mais

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

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

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

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

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

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET 1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

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

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

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

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto. Discussão sobre Nivelamento Baseado em Fluxo de Caixa. Item aberto na lista E-Plan Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em

Leia mais

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

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

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

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

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

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

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Análise de Sistemas Visão Geral: Orientação a Objetos Prof. José Honorato Ferreira Nunes Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Resumo: VISÃO GERAL: Modelagem de sistemas

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

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

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto

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

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

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

Leia mais

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

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

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Manual de digitação de contas Portal AFPERGS

Manual de digitação de contas Portal AFPERGS Manual de digitação de contas Portal AFPERGS 1 Sumário Acesso à função digitação de contas... 3 O que é a Função digitação de contas (DC)... 4 Como proceder na função digitação de conta médica (DC)...

Leia mais

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

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho. Entregue três questões de cada prova. Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor

Leia mais

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Na Figura a seguir apresento um exemplo de uma mini-tabela de roteamento: Tutorial de TCP/IP - Parte 6 - Tabelas de Roteamento Por Júlio Cesar Fabris Battisti Introdução Esta é a sexta parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos básicos do protocolo TCP/IP. Na

Leia mais

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

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

Leia mais

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

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

Manual do Ambiente Moodle para Professores

Manual do Ambiente Moodle para Professores UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0

Leia mais

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

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

Leia mais

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado. 1 Introdução Testes são importantes técnicas de controle da qualidade do software. Entretanto, testes tendem a ser pouco eficazes devido à inadequação das ferramentas de teste existentes [NIST, 2002].

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

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

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br Gerenciamento de projetos cynaracarvalho@yahoo.com.br Projeto 3URMHWR é um empreendimento não repetitivo, caracterizado por uma seqüência clara e lógica de eventos, com início, meio e fim, que se destina

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

Engenharia de Requisitos Estudo de Caso

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

Leia mais

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

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis 3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis O que é um e- mail bem sucedido? É aquele e- mail que você recebe o contato, envia o e- mail para o cliente e ele te responde. Nós não estamos

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR Jeferson J. S. Boesing 1 ; Manassés Ribeiro 2 1.Aluno do Curso

Leia mais

APOO Análise e Projeto Orientado a Objetos. Requisitos

APOO Análise e Projeto Orientado a Objetos. Requisitos + APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

Leia mais

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

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

Leia mais

Síntese das discussões do fórum Livro-APF: Julho/2010

Síntese das discussões do fórum Livro-APF: Julho/2010 Síntese das discussões do fórum Livro-APF: Julho/2010 Assunto: Estimativa de Aumento de Produtividade Data: 01/07/2010 Link: http://br.groups.yahoo.com/group/livro-apf/message/2577 Dúvida: Existe alguma

Leia mais

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

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

Leia mais

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

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti Daniel Nicoletti Tradução: Luiz Fernando Ranghetti 2 Conteúdo 1 Resumo 5 2 Como funciona 6 2.1 Resumo............................................ 6 2.2 O problema.........................................

Leia mais