Perfil Básico WS-I
O Perfil Básico do Web Services-Interoperability (WS-I) é um conjunto de especificações de serviços da Web de não propriedade que promove a interoperabilidade. O WebSphere Application Server é compatível com o WS-I Basic Profile Versão 1.1 e com o WS-I Basic Security Profile Versão 1.0.
O WS-I Basic Profile é controlado por um consórcio de corporações líderes do segmento de mercado, inclusive aIBM®, sob direção do WS-I Organization. O perfil consiste em um conjunto de princípios que se relacionam para produzir padrões abertos para a tecnologia de serviços da Web. Todas as organizações que estiverem interessadas em promover a interoperabilidade entre serviços da Web são encorajadas a se tornarem membros do Web Services Interoperability Organization.
Vários componentes de tecnologia são usados na composição e na implementação de serviços da Web, incluindo sistema de mensagens, descrição, descoberta e segurança. Cada um desses componentes é suportado pelas especificações e padrões, incluindo o SOAP 1.1, XML (Extensible Markup Language) 1.0, HTTP 1.1, WSDL (Web Services Description Language) 1.1 e UDDI (Universal Description, Discovery and Integration). O WS-I Basic Profile especifica como esses componentes tecnológicos são utilizados juntos para conseguir interoperabilidade e obriga o uso específica de cada uma das tecnologias, quando apropriado. É possível ler mais sobre o Perfil Básico do WS-I no website do WS-I Organization.
À medida que os componentes de tecnologia são atualizados, esses componentes também são usados na composição e na implementação de serviços da Web. Um exemplo é que SOAP 1.1 e SOAP 1.2 agora são suportados.
- O WS-I Basic Profile V1.2 é construído sobre o WS-I Basic Profile V1.0 e WS-I Basic Profile V1.1 e inclui suporte para o WS-A (WS-Addressing) e o SOAP MTOM (Message Transmission Optimization Mechanism). A especificação WS-Addressing ativa o padrão de troca de mensagem assíncrona para que seja possível separar o pedido de serviço da resposta de serviço. O cabeçalho SOAP do pedido do emissor contém o valor wsa:ReplyTo que define a referência de terminal para a qual a resposta do provedor é enviada. O desacoplamento da solicitação de resposta permite interações de serviços da Web de longa execução. Com o uso do suporte do modelo de programação assíncrona no JAX-WS Versão 2.1 em combinação com o WS-Addressing, é possível agora aproveitar o recurso para criar chamadas de serviços da Web em que o cliente possa continuar a processar o trabalho sem esperar pelo retorno da resposta. Isso proporciona um modelo mais dinâmico e eficiente para chamar serviços da Web. Com o MTOM você pode enviar e receber dados binários de modo otimizado em uma mensagem SOAP.
- O WS-I Basic Profile V2.0 é construído em Basic Profile V1.2 com a adição de suporte para SOAP 1.2.
- O WS-I Reliable Secure Profile 1.0 é construído sobre o WS-I Basic Profile V1.2, WS-I Basic Profile V2.0, WS-I Basic Security Profile V1.0 e WS-I Basic Security Profile V1.1 e inclui suporte para o WS-Reliable Messaging 1.1, WS-Make Connection 1.0 e WS-Secure Conversation 1.3. O WS-Reliable Messaging 1.1 é um protocolo baseado em sessão que fornece confiabilidade no nível de mensagem para interações de serviços da Web. O WS-Make Connection 1.0 foi desenvolvido pelo grupo de trabalho do WS-Reliable Messaging para endereçar cenários em que um terminal de serviços da Web está por trás de um firewall ou o terminal não tem referência de terminal visível. Se um terminal de serviços da Web perder conectividade durante uma sessão confiável, o WS-Make Connection fornecerá um método eficiente para restabelecer a sessão confiável. Além disso, o WS-Secure Conversation V1.3 é um protocolo de segurança baseado em sessão que utiliza uma chave simétrica eficiente com base no algoritmo de criptografia para segurança em nível de mensagem. O WS-I Reliable Secure Profile V1.0 fornece interações seguras de serviços da Web orientadas a sessão confiável.
Cada um dos componentes de tecnologia possui requisitos que podem ser lidos com mais detalhes no website do WS-I Organization. Por exemplo, suporte para codificação UTF-16 (Universal Transformation Format) é requerido pelo WS-I Basic Profile. O UTF-16 é um tipo de esquema de codificação Unicode que utiliza valores de 16 bits para armazenar caracteres UCS (Universal Character Set). O UTF-8 é a codificação mais comum utilizada na Internet; a codificação UTF-16 é geralmente utilizada para os aplicativos de produto Java™ e Windows ; e o UTF-32 é utilizado por vários sistemas Linux e UNIX. Ao contrário da UTF-8, a UTF-16 tem problemas com big-endian e little-endian e, com frequência, envolve BOM (Byte Order Mark) para indicar endian. BOM é obrigatório para codificação em UTF-16 e pode ser utilizado em UTF-8.
O servidor de aplicativos só suporte a codificação UTF-8 e UTF-16 das mensagens SOAP.
Consulte as informações sobre mudança de codificação de mensagem SOAP para suportar WSI-Basic Profile para saber como modificar sua codificação de UTF-8 para UTF-16.
Bytes | Formato de Codificação |
---|---|
EF BB BF | UTF-8 |
FF FE | UTF-16, little-endian |
FE FF | UTF-16, big-endian |
00 00 FE FF | UTF-32, big-endian |
FF FE 00 00 | UTF-32, little-endian |
POST http://www.whitemesa.net/soap12/add-test-rpc HTTP/1.1
Content-Type: application/soap+xml; charset=utf-16; action=""
SOAPAction:
Host: localhost: 8080
Content-Length: 562
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString soap:encodingStyle="http://example.org/unknownEncoding"
xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
No código de exemplo, 0xFF0xFE representa os códigos de bytes, enquanto a declaração <?xml> é uma representação de texto.
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
Para obter uma lista completa de padrões e especificações suportados, consulte as especificações de serviços da Web e a documentação da API.