27
Schema XML & Schema XML & Web Services Web Services Jeferson Bitencourt Roberto Marini Steck Xavier C Neto

Apresentação WebService e Schema XML

  • Upload
    rmsteck

  • View
    45

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Apresentação WebService e Schema XML

Schema XML Schema XML & &

Web ServicesWeb Services

Jeferson BitencourtRoberto Marini SteckXavier C Neto

Page 2: Apresentação WebService e Schema XML

HistóricoHistóricoDTD - Definição de Tipo de

Documento;DTD foi o primeiro padrão

fortemente utilizado para definição e validação de XMLs;

Utilizado para validações do SGML;

Em 2001 se iniciou a mudança para XSD;

Page 3: Apresentação WebService e Schema XML

DTD Exemplo DTD Exemplo <!DOCTYPE NEWSPAPER [

<!ELEMENT NEWSPAPER (ARTICLE+)><!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)><!ELEMENT HEADLINE (#PCDATA)><!ELEMENT BYLINE (#PCDATA)><!ELEMENT LEAD (#PCDATA)><!ELEMENT BODY (#PCDATA)><!ELEMENT NOTES (#PCDATA)>

<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED><!ATTLIST ARTICLE EDITOR CDATA #IMPLIED><!ATTLIST ARTICLE DATE CDATA #IMPLIED><!ATTLIST ARTICLE EDITION CDATA #IMPLIED>

<!ENTITY NEWSPAPER "Vervet Logic Times"><!ENTITY PUBLISHER "Vervet Logic Press"><!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">

]>

Page 4: Apresentação WebService e Schema XML

XML ShemaXML ShemaÉ uma linguagem baseada no formato

XML para validar documentos XML;Foi recomendada e evoluída pelo

W3C;XSD (XML Schema Definition),

documento que descreve a estrutura de um documento XML;

Todas as linguagens de programação possuem APIs para trabalhar com XSD;

Page 5: Apresentação WebService e Schema XML

Suportam amplo tipo de dados;Suportam namespaces;Suportam criação de tipos derivados

dos tipos básicos;Suportam criação de estrutura

complexas para validação, como ranges de dados e limites;

Suportam relacionamentos entre tipos de dados no Schema(reaproveitamento);

XML ShemaXML Shema

Page 6: Apresentação WebService e Schema XML

XML Schema – Tipos ;XML Schema – Tipos ;Existem cinco conjuntos de tipos de

dados pré-definidos em XSD. Esses conjuntos de tipos de dados são:

I. Numéricos - xsd:float, xsd:double, xsd:decimal, xsd:integer, xsd:negativeInteger , entre outros;

II. Data/Hora - xsd:dateTime, xsd:time, xsd:gYear , entre outros

III.String - xsd:string, xsd:normalizedString, xsd:token

IV.Binários - xsd:hexBinary, xsd:base64BinaryV. Booleanos - xsd:boolean

Page 7: Apresentação WebService e Schema XML

A primeira linha é sempre a definição padrão de um XML;

Na segunda, a definição de no mínimo o namespace de tipos básicos, onde é possível adicionar outras definições de tipos, incluindo a sua;

<?xml version="1.0" encoding="ISO-8859-1" ?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">...</xs:schema>

XML Schema – EstruturaXML Schema – Estrutura

Page 8: Apresentação WebService e Schema XML

XML Schema – EstruturaXML Schema – Estrutura

Elementos do XML<xsd:element name="endereco"

type="xsd:string" minOccurs="0" maxOccurs="1"/>

Atributos dos Elementos<xsd:attribute name="datacadastro"

type="xsd:dateTime" use="optional"/>

Page 9: Apresentação WebService e Schema XML

Elementos Complexos, para que esses elementos sejam declarados é necessário utilizar tag “complexType”;

Podemos ter elementos complexos ‘dentro’ de elementos complexos;

<xsd:element name="cliente"> <xsd:complexType> <xsd:element name="nome" type="xsd:string"/> <xsd:element name="endereco"

type="xsd:string"/> <xsd:element name="cep" type="xsd:integer"/> </xsd:complexType> </xsd:element>

XML Schema – EstruturaXML Schema – Estrutura

Page 10: Apresentação WebService e Schema XML

Posso criar Restrições para validação da definição do XML;

