Alves, Rodrigo Ribeiro Affonso

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

Download "006.76 Alves, Rodrigo Ribeiro Affonso"

Transcrição

1 MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA CURSO DE MESTRADO EM SISTEMAS E COMPUTACÃO RODRIGO RIBEIRO AFFONSO ALVES UM MÉTODO PARA AUXILIAR A ANOTAÇÃO DE SERVIÇOS WEB Rio de Janeiro

2 INSTITUTO MILITAR DE ENGENHARIA RODRIGO RIBEIRO AFFONSO ALVES UM MÉTODO PARA AUXILIAR A ANOTAÇÃO DE SERVIÇOS WEB Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia como requesito parcial para a obtenção do título de Mestre em Sistemas e Computação. Orientadora: Profª Maria Cláudia Reis Cavalcanti, DSc Co-orientador: Prof. Ricardo Choren Noya, DSc Rio de Janeiro

3 c2011 INSTITUTO MILITAR DE ENGENHARIA Praça General Tibúrcio, 80 Praia Vermelha Rio de Janeiro, RJ CEP Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento. É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica completa. Os conceitos expressos neste trabalho são de responsabilidade do autor e dos orientadores Alves, Rodrigo Ribeiro Affonso A474 Um método para auxiliar a anotação de serviços Web/ Rodrigo Ribeiro Affonso Alves; orientado por Maria Cláudia Cavalcanti. - Rio de Janeiro: Instituto Militar de Engenharia, 2011, 125 p.: il. Dissertação (mestrado). Instituto Militar de Engenharia Rio de Janeiro, Serviços Web Semânticos. 2. Anotação Semântica. 3. Categorização de Documentos. I. Cavalcanti, Maria Cláudia Reis Título. II. Instituto Militar de Engenharia. 3

4 INSTITUTO MILITAR DE ENGENHARIA RODRIGO RIBEIRO AFFONSO ALVES UM MÉTODO PARA AUXILIAR A ANOTAÇÃO DE SERVIÇOS WEB Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Sistemas e Computação. Orientador: Profª Dra. Maria Cláudia Reis Cavalcanti Co-orientador: Prof. Dr. Ricardo Choren Noya Aprovada em 16 de agosto de 2011 pela seguinte Banca Examinadora: Profª Drª Maria Cláudia Reis Cavalcanti - Presidente Prof. Dr. Ricardo Choren Noya, IME Prof. Dr. Fábio André Machado Porto, LNCC Prof. Dr. Júlio César Duarte, IME Rio de Janeiro

5 os lugares-comuns, as frases-feitas, os bordões, os narizes de cera, as sentenças de almanaque, os rifões e provérbios, tudo pode aparecer como novidade, a questão está só em saber manejar adequadamente as palavras que estejam antes e depois, Então por que não diria você noite dos tempos, Porque os tempos deixaram de ser noite de si mesmos quando as pessoas começaram a escrever, ou a emendar, torno a dizer, que é obra doutro requinte e outra transfiguração, José Saramago (História do cerco de Lisboa) 5

6 AGRADECIMENTOS Ao Curso de Mestrado de Sistemas em Computação do IME, especialmente ao professor Salles, coordenador do Curso, pela oportunidade de participar desta importante atividade acadêmica. Ao CNPq, pela concessão de bolsa de auxílio para a elaboração do presente trabalho. À Professora Maria Cláudia Cavalcanti, orientadora, que, com dedicação, atenção, conhecimentos, insistência e paciência, me possibilitou iniciar, desenvolver e concluir essa dissertação. Ao Professor Ricardo Choren, co-orientador, que contribuiu exaustivamente em todos os passos da dissertação. Ao Ten Cel Bergmann, que apoiou definitivamente minha formação profissional e acadêmica, com toda a compreensão, particularmente nos momentos mais difíceis. Aos funcionários da Secretaria da Pós-graduação e do Laboratório de Informática da SE/8, especialmente o Capitão Davi, que tiveram tanta boa vontade e presteza na lida com esta dissertação. À minha família, em especial, à tia Sueli, tia Regina, Marina e felinos, pelo carinho e presença em todas as horas. Aos amigos Adriano, Alessandra, Bruno, Cel Cecílio, Carla, Fernanda, Cel Ismael, Leandro e Marcelo, que oferecem momentos relaxantes na tensão do trabalho. Rodrigo Ribeiro A. Alves 6

7 SUMÁRIO LISTADE ILUSTRAÇÕES...10 LISTA DE ALGORITMOS...12 LISTA DE TABELAS...13 LISTA DE CÓDIGOS...14 LISTA DE ABREVIATURAS E SÍMBOLOS INTRODUÇÃO Motivação e caracterização do problema Objetivos da dissertação Lista de contribuições Organização da dissertação FUNDAMENTAÇÃO TEÓRICA Computação Orientada a Serviços Serviços Web WSDL Serviços Semânticos Web Semântica Anotação Semântica Abordagens para Anotação Semântica de Serviços Web

8 2.4.1 OWL-S WSMO SAWSDL Mineração de textos Categorização Medidas de Similaridade Considerações Finais UM MÉTODO PARA AUXILIAR A ANOTAÇÃO DE SERVIÇOS WEB Configuração Preparar o categorizador Pontuar os conceitos da ontologia Fluxo Principal Extrair recursos a partir do serviço Categorizar textos Ajuste da categorização Anotação do Serviço Considerações Finais

9 4 SEMI-AUTOMATIC SEMANTIC ANNOTATION TOOL - SASAt Configuração Preparar o categorizador Pontuar os conceitos da ontologia Fluxo Principal Extrair recursos a partir do serviço Categorizar textos Ajuste da Categorização Anotação do Serviço Considerações Finais TRABALHOS RELACIONADOS Trabalhos parcialmente relacionados Uma abordagem para auxiliar desenvolvedores a anotar serviços Web com ontologias METEOR-S Web Service Annotation Framework Considerações Finais PROVA DE CONCEITO Descrição do cenário Resultados Preliminares

10 7 CONCLUSÃO Lista de Contribuições Trabalhos Futuros REFERÊNCIAS

