2. Banco de Dados Temporal e Espacial
4.4 Arquitetura do S-TVQE
A arquitetura do S-TVQE, em três camadas, é do tipo cliente-servidor (Figura 78), o acesso ao servidor S-TVQE é feito via o protocolo HTTP. As tecnologias utilizadas são baseadas na arquitetura J2EE: JSP. Utilizam-se também a linguagem XML para configuração de esquema do banco de dados e operadores implementados. JavaScript e SVG são utilizados no cliente para visualização e interação com mapas e componentes da interface em geral.
Figura 78: Arquitetura do S-TVQE.
Internamente o S-TVQE encontra-se organizado em quatro (04) camadas (Figura 79), a saber: Presentation Layer, Query Manager, Data Access e SGBD.
O cliente (usuário) interage diretamente com a camada de apresentação “Presentation Layer”. A camada de negócio “Query Manager”, é responsável por captar as definições do usuário e converter os respectivos comandos gerados visualmente em código interpretável pelo SGBD na camada de persistência “Data Access”, que por sua vez, acessa diretamente o(s) banco(s) de dados associado à aplicação. Os bancos de dados que podem ser acoplados ao S-TVQE, obrigatoriamente, devem implementar rotinas de manipulação espacial, nativamente.
No S-TVQE é permitido configurar diversos contextos, não somente o sistema da saúde que foi o estudo de caso adotado nesta dissertação. Para adaptar o S-TVQE a outros bancos de dados, é necessário apenas configurar um arquivo XML [XML, 05], o qual descreve o esquema do banco de dados. (Figura 80).
<stvqe>
<level id = "1">
<description>State</description> <geom>state.map</geom>
<key>gid</key>
<attribute field = "ibge_code" type = "string" table = "nrs" conventional = "true" spatial = "false" temporal = "false" grouped = "null" /> … <level id = "2"> <description>District</description> <geom>district.map</geom> <key>gid</key>
<attribute field = "ibge_code" type = "string" table = "district" conventional = "true" spatial = "false" temporal = "false" grouped = "null" /> <attribute field = "presented"
type = "int" table = "admission" conventional = "true" spatial = "false" temporal = "true" grouped = "sum" /> <attribute field = "clinic"
type = "int" table = "net_clinic" conventional = "true" spatial = "false" temporal = "true" grouped = "sum"/> … </level> … </stvqe>
No Quadro 10 está descritos os significados das TAG presentes no arquivo XML de configuração do esquema do banco de dados.
Quadro 10: Descrição do Arquivo XML.
TAG Descrição
<level> Representação hierárquica das regiões. <description> Descrição da região geográfica.
<geom> Representação Geométrica. <key> Chave Primária da Tabela <attribute> Características dos Atributos. <field> Nome do Campo
<type> Tipo de Dado Associado ao Campo. <table> Tabela Associada.
<conventional> Determina se o Operador Implementa Rotina Convencional. <spatial> Determina se o Operador Implementa Rotina Espacial. <temporal> Determina se o Operador Implementa Rotina Temporal. <grouped> Determina se o atributo é agrupável.
Para mudar ou alterar o contexto do S-TVQE, é necessário seguir apenas dois passos: 1. Estruturar as mudanças no Banco de Dados;
2. Editar o Arquivo XML, que contém a visão do esquema do Banco de Dados.
Por exemplo:
Informações que a Educação gerencia, são manipuladas informações sobre: estabelecimento, alunos e salas de aula. Todos contabilizando as esferas pública (Federal, Estadual e Municipal) e privada.
As tabelas país (country), região (area), estado (state), núcleo regional de saúde (nrs) e município (district) não tiveram alterações, todas permaneceram com o atributo “the_geom”, ou seja, manipulam informações espaciais.
As tabelas localização (location), estudante (student), escola (school) e sala (room) são as novidades estabelecidas no novo esquema do banco de dados.
Para incorporar essas mudanças, depois de ter havido a estruturação do banco de dados, edita- se o arquivo XML, tendo como resultado representado na Figura 81.
<stvqe> <level id = "1"> … <level id = "2"> <description>District</description> <geom>district.map</geom> <key>gid</key>
<attribute field = "ibge_code" type = "string" table = "district" conventional = "true" spatial = "false" temporal = "false" grouped = "null" />
<attribute field = "public_federal" type = "int" table = "student" conventional = "true" spatial = "false" temporal = "true" grouped = "sum" /> … </level> … </stvqe>
Figura 81: Trecho do arquivo XML, contém o esquema do BD da Educação.
Os dados contidos no SGBD acoplado ao S-TVQE, foram incorporados através de consultas realizadas utilizando a ferramenta TabNet, no site do DATASUS.
Quando o cliente (usuário) solicita um serviço, este pedido é codificado (protocolo HTTP) e enviado, via Internet, até o servidor Web. Ao receber o pedido, o servidor comunica-se com o servidor de Banco de Dados, através do protocolo JDBC [SUN, 05], executa a consulta correspondente e envia a resposta de volta para o navegador cliente, utilizando novamente o protocolo HTTP.
Com esse tipo de arquitetura é possível ter independência de plataforma no cliente, de acordo com a tecnologia JSP (Java Server Pages) [JSP, 99], adotada.
Semelhante aos atributos, também existe um outro arquivo XML, que contém a descrição dos operadores presentes na Interface (Figura 82), dessa forma, é possível determinar quais atributos estarão figurando na Interface, sendo apenas necessário editar este arquivo.
Os operadores estão organizados em grupos, contribuindo para melhorar a forma de visualização e organização da interface.
<stvqe>
<operators id = "Conventional">
<operator name = "Igual" group = "Relational" /> ...
</operators>
<operators id = "Spatial">
<operator name = "Bellow" group = "Directional" /> ...
<operator name = "Area" group = "Metric" /> ...
<operator name = "Adjacency" group = "Topologic" /> ...
</operators>
<operatos id = "Temporal">
<operator name = "Begin" group = "Instant" /> ...
<operator name = "Before" group = "Period" /> ...
<operator name = "FirstInterval" group = "Interval" /> ...
</ operators > </stvqe>
Figura 82: Trecho do arquivo XML, operadores presentes no S-TVQE.
No Quadro 11, está descritos os significados das TAG presentes no arquivo XML de configuração dos operadores presentes no S-TVQE.
Quadro 11: Descrição do Arquivo XML.
TAG Descrição
<id> Dimensão associada ao atributo. Pode ser: ou convencional, ou temporal ou espacial
<name> Nome do Operador <group> Grupo a qual pertente.