• Nenhum resultado encontrado

CAPÍTULO 4 MODELO CONCEITUAL

4.2 CONSIDERAÇÕES INICIAIS

Antes de detalhar o modelo conceitual da abordagem proposta, é importante ressaltar alguns passos metodológicos que levaram à concepção deste modelo.

O objetivo inicial deste trabalho era o de avaliar a efetiva interoperabilidade entre as diferentes plataformas de serviços Web disponíveis no mercado, que fazem uso de diferentes linguagens e metodologias para a criação e disponibilização de serviços Web. Isso é feito através do monitoramento e análise do comportamento dos serviços Web e dos consumidores destes serviços em cada uma das plataformas, que são descritas no capítulo 5. Após esta análise, foi possível concluir que os grandes fabricantes de plataformas de serviços Web estão engajados em prover uma maior interoperabilidade entre as diferentes plataformas existentes no mercado, através da adoção do Basic Profile da WS-I.

Porém, a forma inicial de avaliação dos serviços e de sua invocação foi feita de maneira estática, onde a localização do serviço é conhecida a priori, e os stubs e proxies necessários para a efetiva invocação do serviço são criados manualmente pelo consumidor/aplicação cliente de serviços. Portanto, torna-se necessária a criação de um

modelo que oculte a complexidade tecnológica do cliente, i.e. invoque serviços Web de forma dinâmica e interoperável, sem a necessidade de interfaceamentos manuais. Isto é essencial principalmente no âmbito de redes colaborativas, que por definição são altamente dinâmicas e voláteis. Esse capítulo irá detalhar cada uma das entidades envolvidas, incluindo uma descrição dos módulos que compõem a proposta.

A Figura 22 apresenta a forma de invocação stubless e independente de tecnologia/ protocolos que é proposta pelo modelo da abordagem, e para fins de comparação, ilustra abaixo a forma tradicional de invocação de serviços Web:

Figura 22: Comparação entre o modelo proposto e a forma comumente utilizada

4.3 Visão geral

Esta seção apresenta a arquitetura genérica e suas entidades, onde o modelo proposto será aplicado. Nas seções seguintes, serão apresentados detalhes de cada uma das entidades apresentados, bem como os componentes que fazem parte do modelo proposto.

A arquitetura é baseada no conceito de orientação a serviços, onde seu propósito é o de manter todas as entidades envolvidas, i.e., consumidores, provedores e registros, desacopladas e independentes umas das outras. É importante ressaltar que dentro dessa arquitetura, uma entidade pode ser tanto um provedor, quanto um consumidor de serviços, dependendo da perspectiva que é assumida. Do ponto de vista do cliente, o modelo da abordagem proposta pode ser vista como um middleware de suporte a invocação de serviços, onde consumidores/aplicações o utilizam para executar invocações de maneira flexível e dinâmica. A Figura 23 apresenta esse cenário geral.

Nas seções a seguir, cada uma dessas entidades macro serão descritas, e expandidas, apresentando cada um de seus componentes e suas funções dentro da abordagem proposta.

Figura 23: Visão geral do Modelo Conceitual

A abordagem proposta é apresentada na Figura 23 acima como uma camada intermediária, onde os atores de uma organização virtual podem fazer uso dos módulos ali dispostos, para publicar, localizar e invocar serviços de maneira interoperável, independente da tecnologia e protocolos envolvidos. Dos módulos que foram implementados, apenas o publicador de serviços é usado pela entidade Provedor de serviços. Todos os outros módulos, como a localização de serviços e a invocação stubless de serviços (que inclui o processamento da interface, extração de dados, seleção do tipo de serviço, criação dos procedimentos de invocação) são utilizados pela entidade Consumidor de serviços.

4.4 Entidades principais

4.4.1 Repositório de serviços

O Repositório é responsável pelo armazenamento das informações sobre negócios, e os serviços que são oferecidos por esses negócios, inclusive detalhes da forma como os clientes podem utilizar esses serviços. Pode ser interno a uma organização, ou acessível apenas por determinadas organizações pré-estabelecidas, ou público, onde qualquer organização pode utilizá-lo sem restrições.

Nesse Repositório, as organizações publicam suas operações e serviços, tornando- os disponíveis para que outras organizações possam localizar e executar essas operações, de acordo com suas necessidades e critérios de escolha. A segurança de acesso também é gerenciada por essa entidade, que define funções e níveis de acesso, como por exemplo, usuários com permissão apenas de consulta, inclusão, exclusão, etc.

O Repositório é responsável também pelo gerenciamento, autenticação e autorização de acesso. Gerencia as funções e os usuários, determinando se um usuário tem acesso ao Repositório, e quais são suas funções e permissões, i.e., se sua função é apenas publicador ou apenas localizador.

4.4.2 Provedor de serviços

O provedor de serviços pode ser uma organização ou empresa que deseja tornar disponível publicamente alguma funcionalidade ou processo de negócios (serviço) de forma que outras organizações possam executar essas operações. Essa entidade utiliza um repositório para disponibilizar e tornar público seus serviços, para que outras organizações o localizem.

Os serviços são desenvolvidos por uma organização, possuindo sua lógica e seqüência interna referente à forma na qual a organização executa seus processos de negócios. O Provedor torna disponível publicamente no Repositório a interface de seu serviço, que contém apenas dados relevantes à forma como outras organizações podem utilizar seu serviço, ocultando assim detalhes internos de seus processos e a forma como foram implementados.

4.4.3 Consumidor de serviços

O Consumidor de serviços consiste em uma organização ou empresa, que, ao contrário do provedor, deseja utilizar os serviços que estão disponíveis no Repositório. Para tal, o consumidor faz a consulta por serviços e interfaces no Repositório, que, ao ser localizado, retorna a interface deste serviço, i.e., instruções detalhadas de como utilizar esse serviço.

Após o recebimento da interface do serviço, cabe ao consumidor processar essa interface e criar sua lógica para acesso às funcionalidades oferecidas pelo provedor deste serviço, de maneira interoperável e dinâmica. A interoperabilidade neste caso implica que o consumidor de serviços deve executar as operações necessárias, independente da forma como e onde o serviço foi desenvolvido e disponibilizado pelo Provedor de serviços. É importante que o Consumidor de serviços se mantenha o mais desacoplado possível do Provedor, tornando-o independente em relação a alterações ou indisponibilizações que possam existir por parte do Provedor de serviços.