11 LISTA DE ILUSTRAÇÕES FIG. 2.1 Arquitetura orientada a serviços...25 FIG. 2.2 Resumo da sintaxe do WSDL FIG. 2.3 Comparação entre Web Tradicional e Web Semântica...34 FIG. 2.4 Arquitetura Genérica para Anotação Semântica. Adaptado de Nagarajan [2006, p. 36]...36 FIG. 2.5 Uso de semântica no ciclo de vida de um serviço web. Adaptado de Nagarajan [2006, p. 44]...38 FIG. 2.6 Pilha estendida de especificação dos serviços Web. Adaptado de Kopecký et al.[2007]...43 FIG. 2.7 Dados semânticos lifting e lowering. Adaptado de Kopecký et al. [2007]...44 FIG. 2.8 Categorização com um classificador TF-IDF usando vetores de features. Adaptado de Konchady [2008]...47 FIG. 3.1 Fluxo Geral...57 FIG. 3.2 Atividade de preparação do categorizador...60 FIG. 3.3 Associação dos conceitos da ontologia com o corpus pré-classificado...61 FIG. 3.4 Atividade de pontuação dos conceitos da ontologia...62 FIG. 3.5 Fluxo principal do método...64 FIG. 3.6 Associação de informações textuais à operação que será anotada FIG. 3.7 Atividade de extração de recursos a partir do serviço...69 FIG. 3.8 Atividade de categorização de textos

12 FIG. 3.9 Funcionamento da categorização de textos...71 FIG Atividade de ajuste da categorização...75 FIG Atividade de anotação do serviço...78 FIG. 4.1 Interface do protótipo SASAt...82 FIG. 4.2 Diagrama de classes do modelo de dados utilizado...83 FIG. 4.3 Tabela hash utilizada para armazenar os conceitos da ontologia...85 FIG. 4.4 Mecanismo de busca personalizada biobase...88 FIG. 4.5 Ontologia de três conceitos representada na forma de um grafo...90 FIG. 4.6 Diagrama de objetos de uma instância de uma operação e de seus parâmetros...96 FIG. 4.7 Diagrama de objetos enfatizando os objetos da classe Classificacao

13 LISTA DE ALGORITMOS ALG. 3.1 Pseudocódigo do mecanismo de anotação semi-automática...77 ALG. 4.1 Treinamento do classificador

14 LISTA DE TABELAS TAB 2.1 Principais elementos dos mecanismos de anotação semântica [MENEGAZZO et al., 2009]...52 TAB. 2.2 Invocação de serviços Web [MENEGAZZO et al., 2009]...55 TAB. 3.1 Cálculo do tf (freqüência do termo)...72 TAB. 3.2 Cálculo do idf (freqüência inversa do documento)...72 TAB Cálculo do tf-idf...72 TAB. 3.4 Classificação do documento X...74 TAB. 5.1 Valores do peso para cálculo do MS

15 LISTA DE CÓDIGOS CÓDIGO 2.1 Apresentação de um elemento message...30 CÓDIGO 2.2 Trecho de WSDL descrevendo uma operação vinculada a um conceito de uma ontologia...45 CÓDIGO 3.1 Exemplo de uma operação descrita em WSDL...66 CÓDIGO 3.2 Conjunto de sentenças utilizadas para representar uma operação...67 CÓDIGO 3.3 Operação anotada com conceito utilizando SAWSDL...78 CÓDIGO 4.1 Trecho do retorno de uma consulta ao termo bioinformatics utilizando o serviço REST da Google...85 CÓDIGO 4.2 Definição original de tipos utilizando XML Schema...93 CÓDIGO 4.3 Definição de tipos primitivos como partes de uma mensagem...94 CÓDIGO 4.4 Descrição em linguagem natural de uma operação e seus parâmetros utilizando XML...95 CÓDIGO 6.1 Descrição em linguagem natural da operação adaptada para XML CÓDIGO 6.2 Classificação lingüística do documento associado à operação run CÓDIGO 6.3 Classificação estrutural baseada no algoritmo do PageRank CÓDIGO 6.4 Classificação final do documento associado à operação run CÓDIGO 6.5 Resultado da anotação das operações do NCBI BLAST com α=1 e β=

16 LISTA DE AREVIATURA E SÍMBOLOS ALG ESB FIG GWT HTML JSON OWL OWL-S RDF REST RPC SAWSDL SASAt SOA SOAP TAB TF-IDF UDDI URL W3C WSDL WSMO XML - Algoritmo - Enterprise Service Bus - Figura - Google Web Toolkit - HyperText Markup Language - JavaScript Object Notation - Web Ontology Language - OWL-based Web Service Ontology - Resource Description Framework - Representational State Transfer - Remote Procedure Call - Semantic Annotations for WSDL and XML Schema - Semi-Automatic Semantic Annotation Tool - Service-oriented Architecture - Simple Object Access Protocol - Tabela - Term Frequency Inverse Document Frequency - Universal Description, Discovery and Integration - Uniform Resource Location - World Wide Web Consortium - Web Service Description Language - Web Services Modelling Ontology - Extensible Markup Language 16

17 RESUMO Os serviços semânticos visam fornecer os meios necessários para a descoberta, composição e invocação automática de serviços Web. Os serviços semânticos facilitam a interoperabilidade entre sistemas distribuídos. O presente trabalho apresenta uma abordagem para auxiliar a anotação semântica em uma arquitetura orientada a serviços. A tarefa de anotação consiste em associar os elementos do serviço a conceitos representados por uma ontologia. O método proposto utiliza a categorização de documentos para classificar textos associados aos termos do serviço e a estrutura da ontologia para ponderar seus conceitos mais relevantes. Também é apresentado um método flexível para geração do corpus de treinamento do categorizador. Concluímos a proposta com os resultados preliminares gerados pela implementação do método e propomos uma discussão sobre as diferentes abordagens para automatizar a processo de anotação de serviços. 17

18 ABSTRACT Semantic services intend to give the necessary ways to perform web services automatic discovery, composition and invocation. They make the interoperability among distributed systems easier. This work shows an approach to help semantic annotation to service oriented architecture. The task consists in associate the service elements to concepts represented by an ontology. The suggested method uses the document classification to classify texts associated to service terms and uses the ontology structure to weight the most important concepts. We offer a flexible method to generate the classifier training corpus. We conclude the proposal by showing the first results generated by the method and discuss the different ways to automate the service annotation task. 18