<xs:element name="password">  <xs:simpleType>    <xs:restriction base="xs:string">      <xs:minLength value="5"/> <xs:maxLength value="8"/>    </xs:restriction>  </xs:simpleType></xs:element>

<xs:element name="car“ ><xs:simpleType>  <xs:restriction base="xs:string">    <xs:enumeration value="Audi"/>    <xs:enumeration value="Golf"/>    <xs:enumeration value="BMW"/>  </xs:restriction></xs:simpleType>

XML Schema – EstruturaXML Schema – Estrutura

Page 11: Apresentação WebService e Schema XML

XML Schema – EstruturaXML Schema – EstruturaGrupos sequence, all e choice. Define a ordem correta e obrigatória dos elementos.<xsd:sequence> <xsd:element name="nome" type="xsd:string"/> <xsd:element name="datanasc" type="xsd:date"/> </xsd:sequence>

Obriga apenas que os elementos constem no documento<xsd:all> <xsd:element name="nome" type="xsd:string"/> <xsd:element <xsd:element name="telefone"

type="xsd:string"/> </xsd:all>

Obriga que somente um dos elementos especificados conste no documento xml

<xsd:choice> <xsd:element name="CPF" type="xsd:string"/> <xsd:element name="RG" type="xsd:string"/> </xsd:choice>

Page 12: Apresentação WebService e Schema XML

XML Schema - ExemploXML Schema - Exemplo<?xml version="1.0" encoding="ISO-8859-1" ?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="shiporder">  <xs:complexType>    <xs:sequence>      <xs:element name="orderperson" type="xs:string"/>      <xs:element name="shipto">        <xs:complexType>          <xs:sequence>            <xs:element name="name" type="xs:string"/>            <xs:element name="address" type="xs:string"/>            <xs:element name="city" type="xs:string"/>            <xs:element name="country" type="xs:string"/>          </xs:sequence>        </xs:complexType>      </xs:element>      <xs:element name="item" maxOccurs="unbounded">        <xs:complexType>          <xs:sequence>            <xs:element name="title" type="xs:string"/>            <xs:element name="note" type="xs:string" minOccurs="0"/>            <xs:element name="quantity" type="xs:positiveInteger"/>            <xs:element name="price" type="xs:decimal"/>          </xs:sequence>        </xs:complexType>      </xs:element>    </xs:sequence>    <xs:attribute name="orderid" type="xs:string" use="required"/>  </xs:complexType></xs:element></xs:schema>

Page 13: Apresentação WebService e Schema XML

SOASOASOA é uma arquitetura para

computação distribuída;SOA não é somente WebService;A arquitetura SOA pode possuir

vários componentes de integração e serviços:- Enterprise Service Bus- WebService- Business Process Mamagement- Legacy Services

Page 14: Apresentação WebService e Schema XML

Defining a Service More PreciselyIt is important to be clear about what we mean when we use the word "service" in the SOA context. Typically

we are thinking about a business service, such as making a hotel reservation or buying a computer online, but keep in mind that these services do not include a visible element. Services do not have a frontend-they expose either functionality or data with which other programs can interact through web browsers, desktop applications, or even other services.

These services might implement business functions like searchForAvailability or setShippingMethod. In this respect they are distinctly different from technical services, which might provide messaging or transactional functions such as updating data or monitoring transactions. By design, SOA deliberately decouples business services from technical services so that your implementation does not require a specific underlying infrastructure or system. In short, a SOA service is the encapsulation of a high-level business concept.

A SOA service is composed of three parts:A service class that implements the service to be providedA host environment to host the serviceOne or more endpoints to which clients will connectAll communication with a service happens through the endpoints. Each endpoint specifies a contract (which

we will discuss in greater detail later in this chapter) that defines which methods of the service class will be accessible to the client through that specific endpoint.

Because the endpoints have their own contracts, they may expose different (and perhaps overlapping) sets of methods. Each endpoint also defines a binding that specifies how a client will communicate with the service and the address where the endpoint is hosted.

You can think of SOA services in terms of four basic tenets:Boundaries are explicit.Services are autonomous.Schemas and contracts are shared, but not classes.Compatibility is based on policy.These fundamental tenets help drive the design of the services you'll create, so it's worth exploring each in

detail.

Page 15: Apresentação WebService e Schema XML

WebServiceWebServiceÉ uma solução padronizada utilizada

