Sistemas Biomédicos de Objetos Distribuídos baseados em CORBA Adriano de Jesus Holanda Departamento de Física e Matemática (DFM) Faculdade de Filosofia, Ciências e Letras de Ribeirão Preto (FFCLRP) Universidade de São Paulo (USP)
Sistemas biomédicos Desafios Distribuída (evolução dos servidores/PCs) Complexa Informações Procedimentos e protocolos Evolução Vantagem – você não precisa depender de mainframes para A execução de tarefas relativamente grandes. Desvantagem – amplia a gama de soluções heterogêneas dificultando A integração dos sistemas.
Sistemas biomédicos Problemas de integração ????? Sistemas heterogêneos Modelo de dados, linguagem de programação, formato de arquivos, tipos de dados, semântica inconsistente ?????
Interoperabilidade Arquitetura CORBA
CORBA Common Object Request Broker Architecture - 1991 Padrão OMG (Object Management Group) Hoje: + 800 companhias Núcleo da OMA (Object Management Architecture) Modelo de objetos Modelo de referência (componentes e interação) Especificação de arquitetura aberta e neutra Núcleo OMA – extraído do livro do Vinoski pg 11. object model specifies semantics for externally visible characteristics of objects standards in implementation independent way Object Management Architecture or OMA is high-level view of distributed environment divides it into system & application oriented components
CORBA Objetivo Como alcançar Arquitetura distribuída de objetos independente de plataforma Como alcançar Linguagem de definição de interface – IDL (neutra) Mapeamento de linguagens de programação Facilidades de invocação de operações Adaptadores de objetos Protocolo de comunicação (IIOP) Aspectos da arquitetura CORBA-> extraído do livro do Vinoski pg 15
CORBA - ambiente JAVA JAVA ORB IDL Linux Servidor implementação esqueleto Linux ORB IDL Servidor
CORBA - ambiente C++ ORB IDL ORB JAVA JAVA IIOP C++ Windows Cliente implementação C++ stub Windows ORB Cliente IDL Linux ORB IIOP JAVA JAVA Servidor
CORBA - ambiente ORB ORB C++ JAVA JAVA IIOP Windows Linux C++ IOR:000000000000003049444C3A6F6D672E6F72672F5465726D696E6F6C6F677953657276696365732F4C65784578706C6F7265723A312E3 Windows Linux ORB ORB C++ C++ JAVA JAVA IIOP
CORBA - ambiente ORB ORB C++ JAVA JAVA IIOP Windows Linux C++ IOR:000000000000003049444C3A6F6D672E6F72672F5465726D696E6F6C6F677953657276696365732F4C65784578706C6F7265723A312E3 Windows Linux ORB ORB C++ C++ JAVA JAVA IIOP
CORBA - diversidade Ambientes Hardware Mapeamento Aeroespacial, computação gráfica, simulações, aplicações militares, robótica, astronomia (telescópio Hubble), interface gráfica (Gnome), ... Hardware PCs, mainframes, PDAs, sistemas embarcados e supercomputadores Mapeamento Oficial: C, C++, Java, CORBAScript, COBOL, Smalltalk, Ada, PL/1, Lisp, Python e XML Independente: Perl, Objective-C, Oberon, Eiffel, Modula 3, Scheme e Tcl.
Especificações CORBA/IIOP (ORB) Serviços (horizontais) Naming, trading, event, transaction, concurrency, security, ... Domínio (vertical) Healthcare, Life Sciences Research, Finance, Telecommunications, Electronic Commerce,... Recursos (Facilities) Internationalization and Time, Mobile Agent Modelo de Componentes (CCM)
OMA CORBA/ORB Recursos CORBA (horizontal) Serviços CORBA identificação transações eventos concorrência segurança Interfaces aplicações Interfaces domínios (vertical) Recursos CORBA (horizontal) Fonte: http://www.omg.org/oma/
Especificação de Sistemas Biomédicos Ambiente clínico
Healthcare Domain Task Force CORBAMed - 1996
Person IDentification Service - PIDS Nome: Registro: Data de nascimento: Sexo: Definição: Serviço de identificação única de uma pessoa Design: Permite id único e correlação de vários ids (federação); Permite implementação de mecanismos de segurança (confidencialidade); Garante interoperabilidade de perfis padronizados (HL7) e permite personalização.
Clinical Observation Access Service - COAS Registro: Exame: Data: Resultado: Definição: Serviço de armazenamento e recuperação de observações clínicas Design: Interface e estrutura de dados Armazena informações qualitativas e quantitativas Sinais vitais, exames de laboratório, impressões de um exame clínico, imagens,...
Lexicon Query Service - LQS Definição: Serviço de acesso a sistemas de terminologias Design: Possui métodos somente-leitura Genérico e amplo Conjunto de frases e códigos (CID10) Sistema hierárquico de classificação CID10 N28.0 Isquemia e infarto renal N28.1 Cisto do rim, adquirido N28.8 Outros transtornos especificados do rim e do ureter MeSH Streptococcus [B03.510.400.800.872] Streptococcus agalactiae [B03.510.400.800.872.100] Streptococcus bovis [B03.510.400.800.872.150] Streptococcus equi [B03.510.400.800.872.225] ...
Clinical Image Access Service - CIAS Definição: Serviço de armazenamento e recuperação de imagens clínicas Design: Estende COAS (especialização) Manipula imagens DICOM e não DICOM Não manipula vídeos
Resource Access Decision - RAD Definição: Determina o privilégio de acesso do usuário às informações do paciente.
PIDS COAS CIAS CORBA SGBD PIDS COAS CIAS Interface Gráfica|Web implementação COAS CIAS implementação CORBA Nome: Registro: Data de nascimento: Sexo: Registro: Exame: Data: Resultado: Interface Gráfica|Web PIDS COAS CIAS
Especificação de Sistemas Biomédicos Bioinformática
Life Sciences Research DTF 1997 Bibliographic Query Service Biomolecular Sequence Analysis (BSA) BioObjects (nucleotídeo, aminoácido) Analysis (BLAST, Smith-Watterman, etc) Gene Expression Genomic Maps Laboratory Equipment Control Interface Specification (LECIS) Macromolecular Structure
PIDS COAS CIAS CORBA SGBD SGBD PIDS COAS CIAS Interface Gráfica|Web Gene Expression implementação SGBD PIDS implementação COAS implementação CIAS implementação CORBA Nome: Registro: Data de nascimento: Sexo: Registro: Exame: Data: Resultado: Interface Gráfica|Web PIDS COAS CIAS Gene Expression
Sinergia entre IM e BI Maojo et al. (2001) Comitê europeu (2001-2007) Informática Médica (IM) – padrões, sistemas de terminologias (UMLS) Bioinformática (BI) – algoritmos, sistemas de recuperação de dados Objetivo – melhorar o entendimento das causas moleculares de algumas doenças Biomedical Informatics - Informática Biomédica
DISCUSSÃO
Benefícios - CORBA Reuso – arquitetura de objetos Aumenta reuso de funcionalidades horizontais Evita implementação redundante de funções Interoperabilidade e integração de sistemas heterogêneos Integridade conceitual (Brooks, 1995) Sintática e semântica Modelo (OMA) Redução da redundância Extensibilidade – acoplamento de novos componentes/funcionalidades
+ Benefícios Longevidade da arquitetura Compartilhamento de recursos escassos e dispendiosos Distribuição da carga computacional Execução de aplicações nos ambientes mais adequados
Desvantagens Complexidade na implementação Aumento do número de camadas Passo adicional de compilação (IDL) Problemas com interoperabilidade semântica de federações (exceção: PIDS) Diferença entre os modelos OO (programas) e relacional (persistência)
Alternativas sockets RPC (Remote Procedure Call) DCE (Distributed Computing Environment) Microsoft .Net Java Enterprise Edition (J2EE-EJB) Web Services Estas tecnologias não são excludentes a CORBA, pois elas podem ser usadas Para implementar uma especificação CORBA ou estender a infraestrutura CORBA existente.
Referências Maojo et al. (2001). J. Biomedical Informatics 34, 423-427. F. P. Brooks Jr. (1995). The Mythical Man-Month. Addison-Wesley. Object Management Group. http:// www.omg.org Healthcare DTF. htttp://healthcare.omg.org Life Sciences Research DTF. http://www.omg.org/homepages/lsr
Agradecimentos Grupo ImagCom - DFM/FFCLRP-USP Laboratório de Bioinformática – Fundação Hemocentro de Ribeirão Preto
OBRIGADO!
Contato Adriano J. Holanda – aholanda@dfm.ffclrp.usp.br - http://imagcom.dfm.ffclrp.usp.br