19 1 INTRODUÇÃO A primeira geração de sistemas de informação fornecia processamento centralizado e estes sistemas eram controlados e acessados a partir de terminais sem a capacidade de processar dados. A segunda geração foi organizada em servidores que forneciam processamento, dados, arquivos e aplicações de propósito geral, e, clientes que eram capazes de interagir com os servidores, provendo processamento, entradas e saídas de propósito especifico. A terceira geração de sistemas de informação inclui os sistemas peer-to-peer, no qual cada nó de um conjunto de processadores distribuídos funciona como cliente e servidor ao mesmo tempo. A próxima geração de sistemas de informação será cooperativa, nos quais componentes autônomos, ativos e heterogêneos permitem que os componentes forneçam uma solução coletivamente. [SINGH; HUHNS, 2005] Uma das formas de permitir que sistemas de informação colaborem entre si, é através do uso de serviços. Serviços criam uma camada intermediária sobre a aplicação provedora fornecendo uma interface para chamada de suas funcionalidades. Na especificação do escopo de [XML, 2000], é dito que atualmente, o principal uso da World Wide Web é o acesso interativo a documentos e aplicações. Em quase todos os casos, esse acesso é feito por usuários em geral, normalmente através de navegadores Web, players de áudio, ou outros sistemas interativos. A Web pode crescer significativamente seu poder de alcance, se for estendida para suportar a comunicação entre aplicações, desde um programa para outro. Novamente, em [SINGH; HUHNS, 2005], os autores abordam a importância de se representar serviços em um nível maior de abstração de modo a facilitar a interoperabilidade entre sistemas. Os autores mostram uma variante do modelo de três níveis (conceitual, lógico e sintático) para apresentar uma idéia de como aplicações podem interagir através de documentos. A ideia da interação através de documentos que são descritos via documentos separados vem da arquitetura orientada a serviços. Os autores sugerem que esta ideia pode ser aproveitada para permitir o enriquecimento das 19

20 descrições de serviços através da inserção de uma camada adicional, representada por um modelo semântico que também é expresso como um documento. 1.1 MOTIVAÇÃO E CARACTERIZAÇÃO DO PROBLEMA Berners-Lee e Hendler [2009] vislumbraram várias das aplicações que começaram a ser tratadas pela Web Semântica. A maioria do conteúdo da Web hoje é designada para que os usuários humanos leiam, e não para que programas de computador manipulem os significados de seu conteúdo. Os computadores podem analisar as páginas Web para tratar o layout e criar rotinas, mas, em geral, os computadores não possuem meios fidedignos de processar a semântica. O que os autores chamaram em seu artigo de agentes de software inteligente será tratado em nosso contexto como serviços Web semânticos, que são serviços capazes de realizar grande parte das atividades do ciclo de vida de um serviço Web de forma automática [AKKIRAJU, 2007]. Desta forma, serviços são capazes de descobrir outros serviços automaticamente fazendo uso da semântica agregada na descrição dos serviços descobertos. Na falta de serviço especifico, um serviço pode ser composto de serviços mais básicos, originando uma composição de serviços com funcionalidade equivalente. Estas são algumas das vantagens alcançadas com o uso de semântica para descrever serviços. [BERNERS-LEE; HENDLER, 2009] Pretendemos introduzir alguns conceitos importantes para o desenvolvimento do tema do presente trabalho: Um Método para Auxiliar a Anotação de Serviços Web, mas, antes de nos ocuparmos com a anotação de serviços Web, apresentamos a arquitetura SOA (Service Oriented Architecture). SOA consiste em um modelo teórico que serve como fundamento para o desenvolvimento de serviços Web. O vocabulário para descrição dos documentos WSDL atuais deixa espaço para interpretações ambíguas das funcionalidades e dos dados de um serviço Web. A ambigüidade na interpretação dificulta a automação de tarefas como a descoberta, composição e invocação dos serviços. Uma forma de tratar isto é através do uso de linguagens de marcação semântica para serviços Web. 20

21 Anotar semanticamente um serviço implica em explicar a semântica exata dos elementos de um serviço Web, o que é crucial para sua utilização. Isto é feito através da anotação dos elementos do serviço com conceitos representados por modelos de domínio ou ontologias. Como as ontologias representam visão compartilhada do domínio modelado [GUIZZARDI, 2005], qualquer ambigüidade na descrição ou nos dados de um serviço é eliminada. O objetivo de anotar serviços é facilitar a descoberta e a composição automática de serviços. 1.2 OBJETIVOS DA DISSERTAÇÃO O objetivo geral da dissertação é auxiliar a anotação semântica de serviços Web, utilizando a descrição dos serviços em linguagem natural e a estrutura do modelo semântico. Para alcançarmos tal objetivo, realizamos a mineração de textos descritivos de serviços e de textos complementares ao serviço, classificamos conceitos da ontologia segundo seu nível de similaridade em relação aos termos do serviço e ajustamos a classificação segundo as relações existentes na ontologia. A fim de automatizarmos a anotação de Serviços Web, propusemos um mecanismo para permitir a anotação semi-automática dos elementos WSDL com base em técnicas de mineração de texto. Tais técnicas são usadas para treinar uma base de conhecimento que classifica um conjunto de documentos de acordo com os conceitos de uma ontologia específica. O mecanismo inclui também uma maneira de refinar (reponderar) o resultado desta classificação, com base em uma avaliação prévia de cada um dos conceitos em relação aos demais conceitos da ontologia. 1.3 LISTA DE CONTRIBUIÇÕES Ao atingir os objetivos enunciados na seção anterior, espera-se que haja relevantes contribuições para a área de anotação semântica de serviços, bem como para áreas correlatas. Assim, segue uma lista das contribuições esperadas. 21

22 1) Um método para anotação semântica de serviços Web auxiliada pela extração e processamento de informações descritas em linguagem natural; 1.1) flexibilidade - o usuário pode validar os resultados da classificação; 1.2) agilidade - automatiza parte do processo; ontologia; 1.3) filtragem das categorias- o usuário não precisa conhecer todos os conceitos da 2) Meios alternativos de classificação de documentos, com enfoque na estrutura do modelo semântico que representa as categorias de um domínio; 3) Uma arquitetura flexível para treinamento de classificadores. 1.4 ORGANIZAÇÃO DA DISSERTATAÇÃO O capítulo 2 representa a fundamentação teórica do nosso trabalho, e vamos contextualizar o leitor nas melhorias que a anotação de serviços promove na interoperabilidade entre sistemas, já que facilita a composição e invocação de serviços e flexibiliza a comunicação entre sistemas distribuídos. Neste capítulo apresentaremos o conceito de serviço, as formas de representar um serviço, seus componentes e a arquitetura que utiliza serviços. Tratamos da Web semântica e das vantagens de anotar recursos na Web. Apresentamos, também, os serviços enquanto recursos da Web, passíveis de serem anotados. Discutimos as abordagens para anotação dos serviços Web, tais como OWL-S, WSMO e SAWSDL. A fim de automatizar o processo de anotação, utilizamos fundamentalmente a categorização de documentos, que é uma das técnicas de mineração de textos, e, por isso, esta técnica é também apresentada neste capítulo. O capítulo 3 é a proposta do nosso trabalho e consiste na elaboração de um método para auxiliar a anotação de serviços Web através de técnicas de mineração de texto. 22

