web services n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Web Services PowerPoint Presentation
Download Presentation
Web Services

Loading in 2 Seconds...

play fullscreen
1 / 93

Web Services - PowerPoint PPT Presentation


  • 66 Views
  • Uploaded on

Web Services. Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio Costa Simões Paula Geralda Barbosa Coelho Simith. Tópicos. Web Services CORBA e Web Services SOAP & WSDL UDDI WSFL ebXML.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Web Services' - odina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
web services
Web Services

Equipe:

Cláudia Brito Lyra Nunes da Silva

Clindemberg Mendes Patrício

Luiz Eugênio Fernandes Tenório

Marcelo Faro do Amaral Lemos

Marco Antônio Costa Simões

Paula Geralda Barbosa Coelho

Simith

t picos
Tópicos
  • Web Services
  • CORBA e Web Services
  • SOAP & WSDL
  • UDDI
  • WSFL
  • ebXML
integra o de aplica es
Integração de Aplicações
  • O desafio da interoperação entre ambientes heterogêneos
integra o de aplica es1
Integração de Aplicações
  • Diversidade de componentes
    • EJB, CORBA, DCOM ...
  • Diversidade de linguagens
    • Java, C/C++, C# ...
  • Firewalls
  • Falta de padrões para interoperação
integra o de aplica es2
Integração de Aplicações
  • Definindo o formato para troca de dados
business to business
Business-to-Business
  • Aplicações se conhecem e conversam entre si
web services2
Web Services
  • Aplicações oferecem serviços que podem ser acessados dinamicamente
web services3
Web Services
  • Próxima geração de serviços baseados na internet que utiliza padrões da indústria, como XML, SOAP, UDDI e ebXML, para conectar aplicações e provê novos serviços via Internet
    • serviços mais robustos e integrados
  • Nova “onda” de componentes
    • serviços como componentes reutilizáveis
    • “blocos” que integrados produzirão novos serviços
web services4
Web Services
  • Definição
    • Modelo computacional distribuído
      • fracamente acoplado
      • utiliza mecanismos de transporte padrão (HTTP e HTTPS)
      • modelo de programação síncrona e assíncrona
      • utiliza XML para o transporte de dados
    • Descrito através de metadados (XML)
    • Localizável através de pesquisas em diretórios de serviços
web services5
Web Services
  • Service-oriented
    • paradigma de orientação a serviços
  • Serviços inteligentes
    • coarse grained services
  • Tecnologia
    • basicamente é XML sobre HTTP
      • XML: porque o mercado concorda
      • HTTP: livre acesso através de firewalls
web services6
Web Services
  • A web “costumava” ter foco em pessoas
  • A web está se tornando um plataforma A2A (application-to-application)
    • B2B é um caso especial
  • Web Services é a plataforma computacional distribuída sobre a qual aplicações A2A serão construídas
tecnologias web services
Tecnologias Web Services
  • Any technology-service paradigm
  • Tipicamente
    • SOAP: transporte de dados (XML/HTTP)
    • WSDL: descrição dos serviços
    • UDDI: registro e busca de serviços
    • ebXML: framework para e-commerce
    • WSFL: composição de Web Services
slide18
SOAP
  • Simple Object Access Protocol
  • Modelo de mensagens independente do protocolo de transporte
    • suporte para HTTP
  • Modelo de codificação para tipos do sistema
    • exemplo: XML para objetos Java, e vice-versa
  • RPC sobre HTTP
slide19
WSDL
  • Web Services Definition Language
  • Provê descrição funcional de serviços
      • IDL description
      • Protocol and deployment details
    • idealmente deveria provê todas as informações necessárias para acessar o serviço (programaticamente)
  • Machine-readable description
slide20
UDDI
  • Universal Description, Discovery and Integration
  • Coleção de diretórios (peers) que contém informações sobre negócios e serviços
  • Conjunto de especificações baseadas em padrões para a descrição e pesquisa de serviços
slide22
WSFL
  • Web Services Flow Language
  • Composição de Web Services
    • controle do fluxo de mensagens
  • Construída sobre WSDL
  • Modelos de utilização
    • Flow Model
      • compõe serviços existentes em novos serviços, definindo o workflow entre os serviços compostos
    • Global Model
      • descreve a interação entre serviços sem definir a função (serviço) composto
web services9
Web Services
  • Papéis
    • Service provider
    • Service broker
    • Service requester
  • Operations
    • Publish
    • Find
    • Bind
business web
Business Web
  • Novo tipo de aplicação
business web1
Business Web
  • É um Web Services composto por outros Web Services
