campus cornélio procópio - waldersonwalderson.com/2011-2/dsd/08.webservices.pdf · 2012. 11....

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

Upload: others

Post on 28-Feb-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Computação Orientada a Serviços

Elias Canhadas Genvigir

Universidade Tecnológica Federal do ParanáCampus Cornélio Procópio

Page 2: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

• Introdução

• Problema

• Computação Orientada a Serviços

• Serviços

• SOAP

• WSDL

• UDDI

• SOA

Roteiro de Apresentação

Page 3: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

Page 4: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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)

Page 5: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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)

Page 6: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Computação Orientada a Serviços - SOC

Sockets

Cliente/

Servidor

BSD Sockets

RPCSistemas

DistribuídosServiços

Web

Stubs e

Skeletons

NFS - Sun

SMB - Microsoft

XDRIDL

3 camadas

CORBA, RMI,

DCOM, COM, DDE,

OLE, .NET...

19801970 1990 2000

Page 7: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Computação Orientada a Serviços - SOC

Serviço Web

Gerenciamento de

Processos de

Negócio

Arquitetura

Orientada a

Serviços

Computação Orientada

a Serviços

- Três principais elementos:

1. Serviços Web.

2. Arquitetura Orientada a Serviços – SOA.

3. Gerenciamento de Processos de Negócio – BPM.

- Agrega: interoperabilidade de

serviços, independência de

plataforma, reuso e suporte a

processos de negócio.

- Extensible Markup Language – XML como elo de convergência.

Page 8: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Serviços

Primeiro Elemento do SOC

Page 9: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Camada de

Descrição do

Serviço

Implementação

do Serviço

Serviço Serviço

Implementação

do Serviço

Implementação

do Serviço

Implementação

do Serviço

Serviço Serviço

Camada de

Mapeamento

Partes de um Serviço

•A primeira camada – Mapeamento

•A segunda camada – Descrição

•A terceira parte - Implementação do serviço

continuação…

Page 10: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Partes de um Serviço

Page 11: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

Page 12: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Serviço Web

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.

continuação…

Requisitor do

Serviço

Provedor do

Serviço

Registro do Serviço

Vincula em

SOAP

Registra em

UDDI Publica em

WSDL

Pesquisa em

UDDI ou WSDL

Page 13: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Simple Object Access Protocol - SOAP

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

continuação…

Page 14: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Simple Object Access Protocol - SOAP

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.

continuação…

Page 15: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

SOAP – Estrutura XML

<SOAP-ENV:envelope>

<SOAP-ENV:header>

</SOAP-ENV:header>

<SOAP-ENV:body>

<SOAP-ENV:fault>

</SOAP-ENV:fault>

</SOAP-ENV:body>

</SOAP-ENV:envelope>

Envelope

Header Body

FaultDados de sistema

(opcional)

Dados de negócio

Tipo de erro

Mensagem de erroEndereçamento

Segurança

Transações

...

Page 16: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 17: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Web Services Description Language - WSDL

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

continuação…

Page 18: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Web Services Description Language - WSDLcontinuação…

Page 19: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

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>

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.

WSDL de um Web Service "Hello

World", que tem uma operação

"sayHello", que recebe um nome e

devolve uma saudação.

Page 20: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 21: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 22: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

int k=i+j;

return k;

}

@WebMethod(operationName = "add")

public int add(@WebParam(name = "i")

int i, @WebParam(name = "j")

int j) {

//TODO write your implementation code here:

return 0;

}

Page 23: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Exemplo

7) Executar o projeto.

8) Testar o WS:

Page 24: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

Page 25: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Usando o WS

4) No método processRequest Remover os comentários e adicionar linhas em branco.

Page 26: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Usando o WS

5) Arrastar a operação add do cliente para o espaço em branco.

6) Mudar os valores 0 para outros.

Page 27: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Usando o WS

7) Editar o index.jsp

7) Executar o Projeto

Page 28: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Segundo Elemento do SOC

Page 29: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Arquitetura Orientada a Serviço - SOA

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.

continuação…

Page 30: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Business Process Management - BPM

Ponto de Partida

PreparaçãoSeleção do

Processo

Descrição do

Processo

Quantificar

o Processo

Seleção das

Melhorias

Para o

Processo

Implementação

Ciclo contínuo de melhoria

O terceiro elemento que compõem o SOC é o Business Process Management – BPM.

Possui como principal foco o controle e uso de processos.

Terceiro Elemento do SOC

1)Na década de 90 era visto como um modelo associado a programas de qualidade.

Page 31: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Business Process Management - BPM

Monitoração das Atividades de Negócio

Modelagem

de Processos

Execução de

Processos

Monitoração

de Processos

Informações em

tempo real

Usuário

2) A partir do ano 2000 conceitos tecnológicos foram agregados.

• Business Process Management System – Composto de cinco elementos:

continuação…

Page 32: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

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

Page 33: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Composição, Orquestração e Coreografia

Contrato

Contrato

Serviço

Web

Contrato

Serviço

Web

BPEL

SOAPSOAPBPEL BPEL

SOAP

Orquestração

Coreografia

O mecanismo de invocação de mensagens de um serviço Web é denominado Composição.

Dois tipos de Composição:

Page 34: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Tecnologias

Aplicação 2 Aplicação 3Aplicação 1

Tecnologia 1 Tecnologia 2 Tecnologia 3

AplicaçõesCamada de

Aplicações

Camada de

Tecnologias

Combinando BPM, SOA e Serviços Web

Serviço 1 Serviço 2 Serviço 3

Tecnologias

Aplicação 2 Aplicação 3Aplicação 1

Tecnologia 1 Tecnologia 2 Tecnologia 3

Aplicações

Plataforma de Serviços Web

Camada de

Serviços

Camada de

Aplicações

Camada de

Tecnologias

1º Modelo – Aplicações e Tecnologias 2º Modelo – Aplicações, Tecnologias

e Serviços

Page 35: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

3º Modelo – Aplicações, Tecnologias, Serviços e Processos

Combinando BPM, SOA e Serviços Web

Tecnologias

Aplicação 2 Aplicação 3Aplicação 1

Tecnologia 1 Tecnologia 2 Tecnologia 3

Aplicações

Serviço 1 Serviço 2 Serviço 3

Plataforma de Serviços Web

BPM

Processo 1

Processo 2

Processo 3

Processo 4

Processo 5

Camada de

Processos de

Negócio

Camada de

Serviços

Camada de

Aplicações

Camada de

Tecnologias

continuação…

Page 36: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Vantagens e Desvantagens

• SOAP – protocolo lento comparado a

protocolos Binários como o IIOP

• Aumento de complexidade

• Necessidade de gerenciar processos

• 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

Desvantagens Vantagens

Page 37: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 38: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 39: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Discusão

Page 40: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 41: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

Page 42: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

Evolução cronológica

• SGML → HTML 1.0 → HTML... → XML → HTML 4.01 → XHTML.

• 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

Page 43: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

Page 44: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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

Page 45: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 46: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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.

Page 47: Campus Cornélio Procópio - Waldersonwalderson.com/2011-2/DSD/08.Webservices.pdf · 2012. 11. 28. · Apresentar aula de revisão dos conceitos sobre Web Services. ... Gerenciamento

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