23 Utilizamos a classificação de documentos para categorizar textos associados aos elementos do WSDL, e algumas heurísticas para extração de documentos. Além da elaboração de um método para auxiliar a anotação de serviços Web, propusemos a criação de um processo para ajudar a extração de informações. O uso de técnicas de mineração mostra que é possível extrairmos informações que podem ajudar a enriquecer um documento que tenha uma descrição meramente sintática, como é o caso do WSDL. Transformamos um problema de associação de elementos de um WSDL a conceitos de uma ontologia em um problema de categorização de documentos. O capítulo 4 aborda a implementação do protótipo SASAt, mostrando as técnicas, tecnologias, algoritmos e estruturas que foram utilizadas em sua construção. O capítulo 5 discute a bibliografia especializada que desempenhou papel relevante na elaboração da nossa proposta. Esta bibliografia, além de indicar formas de acrescentar semântica a serviços por técnicas de mineração de texto, analisa o aspecto estrutural de modelos semânticos. A bibliografia é composta tanto de trabalhos que tiveram uma contribuição indireta para a elaboração de algumas ideias presentes no método proposto, quanto de trabalhos que tiveram uma maior contribuição para nossa proposta, que, portanto foram tratados com um nível maior de detalhes. Para além de discutir as diferentes abordagens da bibliografia, este capítulo estabelece uma comparação entre os trabalhos consultados e a nossa proposta. 23

24 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo trata do embasamento necessário à compreensão dos serviços Web semânticos. Iniciamos com uma breve discussão sobre a computação orientada a serviços e a arquitetura orientada a serviços. Em seguida, detalhamos alguns aspectos importantes dos serviços Web para, então, mostrarmos como os serviços Web semânticos podem ser gerados. 2.1 COMPUTAÇÃO ORIENTADA A SERVIÇOS Nos anos 1990, a Programação, o Projeto e a Análise Orientada a Objeto, acolhidas pela Engenharia de Software, assumiram grande importância devido à aceitação do mercado de informática. A Orientação a Objeto tornou-se a técnica preferida para o desenvolvimento de sistemas, principalmente os comerciais, por mostrar-se consistente com o tratamento dado aos objetos do hardware e aos princípios dos Bancos de Dados. Nos anos 2000, a crescente valorização dos serviços em todos os mercados, qualificados como portadores de valores agregados e associados às facilidades computacionais da INTERNET, produziu o conceito de Arquitetura Orientada a Serviço (SOA), inicialmente implementada como serviços Web. Este tipo de arquitetura surgiu em um momento no qual as organizações estavam preocupadas em alinhar seus Sistemas de Informação a estratégias de negócio, permitindo a criação de aplicações personalizadas, porém baseadas em serviços básicos para a reutilização de código computacional. Outro fator de extrema relevância e que influenciou diretamente a difusão deste tipo de arquitetura foi a interoperabilidade, ou seja, sistemas desenvolvidos com diferentes linguagens de programação, executados em sistemas operacionais distintos, poderiam se comunicar. Cada sistema disponibiliza um conjunto de serviços para o mundo externo, a serem combinados com serviços disponibilizados por 24

25 outras aplicações, criando aplicações integradas. Estes serviços, segundo Erl [2008], devem possuir alguns princípios essenciais, quais sejam: Baixo acoplamento: o baixo acoplamento de um serviço está relacionado com a sua capacidade de ser independente de outros serviços para realizar a sua tarefa. Além do baixo acoplamento, é importante que um serviço tenha alta coesão, ou seja, que a sua atividade seja bem definida e coerente. Abstração da lógica: serviços devem ser tratados como uma caixa preta, assim como componentes de um sistema. Desta forma, a programação nele inclusa pode ser substituída a qualquer momento, sem afetar aqueles que o consomem. Capacidade de se compor: criar serviços que sejam capazes de se juntar e serem acessados de forma a englobar e atender um problema maior. Não alocação de recursos por longos períodos: devido ao fato de que um serviço será reutilizado, deve-se tomar o cuidado de não criar muitas instâncias deste Serviço, onerando a infra-estrutura. Isto significa que, para um serviço ter disponibilidade, ele deve evitar reter informações específicas de uma determinada atividade. Autonomia: é a capacidade de se auto-governar, e um serviço autônomo é aquele que independe de um elemento externo para executar sua lógica. Capacidade de ser descoberto: um contrato formal bem descrito e padronizado evita que novos requerimentos resultem em serviços redundantes; além disto, a arquitetura deve prover mecanismos que facilitem a descoberta do serviço através de diretórios e registros. Reuso: um serviço reutilizável é aquele que não carrega particularidades técnicas de uma implementação ou regra de negócio específica, e é genérico o suficiente para atender outros projetos. Como foi visto anteriormente, uma arquitetura orientada a serviços torna possível a interoperabilidade de diversos sistemas, o que permite sua composição, e resulta em um 25

26 sistema único e de maior complexidade. A interoperabilidade dá flexibilidade para o desenvolvimento de aplicações personalizadas, mas também aumenta a complexidade da gerência dos serviços que compõem a aplicação. Pode-se perceber isto pela importância que vem sendo dada à gerência de serviços, com a criação e a padronização de seus processos, como o ITIL (Information Technology Infrastructure Library) 1 [PERSSE, 2010]. Uma arquitetura orientada a serviços deve ter os três componentes apresentados na figura 2.1: FIG. 2.1 Arquitetura orientada a serviços O Service Registry mantém um registro dos serviços publicados e pode disponibilizar os provedores aos consumidores de serviços. O Service Provider cria os serviços e os publica para usuários potenciais através do registro de serviços. O Service Requester busca provedores e serviços apropriados nos registros do Service Registry e, então, se vincula a um Service Provider, cujos serviços utiliza. A arquitetura orientada a serviços pode ser implementada com diversas técnicas, das quais as mais conhecidas são os serviços Web e o serviços REST (Representational State Transfer) [FIELDING, 2000]. Apesar de serem praticamente um padrão, há outras maneiras de implementar este tipo de arquitetura. O Exército Brasileiro desenvolveu sua própria arquitetura orientada a serviços: Cortex. De acordo com a definição dada no Portal do Software Público [BRASIL (a)], Cortex é um framework para desenvolvimento de aplicativos desktop multiplataforma em C++. Ele se baseia na composição de Sinapses 1 Site oficial do ITIL: 26