web services10
Web Services
  • Benefícios
    • baixo acoplamento entre aplicações
    • evolução independente de aplicações
    • B2B a baixo custo (reuso)
    • EAI (Enterprise Application Integration) não intrusiva
    • diversidade de componentes não afeta interoperabilidade
    • diversidade de linguagens não afeta interoperabilidade
    • padronização (futura)dos mecanismos de interoperação
web services em java1
Web Services em Java
  • Estende HTTP e Servlets/JSP para suportar “program-to-program” ou “business-to-business”
  • (Re)utiliza a infra-estrutura J2EE
webservices pack
WebServices Pack
  • Empacotamento de todas as tecnologias necessárias para o desenvolvimento de web services

WebService

Pack

Tomcat

JAX Pack

Java Server

Faces

JSP TagLibrary

web services11
Web Services
  • Companhias estão anunciando sua estratégia para Web Services
    • IBM, Sun, Oracle, HP, ...
    • duas plataformas devem dominar o mercado: a plataforma Java e .NET
  • Novos servidores de aplicação já oferecem soluções para o desenvolvimento de web services
    • WebSphere 4.0 (IBM)
    • WebLogic 6.1 (BEA)
    • ...
web services12
Web Services
  • Considerações
    • operações precisam ser restringidas por mecanismos de segurança negociáveis
      • Encriptação, autenticação, autorização ...
    • requer padrões bem definidos e largamente adotados
    • performance
      • Transformação XML <-> 0101010
web services13
Web Services
  • Conclusão
    • é uma forma nova de utilizar tecnologias e conceitos já existentes
      • viabilizada pelo contexto tecnológico e comercial atual
corba e web services1
CORBA e Web Services
  • Características benéficas a integração:
    • Web Services:
      • Um middleware para middleware
      • Pode ser utilizado com um middleware existente (ex. COM/DCOM, J2EE, CORBA)
    • CORBA:
      • Uma arquitetura aberta composta de ~42 interfaces definidas para serviços horizontais e verticais
      • Independência de protocolo de aplicação com a utilização de mapeamentos para GIOP
corba e web services2
CORBA e Web Services
  • Possíveis cenários de integração:
    • Implementando objetos CORBA utilizando Web Services;
    • Implementando Web Services utilizando objetos CORBA;
    • Expondo objetos CORBA como Web Services;
corba e web services3
CORBA e Web Services
  • Implementado objetos CORBA usando Web Services:
corba e web services4
CORBA e Web Services
  • Implementado Web Services usando objetos CORBA:
corba e web services5
CORBA e Web Services
  • Expondo objetos CORBA como Web Services:
corba e web services6
CORBA e Web Services
  • Comparação entre protocolos de transporte:
soap simple object access protocol
SOAP – Simple Object Access Protocol
  • Definição:
    • É um protocolo que descreve mensagens trocadas entre processos, chamadas remotas a métodos e padrões para transporte via HTTP.
    • Baseado em XML
    • Se propõe a desempenhar o mesmo papel do IIOP (padrão CORBA), ORPC (padrão DCOM) e JRMP(padrão Java RMI) para Sistemas Distribuídos na Internet.
para que mais um protocolo
Para que mais um protocolo ?
  • SOAP é baseado em texto (XML) enquanto os demais protocolos (IIOP,JRMP,ORPC) são binários
    • Vantagens: facilidade de depuração e maior adaptabilidade aos firewalls
    • Desvantagem: tamanho da mensagem SOAP é bem maior que os protocolos binários podendo gerar perda de performance
  • Padrão aberto e independente de plataforma
arquitetura do soap
Arquitetura do SOAP
  • Um envelope que descreve o conteúdo da mensagem e como processá-la
  • Um conjunto de regras de codificação que descrevem como os tipos de dados definidos na aplicação são serializados
  • Uma convenção para representar chamadas remotas a métodos (RPC) e suas respostas
exemplo de mensagem soap
Exemplo de Mensagem SOAP

<SOAP-ENV:Envelope

xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:xsd=“http://www.w3.org/2001/XMLSchema”

<SOAP-ENV:Header>

</SOAP-ENV:Header>

<SOAP-ENV:Body>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

exemplo soap body
Exemplo: SOAP Body

<SOAP-ENV:Body>

<ns1:sayHelloTo

xmlns:ns1=“Hello”

SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”>

<name xsi:type=“xsd:string”>Maria</name>

</ns1:sayHelloTo>

<SOAP-ENV:Body>

implementando um web service soap
Implementando um Web Service SOAP
  • A Especificação SOAP restringe-se aos detalhes da mensagem que é trocada entre os processos
  • Não há qualquer padronização quanto às API’s para implementar Serviços ou clientes
  • Existem uma série de ferramentas disponíveis: MS SOAP Toolkit, IBM WSTK, Apache-SOAP, GLUE, etc
