-
Notifications
You must be signed in to change notification settings - Fork 3
HealthDB API
A HealthDB API faz parte da Client layer. O HealthDB oferece seus serviços por meio de uma API (Application Programming Interface). Essa API é o único meio de conexão com o HealthDB. Ou seja, a interação entre Cliente (software) e HealthDB está definida na HealthDB API. Em geral, um cliente, em execução em dado processo, usa essa API para requisitar a realização de operações pelo HealthDB, executado em processo distinto, possivelmente em outro computador acessível por uma rede.
A HealthDB API, essencialmente, permite que um Cliente se identifique, estabeleça uma conexão com o HealthDB caso devidamente autorizado e, uma vez criada a conexão, possa submeter requisições em AQL e receber, como resposta, os dados requisitados.
Conforme o diagrama abaixo, um Cliente faz uso da interface HealthDB API, independente da implementação HealthDB Driver que, de fato, juntamente com o HealthDB API Server, implementa o protocolo de comunicação com o HealthDB.

A HealthDB API pode se beneficiar, para sua definição, de APIs como JDBC, por exemplo, assim como se inspirar nos recursos oferecidos pela EHR API.
O uso de JDBC pode é atrativo para desenvolvedores Java que já escrevem código para interagir com bancos relacionais. Em tempo, existem várias implementações de JDBC que interagem com ferramentas que não são bancos relacionais, por exemplo Datadotworld, Neo4j, Lucene e JDBC for Mongo, dentre outras.
O desafio aqui é oferecer um mapeamento "limpo" entre dados em conformidade com arquétipos (árvore) e tabelas. Um bom ponto de partida é o artigo SQL Abstraction for NoSQL Databases (Cdata), além do livro Bridging Relational and NoSQL Databases (Amazon).
Os componentes relevantes para a interação com o HealthDB são exibidos no diagrama abaixo, no qual vários clientes distintos, por meio da HealthDB API, tem acesso ao driver que, por sua vez, transfere a intenção do cliente para o HealthDB, recebida no outro extremo pelo HealthDB API Server.

- Considerar terminologia e recursos de integração possivelmente relevantes nesse contexto.
- Desempenho.
- Segurança.
- Múltiplas conexões simultaneamente.
- Cada cliente pode criar uma única conexão por vez com o HealthDB.
- Cada conexão pode ser reutilizada de forma concorrente pelo Cliente.
- Cliente pode fechar uma conexão e abrir uma outra.
- Definir de forma exaustiva e detalhada as mensagens trocadas entre cliente e HealthDB.
- Interação deve ser ilustrada por meio de vários exemplos.
- Implementações devem ser disponibilizadas em: Java; JavaScript; C; C# e Swift.
- Definição da HealthDB API
- Implementação da HealthDB API: hdbapi-client e hdbapi-server, respectivamente o componente empregado pelo cliente e pelo servidor.
