Web Services Equipe: Cláudia Brito Lyra Nunes da Silva

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas Distribuídos Web Services
Advertisements

Web Services aplicado à Computação em Grade
Sistemas Distribuídos Baseados na Web
ARQUITETURA EM CAMADAS
UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
Web Services Um Web Service é um bloco de software que pode ser acedido pela Internet e usado remotamente por outras aplicações Infra-estrutura para a.
Implementação do CIBAC no SIE usando SOA
Sistemas Distribuídos Web Services
Sistemas Distribuídos
RMI-IIOP.
Componentes e Frameworks
Introdução aos Serviços Web
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
SOA e Web Services Aluno: Thiago Caproni Tavares
Comunicação Entre Objetos Distribuídos
Área de Desenvolvimento de Sistemas
Objetos Distribuídos Padrão CORBA
DAS Sistemas Distribuídos para Automação Industrial
Arquitetura Orientada a Serviços (SOA)
Aplicações para Web.
Sistemas Distribuídos
SOA - Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a serviços
Tópicos de Sistemas de Informação A
Middleware e Sistemas Distribuídos
Aplicativos Web Com Orientação a Objetos
Minicurso PHP – Parte 2 João Paulo Ribeiro jpribeiro.com
Arquitetura CORBA e Objetos Distribuídos
Tópicos de Sistemas de Informação A
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
CORBA e Desenvolvimento Baseado em Componentes
Web Services Desmistificando o pré-conceito.
Desenvolvimento de Aplicações Web nas plataformas J2EE e IDE Eclipse
Marcela Bezerra da Silva Cin - UFPE
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Conceitos de J2EE para a WEB
Administração e Integração de Redes em Sistemas Distribuídos
Arquitetura SOA e Oracle SOA SUITE
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Da Introdução à Prática
RPC and Web Service André Pereira.
Conceitos da arquitetura
FERRAMENTAS DE GERENCIAMENTO Aula 01
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Padrões de Interação com o Usuário
Gerenciamento baseado na Web
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
.NET com C#.  Conceitos e Características  Vantagens do SOAP  Descrição do WebService  Gerenciamento de Estados  UDDI  Novidades do Framework 2.0.
Integrando sistemas através de HTTP + XML. * Muitos processos manuais começam a ser realizados online. * Ferramentas desenvolvidas precisavam ser interoperáveis.
Web Services: Conceitos e Transações
Universidade Federal de Alagoas Instituto de Computação - IC Redes de Computadores 2 Serviços Web Felipe Santos José Oswaldo.
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
SyncML Apresentação –Introdução Motivação Iniciativa SyncML –XML (eXtensible Markup Language) –Protocolos SyncML –Sincronização em duas vias –Conclusões.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Infra-Estrutura para Computação Distribuída
© Copyright 2005 Rodrigo Rebouças de Almeida ( Estudo de caso: Café Expresso Ltda. A estória de João...
1 Web Services Uma Introdução Jacques P. Sauvé DSC/UFCG 2003.
Análise de estratégias para implantação de segurança em arquiteturas orientadas a serviços Dezembro/2010 Itabaiana/SE Universidade Federal de Sergipe –
Pesquisa sobre o uso de Web Service Alunos:Felipe Silveira Israel Andreis Programação Distribuída e Paralela Prof. Dr. Cláudio F. R. Geyer.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
SOA SOA – Arquitetura Orientada a Serviços Conceitos e Aplicações
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
Aula Prática de Corba ® Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
Web Services / SOA. O cenário de TI nas corporações Novas tendências batiam à porta das corporações Migraram o foco do “gerenciamento de dados” para o.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Transcrição da apresentação:

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

Web Services

Integração de Aplicações O desafio da interoperação entre ambientes heterogêneos

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ções Definindo o formato para troca de dados

Business-to-Business Aplicações se conhecem e conversam entre si

Web Services Aplicações oferecem serviços que podem ser acessados dinamicamente

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 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 Services Service-oriented Serviços inteligentes Tecnologia 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 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

Arquitetura Típica de uma Aplicação Web Web Services

Web Services

Web Services

Web Services pode ser visto como middleware ?

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

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

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

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

UDDI

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 Services Papéis Operations Service provider Service broker Service requester Operations Publish Find Bind

Business Web Novo tipo de aplicação

Business Web É um Web Services composto por outros Web Services

Business Web

Que tipos de aplicações utilizarão Web Services?

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 Java

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 Empacotamento de todas as tecnologias necessárias para o desenvolvimento de web services WebService Pack Tomcat JAX Pack Java Server Faces JSP TagLibrary

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 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 Services Conclusão é uma forma nova de utilizar tecnologias e conceitos já existentes viabilizada pelo contexto tecnológico e comercial atual

CORBA e Web Services

CORBA e Web Services Características benéficas a integração: 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 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 Services Implementado objetos CORBA usando Web Services:

CORBA e Web Services Implementado Web Services usando objetos CORBA:

CORBA e Web Services Expondo objetos CORBA como Web Services:

CORBA e Web Services Comparação entre protocolos de transporte: GIOP/IIOP SOAP/HTTP Codificação das mensagens - CDR - Menor tamanho (sintaxe binária) - XML - Maior legibilidade * (sintaxe texto) Complexidade de empacotamento - Simples/Média - Complicado - Devido ao uso de parsers XML Suportado na Internet - Tráfego não permitido na maioria dos firewalls - Utiliza protocolos de aplicação conhecidos na Internet (ex. HTTP) Interoperabilidade com middlewares existentes - Utilizando outros mapeamentos (ex. DCE CIOP) - Utilizando bridges (ex. DCOM) - Mapeamento mais simples - Ubiquitous industry support

SOAP

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. ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como 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.

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 ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

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 <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> Notar 3 seções bem definidas: Envelope, Header e Body No Envelope, são efetuados os mapeamentos dos namespaces padrão do SOAP que são usados em todos os documentos No Header, são encapsuladas informações que não estão direcionadas com nenhum método em particular. São informações contextuais, por exemplo: ID de transação ou informações de segurança. No Body, estão informações específicas do método (Ver exemplo no próximo slide)

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> Este exemplo ilustra a chamada a um método sayHelloTo pertencente a uma interrace Hello que foi mapeada como o namespace ns1. O método recebe um parâmetro name, do tipo String e que está recebendo o valor “Maria” encodingStyle informa ao servidor onde está definido o padrão de codificação(serialização) utilizado.

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 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 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 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 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-SOAP Response resp = null; try { resp = call.invoke(url,""); } ... Parameter ret = resp.getReturnValue(); Object value = ret.getValue(); System.out.println(value);

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

Porque Web Services? Resolve o conceito de aplicações distribuídas pela Internet: Baseiam-se no protocolo HTTP Utiliza um protocolo de mensagens e tipo de dados: O SOAP que permite a ativação remota de objetos Utiliza WSDL(Web Services Description Language) baseado em XML Utiliza o protocolo Disco (Discovery Protocol) que permite descobrir quais são os serviços disponíveis na URL Utiliza o UDDI (Universal Discovery, Description and Integration) que permite aos fornecedores de serviços anunciarem os seus Web Services aos desenvolvedores Acho interessante colocar uma apresentação deste tipo(pode modificar) que mostra os termos mais utilizados em Web Services. E o porque deste conceito.

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

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

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++ Auto-explicativa

IDL X WSDL Padrão de Mapeamento SIM NÃO Protocolo de Mensagens IIOP SOAP Registro dos Serviços - UDDI Fornece Localização (URL) Complexidade de Programação Esta comparação de IDL x WSDL foi o que consegui pensar. Quanto ao padrão de mapeamento, por enquanto WSDL não tem nenhum definido. As duas tem o mesmo propósito, porém WSDL permite localização. Na minha opinião, e em outros artigos li que o XML é difícil de ser programado, como WSDL baseia-se em XML, também é complexa a programação,veja slides seguintes com o mapeamento de IDL para WSDL. Em IDL vc pode usar outras linguagens de programação mais simples. Se não concordar com estes tópicos, pode alterar.

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); } Checar a nota do exemplo de WSDL, página 48 do PDF em anexo. Acho que seria bom imprimir esta página e ler a nota, que é a definição para a comparação dos dois códigos.

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> Espero que estas próximas páginas continuem na apresentação, pois deu um trabalhão para digitar e Carlos Ferraz tinha pedido uma comparação entre as duas.

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:message name = “ InterfaceType” (13) <wsdl:part name=”RepID” type=”defs:ExInterfaceRepId” /> <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>