pr requisitos
Pré-Requisitos
  • O requisito básico é possuir um Servidor Web com suporte para servlets
  • O Serviço pode ser implementado em diversas linguagens de programação e de script
  • Tomando Java como exemplo, um serviço é uma classe Java comum sem qualquer alteração adicional
exemplo de servi o
Exemplo de Serviço

public class HelloServer {

public String sayHelloTo(String nome)

{

return "Ola "+nome+", como vai ?";

}

public String sayHelloTo(Name nome) {

return "Ola "+nome.getName()+", como vai ?";

}

}

o cliente
O Cliente
  • O mesmo serviço pode ser publicado utilizando ferramentas de apoio diferentes sem sofrer qualquer alteração.
  • O Cliente, entretanto, pode mudar bastante entre pacotes diferentes.
  • A seguir será exemplificado um cliente para o serviço anterior usando o Apache-SOAP e outro utilizando o GLUE.
cliente apache soap
Cliente Apache-SOAP

Call call = new Call();

call.setTargetObjectURI("urn:Hello");

call.setMethodName("sayHelloTo");

call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

Vector params = new Vector();

params.addElement(new Parameter("nome",String.class,nome,null));

call.setParams(params);

cliente apache soap1
Cliente Apache-SOAP

Response resp = null;

try { resp = call.invoke(url,""); }

...

Parameter ret = resp.getReturnValue();

Object value = ret.getValue();

System.out.println(value);

cliente glue
Cliente GLUE

IHelloServerService server = HelloServerHelper.bind();

System.out.println(server.sayHelloTo(“Maria”));

  • A interface IHelloServerService pode ser gerada com o utilitário wsdl2java fornecido junto com o pacote;
  • O mesmo utilitário gera também a classe HelloServerHelper.
  • O GLUE exige que o Serviço publique a sua interface WSDL para que o cliente utilize como base
  • Se o serviço for publicado utilizando o Servidor Web do próprio GLUE, este gera o WSDL dinamicamente
tratamento de exce es
Tratamento de Exceções
  • A Especificação SOAP prevê que os métodos remotos retornem Exceções para os clientes através do rótulo <Fault>
  • Ou seja, qualquer exceção lançada pelo Serviço será convertida em uma seção <Fault> no envelope SOAP de resposta
tratamento de exce es1
Tratamento de Exceções
  • Da mesma forma que a API do cliente não é padronizada, a forma como as exceções serão capturadas e tratadas também não é estabelecida
  • No Apache-SOAP, o Fault é extraído do objeto Response que é retornado
  • No GLUE, deve ser capturada uma exceção WrappedException que contém uma SOAPException encapsulada contendo as informações do Fault
wsdl web services description language
WSDL – Web Services Description Language
  • Definição:
    • É a especificação publicada para um diretório UDDI(Universal Description Discovery).
    • Tem uma interface e implementação de detalhes específicos dos serviços da Web disponíveis e dos respectivos proprietários
    • Baseada em XML, descreve a interface, protocolos, ligações, detalhes de visualização, tipos de dados e localização
a dupla soap e wsdl
A Dupla SOAP e WSDL
  • O SOAP foi criado pela Microsoft/IBM
  • O WSDL foi criado para descrever os contratos(interfaces) dos serviços WEB invocados através do SOAP
  • Estes contratos de serviços indicam à aplicação que pretende chamar os serviços, quais são as suas interfaces, incluindo parâmetros de chamada e retorno
  • Resolvem os problemas de interoperabilidade das plataformas, mas o aspecto dinâmico ainda não foi inteiramente solucionado
idl interface definition language
IDL (Interface Definition Language)
  • Definida juntamente com o CORBA 1.1 em 1991
  • Descreve as interfaces que são chamadas pelos clientes e fornecidas pelas implementações
  • O mapeamento IDL foi estabelecido primeiramente com a utilização da linguagem C++
exemplo de idl
Exemplo de IDL

UMA INTERFACE SIMPLES CONTENDO UMA OPERAÇÃO:

Module Exmodule {

structure ExStuct{

short structMember1;

float structMember2;

};

exception ExException{

string excepMember1;

long excepMember2;

};

interface Exinterface {

string ExOp( in long inParam1, out float outParam2, inout Exstruct

inoutParam3)

raises(ExException);

};

}

mapeamento o exemplo de idl wsdl
Mapeamento o Exemplo de IDL -> WSDL

<?xml version=”1.0” ?>

<wsdl:definitions

