• Nenhum resultado encontrado

3.3 Limitações do Paradigma de Arquiteturas Orientadas a Serviço

3.3.6 Web Services Attachments

Com a utilização dos Web Services, é possível enviar qualquer tipo de informação, sob qualquer forma de codificação. Há três técnicas para enviar dados em conjunto com um documento XML:

• Binário Puro: A incorporação desses dados em XML como texto codificado com o tipo

octects xs:base64Binary ou xs:hexBinary. A principal desvantagem desta

abordagem é encapsular a mensagem no envelope SOAP, uma vez que essa técnica causa sobrecarga de custos de transformação de dados, especialmente quando ocorre a decodifi- cação de volta para o formato binário.

• Utilizar uma URI do tipo xs:anyURI no documento XML de forma a referenciar para os dados binários que estão fora do corpo da mensagem (SWA e MTOM são duas técnicas que utilizam referências externas para o conteúdo do corpo da mensagem SOAP). Os dados são externos ao documento XML, sendo necessário fornecer um conjunto de soluções para o componente XML dos seus dados e outro conjunto de soluções para os componentes externos (DIME e MIME). Outra questão é sobre os problemas de interoperabilidade, porque não há um modelo padrão que determina como provedores de mensagens SOAP intermediários irão processar os dados referenciados (Young, 2007).

Message Transmission Optimization Mechanism (MTOM)

Message Transmission Optimization Mechanism(MTOM) é um método eficiente de envio de

dados binários por meio de Web Services. Sua base é o XML-binary Optimized Packaging (XOP), um protocolo utilizado para transmitir dados binários em mensagens SOAP. XOP é uma alterna- tiva de serialização XML que apenas ocorre com pacotes MIME multipart/related, com um documento XML como a parte da raiz. A parte raiz do documento só difere da codificação base64, porque os dados são substituídos por uma referência a uma das partes MIME que não está codificado na base64. Na seqüencia serão demonstrados todos os passos do uso do XOP:

1. XOP extrai dados binários em um documento XML

2. XOP serializa documentos XML em pacotes localizados dentro de um pacote de formato extensível, como MIME Multipart/Related.

3. O novo documento XML marca a localização dos pacotes de dados binários com elementos especiais que contêm URI, identificando a localização correspondente.

As diferenças entre MTOM e XOP é que o primeiro é apenas uma descrição de como XOP é encapsulado em uma mensagem SOAP para posterior transporte pelo protocolo HTTP. MTOM es- pecifica ainda uma implementação concreta do mecanismo de binding do SOAP via HTTP. MTOM

CAPÍTULO 3. DESEMPENHO EM SOA E QOS EM WEB SERVICES 39 usa XOP para otimizar a transmissão de mensagens SOAP com anexos. Ele descreve como seri- alizar um envelope SOAP usando o formato XOP e pacote MIME Multipart/Related (note que MIME Multipart/Related não é exigida no XOP). É importante mencionar que o XOP somente otimiza elementos de dados base64 (Nottingham, 2004). XOP e MTOM são padrões

W3C desde 2005 e não são propostos como parte da especificação SOAP original. Para identi-

ficar MTOM em uma transmissão de mensagens SOAP sobre HTTP é necessário verificar quatro atributos (Young, 2007):

1. Presença da mídia applicationx/xop+xml

2. Tipo de mídia da mensagem HTTP precisar ser Multipart/Related

3. Tipo de mídia da parte raíz do pacote MIME Multipart/Related é application/xop+xml 4. Parâmetro start-info indica um tipo de conteúdo application/soap+xml

SOAP with Attachments (SWA)

Define como um binário ou uma mensagem SOAP pode ser composto em uma mensagem

MIMEdo tipo Multipart/Related. Cada parte da mensagem é separada por um delimitador

de seqüência único definido no início da mensagem. A diferença entre o SWA e MTOM é que

SWAnão mostra a referência do objeto no corpo da mensagem SOAP como um InfoSet XML como

faz o MTOM. A representação do conteúdo binário anexado com SWA não é um XML formatado. A vantagem do SWA é que ele não converte dados binários em caracteres utilizando algoritmos de codificação. Ele ainda economiza recursos do sistema e a transmissão de dados binários é mais eficiente (Zhang et al., 2007). No entanto, o SWA apresenta suas limitações, especialmente a implementação do mecanismo no motor de processamento Apache Axis2. MIME não permite acesso aleatório aos elementos arbitrários da mensagem, sem prévia recepção da mensagem inteira. Um Web Service não pode decidir quais objetos binários são transferidos como um todo, usando o protocolo de transferência. Isso significa que a ordem de envio do anexo não pode ser escolhida sobrepondo-se à execução de serviço e impedindo que a transmissão de dados seja possível.

Em um cenário onde tem-se um cliente e um provedor, o provedor tem que esperar pela trans- missão de todo o conteúdo da mensagem pelo cliente antes que ele possa decodificar cada parte anexada. Outra conseqüência é que a transmissão de anexos de grandes dimensões pode demorar muito tempo, porque o processamento de anexos requer grande utilização de memória (Heinzl et al., 2006). Resultados recentes sobre o desempenho de Web Services com anexos de dados binários são discutidos em (Estrella et al., 2009). Os autores avaliaram as três técnicas de anexos de Web

Services(binário puro, MTOM, SWA), considerando a influência da rede e diferentes tamanhos de

arquivos além de apresentar uma ferramenta de apoio para este estudo. Os resultados deste estudo culminaram com a implantação de um sub-módulo no Broker da WSARCH para tratar especial- mente da transmissão de mensagens SOAP com anexos. Essa nova funcionalidade foi testada e avaliada em outro projeto de mestrado associado à arquitetura WSARCH (Toyohara, 2010).

40 3.3. LIMITAÇÕES DO PARADIGMA DE ARQUITETURAS ORIENTADAS A SERVIÇO