27 (bibliotecas dinâmicas) em tempo de execução e sugere fortemente sua modelagem como serviços em uma Arquitetura Orientada a Serviços. É calcado em princípios SOA, o que não implica necessariamente em web services. Entretanto, já foi implementada uma solução híbrida de serviços web e desktop operando em conjunto, a qual deve ser em breve disponibilizada como parte do framework. [BRASIL (b)]. Utilizamos esta arquitetura para o desenvolvimento do Sistema de Incidentes dos V Jogos Mundiais Militares [RIO, 2011] em julho de A modularidade desta arquitetura facilita consideravelmente o reuso e a extensibilidade do código. 2.2 SERVIÇOS WEB De acordo com Singh e Huhns [2005], serviços podem significar diferentes coisas para diferentes pessoas. Os serviços Web podem ser definidos como: Um pedaço da lógica de negócio acessível via Internet usando padrões abertos (Microsoft). Funções de software encapsuladas, compactadas e fracamente acopladas, oferecidas via padrões de protocolos da Web (DestiCorp). Componentes de software fracamente acoplados que interagem com outros via padrões de tecnologias da Internet (Gartner). Uma aplicação de software identificada por um URI, cujas interfaces e vinculações são capazes de serem definidas, descritas e descobertas por artefatos XML e que suporta interações diretas com outras aplicações de software usando mensagens baseadas em XML através de protocolos baseados na Internet (W3C). [SINGH e HUHNS, 2005, p.11] A arquitetura para serviços Web é fundamentada em princípios e padrões para conexão, comunicação, descrição e descoberta. Para que provedores e consumidores sejam conectados e troquem informações, deve haver uma linguagem comum, a extensible Markup Language (XML). Também é necessário um protocolo comum para que os 27

28 sistemas se comuniquem; o Simple Object Access Protocol (SOAP) fornece o protocolo de comunicação comum. Os serviços devem ser descritos em uma forma passível de leitura pela máquina, de modo que os nomes das funções, seus parâmetros de entrada e seus resultados sejam especificados, o que pode ser obtido com a Web Services Description Language (WSDL). Por fim, os clientes - usuários e negócios que precisam encontrar serviços podem utilizar o Universal Description, Discovery and Integration (UDDI), que especifica um registro ou as "páginas amarelas" dos serviços. [JOSUTTIS, 2007] Assim, serviços Web podem ser definidos como aplicações de software passíveis de serem acessadas remotamente com diferentes linguagens baseadas em XML. Ainda que seja identificado por um URL, como quaisquer outros sites da web, um serviço Web diferencia-se destes sites pelas especificações do tipo de informação que pode fornecer. Vejamos cada uma das tecnologias: SOAP SOAP foi concebido originalmente para permitir que computadores em rede executassem serviços na forma de chamadas a procedimentos remotos (RPC - Remote Procedure Call) escritos em XML. Desde então ele se tornou um protocolo simples e leve para troca de mensagens XML na Web usando HTTP, SMTP e SIP. Na prática, porém, HTTP é o meio de transporte mais comum para SOAP e é a opção que está incluída nos padrões de interoperabilidade. [SOAP, 2004] SOAP define um envelope para transmitir mensagens e regras para representar chamadas a procedimentos remotos. Normalmente o método HTTP POST é preferido ao HTTP GET devido à sua capacidade de carregar payload 2. O corpo SOAP descreve chamadas ao método e às respostas do método. Ele deve conter a URI do objeto-alvo, o nome do método e os parâmetros da mensagem. Em termos conceituais, SOAP é um protocolo sem estado. A especificação SOAP continua sendo revisada e ainda não descreve comunicação bidirecional nem multipart. Este tipo de comunicação seria útil para compor serviços Web a partir de múltiplos provedores. Também, não há como transferir 2 Payload, ou carga útil, é o corpo da mensagem que se deseja enviar. 28

29 semântica de transação através de uma chamada SOAP, nem como passar credenciais de segurança, embora este problema possa ser resolvido com os padrões de segurança que estão sendo estudados [ERL, 2004]. WSDL WSDL [CHRISTENSEN et al., 2001] é a especificação mais amplamente adotada e diz como descrever um serviço Web (será detalhada na seção 2.2.1). UDDI A especificação Universal Description, Discovery, and Integration (UDDI) descreve um mecanismo para registrar e localizar serviços Web. Ela define um registro on-line onde organizações, i.e., provedores de serviços, se descrevem e registram seus serviços Web. O registro pode então ser utilizado por consumidores de serviços e por usuários, a fim de encontrarem os serviços de que precisam. Por meio da UDDI, os provedores publicam seus próprios serviços para outros provedores e para consumidores, que, por sua vez, podem usar o registro do UDDI para compor os serviços WSDL De acordo com Thomas Erl, a WSDL (Web Services Description Language) é um especificação da W3C que consiste na principal linguagem para as definições de serviços Web, ou seja, é uma especificação que nos diz como descrever serviços Web. [ERL, 2004] Existem duas versões propostas pela W3C para especificação WSDL: 1.1 e 2.0. Optamos por descrever a versão WSDL 1.1, pois a maioria dos serviços que encontramos disponíveis se encontram descritos utilizando esta versão. Um documento WSDL é um documento XML que contém todas as informações necessárias que precisamos para contatar um serviço, é independente de plataforma e linguagem. As descrições incluem definições de tipos de dados, formatos de mensagens de entrada e saída, as operações fornecidas pelo serviço, endereços de rede e vinculação de 29

30 protocolos. Essas descrições, de acordo com Potts e Kopack [2003], podem ainda ser subdividas em dois agrupamentos distintos: as descrições concretas e as descrições abstratas, podendo ser chamadas de descrições funcionais e não-funcionais. A descrição concreta é composta dos elementos que são orientados para vincular fisicamente o cliente ao serviço, ao passo que, a descrição abstrata é composta dos elementos que são orientados para descrever as capacidades de um serviço Web. [POTTS; KOPACK, 2003] Uma boa forma de compreendermos como um serviço Web é definido e expresso por um documento WSDL, é a análise de cada um dos construtores que, coletivamente, representam esta definição. Todo documento WSDL começa com a declaração do elemento raiz definitions, que funciona como um contêiner para a definição de todo o serviço. Os quatro elementos XML abstratos que podem ser definidos em um documento WSDL são: <wsdl:types> <wsdl:message> <wsdl:operation> <wsdl:porttype> Os elementos XML concretos em um WSDL são: <wsdl:service> <wsdl:port> <wsdl:binding> A figura 2.2 mostra a estrutura de um documento WSDL extraída de [WEERAWARANA et al., 2005]. Em seguida explicamos cada elemento que compõe o documento WSDL. 30

