Computação Orientada a Serviços



Documentos relacionados
UNIVERSIDADE. Sistemas Distribuídos

UFG - Instituto de Informática

Introdução a Web Services

Web Services. (Introdução)

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

Serviços Web: Arquitetura

3 Serviços na Web (Web services)

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

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Kassius Vargas Prestes

Service Oriented Architecture SOA

Sistemas Distribuídos

Service Oriented Architecture (SOA)

Fase 1: Engenharia de Produto

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

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

Serviços Web: Introdução

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

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

Programação Cliente em Sistemas Web

XHTML 1.0 DTDs e Validação

SOA na Prática Ricardo Limonta

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

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

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

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica

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

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

11/20/10. Resoluções: Teste de Áudio. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares.

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

Microsoft.NET. Desenvolvimento Baseado em Componentes

A Estrutura de um Web Service

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

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

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

Unidade 14: Web Services Prof. Daniel Caetano

UNIVERSIDADE. Sistemas Distribuídos

Integração de sistemas utilizando Web Services do tipo REST

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

Arquitetura Orientada a Serviços (SOA) Copyright e-core LTDA, Todos os direitos reservados.

Aplicativos para Internet Aula 01

4 O Workflow e a Máquina de Regras

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

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

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

WS-BPEL Web Service Business Process Execution Language

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Universidade da Beira Interior

Este relatório tem por objetivo, abordar a sintaxe XML.

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

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos Versão 1.1. Framework de aplicações com Web Services

1

Sistemas Distribuídos Arquiteturas Middlewares

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

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

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

Sistemas Distribuídos

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Introdução ao Modelos de Duas Camadas Cliente Servidor

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

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões

Gerenciamento e Interoperabilidade de Redes

Linha de Produto para BPM

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

Integração Orientada a Serviços

Tutorial. Introdução ao XML e tecnologias associadas. Aplicações e dialectos XML. Sessão Fevereiro XATA 06

Informática I. Aula 6. Aula 6-12/09/2007 1

Análise e Projeto Orientados por Objetos

Desenvolvimento de um integrador de sistemas por meio de leiautes

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

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

SISTEMAS DISTRIBUIDOS

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

UFG - Instituto de Informática

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Trabalho de Sistemas Distribuídos

Projeto: Plataforma de Integração. Data: 01/08/2014

efagundes com Como funciona a Internet

Integre pela Internet com os Web Services OpenEdge

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Sistemas Distribuídos

Programação Web Prof. Wladimir

Transcrição:

Universidade Tecnológica Federal do Paraná Campus Cornélio Procópio Computação Orientada a Serviços Elias Canhadas Genvigir

Roteiro de Apresentação Introdução Problema Computação Orientada a Serviços Serviços SOAP WSDL UDDI SOA

Introdução Objetivo inicial: Apresentar aula de revisão dos conceitos sobre Web Services. Tema...: Computação Orientada a Serviços, abordando seus princípios. Desenvolvimento: Explorar os fundamentos da Computação Orientada a Serviços e observar de que forma ela pode apresentar soluções para o desenvolvimento de sistemas. 1) Exposição de slides 2) Apresentação de exemplos

Problema Organizações são cada vez mais dependentes da sua infra-estrutura de Tecnologia da Informação. Dependência...: Tomada de decisões; Redução de custos; Gerenciamento de recursos; Outros. Desafio: Organizações desenvolverem soluções próprias para cada uma de suas necessidades. Problemas: Controle da comunicação entre diferentes aplicações; Reuso de componentes; e Comunicação de sistemas existentes com novas tecnologias. (RAKIC; MEDVIDOVIC, 2001)

Problema 1. De que maneira a Computação Orientada a Serviços pode contribuir para solucionar os problema apresentados? Três classes de problemas: os ambientais os organizacionais e os de fatores técnicos (associados ao processo)

Computação Orientada a Serviços - SOC BSD Sockets NFS - Sun SMB - Microsoft CORBA, RMI, DCOM, COM, DDE, OLE,.NET... Sockets RPC Sistemas Distribuídos Serviços Web Stubs e Skeletons Cliente/ Servidor XDR IDL 3 camadas 1970 1980 1990 2000

