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 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 CORBA • Objetivo – 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) esqueleto implementação JAVA JAVA IDL ORB CORBA - ambiente Linux Servidor Windows Linux Cliente Servidor JAVA JAVA ORB IIOP ORB IDL C++ C++ stub implementação CORBA - ambiente CORBA - ambiente Windows Linux JAVA JAVA ORB IIOP ORB C++ C++ IOR:000000000000003049444C3 A6F6D672E6F72672F5465726D6 96E6F6C6F677953657276696365 732F4C65784578706C6F7265723 A312E3 CORBA - ambiente Windows Linux JAVA JAVA ORB IIOP ORB C++ C++ IOR:000000000000003049444C3 A6F6D672E6F72672F5465726D6 96E6F6C6F677953657276696365 732F4C65784578706C6F7265723 A312E3 CORBA - diversidade • Ambientes – 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 Interfaces aplicações Recursos CORBA (horizontal) Interfaces domínios (vertical) CORBA/ORB identificação transações eventos concorrência segurança Serviços CORBA 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 • Definição: Nome: Registro: Data de nascimento: Sexo: – 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 • Definição: Registro: Exame: Data: Resultado: – Serviço de armazenamento e recuperação de observações clínicas • Design: – Interface e estrutura de dados – Armazena informações qualitativas quantitativas e • 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) CID10 N28.0 Isquemia e infarto renal N28.1 Cisto do rim, adquirido N28.8 Outros transtornos especificados do rim e do ureter • Sistema hierárquico de classificação 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. SGBD implementação implementação PIDS Nome: Registro: Data de nascimento: Sexo: Registro: Exame: Data: Resultado: COAS CORBA PIDS COAS CIAS Interface Gráfica|Web implementação 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 Specification (LECIS) • Macromolecular Structure Control Interface SGBD implementação PIDS Nome: Registro: Data de nascimento: Sexo: Registro: Exame: Data: Resultado: implementação SGBD implementação COAS CIAS CORBA PIDS COAS CIAS Gene Expression Interface Gráfica|Web implementação 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 heterogêneos • Integridade conceitual (Brooks, 1995) sistemas – Sintática e semântica – Modelo (OMA) • Redução da redundância • Extensibilidade – acoplamento componentes/funcionalidades de novos + 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 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 – [email protected] - http://imagcom.dfm.ffclrp.usp.br