31 FIG. 2.2 Resumo da sintaxe do WSDL 1.1 Definitions De forma semelhante ao XML Schema, o elemento WSDL <definitions> se refere às definições para um único namespace, chamado de targetnamespace. O namespace é uma espécie de identificação da origem das definições que constam em um documento. Pode haver mais de um elemento de definição com o mesmo valor para o atributo targetnamespace, o que demonstra a ideia de que mais do que um documento físico pode definir itens para um único namespace. O atributo name, de <definitions>, distingue uma coleção de definições para uma namespace de outra coleção para o mesmo namespace. Types 31

32 O elemento <types> é usado para indicar que um tipo WSDL está sendo declarado. Ele controla as estruturas dos dados que mais tarde definirão as mensagens trocadas por um serviço. A WSDL não define uma linguagem própria de declaração de estrutura de dados, porém a mais utilizada é a XML Schema. Messages Um elemento do tipo <message> permite descrever as mensagens trocadas pelo serviço Web. Na WSDL, uma mensagem é composta de uma ou mais partes, cada uma delas representa um único item a ser enviado ou recebido. <message name='getrelatedfeaturesseq5in'> <part name='accession' type='xsd:string'/> <part name='start' type='xsd:string'/> <part name='stop' type='xsd:string'/> </message> CÓDIGO 2.1 Apresentação de um elemento message No trecho de código acima, a mensagem getrelatedfeaturesseq5in é formada explicitamente por três partes: accession, start e stop. Uma mensagem também pode referenciar elementos descritos por estruturas complexas definidas no elemento <types>. Operations O elemento <operation> é análogo a uma chamada de método nas linguagens de programação. A diferença é que apenas três mensagens são permitidas em uma 32

33 <operation>: a mensagem de entrada define os dados que o serviço Web espera receber; a mensagem de saída define os dados que o serviço Web espera enviar em resposta; e a mensagem de falha define as mensagens de erro que podem ser retornadas pelo serviço Web. Além disso, as <operation>'s podem ser de diversos tipos: One-way Recebe uma mensagem, ou seja, uma mensagem chega ao serviço e ele não produz qualquer resposta; Notification Envia uma mensagem, ou seja, o serviço envia uma mensagem e não recebe qualquer resposta; Request-response Uma mensagem chega ao serviço e este produz uma mensagem de resposta; Solicit-response O serviço envia uma mensagem e obtém uma mensagem de retorno. PortTypes Um <porttype> define um conjunto de operações relacionadas, através do elemento <operation> que um serviço Web suporta. De acordo com Weerawarana et al. [2005], em relação a um processador de mensagens, não existe nada intrínseco ao serviço Web que possa ser chamado de operação. Na verdade, uma operação é apenas um grupamento de mensagens relacionadas que são trocadas. Na WSDL 1.1, as operações são nomeadas e definidas pelas mensagens (elemento <message>) que o serviço recebe ou envia; cada operação pode enviar ou receber, no máximo, uma mensagem em cada direção. [WEERAWARANA et al., 2005] Ports O elemento <port> representa o endereço IP e a porta real do serviço Web. [WEERAWARANA et al., 2005] 33

34 Binding Os termos <types>, <message> e <porttype> descrevem o que um serviço realiza na troca de mensagens. O propósito do elemento <binding> é descrever como formatar aquelas mensagens a fim de que interajam com um determinado serviço. A WSDL não admite um modo padrão para formatar as mensagens, pois ela usa a extensibilidade para definir como trocar mensagens através de SOAP, HTTP ou MIME. [WEERAWARANA et al., 2005] Service O elemento <service> na WSDL é a parte final de uma descrição de serviço e indica onde encontrar o serviço pelo uso de seu elemento-filho <port>. Um único <service> pode conter qualquer quantidade de elementos <port>, e cada <port> descreve um único porttype. Assim, cada <port> se refere a um elemento de <binding> através do nome e do endereço em que este binding está declarado. Um único elemento <definitions> pode conter vários números de porttypes, logo é possível colocar todos os porttypes oferecidos por uma entidade (identificada pelo targetnamespace) dentro de um único documento. O elemento <definitions> é, portanto, o elemento raiz do serviço, funcionando como um tipo de container para todos os outros elementos. [WEERAWARANA et al., 2005] 2.3 SERVIÇOS SEMÂNTIVOS Nesta seção, são apresentados alguns conceitos importantes para compreender a criação e a importância dos serviços Web semânticos WEB SEMÂNTICA 34

35 Para definirmos Web Semântica, vamos começar definindo semântica. Semântica quer dizer significado. O significado permite um uso mais efetivo dos dados. A grande maioria das fontes de informação está desprovida de significado, o que faz com que usuários ou instruções de programação complicadas tenham que suprir esta deficiência. A Web Semântica consiste em uma rede de dados descritos e relacionados de modo a estabelecer contexto e semântica que estejam de acordo com construtores de linguagem e uma gramática bem definida. [BERNERS-LEE, 1990] De forma geral, podemos adicionar semântica às aplicações através de instruções de programação; mas, não existe nenhum padrão formal para semântica programada. Além disso, agregação, compartilhamento, e validação são normalmente difíceis ou impossíveis. A semântica fica perdida em um labirinto de declarações if/else, pesquisas em bancos de dados, e muitas outras técnicas de programação. Isto torna muito difícil aproveitar informações preciosas ou mesmo reconhecê-las. O modo disperso e não padronizado de capturar semântica através da programação coloca restrições no processo de captura das informações. FIG. 2.3 Comparação entre Web Tradicional e Web Semântica 35