name=”ExInterfaceService” (1)

targetNamespace =” http://example.com/Exmodule/ExInterface.wsdl”

xmlns:tns=”http://example.com/ExModule/ExInterface.wsdl” (2)

xmlns:xds=”http://www.w3.org/2000/10/XMLSchema” (3)

xmlns:defs=”http://example.com/ExModule/definitions” (4)

xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap” (5)

xmlns:scoap=” http://schemas.omg.org/scoap/encoding” (6)

xmlns:wsdl=”http://schemas.xmlsoap.org/wsdl/” (7)

<wsdl:importnamespace = “ http:// schemas.omg.org/scoap/encoding” (8)

location=”http: //localhost/schemas/omg/scoap.xsd “ />

<wsdl:importnamespace = “ http:// example.com/ExModule/chemas” (9)

location=”http: //localhost/schemas/ExModule/ExModule.xsd “ />

<wsdl:message name = “ ExException” (10)

<wsdl:part name=”Exception” type=”defs:ExException” />

</wsdl:message>

mapeamento idl wsdl
Mapeamento IDL -> WSDL

<wsdl:message name = “ ExOpInput” (11)

<wsdl:part name=”InParam1” type=”scoap:long” />

<wsdl:part name=”InoutParam3” type=”defs:ExStruct” />

</wsdl:message>

<wsdl:message name = “ ExOpOutput” (12)

<wsdl:part name=”_return” type=”scoap:string” />

<wsdl:part name=”OutParam2” type=”scoap:float” />

<wsdl:part name=”InoutParam3” type=”defs:ExStruct” />

</wsdl:message>

<wsdl:message name = “ InterfaceType” (13)

<wsdl:part name=”RepID” type=”defs:ExInterfaceRepId” />

</wsdl:message>

<wsdl:porttype name = “ ExInterface” (14)

<wsdl:operationname=”ExOp” /> (15)

parameterOrder = “inParam1 outParam2 inoutParam3” >

<wsdl:input message=”tns:ExOpInput” />

<wsdl:output message=”tns:ExOpOutput” />

<wsdl:fault message=”tns:ExException” />

</wsdl:operation>

</wsdl:portType>

uddi universal description discovery and integration
UDDI(Universal Description, Discovery and Integration)
  • Permite informações sobre negócio e serviços sejam eletronicamente publicadas e consultadas. “Register once, published everywhere”
  • Define como os negócios interagem sobre a internet e compartilham informações em uma arquitetura de registro global.
  • É um framework para integração de Web Services.
  • UDDI Project(www.uddi.org) participam a IBM, Microsoft e Ariba.
uddi continua o
UDDI(continuação)
  • UDDI é uma especificação global. Toda empresa espalhada pelo mundo é capaz de se registrar em um UDDI Business Registry.
  • Business Registry implementa a especificação UDDI.
  • Nos Registries ocorre uma sincronização de seus conteúdos regularmente.
  • Permissões de acesso – Somente o usuário com as credenciais que conferem com as credenciais usadas para criação dos registros.
benef cios imediatos de uddi
Benefícios imediatos de UDDI
  • A capacidade de negócios rapidamente e dinamicamente descobrir outros e interagir na internet.
  • Agregar valor aos serviços já fornecidos aos seus clientes.
  • Potencializar o crescimento do comércio B2B.
  • Ressalva: A especificação UDDI ainda não foi submetida a organizações de padronização. A versão utilizada pelos desenvolvedores é a 1.0(Draft).
slide70
UDDI
  • Informação fornecida a um registro UDDI consiste de três componentes:
    • White pages

Informações de contato da empresa.

    • Yellow pages

Categorização dos serviços pela taxonomia padrão.

    • Green pages

Informações técnicas sobre o serviço exposto(regras de negócio, descrição do serviço,...)

slide71
UDDI
  • Define quatro elementos básicos:
    • businessEntity

Possui as descrições e informações técnicas dos serviços. Cada businessEntity possui uma única chave que identifica o negócio/dado (Modela a informação de negócio).

    • businessService

Representa os serviços ou processos de negócio fornecidos pelo businessEntity (Definição de alto-nível dos serviços).

uddi elementos
UDDI(elementos)
  • bindingTemplate
    • Apresenta os dados que descrevem as características técnicas de uma dada implementação de serviço(Mapeamento entre businessService e tModel).
  • tModel
    • Modela um tipo de tecnologia ou serviço.
implementa es de uddi
Implementações de UDDI
  • jUDDI(“judy”)
    • Desenvolvida pela Bowstreet.
    • Foi uma das primeiras implementações de UDDI.
  • Uddi4J
    • Desenvolvida pela IBM.
    • Está presente IBM WSTK 2.1(Web Service Toolkit).