Computação Orientada a Serviços - SOC - Três principais elementos: 1. Serviços Web. 2. Arquitetura Orientada a Serviços SOA. 3. Gerenciamento de Processos de Negócio BPM. - Extensible Markup Language XML como elo de convergência. Serviço Web Computação Orientada a Serviços - Agrega: interoperabilidade de serviços, independência de plataforma, reuso e suporte a processos de negócio. Gerenciamento de Processos de Negócio Arquitetura Orientada a Serviços

Primeiro Elemento do SOC Serviços Um serviço é um local de uma rede em que um software recebe e envia, opcionalmente, mensagens. Padrões de troca de mensagens; Contrato entre requisitor e fornecedor através de dados da mensagem; Metadados descrevem o endereço de rede para o serviço, as operações que ele suporta, seus requisitos para a confiabilidade, segurança e controle de transações. É dividido em três partes Duas dessas partes são chamadas de camadas; e a outra de implementação.

Partes de um Serviço continuação A primeira camada Mapeamento A segunda camada Descrição A terceira parte - Implementação do serviço Camada de Mapeamento Serviço Serviço Implementação do Serviço Implementação do Serviço Camada de Descrição do Serviço Serviço Implementação do Serviço Serviço Implementação do Serviço

Partes de um Serviço Camada 1: Mapeamento - consiste dos padrões de troca e elementos de comunicação como o endereço de rede do serviço. Camada 2: Descrição - contem a descrição da implementação do serviço, ou seja, as operações suportadas e os requisitos de segurança, confiabilidade e controle de transações. Terceira parte: Implementação do serviço ou agente executável (MAAMAR et al., 2004), consiste da própria implementação das operações do serviço e pode ser feita para qualquer ambiente através de variáveis de execução definidas, tipicamente, por sistemas de software e/ou linguagens de programação.

Serviço Web Especialização de um serviço. É uma aplicação programável que é acessível como um componente através de protocolos desenvolvidos para a Web. A arquitetura de um Serviço Web consiste de especificações: Simple Oriented Protocol - SOAP Web Services Description Language - WSDL Universal Description Discovery and Integration UDDI

Serviço Web continuação Podem fazer uso de fraco acoplamento permitindo que programas que realizam tarefas simples interajam entre si provendo serviços mais amplos. Funcionamento: Interação de um serviço requisitante com um serviço provedor através de descritores. Publicação da descrição do Serviço Web em WSDL. O requisitor acessa essa descrição usando ou não o UDDI. A execução de um serviço no provedor é requerida enviando as mensagens através do SOAP. Registro do Serviço Pesquisa em UDDI ou WSDL Registra em UDDI Publica em WSDL Requisitor do Serviço Vincula em SOAP Provedor do Serviço

Simple Object Access Protocol - SOAP continuação O SOAP é um protocolo projetado para a troca de informações estruturadas em ambientes descentralizados e distribuídos; Definido pelo World Wide Web Consortium (W3C) http://www.w3.org/tr/soap/ Está na versão 1.2; Baseado em XML; Define um mecanismo simples para expressar a semântica de aplicações; Fornece um modelo de empacotamento para codificação de dados dentro dos módulos; Não é necessário o conhecimento do seu funcionamento para se criar e consumir um Web Service.

Simple Object Access Protocol - SOAP continuação Consiste de três partes: 1) um envelope que define uma estrutura para descrever o que compõe a mensagem e como processá-la, 2) um grupo de regras codificadas para expressar instâncias de tipos de dados definidos pela aplicação, 3) uma convenção para representar chamadas e respostas remotas. O SOAP pode ser usado potencialmente em combinação com uma variedade de outros protocolos; entretanto, sua definição original descreve seu uso sobre o protocolo HTTP.

SOAP Estrutura XML Envelope Header Body Dados de sistema (opcional) Endereçamento Segurança Transações... Dados de negócio Fault Tipo de erro Mensagem de erro <SOAP-ENV:envelope> <SOAP-ENV:header> </SOAP-ENV:header> <SOAP-ENV:body> <SOAP-ENV:fault> </SOAP-ENV:fault> </SOAP-ENV:body> </SOAP-ENV:envelope>

