• Nenhum resultado encontrado

Serviços na Web

No documento Ecojukebox (páginas 52-57)

Capítulo 4 Desenho

4.5 Serviços na Web

4.5.1 Sobre os serviços na Web

Os serviços na Web [19] usam documentos XML criados no formato de mensagem, para o programa poder enviar um pedido para um serviço Web através da rede. As normas dos serviços na Web definem o formato da mensagem, especificando a interface para a qual a mensagem é enviada, descrevendo as convenções para mapear o conteúdo da mensagem para dentro e para fora dos programas que implementem o serviço, e definindo mecanismos para publicar e para descobrir interfaces de serviços na Web. Esta tecnologia pode ser usada de várias formas. Os serviços na Web podem ser executados em clientes para aceder a aplicativos de Internet, tais como sistemas de reserva e sistemas de controlo de pedidos. Podem também ser usados para integração B2B (business-to-business), conectando aplicações executados em várias organizações na mesma cadeia de abastecimento. Os serviços na Web também podem facilitar a integração de aplicações empresariais (EAI), que significa a integração das aplicações de uma empresa, ou seja, interoperabilidade entre a informação que circula numa organização nas diferentes aplicações como, por exemplo, o comércio eletrónico com os seus clientes e os seus fornecedores. Esta interação constitui o sistema de informação de uma empresa. E para além da interoperabilidade entre as aplicações, a EAI permite definir um workflow entre as aplicações e pode constituir uma alternativa aos ERP (Enterprise Resource Planning). Com um workflow é possível otimizar e controlar processos e tarefas de uma determinada organização.

Como ilustrado na figura seguinte, os serviços na Web apresentam à rede uma maneira padrão de interface entre sistemas de software back-end, tais como sistemas de gestão de bases de dados, .NET, J2EE, CORBA, entre outros. As interfaces dos serviços na Web recebem uma mensagem XML padrão através da rede, transformando depois os dados XML num formato que seja entendido por um sistema de software específico e opcionalmente retorna uma mensagem de resposta. As implementações subjacentes aos serviços na Web podem ser criadas usando qualquer linguagem de programação, sistema operativo, ou sistema de middleware.

39

Os serviços na Web combinam conceitos de programação com as características de abstração da Internet. As tecnologias da Internet são hoje um sucesso porque permitem um nível elevado de abstração e a compatibilidade entre sistemas operativos, hardware ou software. A infraestrutura dos serviços na Web explora esse nível de abstração e inclui informação semântica associada aos dados.

Os serviços na Web são importantes neste trabalho, pois permitem enviar as informações musicais através da rede até à interface Web, e a informação de retorno das votações na interface Web para o servidor da aplicação. Permite também a comunicação entre o servidor da aplicação e o servidor de rádio e é ainda usado para fazer a gestão da base de dados.

4.5.2 Tecnologias

As bases para a construção de um serviço na Web são os padrões XML, WSDL e SOAP.

XML - Extensible Markup Language

XML é a base em que os serviços na Web são construídos. O XML fornece a descrição, o armazenamento, o formato da transmissão para trocar os dados através dos serviços na Web e também para criar tecnologias de serviços na Web para a troca dos dados. A sintaxe de XML usada nas tecnologias dos serviços na Web especifica como os dados são representados genericamente, define como e com que qualidades de serviço os

40

dados são transmitidos, pormenoriza como os serviços são publicados e descobertos. Os serviços na Web decodificam as várias partes de XML para interagir com as várias aplicações.

WSDL - Web Services Description Language

É um padrão baseado em XML que fornece o mecanismo pelo qual as definições dos serviços na Web são expostas e para manter conformidade nas mensagens SOAP enviadas. O WSDL descreve os tipos de dados e estruturas dos serviços da Web, explica como mapear os tipos de dados e estruturas para as mensagens que são trocadas, e inclui informações que ligam as mensagens subjacentes às implementações. É definido de modo a que as suas peças possam ser desenvolvidas separadamente e combinadas para criar um ficheiro WSDL abrangente. Os tipos de dados e estruturas podem ser partilhados entre várias mensagens.

A fim de conseguir uma comunicação de serviços da Web, o WSDL mapeia-os em protocolos de comunicação e transportes. Ambas as partes numa interação de um serviço da Web partilham um ficheiro WSDL comum. O remetente utiliza o arquivo WSDL para gerar a mensagem no formato adequado e usar o protocolo de comunicação adequado. O recetor usa o arquivo WSDL para entender como receber e analisar a mensagem e como mapeá-la para o objeto ou programa subjacente.

SOAP - Simple Object Access Protocol

O SOAP é uma invocação remota de um método e para tal necessita especificar o endereço do componente, o nome do método e os argumentos para esse método. Estes dados são formatados em XML com determinadas regras e enviados normalmente por HTTP para esse componente. Não define ou impõe qualquer semântica, quer seja o modelo de programação, quer seja a semântica específica da implementação. Este aspeto é extremamente importante, pois permite que quer o serviço, quer o cliente que invoca o serviço sejam aplicações desenvolvidas sobre diferentes linguagens de programação. Por esta razão, o SOAP tornou-se uma norma aceite para se utilizar nos serviços na Web, uma tecnologia construída com base em XML e HTTP. Desta forma, pretende-se garantir a interoperabilidade e intercomunicação entre diferentes sistemas, através da utilização da linguagem XML e do mecanismo de transporte HTTP ou outro como, por exemplo, SMTP. O SOAP permite que os documentos XML de envio e de receção sobre a Web suportem um protocolo comum de transferência de dados para uma

41

comunicação de rede eficaz, ou seja, o SOAP providencia o transporte de dados para os serviços na Web.

Todos os serviços Web SOAP usados no trabalho estão descritos no Apêndice B. Outro dos aspetos importantes em relação ao uso dos serviços na Web, são o tipo de dados devolvidos. No caso deste trabalho é necessário enviar muita informação pela rede, entre servidores, como é o caso das informações referentes a uma música. Tratam-se de objetos complexos que necessitam ser serializados para que os serviços consigam ser utilizados por outras linguagens de programação. Para serializar os objetos utiliza-se a estrutura de dados em JSON, que é um formato de texto padrão para troca de dados entre linguagens, tais como, C, C++, C#, Java, JavaScript, Perl, Python, e muitas outras.

Em JSON um objeto é uma string, representando um conjunto desordenado de pares nome/valor. Um objeto começa com uma chaveta curva esquerda ({) e termina com uma chaveta curva direita (}). Cada nome é seguido por dois pontos e os pares nome/valor são separados por vírgulas.

Figura 4-12: Pedido e resposta SOAP

42

A escolha desta estrutura de dados em JSON deveu-se a dois aspetos:

Formato ideal para ser manipulado em JavaScript na interface Web do utilizador da EcoJukeBox.

Existência de uma biblioteca feita em Java pela Google (GSon) que permite serializar objetos complexos para JSON de uma forma bastante simples de utilizar.

43

No documento Ecojukebox (páginas 52-57)

Documentos relacionados