Neste capítulo veremos a arquitetura básica de uma aplicação de mercado eletrônico, apresentando seus principais componentes.
Este capítulo tem por objetivo apresentar como modelar serviços de comércio eletrônico através de uma metodologia especialista denominada CAFÉ, orientada
33 eletrônico através de uma metodologia especialista denominada CAFÉ, orientada
O modelo CAFE tem por objetivo prover uma forma de especificação incremental de serviços de comércio eletrônico. Esse modelo e orientado aos bens e serviços de serviços de comércio eletrônico. Esse modelo e orientado aos bens e serviços comercializados, definindo todo o ciclo de vida desses bens e serviços. Essa abordagem se justifica pelos produtos serem entidades criticas no processo de comercialização, sendo tarefa fundamental dos servidores de comércio eletrônico garantir a correta execução das transações envolvendo estes bens e serviços. O modelo CAFE se estrutura em quatro níveis:
Conceitual: O nível conceitual define quais são as entidades que caracterizam
um serviço de comércio eletrônico. Essas entidades são a base para os níveis
55 um serviço de comércio eletrônico. Essas entidades são a base para os níveis
inferiores do modelo.
Aplicação: No nível de aplicação são instanciados os valores possíveis para as
várias entidades, a luz do negócio a ser implementado, e é descrito o funcionamento do negócio sob a perspectiva do produto que está sendo comercializado.
Funcional: O nível funcional especifica a estratégia de implementação dos
serviços, considerando o ambiente de execução (por exemplo, uma arquitetura cliente-servidor) e os recursos que ele prove.
Execução: O nível de execução determina como a aplicação vai ser
implementada com base na tecnologia disponível, indicando requisitos a serem atendidos por essa tecnologia e avaliando soluções existentes.
Esta estrutura hierárquica visa contemplar as várias fases da concepção do servidor de comércio eletrônico. O nível conceitual apenas provê a base para a servidor de comércio eletrônico. O nível conceitual apenas provê a base para a construção dos demais. No nível de aplicação o foco é o ciclo de vida dos produtos comercializados e as interações que os envolvem. O nível funcional detalha essas interações, cuja estratégia de implantação é definida no nível de execução. Essa divisão não é rígida, podendo ser simplificada ou expandida de acordo com a complexidade do servidor sendo implementado. Uma lista de elementos que podem compor a especificação de um servidor de comércio eletrônico é apresentada na Tabela no slide seguinte.
Nível Conceitual:
Da mesma forma que modelos de comércio tradicionais, o objeto central do comércio eletrônico são os produtos (bens ou serviços) comercializados.
Para cada produto comercializado, há um ou mais itens, que são instâncias do produto. Cada item é caracterizado por um grafo que descreve seu ciclo de vida, ou seja, os estados pelos quais um item pode passar. Exemplos de estados são
disponível, alocado ou vendido. O domínio de um item são os estados nos quais o item pode estar.
As entidades ativas que participam da aplicação de comércio eletrônico são chamadas agentes. Exemplos de agentes são clientes, vendedores e lojas. Os agentes executam ações que modificam o estado de um item, ou seja, ações são transições no grafo de ciclo de vida do item. Alocar um item ou comprá-lo são exemplos de ações.
Serviços são definidos como seqiiencias de ações que atuam sobre produtos,
enquanto ações tratam de itens específicos e executam tarefas simples (como
11 11 enquanto ações tratam de itens específicos e executam tarefas simples (como
por exemplo, alocar um item), serviços tratam do produto como um todo, e de transações completas. Por exemplo, um serviço pode ser comprar um exemplar de um livro. Esse serviço pode ser decomposto nas ações: pagar o livro; despachar o livro; atualizar o estoque.
13 13
No nível de aplicação é que o modelo de negócios que se deseja implementar começa a ser detalhado. Assim, com base no modelo de negócios, extraimos as
15 15 começa a ser detalhado. Assim, com base no modelo de negócios, extraimos as
seguintes informações::
1. Os tipos de produtos comercializados pelo servidor.
2.Os atributos que caracterizam os produtos comercializados. 3.Os estados possíveis que cada item pode assumir.
4.As ações que podem ser executadas e seus efeitos sobre os itens. 5.Os agentes que executam ações.
Em suma, todas as entidades e relações do nível conceitual são instanciadas no nível de aplicação. É importante ressaltar que para cada tipo de produto diferente comercializado pelo servidor, há uma instância do nível de aplicação.
Uma definição importante, que é feita no nível de aplacação, é a natureza dos atributos dos itens comercializados. Atributos podem ser caracterizados pela atributos dos itens comercializados. Atributos podem ser caracterizados pela durabilidade, ou seja, o intervalo de tempo durante o qual uma dada instância do atributo não é alterada. A durabilidade de um atributo e função da sua dinamicidade e quanto maior for a freqiiência de atualização de um atributo, menor a sua durabilidade.
Assim, com base no critério durabilidade, podemos dividir os atributos em dois grupos:
•Estáticos: são atributos cujos valores não mudam como conseqüência de ações. •Dinâmicos: são atributos cujos valores podem ser mudados por ações, de acordo com a função de transição. Note que o dinamismo dos atributos de um mesmo produto pode ser variado, podendo ser definidos subgrupos de atributos dependendo da implementação.
Considerando a natureza dos atributos e, em conseqiiencia, dos estados que os itens podem assumir, podemos distinguir três tipos de ações:
17 17 itens podem assumir, podemos distinguir três tipos de ações:
Ações inócuas: Não afetam o estado de um item.
Ações temporárias: Mudam o estado do item em caráter temporário, isto é, o item pode assumir novamente o seu estado original, ou seja, anterior a aplicação da ação, como conseqüência de urna ou mais ações posteriores.
Ações perenes: Mudam o estado do item em caráter permanente, sendo irreversíveis.
O ciclo de vida de um item pode ser visualizado através do grafo de transições de estado, onde os vértices são estados e as arestas são ações que provocam
19 19 de estado, onde os vértices são estados e as arestas são ações que provocam
as transições de estado. Ações temporárias podem ser facilmente identificadas como aquelas que formam ciclos nos grafos de transições.
Finalmente, o estado de um servidor de comércio eletrônico é representado através dos produtos e seus estados, onde o estado de um produto é a quantidade de itens em cada estado possível do domínio dos itens daquele produto.
O nível funcional do modelo CAFE descreve os serviços a serem oferecidos e os componentes do servidor. A especificação funcional é dividida em três partes: (1) componentes do servidor. A especificação funcional é dividida em três partes: (1) descrição dos serviços, (2) requisitos funcionais e (3) estratégia de
A especificação detalhada de cada um dos serviços a serem oferecidos é o primeiro componente do nível funcional do modelo CAFE. A especificação dos serviços se inicia com a descrição do
21 21 do nível funcional do modelo CAFE. A especificação dos serviços se inicia com a descrição do
modelo de caminhamento, que define as seqiiencias de serviços que podem ser executadas pelos clientes.
Descrição dos serviços
A especificação de um serviço consiste nas seguintes informações:
Denominação: Como o serviço será identificado.
Descrição: Breve descrição da finalidade e contexto do serviço, a qual não deve exceder um
parágrafo.
Parâmetros: Quais são as informações passadas como parâmetro para
a execução do serviço. ;
Ações: Qual é a seqiiencias de ações, definidas no nível de aplicação, que são executadas por
ocasião de um serviço.
Atributos: Indicação dos atributos que são alterados por um serviço, incluindo a origem dos
novos valores que são assinalados.
Classificação: Os serviços são classificados de acordo com as ações que os compõem. Em
particular, a mais restritiva das ações indica a categoria do serviço, onde serviços perenes são mais restritivos do que os temporários, e estes mais do que os inócuos. Por exemplo, um serviço que executa ações perenes e inócuas e perene, enquanto um serviço que executa ações inócuas e temporárias e temporário.
Requisitos de dados: Apresentar os requisitos em termos de volatilidade e forma de
Requisitos Funcionais:
23 23 Uma vez descritos os serviços, é necessário mapeá-los em termos dos requisitos
de processamento que serão necessários para a sua execução, indicando os tipos de processamento a serem providos pelo componentes do servidor de comércio eletrônico.
Os requisitos funcionais caracterizam as demandas a serem atendidas pelos componentes de acordo com o suporte que eles provêm para os vários tipos de processamento, tais como suporte a processamento de transações, persistência de dados e processamento de cadeias de caracteres. O mapeamento propriamente dito é a descrição dos serviços em termos dos componentes, justificada com base em critérios funcionais e suporte de armazenamento.
É importante ressaltar os vários compromissos que devem ser considerados quando da seleção de componentes. Por exemplo, SGBDs provêm persistência quando da seleção de componentes. Por exemplo, SGBDs provêm persistência e atomicidade de forma segura; entretanto, a um alto custo devido a complexidade da computação que tern que ser executada, ou seja, a medida que o suporte à persistência de dados, as propriedades transacionais e ao controle de acesso aumenta, também é maior a complexidade da computação a ser realizada e, portanto, a latência para satisfazer as requisições de clientes. Assim, a maior motivação para a utilização de mecanismos menos tolerantes a falhas é a redução de custos e latência pela adoção de recursos mais relaxados quando os requisites de dados permitem.
Apos a definição dos serviços e das características dos componentes que vão executá-los, devemos determinar em quais componentes cada atributo de
25 25 executá-los, devemos determinar em quais componentes cada atributo de
produto será armazenado e manipulado. A localização dos atributos é função de características dos atributos e dos componentes. Mais uma vez, quando um atributo puder ser armazenado em mais de um componente, deve ser selecionado o componente que ofereça o melhor
A granulação de armazenamento é função dos acessos feitos pelos vários serviços. Distinguimos dois tipos de acessos: horizontais e verticais.
serviços. Distinguimos dois tipos de acessos: horizontais e verticais.
Acessos horizontais requisitam vários atributos de um dado item, enquanto acessos verticais selecionam um ou mais atributos de vários itens. Assim, podemos segmentar os dados vertical ou horizontalmente de acordo com os acessos realizados pelos serviços. Por exemplo, quando se faz uma busca em uma loja virtual, são selecionados atributos de vários itens, enquanto a verificação de um item para adição à cesta de compras segmenta a base de dados de forma horizontal.
27 27
O nível de execução especifica em detalhes a implementação do servidor de comércio eletrônico. Essa especificação é composta de cinco partes, descritas a comércio eletrônico. Essa especificação é composta de cinco partes, descritas a seguir. Devemos ressaltar que essa estrutura visa principalmente ilustrar o detalhamento de informações inerentes ao nível de execução, uma vez que as informações especificadas neste nível é dependente do ambiente de execução. A arquitetura do servidor define a natureza dos componentes de software a ser utilizados e apresenta as justificativas para a sua utilização, em termos de requisitos funcionais. Por exemplo, se um dos requisitos é armazenamento persistente, então é normalmente necessária a utilização de um servidor de banco de dados. Já suporte transacional pode ser provido tanto por um servidor de aplicação quanto pelo próprio servidor de banco de dados.
O ambiente de execução descreve a interligação entre os componentes e a interface com os clientes. A definição do ambiente de execução deve ser
29 29 interface com os clientes. A definição do ambiente de execução deve ser
coerente com a discrição dos serviços e funcionalidades (que compõem o nível funcional). Essa descrição deve ser feita tanto em termos de paradigmas de implementação quanto em termos de primitivas de sistema. Exemplos de paradigmas são cliente-servidor, chamadas remotas de procedimentos e trocas de mensagens. Em termos de primitivas de sistemas, devemos enumerar recursos tais como suporte TCP/IP e habilidade para realizar fork e rsh.
Uma vez definidas as formas de comunicação e cooperação entre os componentes, é necessário especificar o modelo de execução a ser adotado componentes, é necessário especificar o modelo de execução a ser adotado para a execução de cada serviço. Esse modelo de execução define quais são as informações trocadas entre os componentes e qual a seqüência a ser obedecida nessa troca. Assim, para cada serviço deve-se indicar (no caso de protocolos padronizados) ou descrever os protocolos de comunicação
31 31
Os servidores de comércio eletrônico podem empregar protocolos particulares, entretanto, para utilização na WWW, os vários serviços devem ser acessados de
33 33 entretanto, para utilização na WWW, os vários serviços devem ser acessados de
forma não ambígua e determinística. Para tal é necessário definir um padrão de endereçamento que indique não só o serviço sendo requisitado como também os parâmetros que regem a execução do serviço. Os endereços são normalmente URLs, compostas de três partes: identificação do servidor, especificação do serviço e os parâmetros dos serviços.
A especificação do serviço segue a mesma convenção dos recursos estáticos da WWW, ou seja, recursos organizados hierarquicamente. Os parâmetros podem WWW, ou seja, recursos organizados hierarquicamente. Os parâmetros podem ser justapostos ao fim da URL no caso de um comando GET ou listados explicitamente pelo comando POST.
Uma vez definidos os serviços e a interação entre componentes, e necessário definir as ferramentas que vão ser necessárias a implementação do servidor, de
35 35 definir as ferramentas que vão ser necessárias a implementação do servidor, de
forma a suportar os varies serviços e a sua implementação nos vários componentes. Além do seu uso na implementação dos componentes, deve também ser considerado o custo das ferramentas empregadas. Exemplos de ferramentas são servidores WWW, SGBDs e geradores de interface.
Uma vantagem adicional da definição de ferramentas é que essas ferramentas, quando utilizadas como componentes da arquitetura do servidor de comércio eletrônico, podem ter sido previamente modeladas utilizando recursos de verificação formal, tornando mais rápido e realista o processo de especificação e verificação formal.