Web Services Description Language - WSDL O WSDL é um formato escrito em XML para descrever serviços como uma coleção de elementos para comunicação capazes de executar trocas de mensagens. É um vocabulário XML para criar contratos de serviços; Cada serviço é definido por um contrato WSDL; O contrato WSDL contém toda a informação necessária para criar um cliente capaz de comunicar com o Web Service; Definido pelo World Wide Web Consortium (W3C) http://www.w3.org/tr/wsdl20/ Versão 2.0; Várias ferramentas para criar os contratos WSDL AXIS, JAX-WS.

Web Services Description Language - WSDL continuação Define padrões para automatizar a comunicação entre aplicações. Encapsula as funcionalidades de um serviço em um alto nível de abstração. Descreve um Serviço Web em duas partes: 1) Abstrata - descreve em XML os termos dos envios e recebimentos de mensagens independentemente da linguagem utilizada no sistema. 2) Concreta - especifica os padrões de transporte e de interfaces, incluindo as implementações de interfaces.

Web Services Description Language - WSDL continuação

Exemplo -WSDL 01 <?xml version="1.0" encoding="utf-8"?> 02 03 <definitions name="hello" 04 targetnamespace="http://hello" 05 xmlns:tns="http://hello" 06 xmlns="http://schemas.xmlsoap.org/wsdl/" 07 xmlns:xsd="http://www.w3.org/2001/xmlschema" 08 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> 09 <types> 10 <xsd:schema elementformdefault="qualified" 11 targetnamespace="http://hello"> 12 13 <xsd:complextype name="sayhellotype"> 14 <xsd:sequence> 15 <xsd:element name="name" type="xsd:string" /> 16 </xsd:sequence> 17 </xsd:complextype> 18 <xsd:element name="sayhello" type="tns:sayhellotype" /> 19 20 <xsd:complextype name="sayhelloresponsetype"> 21 <xsd:sequence> 22 <xsd:element name="return" type="xsd:string" /> 23 </xsd:sequence> 24 </xsd:complextype> 25 <xsd:element name="sayhelloresponse type="tns:sayhelloresponsetype" /> 26 27 </xsd:schema> 28 </types> 29 O 'service' define um 'port' (linhas 57-61) que é uma interface concreta de acesso ao serviço. O endereço de acesso é indicado na linha 59. O 'port' concretiza a interface abstracta do 'port type' (linhas 37-42), através do 'binding' (44-55). O 'port type' define a 'operation' "sayhello" (38-41), que tem como 'input' e 'output', respectivamente as 'message': "tns:sayhellorequest" (30-32) e "tns:sayhelloresponse" (33-35). Cada 'message' tem pelo menos uma 'part'. Cada 'part' é definida por um tipo ou elemento XSD. Neste caso são usados os elementos "sayhello" (18) e "sayhelloresponse" (25). Os tipos são os 'complextypes' "sayhellotype" (13-17) e "sayhelloresponsetype" (20-24). Os Namespaces (3-8, 11) permitem saber onde são definidos os vários elementos XML que são necessário no WSDL. 30 <message name="sayhello"> 31 <part name="parameters" element="tns:sayhello" /> 32 </message> 33 <message name="sayhelloresponse"> 34 <part name="result" element="tns:sayhelloresponse" /> 35 </message> 36 37 <porttype name="helloporttype"> 38 <operation name="sayhello"> 39 <input message="tns:sayhello" name="sayhello"/> 40 <output message="tns:sayhelloresponse" name="sayhelloresponse"/> 41 </operation> 42 </porttype> 43 44 <binding name="hellobinding" type="tns:helloporttype"> 45 <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 46 <operation name="sayhello"> 47 <soap:operation soapaction="" /> 48 <input> 49 <soap:body use="literal" /> 50 </input> 51 <output> 52 <soap:body use="literal" /> 53 </output> 54 </operation> 55 </binding> 56 57 <service name="helloservice"> 58 <port name="helloport" binding="tns:hellobinding"> 59 <soap:address location="http://server:port/context/endpoint" /> 60 </port> 61 </service> 62 63 </definitions> WSDL de um Web Service "Hello World", que tem uma operação "sayhello", que recebe um nome e devolve uma saudação.

