Documento de Arquitetura do SeCS-Web

Avaliação do Sistema SeCS-Web

Introdução

O Documento de Arquitetura de Software provê uma visão ampla sobre a sistema usando de abstrações necessárias para o entendimento comum. Ele visa comunicar decisões importantes do ponto de vista arquitetural.

Esto documento foi produzido em um processo de engenharia reversa não automatizada, utilizando o conhecimento adquirido pelos colaboradores envolvidos na construção do sistema para mapear a arquitetura do SeCS-Web.

Escopo e Propósito

Com o objetivo de atender uma demanda interna e suprir a necessidade da rede na América Latina e Caribe na construção de um catalogo coletivo de periódicos em ciências da saúde e na substituição do antigo sistema SeCS DOS a BIREME iniciou o desenvolvimento de um sistema em plataforma web.

O sistema SeCS-Web usa como referencia o padrão de arquitetura MVC mas não se utiliza de nenhuma framework de desenvolvimento para tal.

Glossário

  • MVC - Model, View, Controler
  • HTTP - Hypertext Transfer Protocol
  • CGI - Common Gateway Interface

Visão Geral do Sistema

View

A camada de View (visão) contempla os templates e o código javascript usados na construção das paginas para a apresentação ao usuário. Os templates foram feitos usando a biblioteca Smarty e ficam na pasta htdocs/secs-web/public/templates/interface/ na instalação padrão. Os códigos JS usam a biblioteca YUI em sua versão 2.5.1. Essa biblioteca é usada para a construção de interface mais rica e na chama assíncrona para carregar conteúdos.

Controller

A camada do Controller (Controle) é composta por um arquivo responsável por apresentar ao usuário a interface correta conforme a entidade de domínio especificada na requisição HTTP. Nele são implementados os componentes:

  • View: Implementação responsável por definir o template a ser usado.
  • Domain: Implementação responsável por instanciar a entidade de domínio requisitada.

O arquivo principal de implementação do Controller é o index.php da aplicação, que fica em htdocs/secs-web/index.php. Existem outros arquivos no sistema com o papel de controle, são eles displayFormat.php, getHolding.php, reportService.php, yuiservice.php. Estes arquivos são usados em requisições assíncronas disparadas pelo código javascript da camada de View. Todos eles se encontram em htdocs/secs-web/.

Domain

A camada Domain (Domínio) contem a lógica da aplicação e as regras de negócio. Suas entidades principais são:

  • Title: Entidade que representa os títulos das revistas cadastradas no sistema;
  • Title Plus: Entidade que representa informações administrativas dos títulos comprados pela instituição;
  • Fascic: Entidade que define cara fascículo presente na coleção da instituição de cada título.
  • Mask: Representa a periodicidade com que são publicados novos fascículos de um título.
  • ISISBroker: Entidade responsável pela abstração da API de persistência.
  • Holding Module: Este componente faz parte do sistema em formato de um modulo independente. Ele contem scripts de processamento em lote para windows e linux que são chamados em tempo de execução para gerar uma base de dados com o resumo da coleção.

Estas entidades estão representadas em forma de classes encontradas no diretório htdocs/secs-web/common/class/.

ISISWS

Esta camada tem a finalidade de organizar as requisições HTTP que serão feitas para a camada de persistência. Estas requisições são feitas a um arquivo executável, chamado wxis.exe ou uma variação disso, que roda em CGI no servidor.

Ainda nesta camada do software, existe o componente NUSOAP que aparentemente era usado em versões antigas do sistema, mas não houveram testes para identificar a dependência do mesmo.

Persistence

A camada de persistência consiste basicamente em arquivos binários onde são armazenados os dados, arquivos auxiliares de indexação dos dados armazenados e o executável WXIS que opera as bases de dados. O acesso a estes dados, feita pela aplicação, acontece pela chamada CGI do arquivo WXIS e pela chamada de sistema do componente Holding Module.

Attachments