36 Como podemos observar na figura 2.3 [MILLER, 2004], a Web Semântica trata da semântica através de conexões padronizadas a informações relacionadas. Isto envolve a rotulação única e endereçável dos dados. Então, os programas podem facilmente determinar se uma construção é a mesma referenciada por outra construção. Cada elemento de dado único se conecta a um contexto maior, ou à própria Web. A Web oferece caminhos potenciais para sua definição, relacionamentos em uma hierarquia conceitual, relacionamentos com informações associadas e relacionamentos com instâncias específicas de construção. A flexibilidade na forma de uma rede permite conexões com todas as informações necessárias, incluindo regras lógicas. Estes caminhos e termos, relacionados por regras, formam um vocabulário de domínio, ou ontologia. O conceito original de ontologia vem da filosofia, onde denota a ciência do ser e, com isto, das descrições para organização, designação e categorização da existência. Logo, ontologias têm como objetivo explicar a natureza das coisas. De acordo com Singh e Huhns [2005], uma ontologia consiste em um modelo computacional de alguma porção do mundo. Ela é freqüentemente representada na forma de uma rede semântica - um grafo cujos nós são conceitos ou objetos individuais e cujos arcos representam relações ou associações entre estes conceitos. A rede é enriquecida com propriedades e atributos, restrições, funções e regras, que governa, o comportamento dos conceitos. Na Ciência da Computação a palavra ontologia começou a ser utilizada no plural, ontologias, pois muitos domínios de conhecimento podem ter diversas representações diferentes coexistindo lado a lado. Então, neste contexto, uma ontologia é uma descrição precisa do conhecimento em uma linguagem lógica com semântica bem definida, permitindo processamento por máquinas e dedução lógica. Em ontologias formais, a relação entre super-classes e sub-classes é anotada com rigor. Inicialmente, estabelecemos uma formalização adicional através da inclusão de instâncias na classificação de esquemas e posteriormente, através da definição de restrições de valor para descrever propriedades. Alcançamos um maior nível de expressividade definindo as propriedades por meio de equações matemáticas contendo valores de outras propriedades ou por declarações em lógica de primeira-ordem, tais como classes de disjunção ou inversão, ou relações do tipo parte-de. [SINGH; HUHNS, 2005] 36

37 Guizzardi [2006] demonstra a insuficiência das linguagens de ontologias de domínio (lightweight) para tratar alguns problemas de interoperabilidade semântica que podem surgir em um cenário aberto e dinâmico (tal como a Web Semântica). O autor defende que estas línguas devem ser complementadas por uma linguagem e metodologia baseadas em Ontologias de Fundamentação, ou seja, um senso comum independente de domínio construído através da agregação de contribuições adequadas de áreas como a metafísica descritiva, lógica filosófica, a ciência cognitiva e a lingüística. Uma ontologia de fundamentação pode ser, então, descrita como uma ontologia que descreve conceitos muito gerais, que são os mesmos em todos os domínios do conhecimento. A ontologia de fundamentação tem por objetivo identificar categorias gerais de certos aspectos da realidade que não são específicos a um campo científico, descrevendo conhecimento independentemente de linguagem, de um estado particular das coisas ou ainda do estado de agentes [GUIZZARDI, 2005]. Veremos posteriormente que algumas abordagens para anotação de serviços são baseadas em ontologias de fundamentação ANOTAÇÃO SEMÂNTICA O aspecto chave por trás da visão da Web Semântica é o fornecimento de metadados e sua associação com os recursos presentes na Web. O processo de associar metadados a recursos é chamado de anotação, e anotação semântica é o processo de anotar recursos com metadados semânticos. Ou seja, a anotação semântica de um documento consiste em informação adicional que identifica ou define um conceito em um modelo semântico, de modo a descrever parte do documento. A anotação semântica de recursos suportados por um modelo de mundo existente (o esquema da ontologia que fornece um modelo acordado e não ambíguo para representação de dados e metadados) e uma base de conhecimento (instâncias da ontologia) segue três passos iniciais de acordo com Nagarajan [2006]: identificação da entidade, desambiguação da entidade e anotação. Estes três passos variam dependendo do tipo de recurso que estamos tentando anotar. 37

38 FIG. 2.4 Arquitetura Genérica para Anotação Semântica Adaptado de Nagarajan [2006, p. 36] Por exemplo, o processo de identificar entidades que precisam ser anotadas a partir de um documento textual é diferente do processo que identifica entidades potenciais em um conjunto de dados experimentais. O processo de identificação da entidade consiste em extrair informações úteis de um documento com a ajuda de gramáticas baseadas em regras, técnicas de processamento de linguagem natural, templates definidos pelos usuários, etc. Além das técnicas citadas anteriormente, a extração de entidades baseada em ontologias também utiliza uma ontologia povoada (informação no nível de instância) para extrair instâncias especificas de diferentes classes e identificar elementos no texto que será anotado. [NAGARAJAN, 2006] 38

39 Anotar semanticamente um serviço implica em explicar a semântica exata dos elementos de um serviço web que são cruciais para sua utilização. Isto é feito através da anotação dos elementos do serviço com conceitos representados por modelos de domínio ou ontologias. Como as ontologias representam visão compartilhada do domínio modelado, qualquer ambigüidade presente na descrição ou nos dados de um serviço é eliminada. O objetivo de anotar serviços é permitir a descoberta e a composição automáticas de serviços. Por exemplo, dois serviços Web podem usar diferentes tipos de dados e nomes para suas operações, entradas e saídas, mas executam funções bastante semelhantes. Para entender quais elementos de um serviço precisam ser anotados é importante compreender os efeitos da semântica no seu ciclo de vida. [NAGARAJAN, 2006] Para facilitar a descoberta um serviço Web ou a sua composição (encadeamento com outros serviços ou aplicações), o provedor do serviço descreve seus requisitos em termos da funcionalidade (operações do serviço) e os dados usados por ele (parâmetros de entrada e saída). Especificações opcionais incluem as pré-condições e os efeitos da operação. As pré-condições são requisitos que devem ser preenchidos antes da operação do serviço Web ser invocada e os efeitos são os resultados de invocar a operação. Anotações semânticas são então associadas a entradas, saídas, pré-condições e efeitos de um elemento de operação de um serviço web. Mecanismos de busca mais avançados podem considerar aspectos não funcionais dos serviços, tais como métricas de qualidade, confiabilidade, segurança, dentre outros. Por outro lado, o provedor ao anotar seus serviços, permite que potenciais consumidores os reutilizem. [NAGARAJAN, 2006] 39