Universal Description Discovery and Integration UDDI O UDDI provê uma plataforma independente para descrever serviços, características de negócios e a integração de serviços de negócio usando como meio a Internet. Definido pelo Organization for the Advancement of Structured Information Standards (OASIS) http://uddi.org/pubs/uddi_v3.htm Version 3.0.2 O principal foco da UDDI é a definição de um grupo de elementos que suporte a descrição e apresentação de: (1) negócios, organizações e provedores de serviços Web, (2) disponibilidade de serviços Web, (3) interfaces técnicas que podem ser usadas para acessar os serviços.

Plataforma Além dos recursos apresentados, as especificações para Serviço Web possuem em seus modelos padrões para: Segurança; Confiabilidade; Transações ; e Gerência de metadados. Elementos foram padronizados e definidos com a finalidade de fornecer soluções necessárias para suportar uma grande variedade de problemas em projetos.

Exemplo Serviço para somar dois números em uma operação. 1) Criar um projeto -> Menu File -> new Project... -> Web -> Web Application -> Project Name: TesteWS -> Server -> Apache Tomcat 6.x. 2) Na Pasta Source Packages -> botão direito -> new folder -> nome: ws. 3) No Frame Services -> botão direito no Apache Tomcat -> start. 4) Botão direito sobre o projeto TesteWS -> new Web Service -> Name: WSCalculadora -> package -> ws 5) Design -> add operation -> name: add - type: int parameters-> add i: int j: int 6) Aba Source ->Mudar o código da operação add: @WebMethod(operationName = "add") public int add(@webparam(name = "i") int i, @WebParam(name = "j") int j) { //TODO write your implementation code here: return 0; } @WebMethod(operationName = "add") public int add(@webparam(name = "i") int i, @WebParam(name = "j") int j) { int k=i+j; return k; }

7) Executar o projeto. 8) Testar o WS: Exemplo

Usando o WS 1) Na pasta Source Packages -> botão direito -> new folder -> nome: serv. 2) Botão direito sobre o projeto TesteWS -> new Web Service Client... -> Project -> botão Browse -> TesteWS -> WSCalculadora -> Package: digitar: wscliente 3) Botão direito sobre o projeto TesteWS -> new Servlet -> Class Name: SUsaCalculadora -> Package: serv.

Usando o WS 4) No método processrequest Remover os comentários e adicionar linhas em branco.

Usando o WS 5) Arrastar a operação add do cliente para o espaço em branco. 6) Mudar os valores 0 para outros.

Usando o WS 7) Editar o index.jsp 7) Executar o Projeto

Segundo Elemento do SOC Arquitetura Orientada a Serviço - SOA SOA é um estilo de projeto e de desenvolvimento que guia os aspectos da criação de serviços durante todo seu ciclo de vida. Entidades resolvem ou dão suporte a seus problemas e necessidades. Não existe necessariamente uma relação um para um entre as necessidades e as capacidades de uma organização; A Granularidade entre necessidades e capacidades variam do fundamental ao complexo. Uma dada necessidade pode requerer a combinação de numerosas capacidades enquanto uma simples capacidade pode ser orientada a mais de uma necessidade.

Arquitetura Orientada a Serviço - SOA continuação SOA fornece uma estrutura para alinhar necessidades e potencialidades permitindo combinar as potencialidades e dirigí-las às necessidades. Essa estrutura é composta de sete conceitos de projeto que formam o modelo de definição do SOA: Serviço - permite o acesso a uma ou mais capacidades, Visibilidade capacidade de interação entre provedor e requisitor, Interação - modo de desempenho e execução de ações do serviço, Aspectos do Mundo Real propósito associado a interação do serviço, Descrição do Serviço informações requeridas para usar um serviço, Contrato e Políticas padrões para usar ou desenvolver um serviço, Contexto de Execução parte instanciada de uma interação.

Terceiro Elemento do SOC Business Process Management - BPM O terceiro elemento que compõem o SOC é o Business Process Management BPM. Possui como principal foco o controle e uso de processos. 1)Na década de 90 era visto como um modelo associado a programas de qualidade. Ponto de Partida Preparação Seleção do Processo Descrição do Processo Quantificar o Processo Seleção das Melhorias Para o Processo Implementação Ciclo contínuo de melhoria