WSDL

UDDI

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

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,...) Taxonomia: NAICS – Sistema de classificação industrial Norte-Americano UNSPSC – Classificação de produtos e serviços de padrão universal. GSC – Sistema de classificação geográfico.

UDDI Define quatro elementos básicos: businessEntity businessService 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) bindingTemplate tModel 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.

UDDI (elementos)

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

WSFL

WSFL Web Service Flow Language Definição Modelo de fluxo Modelo global WSFL é uma linguagem XML para descrição de composição de Web Services. WSFL suporta dois tipos de de composições: Modelo de fluxo: descreve como usar as funcionalidades fornecidas por uma coleção de Web Services para alcançar um particular negócio. Modelo global: Descreve como o conjunto de Web Services interagem entre si. Resumindo: O WSFL permite devenvolvedores facilmente criar, executar, e combinar Web Services em complexos processos e workflows

Processo Negócio O processo negócio é qualquer coleção de atividades que quando combinadas realizam um objetivo de negócio dado. Para o exemplo, processar um número de cartão do crédito, empregar novo um funcionário. A modelagem do Processo negócio começa com um diagrama do que ele se assemelha como um todo (fig). É importante observar que o modelo do processo negócio é uma seqüência de eventos que devem ocorrer não importando os detalhes específicos como a plataforma (Java, web services). O WSFL cria uma reapresentação XML do modelo negócio. O que você necessita, então, é compreender como traduzir um diagrama do modelo do processo negócio em um modelo de fluxo WSFL. Porém uma vez que ferramentas se tornarem disponíveis esta gerará automaticamente modelo de fluxo WSFL baseado no diagrama do processo negócio.

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> No diagrama, existem três funções ou papéis distintos através das quais as atividades(os retângulos) são executadas. Estes papéis representam quem é responsável por executar uma atividade específica. Para o exemplo, o viajante planeja a viagem, a linha aérea emite o bilhete eletrônico .... WSFL requer que você especifique explicitamente estes papéis como parte da implementação do processo. No WSFL usa-se o elemento serviceProviderType. Este elemento especifica a interface Web service (na forma do elemento WSDL PortType) na qual deve ser implementado por um provedor de Web Service. Resumindo cada papel (viajante,agente,linha aérea) é implementado como um provedor de Web service. É importante também ressaltar que cada atividade representa uma operação ou uma combinação de operações dentro de um portType dado.

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>       <source portType="tio:tripHandler" operation="receiveTripOrder"/>       <target portType="tio:tripNTicketHandler" operation="receiveTripOrder"/>     <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>   Pela definição o modelo global descreve como o conjunto de Web Services interagem entre si.   WSDL fornece todas as informações necessárias para permitir que as aplicações cliente invoquem Web Service. No caso de um workflow WSFL, os " clientes " serão outros Web services. Uma vez que o WSDL é criado, necessita ser disposto em alguma localização acessível na rede. Resumindo, como o modelo global trata da interação de web services providers logo os web services precisam ser localizados para que a interação aconteça. Como definido pelo modelo global WSFL, há quatro maneiras diferentes para os Web services posa ser localizados: estaticamente, localmente, através de UDDI, ou dinamicamente enquanto o processo negócio está sendo executado. Falar sobre cada um entraríamos Nos detalhes do WSFL o que não é o caso

ebXML

ebXML Definição: Objetivo: 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. ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como 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.

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 ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

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 é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

ebXML Componentes 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 é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como 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.

ebXML Componentes 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 é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como 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.

ebXML Componentes ebXML Messaging Service Qualquer transporte pode ser usado Qualquer tipo de informação pode ser roteada ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como 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.

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 é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

ebXML (Visão geral de um sistema ebXML) Fase de implementação ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

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 é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

ebXML (Visão geral de um sistema ebXML) Fase de negociação ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

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. ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

ebXML (Visão geral de um sistema ebXML) Fase de transação ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.

ebXML (Visão geral de um sistema ebXML) ebXML é um conjunto de especificações que juntas possibilita um framework para comércio eletrônico, tendo como objetivo criar um mercado eletrônico global único.