slide76
WSFL
  • Web Service Flow Language
    • Definição
      • Modelo de fluxo
      • Modelo global
modelo de fluxo
Modelo de Fluxo

<flowModel name="bookTickets" serviceProviderType="airlineFlow">

  <flowSource name="ticketFlowSource">

    <output name="processInstanceData" message="tio:receivedTicketOrder"/>

  </flowSource>

  <serviceProvider name="agent" type="agentType"/>

  <serviceProvider name="traveler" type="travelerType"/>

  <activity name="reserveSeats">

    <input name="reserveSeatsInput" message="tio:receivedTicketOrder"/>

    <output name="reserveSeatsOutput" message="tio:reservation"/>

    <performedBy serviceProvider="local"/>

    <implement>

      <internal>

        <!-- .. call to credit card service .. -->

      </internal>

    </implement>

  </activity>

modelo global
Modelo Global

<globalModel name="bookTripNTickets" serviceproviderType="agentType">

  <serviceProvider name="travelAgent" serviceProviderType="tio:agentType">

    <export>

      <source portType="tio:tripHandler" operation="sendItinerary"/>

      <target portType="tio:tripNTicketHandler" operation="sendItinerary"/>

    </export>

    <export>

      <source portType="tio:tripHandler" operation="receiveTripOrder"/>

      <target portType="tio:tripNTicketHandler" operation="receiveTripOrder"/>

    </export>

    <locator type="static" service="abc:agent"/>

<locator type="uddi" bindTime="startup" selectionPolicy="first">

    <uddi-api:find_service businessKey="uuid_key"

        generic="1.0" xmlns:uddi-api="urn:uddi-org:api">

    </uddi-api:find_service>

</locator>

 </serviceProvider>

ebxml1
ebXML
  • Definição:

Conjunto de especificações que juntas possibilitam

um framework para comércio eletrônico.

  • Objetivo:

Prover uma infraestrutura aberta baseada em

XML, possibilitando a prática global do comércio

eletrônico de uma forma consistente, segura e

interoperável por todas as partes.

ebxml2
ebXML
  • A que se propõe:

Criar padrões para definir:

      • Transações comuns de negócios
      • Formatos comuns de troca de dados
      • Um mecanismo que possibilite descrever o perfil das companhias
      • Um mecanismo que permita organizações descobrirem outras companhias e ter acesso ao seu perfil
ebxml3
ebXML
  • Um mecanismo que permita duas organizações estabelecerem acordos (contratos) antes de iniciarem as transações
  • Um mecanismo de transporte comum para a troca de mensagens entre as organizações
  • Um framework seguro e confiável
ebxml componentes
ebXMLComponentes
  • ebXML Registry and Repository
      • Meio de compartilhar informação entre

empresas

Registry: Serviço similar ao UDDI

Repository: Armazena informações de como a

empresa trabalha: processos,

documentos e perfis de negócio

ebxml componentes1
ebXMLComponentes
  • CPP (Collaboration Protocol Profile)
      • Descreve o Web service (nome do serviço,

parâmetros requeridos, forma de acessá-lo)

      • Permite a empresa descrever o seu perfil
  • CPA (Collaborative Partner Agreement)
      • Acordo estabelecido entre duas organizções
      • Baseado no CPP de ambas
      • Adminstra as transações entre elas
ebxml componentes2
ebXMLComponentes
  • ebXML Messaging Service
      • Qualquer transporte pode ser usado
      • Qualquer tipo de informação pode ser roteada
ebxml vis o geral de um sistema ebxml
ebXML(Visão geral de um sistema ebXML)
  • Fase de implementação

Durante essa fase a organização deve:

      • Solicitar as especificações ebXML e entendê-las
      • Implementar um sistema ebXML
      • Publicar seu perfil (CPP) de negócio no repositório ebXML, permitindo que outras organizações o acesse.
ebxml vis o geral de um sistema ebxml2
ebXML(Visão geral de um sistema ebXML)
  • Fase de negociação

Durante essa fase a organização deve:

      • Recuperar do repositório ebXML o perfil de uma organização com a qual ela pretende realizar negócios
      • Verificar se a organização provê os serviços que ela deseja
      • Enviar a organização um contrato (CPA)
ebxml vis o geral de um sistema ebxml4
ebXML(Visão geral de um sistema ebXML)
  • Fase de transação

Depois que as duas organizações estiverem de acordo com o CPA as transações podem ser efetuadas. Essas transações consistem em mensagens ebXML, que são enviadas através do serviço de mensagens do padrão ebXML.