Business Process Management - BPM continuação 2) A partir do ano 2000 conceitos tecnológicos foram agregados. Business Process Management System Composto de cinco elementos: Usuário Informações em tempo real Monitoração das Atividades de Negócio Modelagem de Processos Execução de Processos Monitoração de Processos

Web Services Business Process Execution Language WS-BEPL BPMS necessita de um protocolo de negócio para controle. BPEL - Principal implementação para protocolo de negócio, definido pelo Organization for the Advancement of Structured Information Standards (OASIS) http://docs.oasisopen.org/wsbpel/2.0/os/wsbpel-v2.0-os.html Permite descrever, claramente, em uma plataforma independente, os aspectos comportamentais do negócio. Baseado em 10 metas: 1. Serviços Web como base. 2. XML como formato de dados. 3. Possui um grupo de conceitos que suportam processos abstratos e executáveis 4. Controle de comportamento. 5. Manipulação de dados. 6. Propriedades e correlação (instância de processos). 7. Suporte ao Ciclo de vida. 8. Modelo para execução de transações. 9. Modularização. 10. Compatibilidade com funcionalidades dos serviços Web

Composição, Orquestração e Coreografia O mecanismo de invocação de mensagens de um serviço Web é denominado Composição. Dois tipos de Composição: Orquestração Contrato Coreografia SOAP BPEL SOAP SOAP BPEL BPEL Contrato Contrato Serviço Web Serviço Web

Combinando BPM, SOA e Serviços Web 1º Modelo Aplicações e Tecnologias 2º Modelo Aplicações, Tecnologias e Serviços Serviço 1 Serviço 2 Serviço 3 Aplicação 1 Aplicações Aplicação 2 Aplicação 3 Camada de Aplicações Plataforma de Serviços Web Camada de Serviços Aplicações Tecnologias Tecnologia 1 Tecnologia 2 Tecnologia 3 Camada de Tecnologias Aplicação 1 Aplicação 2 Aplicação 3 Tecnologias Camada de Aplicações Tecnologia 1 Tecnologia 2 Tecnologia 3 Camada de Tecnologias

Combinando BPM, SOA e Serviços Web continuação 3º Modelo Aplicações, Tecnologias, Serviços e Processos Processo 1 Processo 2 BPM Processo 3 Processo 4 Processo 5 Camada de Processos de Negócio Serviço 1 Serviço 2 Serviço 3 Plataforma de Serviços Web Camada de Serviços Aplicação 1 Aplicações Aplicação 2 Aplicação 3 Camada de Aplicações Tecnologias Tecnologia 1 Tecnologia 2 Tecnologia 3 Camada de Tecnologias

Vantagens e Desvantagens Desvantagens SOAP protocolo lento comparado a protocolos Binários como o IIOP Aumento de complexidade Necessidade de gerenciar processos Vantagens Protocolo simples, legível para humanos, transparente para firewalls e assíncrono Fraco acoplamento, reutilização Diminuição de impacto nas mudanças nos processos

Conclusão A Computação Orientada a Serviços surge como mais uma solução tecnológica. Deve ser avaliado a implicação do uso ou da alteração de tecnologias antecedentes Tendência para o fornecimento de software como um serviço. Aumento da complexidade: SOA, SOAP, WSDL, UDDI, BPEL, etc... Volta a conceitos já abordados mas pouco explorados: Workflow, fraco acoplamento, processos.

Referências RAKIC, M.; MEDVIDOVIC, N. Increasing the confidence in o-the-shelf components: a software connector-based approach. In: SYMPOSIUM ON SOFTWARE REUSABILITY: PUTTING SOFTWARE REUSE IN CONTEXT - SIGSOFT, 2001. Proceedings... [S.l.]: ACM Special Interest Group on Software Engineering, 2001. v. 46, p. 11-18. MAAMAR, Z.; SHENG, Q. Z.; BENATALLAH, B.; AL-KHATIB, G. A three-level specification approach for an environment of software agents and web services. Electronic Commerce Research and Applications, Elsevier, v. 3, n. 3, p. 214-231, may 2004.

Discusão