40 FIG. 2.5 Uso de semântica no ciclo de vida de um serviço web Adaptado de Nagarajan [2006, p. 44] Ainda de acordo com Nagarajan [2006], os benefícios de adicionar semântica são notados em todo ciclo de um processo Web. Os desenvolvedores podem utilizar anotações semânticas para explicar as capacidades de seus serviços Web (1). Uma vez publicados no UDDI (2), um cliente pode formular seus requisitos na forma de um template de serviço semântico (3) para descobrir e compor serviços Web. Um template de processo ou serviço semântico é uma descrição abstrata do processo ou serviço, onde o fluxo de controle é criado manualmente e a funcionalidade procurada é descrita usando termos da ontologia. Técnicas de raciocínio podem ser usadas para comparar os requisitos de um template de serviço com as capacidades dos serviços Web disponíveis no UDDI (4) para procurar serviços. Durante a composição, o aspecto funcional das anotações pode ser utilizado para criar composições de serviços úteis. [NAGARAJAN, 2006] Existem centenas de serviços Web, atualmente. Porém a habilidade para integrá-los e combiná-los em processos úteis requer um trabalho manual extenso. O desenvolvedor (cliente potencial de serviços) deve examinar cada serviço que pode lhe ser útil, determinar seu valor ou semântica e então determinar como extrair o valor através da sintaxe e do protocolo corretos. Este trabalho aumenta muito a complexidade quando montamos um processo a partir de serviços Web existentes. Por isso, a maioria das 40

41 combinações limita a integração a poucos serviços, ou prefere não reusar de modo remoto, trazendo a funcionalidade do referido serviço para o local da aplicação. Além disso, há um acordo contratual limitado em várias interfaces de serviços Web. Interfaces podem ser modificadas ou removidas por seus provedores a qualquer momento, e os desenvolvedores que utilizam estes serviços podem desconhecer estas mudanças até que elas reflitam nas aplicações que os utilizam fazendo-as parar de funcionar. Esta situação torna combinações de serviços frágeis e vulneráveis às mudanças em qualquer um dos serviços de base. [NAGARAJAN, 2006] A possível quebra de links é uma característica inerente a Web de modo geral, mas, a partir do momento que passamos as descrever os recursos (neste caso, serviços) em um nível de abstração mais alto, esta característica negativa pode ser contornada com a troca automática de serviços, caso o serviço utilizado não se encontre mais disponível. [NAGARAJAN, 2006] De forma análoga à informação semântica, Serviços Web Semânticos (SWS) tratam destas limitações através do fornecimento de uma maneira uniforme e legível para máquina de modo a interoperar com um serviço Web, i.e., um Serviço Web Semântico. Serviços Web Semânticos permitem processamento dinâmico para descoberta, invocação, negociação e composição de serviços Web a fim de alcançar o objetivo do usuário. Workflow para processamento de pedidos, desde a criação do pedido até a entrega final, é um exemplo comum. Atualmente, a construção de workflows requer frameworks complexos, tais como frameworks baseados em barramento de serviços corporativos (ESB) ou uma noção vaga da arquitetura orientada a serviços (SOA), assim como um alto nível de intervenção humana para construir apropriadamente o fluxo de dados. A incapacidade dos usuários do serviço em tirarem vantagem da margem competitiva do provedor do serviço (tempo de resposta mais curto, tempo médio maior entre falhas, base de clientes maior) para escolherem dinamicamente um serviço composto com outro é uma desvantagem dos serviços Web tradicionais. Definir serviços que são acessíveis via Web é apenas o passo inicial. O próximo desafio é permitir que estes serviços sejam descobertos e compostos de forma eficiente. A anotação semântica de 41

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

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

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

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

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

Leia mais

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

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

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

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

1 http://www.google.com

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

Leia mais

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

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

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

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

Serviços Web: Arquitetura

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

Leia mais

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

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

Web Services. (Introdução)

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

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 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

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

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

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

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

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

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

Leia mais

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

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

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

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

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

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

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

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

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

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

Serviços Web: Introdução

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

Leia mais

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

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

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

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

Leia mais

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

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

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

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

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

Leia mais

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

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

Leia mais

Processos Técnicos - Aulas 4 e 5

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

Leia mais

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

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

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

Leia mais

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

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

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

UML - Unified Modeling Language

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

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

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

Leia mais

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

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

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

Leia mais

PADRÕES PARA O DESENVOLVIMENTO NA WEB

PADRÕES PARA O DESENVOLVIMENTO NA WEB PADRÕES PARA O DESENVOLVIMENTO NA WEB Ederson dos Santos Cordeiro de Oliveira 1,Tiago Bonetti Piperno 1, Ricardo Germano 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR- Brasil edersonlikers@gmail.com,

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

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 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

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

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

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

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

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

Prof. Marcelo Henrique dos Santos

Prof. Marcelo Henrique dos Santos ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em

Leia mais

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

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

Leia mais

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

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

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

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

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

2 Geração Dinâmica de Conteúdo e Templates de Composição

2 Geração Dinâmica de Conteúdo e Templates de Composição 2 Geração Dinâmica de Conteúdo e Templates de Composição Alguns dos aspectos mais importantes na arquitetura proposta nesta dissertação são: a geração dinâmica de conteúdo e a utilização de templates de

Leia mais

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

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

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

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

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I Prof. MSc. Hugo Souza Como já vimos, os sistemas distribuídos são apresentados considerando um planejamento bem mais complexo relacionado aos

Leia mais

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

Leia mais

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

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

Leia mais

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

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

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

Leia mais

Fase 1: Engenharia de Produto

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

Leia mais

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

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

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

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

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como: Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código

Leia mais

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

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

Leia mais

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

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

ARQUITETURA DE SOFTWARE

ARQUITETURA DE SOFTWARE ARQUITETURA DE SOFTWARE Em seu livro, que constitui um referencial sobre o assunto, Shaw e Garlan discutem arquitetura de software da seguinte maneira: Desde quando o primeiro programa foi dividido em

Leia mais

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 1 ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 2 INTRODUÇÃO A cada dia que passa, cresce a pressão pela liberação para uso de novas tecnologias disponibilizadas pela área de TI, sob o argumento

Leia mais

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: SEGURANÇA DA INFORMAÇÃO Aula N : 15 Tema:

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

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

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

Uso de taxonomias na gestão de conteúdo de portais corporativos.

Uso de taxonomias na gestão de conteúdo de portais corporativos. Gestão de Conteúdo web através de ontologias: conceitos e aplicações Fernando Silva Parreiras Contextualização O que? Uso de taxonomias na gestão de conteúdo de portais corporativos. Quem? Gerentes, consultores

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os

Leia mais