na integração de sistemas diferentes;Utiliza XMLs para troca de

informações;Permite integrar diferentes

plataformas;Pode ser implementada em qualquer

linguagem;Permite aplicação de segurança em

vários níveis;

Page 16: Apresentação WebService e Schema XML

How Does it Work?The basic Web services platform is XML + HTTP.XML provides a language which can be used

between different platforms and programming languages and still express complex messages and functions.

The HTTP protocol is the most used Internet protocol.Web services platform elements:SOAP (Simple Object Access Protocol)UDDI (Universal Description, Discovery and

Integration)WSDL (Web Services Description Language)We will explain these topics later in the tutorial.

Page 17: Apresentação WebService e Schema XML

SOAP - Simple Object Access SOAP - Simple Object Access Protocol Protocol O padrão W3C não determina o protocolo de

transporte dos dados para o WebService .... mas mensagens SOAP são documentos XML que aderem a uma especificação fornecida pelo órgão W3C.

É baseado em XML e possui XSD que o define;Permite Extensões do Protocolo para

evoluções;SOAP é independente do protocolo de

comunicação da rede, Http, TCP/IP, MQ, JMS ...SOAP é independente do plataforma e

lingugem de programação. Existem programas Cobol Mainframe que geram este protocolo para comunicação;

Page 18: Apresentação WebService e Schema XML

SOAP - Simple Object Access SOAP - Simple Object Access Protocol Protocol

SOAP Message;SOAP Envelope, que possui

informações de ‘entrega’ da mensagem para processamento;

SOAP Header, onde temos informações de como processar a mensagem e apliaçação de extensões;

SOAP Body, onde são adicionadas os dados(payloads) e as descrições de falhas(faults);

Page 19: Apresentação WebService e Schema XML

WSDL - Web Service Description WSDL - Web Service Description LanguageLanguageEspecificação desenvolvida pela

W3C para descrever Web Service em formato XML;

Também define a localização(end point) do Serviço;

Aceita que a definição dos dados das mensagens esteja em seu arquivo;

Permite extensões no modelo;

Page 20: Apresentação WebService e Schema XML

<?xml version="1.0" encoding="UTF-8"?>     <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">       <wsdl:message name="somaRequest">        <wsdl:part name="valor1" type="xsd:int"/>        <wsdl:part name="valor2" type="xsd:int"/>      </wsdl:message>      <wsdl:message name="somaResponse">        <wsdl:part name="somaReturn" type="xsd:int"/>      </wsdl:message>      <wsdl:portType name="Servico">        <wsdl:operation name="soma" parameterOrder="valor1 valor2">          <wsdl:input message="impl:somaRequest" name="somaRequest"/>          <wsdl:output message="impl:somaResponse" name="somaResponse"/>        </wsdl:operation>      </wsdl:portType>      <wsdl:binding name="ServicoSoapBinding" type="impl:Servico">        <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>        <wsdl:operation name="soma">          <wsdlsoap:operation soapAction=""/>          <wsdl:input name="somaRequest">            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/>          </wsdl:input>          <wsdl:output name="somaResponse">            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"   use="encoded"/>          </wsdl:output>        </wsdl:operation>      </wsdl:binding>      <wsdl:service name="ServicoService">        <wsdl:port binding="impl:ServicoSoapBinding" name="Servico">          <wsdlsoap:address location="http://localhost:8080/axis/Servico.jws"/>        </wsdl:port>      </wsdl:service>   </wsdl:definitions>

WSDL - ExemploWSDL - Exemplo

Page 21: Apresentação WebService e Schema XML

UDDIUDDI

Page 22: Apresentação WebService e Schema XML

Web Service – FuncionamentoWeb Service – Funcionamento

Page 23: Apresentação WebService e Schema XML
Page 24: Apresentação WebService e Schema XML

Referência do W3CReferência do W3C

Page 25: Apresentação WebService e Schema XML

ExemplosExemplosNota Fiscal EletronicaDDACorreios

Colcoar um WebService apontando para os correios

Até mainframe consegue responder ws exemplo IBM

Page 26: Apresentação WebService e Schema XML

Vantagens e Vantagens e desvantagensdesvantagens

Page 27: Apresentação WebService e Schema XML

Futuro Rest WebServiceBenefícos sobre o soapContras