• No results found

La negociación de la identidad de los participantes

5.2 Las explicaciones sociolingüísticas

5.2.3 El bilingüismo y la identidad

5.2.3.6 La negociación de la identidad de los participantes

Em (Haas and Brown, 2004) os autores definem uma Arquitectura Orientada aos Serviços (Service Oriented Architecture – SOA) como sendo um conjunto de componentes que podem ser invocados, cujas descrições de interfaces podem ser publicadas e descobertas. Dizem ainda que o serviço é um recurso abstracto, que representa a capacidade de executar tarefas que representam funcionalidades coerentes do ponto de vista das entidades fornecedoras e requisitantes. Para ser usado, o serviço tem de ser fornecido por um agente fornecedor. Existem ainda outras definições que contribuem para o esclarecimento sobre as arquitectura SOA e que são enunciadas em seguida.

Para (Mahmoud, 2005), SOA é um estilo de arquitectura para a construção de aplicações de software que utiliza os serviços que estão disponíveis numa rede como os serviços na Web, e que promove a independência entre componente de software para potenciar a sua reutilização. Um serviço é uma implementação de uma funcionalidade de negócio e esses serviços podem ser utilizados por clientes em diferentes aplicações ou processos de negócios. A arquitectura SOA permite ainda a reutilização de recursos existentes e novos serviços podem ser criados a partir de uma infra-estrutura de sistemas de tecnologias de informação já existentes.

Outra definição menos genérica é a de (Hashimi, 2003). Em SOA as aplicações são construídas a partir de componentes básicos chamados serviços, processos, etc, definidos em

termos da sua funcionalidade, executando habitualmente operações ao nível do negócio.

A SOA é uma forma de arquitectura de sistemas distribuídos que é habitualmente caracterizada pelas seguintes propriedades (Booth, Haas et al., 2004):

− vista lógica – os serviços são componentes de software com interfaces bem definidas que são independentes da implementação. A SOA faz claramente a separação da funcionalidade do serviço (o que faz) da sua implementação (como

faz). A SOA foca-se claramente no que faz e não como faz, isto é os clientes

desses serviços não se preocupam como esses serviços vão executar os seus pedidos, mas apenas com o resultado que é obtido;

− orientado às mensagens – utiliza um modelo de comunicação orientado à mensagens. Isto é, o serviço é formalmente definido em termos de trocas de mensagens entre o fornecedor e o cliente e não nas propriedades dos próprios agentes;

− orientada à descrição – os serviços são projectados para serem descritivos externamente para que possam ser descobertos e invocados por mecanismos de descoberta;

− orientado às redes – os serviços oferecem características que favorecem a sua utilização em rede, no entanto não é um requisito obrigatório;

− independentes das plataformas – os serviços são independentes da tecnologia garantindo a autonomia da plataforma que os suporta;

− granularidade – é uma forma de medir o tamanho dos componentes ou a descrição dos componentes necessários que compõem um sistema, ou mais simples o grau de modularidade do serviço. Pode haver dois tipos de granularidade a granularidade: grossa (coarse-grained) e a granularidade fina (fine-grained). Um serviço de granularidade fina é mais modular e mais flexível porque existem mais unidades funcionais. Pelo contrário, um serviço de granularidade grossa tende a possuir um menor número de operações cada uma delas com maior capacidade funcional. Existem vários factores que influenciam a granularidade do serviço. Um exemplo de um serviço de granularidade fina é por exemplo, um serviço que dispõe de vários métodos que permitem a pesquisa por categorias, produtos e outros itens que oferece grande flexibilidade ao cliente; no entanto, pode provocar a sobrecarga

da rede e ter fraco desempenho. O mesmo serviço mas com características de granularidade grossa permite por exemplo, apenas o retorno do catálogo num conjunto de categorias, reduzindo desta forma a sobrecarga na rede e melhorando desempenho à custa de menos flexibilidade para o cliente;

− modularidade – os serviços executam tarefas bem específicas potenciando o desenvolvimento incremental;

− baseado em contratos – permite a definição de contratos, em que os serviços estabelecem acordos definidos por um ou mais documentos de descrição de serviços. Existem duas propriedades chave na definição de contratos: as propriedades funcionais e as não funcionais. As propriedades funcionais indicam funcionalidades específicas que o serviço oferece e necessita (ex. as operações do serviço, entradas e saídas das operações dos serviços). As propriedades não funcionais abordam o modo como os serviços são fornecidos (ex. Service Level

Agreement – SLA, QoS, custos, requisitos de segurança);

− composição – permite a construção de novos serviços mais complexos (serviços compostos) através da agregação de outros serviços.

O funcionamento da SOA define-se habitualmente por um paradigma procura-liga-executa (find-bind-execute) como é exemplificado na Figura 2.5. Neste paradigma existem três entidades: o cliente do serviço, o fornecedor do serviço e o mediador de serviços (service

broker). O mediador é utilizado pelo cliente para encontrar um serviço através de diversos

critérios. Se o mediador tiver esse serviço, disponibiliza-o ao cliente com um contrato e a sua localização. Esta informação disponibilizada ao cliente é sempre fornecida pelo servidor de serviços ao mediador quando regista o serviço.

Figura 2.5. Paradigma procura-liga-executa das arquitecturas SOA. Baseado em (Mahmoud 2005).

Embora alguns dos conceitos SOA fossem especificados antes do aparecimento dos Web

Services, a verdade é que estes são na actualidade praticamente a única tecnologia utilizada

para a construção de arquitecturas SOA. Isto verifica-se pelo facto dos Web Services se basearem em normas abertos e são construídos em cima de protocolos bem conhecidos e independentes da plataforma. Entre esses protocolos figuram o HTTP, eXtensible Markup

Language – XML (Bray, Paoli et al., 1998), Simple Object Access Protocol – SOAP (Gudgin,

Hadley et al., 2003), Universal Description, Discovery and Integration – UDDI (Oasis, 2005) e Web Services Description Language – WSDL (Christensen, Curbera et al., 2001).

É a combinação destes protocolos que preenche os principais requisitos da SOA. Isto é, os protocolos UDDI, WSDL e SOAP permitem que os serviços sejam descobertos e invocados dinamicamente, o XML possibilita que os serviços sejam independentes da plataforma, o WSDL oferece uma vista lógica, e o HTTP fornece a interoperabilidade e os serviços orientados à redes.