Documento Estruturado Um documento estruturado é composto por conteúdo (texto, figuras, etc) e informação sobre como ele está organizado. Exemplo: um artigo técnico é usualmente composto por: "título", "autores", "resumo", "seções" e "bibliografia", nesta ordem. Os componentes ou elementos entre aspas representam uma parte estrutural do documento. Um documento estruturado pode ser apresentado ao usuário de diferentes formas: Impresso em papel, na tela de um navegador, na tela de um notebook ou de um telefone celular ou em equipamentos multimídia. Um documento estruturado também pode ser enviado para armazenamento ou processamento por algum software especializado como um Gerenciador de Banco de Dados.

O Processo de Marcação Um processamento de texto requer informações adicionais para interpretar o texto natural e o documento que está sendo processado. Estas informações são chamadas marcação e servem para dois propósitos: 1. Separar elementos lógicos para o documento; 2. Especificar as funções de processamento para serem executadas sobre esses elementos. Duas categorias para linguagens de marcação: 1. Marcação Procedural Instruções de processamento complexas embutidas na marcação do documento - sistema de editoração TeX. 2. Marcação Generalizada Descreve a estrutura do documento e outros atributos em vez de especificar o processamento a ser feito. Define como programas podem ser usados para processar o documento. - SGML A Marcação generalizada não restringe documentos a uma única aplicação, estilo de formatação ou sistema de processamento

Evolução cronológica SGML foi criada no final da década de 60 pelos pesquisadores da IBM Goldfarb, Mosher e Lorie. Goldfarb provou em 1974 que um analisador sintático (parser) é capaz de validar um documento SGML sem realmente processá-lo. Em 1986 o SGML tornou-se um padrão internacional e foi amplamente adotada por como padrão para intercâmbio e armazenamento de documentos SGML HTML 1.0 HTML... XML HTML 4.01 XHTML.

Standard Generalized Markup Language - SGML O SGML não possui um conjunto pré-definido de tags e de elementos, ela é na verdade uma meta-linguagem para especificar linguagens de marcação. Ela não possui uma semântica pré-definida. A sintaxe de uma linguagem de marcação definida através do SGML é especificada através de construções coletadas num documento denominado DTD (Document Type Definition) que define: 1) declarações de elementos; 2) possíveis marcações válidas para o elemento (a ordem, a obrigatoriedade, a quantidade, etc,) 3) declarações de atributos, que especificam os tipos de valores de atributos, valores default, etc. O DTD define uma gramática para a linguagem de marcação do documento. A declaração de um elemento e de seus atributos no DTD utiliza a notação gramatical EBNF (Extended Backus-Naur Form).

XML - Extensible Markup Language A XML é uma meta-linguagem de marcação criada a partir do SGML, e tem os seguintes objetivos: 1. Prover o intercâmbio de documentos através da Web de forma independente aos sistemas operacionais ou formatos de arquivos, 2. Suportar uma grande gama de aplicações, permitindo a definição de elementos pelo usuário (ou aplicação) para estruturar documentos, 3. Facilitar a análise de documentos XML por programas, 4. Ser legível por humanos, 5. Ter uma especificação formal para a marcação de documentos. Organizar Documentos Modelo comum para Compartilhar dados

XML XML tornou-se um padrão internacional em 1998. Ao contrário da SGML, a XML não requer um DTD para cada documento. Se o documento XML possui um DTD associado e segue a gramática especificada pelo DTD, então ele é dito válido. A validação de um documento garante que os dados estejam completos, colocados na ordem correta no documento e com os valores apropriados dos atributos. Vários pacotes de software livres estão sendo disponibilizados para verificar a boa formação e a "validação" de documentos XML.

XML XML não possui um conjunto pré-definido de tags ou elementos como o HTML. Em um documento XML tags para definir o significado dos dados, podem ser definidos livremente de acordo com o domínio dos dados e da aplicação. XML não provê mecanismos para apresentação de dados nem para ligação entre documentos. Tais recursos são disponibilizados por outras especificações de linguagens como, por exemplo, XSL ou XSLT (Extensible Stylesheet Language Transformations) para estilos, e Xlink para especificação de links entre documentos.

Tecnologias XML Validação: DTD; XML Schema - XML Schema Definition (XSD); TREX - Tree Regular Expressions for XML; RELAX NG. Apresentação: CSS, XSLT, XHTML Programação: SAX, DOM. Desenho: SVG Scalable Vector Graphics