• No results found

Våre observasjoner, vurderinger og konklusjoner

In document TILSYNSRAPPORT - VEDTAK (sider 7-16)

2 Barnehagens arbeid for å forebygge og fremme et trygt og godt barnehagemiljø

2.2 Våre observasjoner, vurderinger og konklusjoner

Os Web Services (W3C, 2002) estão entre as mais recentes evoluções de desenvolvimento de aplicações distribuídas. Esta tecnologia permite que as diferentes aplicações cooperem facilmente e partilhem informações e dados entre si. Os Web Services fornecem mecanismos normalizados de interoperabilidade entre diferentes aplicações de software, permitindo a sua execução numa grande variedade de plataformas e/ou frameworks. São caracterizados pela sua interoperabilidade e extensibilidade, assim como por descrições passíveis de processamento por computador (W3C, 2002). Podem ainda ser combinados de modo a obter operações complexas. Programas que disponibilizam serviços simples podem interagir com outros de modo a fornecer serviços acrescentados e sofisticados. Os Web Services permitem a utilização de serviços autónomos, identificados por URIs, com interfaces bem documentadas e processamento de mensagens e componentes básicas para a construção de arquitecturas SOA.

O conceito de Web Services envolve uma série de normas, tais como XML, SOAP, WSDL e UDDI. Tecnicamente os Web Services são serviços distribuídos invocáveis através da Web via mensagens XML que seguem a norma SOAP e que são enviadas através do protocolo HTTP. Um serviço pode fornecer uma ou mais operações para executar acções específicas e que podem ser invocadas pelos clientes. Estas operações e o formato das mensagens de entrada e saída são descritas utilizando a linguagem WSDL. A escolha desta linguagem neutra foi vital para o rápido crescimento da utilização dos Web Services. Um Web Service para que tenha um uso geral pode ser publicado num registo universal chamado UDDI, usado pelos fornecedores para anunciarem os seus serviços. Deste modo, os clientes podem pesquisar o serviço mais adequado às suas necessidades, procurando nos vários registos UDDI que subscreveram. O registo UDDI irá armazenar informação contida no descritor WSDL e informações sobre o fornecedor de serviços, entre outras.

É a combinação destes protocolos que preenchem os principais requisitos da SOA: a combinação de UDDI, WSDL e SOAP permite a descoberta e a invocação dinâmica de serviços; a linguagem XML permite que os serviços sejam independentes da plataforma. A linguagem WSDL oferece a visão lógica do serviço e o protocolo SOAP permite a interoperabilidade entre sistemas.

A Figura 4.2 ilustra as principais normas XML Schema que são essenciais para o desenvolvimento de soluções para arquitecturas SOA.

Todas estas normas e outras como o caso do Namespaces (Bray, Hollander et al., 2006) e XML Schema, são essenciais para o desenvolvimento de soluções para arquitecturas SOA são ilustradas na Figura 4.2 e são descritas em seguida.

Figura 4.2 – Esquema das normas envolvidas nos Web Services (Lopes and Ramalho, 2005). UDDI WSDL SOAP Namespaces XML Schema XML

4.2.1 Extensible Markup Language

XML é uma linguagem de marcação de dados (meta-markup language) desenvolvida sob a orientação do W3C e que prevê um formato para descrever dados estruturados. É uma norma independente de qualquer plataforma de desenvolvimento e encontra-se na base dos restantes protocolos associados aos Web Services. Permite uma codificação flexível através da utilização de metadados para descrever a estrutura dos dados usando a linguagem Document

Type Definition – DTD (Bray, Paoli et al., 1998) ou XML Schema Definition – XSD (Bray,

Hollander et al., 2006). Um documento XML bem formado cria uma árvore de conjuntos de

tags, em que cada conjunto pode incluir vários pares (atributo, valor).

4.2.2 Simple Object Access Protocol

O SOAP é um protocolo para a troca de informação estruturada num ambiente descentralizado e distribuído (Gudgin, Hadley et al., 2003). É uma norma que define o tipo e formato das mensagens baseadas em XML, que podem ser trocadas entre os intervenientes.

Não define um protocolo de transporte para a troca de mensagens para não comprometer a independência em relação à tecnologia de desenvolvimento. No entanto, possui uma descrição de como deve ser utilizado sobre HTTP, sendo esta a configuração mais amplamente utilizada.

4.2.3 Web Service Definition Language

A necessidade dos Web Services serem aplicações auto-descritivas levou à criação de uma linguagem normalizada que permitisse descreve-los. A norma WSDL (Chinnici, Moreau et al., 2007) é um formato XML publicado para descrever sintacticamente informação sobre

Web Services e a forma de como os invocar. Permite a separação da descrição da

funcionalidade oferecida pelo serviço dos detalhes da sua implementação, definindo a interface que esse serviço fornece aos requisitantes. O Código 4.1 corresponde a um documento WSDL que descreve um Web Service chamado library. Neste código é possível encontrar a operação que este Web Service fornece, parâmetro de entrada e de saída, e a sua localização, entre outra informação.

1: <?xml version="1.0" encoding="UTF-8"?> 2: <definitions name="library"

4: xmlns="http://schemas.xmlsoap.org/wsdl/" 5: xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 6: xmlns:xsd="http://www.w3.org/2001/XMLSchema" 7: xmlns:tns="http://services.icas.ipb.pt/wsdl/library" 8: xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> 9: <types/> 10: <message name="searchBookRequest">

11: <part name="title" type="xsd:string"/> 12: </message>

13: <message name="searchBookResponse"> 14: <part name="isbn" type="xsd:string"/> 15: </message>

16: <portType name="libraryPortType"> 17: <operation name="searchBook">

18: <input name="input" message="tns:searchBookRequest"/> 19: <output name="output" message="tns:searchBookResponse"/> 20: </operation>

21: </portType>

22: <binding name="libraryBinding" type="tns:libraryPortType">

23: <soap:binding style="rpc" transport="http://sch...org/soap/http"/> 24: <operation name="searchBook"> 25: <soap:operation/> 26: <input name="input"> 27: <soap:body use="literal" namespace="http://services.icas.ipb.pt/wsdl/library"/> 28: </input> 29: <output name="output"> 30: <soap:body use="literal" namespace="http://services.icas.ipb.pt/wsdl/library"/> 31: </output> 32: </operation> 33: </binding> 34: <service name="libraryService">

35: <port name="libraryPort" binding="tns:libraryBinding"> 36: <soap:address

location="http://localhost:${HttpDefaultPort}/libraryService/libraryPort"/> 37: </port>

38: </service> 39: </definitions>

Código 4.1 – Descrição de um Web Service em WSDL.

4.2.4 Universal Description, Discovery and Integration

O UDDI consiste numa base de dados de informação sobre Web Services, capaz de divulgar e descobrir os Web Services, tendo ainda a vantagem de ser independente da plataforma de desenvolvimento. O UDDI não é apenas um repositório de Web Services, é o registador de

Web Services com três funções básicas (Lopes and Ramalho, 2005):

divulgação – permite publicar informações sobre os Web Services e sobre os seus fornecedores;

descrições WSDL e/ou dados do seu fornecedor;

mapeamento (binding) – oferece informação técnica que permite a uma aplicação cliente invocar um Web Services após a sua localização.

O UDDI define o conteúdo da informação e o tipo de acesso fornecido pelos serviços e utiliza XML Schema para descrever formalmente as suas estruturas de dados e define um Web

Service baseado em SOAP para a localização das descrições WSDL.

4.2.5 Namespaces

A norma Namespaces XML (Bray, Hollander et al., 2006) funciona como uma etiqueta que permite identificar univocamente os diversos nomes dos elementos e atributos de um documento XML. Um namespace é definido através de um URI e é usado num documento XML como prefixo dos nomes dos elementos e atributos desse documento, garantindo assim, a unicidade necessária.

4.2.6 XML Schema

XML Schema é uma linguagem baseada em XML que permite a definição de regras de validação em documentos no formato XML, podendo assim descrever vocabulários partilhados permitindo às máquinas executarem as regras feitas por humanos. Fornece uma forma de definir a estrutura, conteúdo e semântica de documentos XML. O conceito de XML Schema prende-se com a definição da estrutura de um documento XML e surge como uma evolução do DTD. Ao contrário dos DTDs que possuem sintaxe própria, os dados XML Schema são especificados em XML proporcionando o seu processamento por processadores XML. Suporta ainda a utilização de namespaces, os tipos de dados primitivos das linguagens de programação mais populares e, como é extensível, permite ainda criar novos tipos de dados.

4.2.7 Business Process Execution Language for Web Services

Com o aparecimento dos Web Services e a rápida adesão para aplicações de negócios logo surgiu a necessidade de integrar aplicações dentro e fora das fronteiras das organizações, sendo necessárias novas linguagens para descreverem os comportamentos de dependência

entre as interacções dos serviços.

Várias empresas lançaram as suas próprias linguagens, por exemplo a IBM propôs a Web

Services Flow Language – WSFL (Leymann, 2001), a Microsoft propôs a sua versão

designada de Web Services for Business Process Design – XLANG (Thatte, 2001). Destas duas linguagens acabou por surgir a WSBPEL (Andrews, Curbera et al., 2003) que foi proposta em Abril de 2003 à Organization for the Advancement of Structured Information

Standards (OASIS) para linguagem normalizada e foi criado o Web Services Process Execution Language Technical Committee (WSBPEL TC). Em Maio de 2007, o WSBPEL

TC (OASIS, 2007) publicou a WSBPEL 2.0, em substituição da WSBPEL 1.1, como uma linguagem normalizada para a implementação de Web Services que usa um paradigma de orientação ao processo. Após a aceitação da WSBPEL pela OASIS rapidamente se concretizou a sua forte aceitação por parte da indústria, sendo actualmente uma das linguagens mais utilizadas na criação de processos utilizando Web Services.

A WSBPEL é um conjunto de camadas que funcionam em cima de várias especificações XML como XML Schema, WSDL e XPath. Fornece uma linguagem para a especificação formal de processos utilizando Web Services, possibilitando a composição, orquestração e coordenação de Web Services em arquitecturas SOA. O resultado da composição de Web

Services é chamado de processo ou processo Web, os participantes são os parceiros, e a uma

troca de mensagem ou resultado intermédio é chamada actividade. Para isso a WSBPEL define um modelo e uma gramática que descreve o comportamento de um processo de negócio baseado nas interacções entre processos e os parceiros. Entenda-se que um processo é composto por actividades que podem ser combinadas através de operadores estruturados (invoking, waiting, sequence, while, etc) e links de controlo (ex: sincronização de actividade concorrentes) para a criação do seu fluxo de trabalho. A WSBPEL fornece ainda tratamento de eventos, ocorrência de erros, entre outros (Andrews, Curbera et al., 2003).

In document TILSYNSRAPPORT - VEDTAK (sider 7-16)