Desenvolvimento de um Sistema de Informação Médica com Web Services e MDA



Documentos relacionados
Desenvolvimento de um Sistema de Informação Médica com Web Services e MDA

Web Services. (Introdução)

Kassius Vargas Prestes

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

SISTEMA GERENCIADOR DE BANCO DE DADOS

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Transformação de modelos em processos de desenvolvimento de software

Prática em Laboratório N.01 Criando um Serviço Web via Console

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Microsoft.NET. Desenvolvimento Baseado em Componentes

Desenvolvimento Web com Framework Demoiselle versão 1.0

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

3 Serviços na Web (Web services)

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Serviços Web: Introdução

Estruturação da Arquitetura Estadual de Sistemas de Informação por Meio da Orientação a Serviços

Arquiteturas, Padrões e Serviços para Geoprocessamento. Lúbia Vinhas 13/05/2008

Model-Driven Engineering Geração de modelos de software e especificações usando a plataforma IBM

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Programação Cliente em Sistemas Web

Desenvolvimento de software orientado a características e dirigido por modelos

UNIVERSIDADE. Sistemas Distribuídos

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

UFG - Instituto de Informática

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Obtendo Qualidade com SOA

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Web Services. Autor: Rômulo Rosa Furtado

Integração de sistemas utilizando Web Services do tipo REST

SISTEMA COMPUTACIONAL PARA ANÁLISES DE DADOS EM AGRICULTURA DE PRECISÃO

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Sistemas Distribuídos Arquiteturas Middlewares

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

Linguagens de Transformação de Modelos

Introdução a Web Services

Integração Orientada a Serviços

Franklin Ramalho Universidade Federal de Campina Grande - UFCG

Java para Desenvolvimento Web

Integre pela Internet com os Web Services OpenEdge

Fase 1: Engenharia de Produto

Introdução a Engenharia Dirigida por Modelos

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Secure Client. Manual do Usuário. IPNv2. Secure Client IPNv2

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Uma Proposta de Sistema de Informação para o Gerenciamento de Serviços de Telessaúde

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

HEALTHNET : um Sistema Integrado de Telediagnóstico e Segunda Opinião Médica

SOA na Prática Ricardo Limonta

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

Uso do Action₀NET com o PI System da OsiSoft

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES

Web Services utilizando JAX-WS

2 Conceitos relativos a Web services e sua composição

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

GUIA RÁPIDO DE UTILIZAÇÃO DO APLICATIVO RDB2LOD

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Target. Manual de Integração SOAP. versão 1.0 /

Linha de Produto para BPM

Service Oriented Architecture SOA

SOA Introdução. SOA Visão Departamental das Organizações

Sistemas Colaborativos & Workflow / DAS 5316

Serviços Web: Arquitetura

Padrões Arquiteturais e de Integração - Parte 1

Prof. Roberto Desenvolvimento Web Avançado

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

Java II. Sérgio Luiz Ruivace Cerqueira

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

Orientada a serviços: JAX-WS SOAP API

Documento de Requisitos de Sistemas. SGC Sistema Gerenciador de Clínicas

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

J550 Segurança e Controle de erros

WebApps em Java com uso de Frameworks

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

OWL-S Composer. MATE15 - Tópicos Especiais em Banco de Dados III. 17 de Julho de Marco Antonio Almeida 1 e Daniela Barreiro Claro 2

Projeto de Arquitetura

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Noções de. Microsoft SQL Server. Microsoft SQL Server

MDA - resumo (OMG - Model Driven Architecture) Prof. Rossano Pablo Pinto Março/2012 v0.1 Março/2013 v0.2. Rossano Pablo Pinto - março/2013 1

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

Defesa de mestrado. Um serviço de autorização Java EE baseado em certificados de atributos X.509. Stefan Neusatz Guilhen

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Introdução ao Modelos de Duas Camadas Cliente Servidor

1

Secure Client. Manual do Usuário. Versão 6.2. Procedimento para Instalação e configuração do Secure Client 6.1. Secure Client versão 6.

Gerenciador de Log Documento Visão. Versão 2.0

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados

Transcrição:

Desenvolvimento de um Sistema de Informação Médica com Web Services e MDA Área de Concentração: Ciência da Computação Aluna: Simone Azevedo Bandeira de Melo Orientador: Prof. Ph. D. Zair Abdelouahab

Agenda Introdução Área Médica, MDA e Web Services Trabalhos Relacionados Sistema de Informação Médica Proposto Transformações de Modelos Prototipagem do Sistema Proposto Considerações Finais 2

Introdução Problema Abordado Solução Proposta 3

Problema Abordado Os sistemas de informação médica possuem diversas informações, que geralmente não são compartilhadas entre as instituições médicas Os sistemas não são interoperáveis A grande maioria dos sistemas é baseada em diferentes plataformas de hardware e software 4

Solução Proposta Propomos um sistema de informação médica baseado em Web Services e MDA para fornecer interoperabilidade entre aplicações de instituições médicas Web Services é um padrão para o desenvolvimento de sistemas que utilizam entidades distribuídas em plataformas diferentes na Internet 5

Solução Proposta A modelagem do sistema de informação médica proposto seguiu uma abordagem MDA Um modelo independente de plataforma foi criado para o sistema proposto Este modelo é aplicado a diferentes plataformas 6

Objetivos Desenvolvimento de um sistema de informação médica utilizando plataformas de Web Services na abordagem MDA Desenvolver um modelo independente de plataforma (PIM) para o sistema médico proposto Desenvolver metamodelos para as plataformas de Web Services em JWSDP e WSOracle 7

Objetivos Usar transformações de modelos Aplicar especificações de correspondências Criar e executar regras de transformação Usar a transformação do PIM do sistema de informação médica para os Modelos específicos da plataforma (PSMs) para gerar parte do código. 8

Sistemas e Tecnologias de Informação na Área de Saúde Dados - dados de um paciente Informação - diagnóstico de um paciente Conhecimento - Informações aplicadas na resolução de um problema ou na tomada de uma decisão Dados informação conhecimento 9

MDA Model Driven Architecture Usa modelos no desenvolvimento de softwares Prover soluções para o problema de desenvolvimento, manutenção, produtividade, favorecer a interoperabilidade e a portabilidade 10

MDA conformesto MOF conformesto conformesto transformation language ATL conformesto UML source metamodel transformation rules target metamodel WSOracle from to conformesto exec conformesto PIM source model source transformation engine target target model PSM 11

Web Services Resposta usando WSDL Descrição do Serviço usando WSDL Registro UDDI Consulta ao Diretório de Serviços PUBLICAÇÃO DESCOBERTA Mensagens SOAP LIGAÇÃO Provedor de Serviços Requisição e Resposta XML baseado no WSDL Consumidor de Serviços 12

Trabalhos Relacionados a Área Médica Características MIDster HealthNet 1. Versão HealthNet 2. Versão SET-WS Sistema Proposto 1- Sistema de compartilhamento de imagens médicas? SIM NÃO NÃO NÃO SIM 2- Sistema de apoio a 2ª opinião em saúde e ao telediagnóstico? NÃO SIM SIM SIM SIM 3 - Sistema especialista? NÃO NÃO NÃO SIM NÃO 4 - Baseado em Web Services SIM NÃO SIM SIM SIM 5 - Bases de dados centralizada? NÃO SIM NÃO NÃO NÃO 6 - Bases de dados distribuída? SIM NÃO SIM SIM SIM 7 - Bases de conhecimento? NÃO NÃO NÃO SIM NÃO 8 - Desenvolvido com MDA NÃO NÃO NÃO NÃO SIM 13

Trabalhos Relacionados a MDA Um Framework de Transformação de Modelos para a Construção Automatizada de Modelos UML para Modelos de Desempenho. AMBROGIO, Andréa. WOSP 05, July 2005 14

Trabalhos Relacionados a MDA Aplicando a abordagem MDA para Aplicações de B2B: Mapeamentos BÉZIVIN, Jean; HAMMOUDI, Slimane; LOPES, Denivaldo; JOUAULT, Frédéric. (WMDD 2004) ECOOP 2004 15

Sistema de Informação Médica Proposto Cenários do Sistema de Informação Médica 1 Web Services 2 Web Services DataBase Doctor Internet Medical Center DataBase 3 Web Services Doctor Medical Center 4 DataBase 16

Sistema de Informação Médica Proposto Arquitetura do Sistema de Informação Médica Servidor com a Base de Informações Médica Aplicação de Acesso a Base de Conhecimento Servidor Web Servidor de Aplicações Interface da Aplicação Interface da Aplicação Usuário especializado Usuário especializado 17

Médico entrevista paciente, para levantar histórico desse paciente (composto) Associa doença ao paciente (composto) Associa exame ao paciente (composto) Associa sintoma ao paciente (composto) Associa cirurgia ao paciente (composto) Associa medicamento ao paciente Clinica do paciente (examina fisicamente o paciente ) Não Novos sintomas foram observados Sim Seleciona os dados coletados de (Doenças,Sintomas, Medicamentos, Cirurgia e Exames) f) compartilhamento de informações remotas Associar dados obtidos a base de doenças x sintomas (local e remota) Gera uma lista de doenças no centro médico local Contactar centro médico remotamente via Web Service Solicita lista de doenças x sintomas Dar Diagnóstico Diferencial Dados são suficientes para diagnóstico presuntivo Sim Dar Diagnóstico Presuntivo Não Retorna a lista de doenças compatívéis Gera a lista de doenças do centro remoto Dados são suficientes para diagnóstico definitivo Sim Não Solicita Exames Complementares Analisa Exames Complementares Dar Diagnóstico Definitivo

PIM em UML Doenças DiagnosticoDefinitivo Médico * +CadastrarDoenças() : void +RemoverDoenças() : void * +VerificarDadosSuficientesDD() : bool +ProverDiagnósticoDefinitivo() * 1 +ProcurarMédico() : void +ListarMédicos() : void Exames 1 DiagnosticoPresuntivo * +CadastrarExames() : void +RemoverExames() : void * +VerificarDadosSuficientesDP() : bool +CriarListaProvaveisDoenças() : Doenças ListaGeral Cirurgias 1 DiagnosticoDiferencial +ObterListaRemota() : void +ObterListaLocal() : void +ListaDoençasCompatíveis() : Doenças +ObterListaGeral() : ListaGeral * * +CadastrarCirurgias() : void +RemoverCirurgias() : void Sintomas +CadastrarSintomas() : void +RemoverSintomas() : void * * «datatype» <<Service>> Lista Remota * +EncontrarBasesInformaçãoCompartilhadas() +CriarListaRemota() : Doenças ListaResumida * Medicamentos +CadastrarMedicamentos() : void +RemoverMedicamentos() : void Paciente * ListaLocal +CriarListaLocal() : Doenças +MostrarListaRezumida() : void +CadastrarPaciente() : void +RemoverPaciente() : void +AssociarDoenças() : void +AssociarSintomas() : void 19

Metamodelo UML Extraído da especificação da UML v. 1.4 20

Metamodelo Java Estendido da Tese de Doutorado LOPES, Denivaldo, Estudo e aplicações de uma abordagem MDA para as plataformas de Services Web., Universidade de Nantes, Nantes, 2005. 21

Metamodelo WSOracle 22

Template WSOracle 23

Metamodelo JWSDP Estendido da Tese de Doutorado LOPES, Denivaldo, Estudo e aplicações de uma abordagem MDA para as plataformas de Services Web., Universidade de Nantes, Nantes, 2005. 24

Template JWSDP 25

Transformações de modelos PIM { Modelo Fonte (UML) PSM { transformação modelo-à-modelo Modelo Alvo (WSDL) Modelo Alvo (WSOracle) Modelo Alvo (JWSDP) transformação modelo-à-código Código { Código-Fonte (XML) Código-Fonte (Java), arquivos de desenvolvimento e configuração Código-Fonte (Java), arquivos de desenvolvimento e configuração 26

Transformação de UML para WSOracle Arquivos de Configuração são arquivos em formato XML que dão suporte a execução do Web Service Arquivos de Serviços são arquivos.java que implementam a interface e o serviço propriamente dito Etapas para gerar regras: Etapa 1 Gerar regras de transformação para os arquivos de configuração Etapa2 Gerar regras de transformação para os arquivos de serviços 27

Transformação de UML para WSOracle As transformações foram geradas obedecendo os seguintes passos: Mapeamento Manual EscritadaRegra Geração do PSM Geração do Código-Fonte 28

Transformação de UML para WSOracle Mapeamentos para os arquivos de Configuração Mapeamentos Nome De UML Para WSOracle C2Web Class WebApp C2OracleWebServices Class OracleWebServices C2WebServices Class WebServices C2Application Class Application C2OrionApplication Class OrionApplication C2DataSources Class DataSources C2JavaWSDLMapping Class JavaWSDLMapping 29

Regra de Transformação C2Web para os arquivos de Configuração 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -- == File : UML2WSORACLE_Deploy.atl Module UML2WSORACLE; Create OUT : WSORACLE from IN : UML; Rule C2Web{ from c: UML!Class (c.stereotype ->exists(e e.name='service')) to webapp : WSORACLE!WebApp( xmlns <- 'http://java.sun.com/xml/ns/j2ee' xsi <- 'http://www.w3.org/2001/xmlschema-instance', version <- '2.4', servlet <- serv, Servletmapping <- smpp ), serv: WSORACLE!Servlet( description <- 'Web Service ' + c.namespace.name + 'SoapHttpPort', displayname <- 'Web Service ' + c.namespace.name + 'SoapHttpPort', servletname <- c.name + 'SoapHttpPort', Servletclass <- c.namespace.name + '.' + c.name, Loadonstartup <- '1' ), smpp : WSORACLE!ServletMapping( name <- c.namespace.name + 'SoapHttpPort', urlpattern <-c.namespace.name + 'SoapHttpPort' ) } 30

Transformação de UML para WSOracle Execução da regra C2Web em ATL para os arquivos de configuração PSM 31

Transformação de UML para WSOracle Execução da regra WSORACLE_Deploy2SC_query em ATL para os arquivos de configuração 32

Transformação de UML para WSOracle Regra WSORACLE_Deploy2SC_query 1 2 3 4 query _WSORACLE_Deploy2SC_query = WSORACLE!WebApp.allInstances()-> Select(e e.oclistypeof(wsoracle!webapp))-> collect(x x.tostring().writeto('c:/sourcecode/oracle/j2ee/' + 'MedicalSystem' + '/' +'web.xml'))->size() + 5 6... Uses _WSORACLE_2SC; 1 2 3 4 5 6 7 8 helper context WSORACLE!WebApp def: tostring() : String = '<?xml version="1.0" encoding="utf-8"?>\n' + '\t<web-app xmlns="'+ self.xmlns+'"\n'+ '\t\txsi.schemalocation="'+ self.xsi +'"\n' + '\t\tversion="'+ self.xsi +'">\n' + self.servlet.tostring() + self.servletmapping.tostring() + '</web-app>'; 33

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <?xml version = '1.0' encoding = 'windows-1252'?> <XMI xmi.version = '1.2' timestamp = 'Tue Feb 07 15:57:59 GMT-03:00 2006'> <XMI.header> <XMI.documentation> <XMI.exporter>Netbeans XMI Writer</XMI.exporter> <XMI.exporterVersion>1.0</XMI.exporterVersion> </XMI.documentation> </XMI.header> <XMI.content> <WSORACLE.web.WebApp xmi.id = 'a1' xmlns ='http://java.sun.com/xml/ns/j2ee' xsi = 'http://www.w3.org/2001/xmlschema-instance' version = '2.4'> <WSORACLE.web.WebApp.servletmapping> <WSORACLE.web.ServletMapping xmi.id = 'a2' name = 'SistemaInformacoesMedicoSoapHttpPort' urlpattern = 'SistemaInformacoesMedicoSoapHttpPort'/> </WSORACLE.web.WebApp.servletmapping> <WSORACLE.web.WebApp.servlet> <WSORACLE.web.Servlet xmi.id = 'a3' description = 'Web Service SistemaInformacoesMedicoSoapHttpPort' displayname = 'Web Service SistemaInformacoesMedicoSoapHttpPort' servletname = 'ListaRemotaSoapHttpPort' servletclass = 'SistemaInformacoesMedico.ListaRemota' loadonstartup = '1'/> </WSORACLE.web.WebApp.servlet> </WSORACLE.web.WebApp> </XMI.content> </XMI> 34

Transformação de UML para WSOracle Mapeamentos para os arquivos de Serviço Mapeamentos Nome P2JP C2JC I2I M2M Pinout2JP A2F Ae2F DT2JPT De UML Package Class Interface Method + Operation Parameter Attribute AssociationEnd DataType Para JAVA1.5 JPackage JClass JInterface Jmethod JParameter Jfield Jfield JprimitiveType 35

Regra de Transformação P2JP e C2JClass para os arquivos de Serviços 1 2 3 4 5 6 7 Rule P2JP{ From pck : UML!Package to jp : JAVAM!JPackage( Name <-pck.name, jelements <- pck.ownedelement ) } 1 2 3 4 5 6 7 8 9 10 11 rule C2JClass{ from c : UML!Class (c.stereotype -> exists(e e.name='service')) to conf : JAVAM!JClass( name <- c.name, *** annotation <- annot ), annot:javam!annotation( value <- '@WebService(name = ' + c.name + ',servicename = ' + c.name + ',targetnamespace=http://' + c.name + '.ws' ) } 36

Transformação de UML para WSOracle Execução da regra P2JP e C2JClass em ATL para os arquivos de serviços PSM 37

Transformação de UML para WSOracle Execução da regra Java2SourceCode_query em ATL para os arquivos de serviços 38

Transformação de UML para WSOracle Regra Java2SourceCode_query 1 2 3 4 5 query Java2SourceCode_query = JAVA!JClassifier.allInstances()-> select(e e.oclistypeof(java!jclass) or e.oclistypeof(javam!jinterface))-> collect(x x.tostring().writeto('c:/sourcecode/oracle/j2ee/' + x.jpackage.name.replaceall('.', '/') + '/' + x.name + '.java')); 6 7... uses Java2SourceCode; 39

Transformação de UML para WSOracle 1 package sistemainformacoesmedico; 2 @WebService (name = "ListaRemota", servicename="listaremota", targetnamespace = "http://sistemainformacoesmedico.ws") 3 public Class ListaRemota { 4 public ListaRemota() { 5 } 6 @WebResult (name="result", targetnamespace="http://sistemainformacoesmedico.ws") 7 @WebMethod (operationname = "EncontrarBasesInformacoesCompartilhadas", action="") 8 public int EncontrarBasesInformacoesCompartilhadas () { 9 } 10 @WebResult (name="result", targetnamespace="http://sistemainformacoesmedico.ws") 11 @WebMethod (operationname = "CriarListaRemota", action="") 12 public int CriarListaRemota () { 13 } 14 } 40

Transformação de UML para JWSDP Arquivos de Configuração Arquivos de Serviços Etapas para gerar regras: Etapa 1 Gerar regras de transformação para os arquivos de configuração Etapa2 Gerar regras de transformação para os arquivos de serviços 41

Transformação de UML para JWSDP As transformações foram geradas obedecendo os seguintes passos: Mapeamento Manual EscritadaRegra Geração do PSM Geração do Código-Fonte 42

Transformação de UML para JWSDP Mapeamentos para os arquivos de Configuração Mapeamentos Nome De UML Para JWSDP C2ConfigInterface Class ConfigInterface C2ConfigWsdl Class ConfigWsdl C2WebServices Class WebServices C2Web Class Web C2JavaWSDLMapping Class JavaWSDLMapping 43

Regra de Transformação C2ConfigInterface para os arquivos de Configuração 1 -- == File : UML2JWSDP_Deploy.atl 2 Module UML2_JWSDP_Deploy; 3 Create OUT : JWSDP from IN : UML; 4 Rule C2ConfigInterface{ 5 from c : UML!Class (c.stereotype -> exists(e e.name='service')) 6 to conf : JWSDP!_Configuration( 7 xmlns <- 'http://java.sun.com/xml/ns/jax-rpc/ri/config', 8 service <- serv 9 ), 10 serv: JWSDP!Service( 11 name <- c.name, 12 targetnamespace <- 'http://' + c.namespace.name + '.org/wsdl', 13 typenamespace <- 'http://' + c.namespace.name + '.org/wsdl', 14 packagename <- c.namespace.name, 15 interface <- interf 16 ), 17 interf : JWSDP!Interface( 18 name <- c.feature.name 19 ) 24 } 44

Transformação de UML para JWSDP Execução da regra C2ConfigInterface em ATL para os arquivos de configuração PSM 45

Transformação de UML para JWSDP Execução da regra _JWSDP_Deploy2SC_query em ATL para os arquivos de configuração 46

Transformação de UML para JWSDP Regra _JWSDP_Deploy2SC_query 1 query _JWSDP_Deploy2SC_query = 2 JWSDP!_Configuration.allInstances()-> 3 select(e e.oclistypeof(jwsdp!_configuration))-> 4 collect(x x.tostring().writeto('c:/sourcecode/jwsdp/j2ee/' +' 'SistemaInformacaoMedica' + '/' + 'configinterface.xml'))->size() + 5... 6 Uses _JWSDP_2SC; 1 helper context JWSDP!_Configuration def: tostring() : String = 2 '<?xml version="1.0" encoding="utf-8"?>\n' + 3 '<configuration xmlns="'+self.xmlns+'">\n'+ 4 self.service.tostring()+ 47

Resultado 1 <?xml version = '1.0' encoding = 'windows-1252'?> 2 <XMI xmi.version = '1.2' timestamp = 'Tue Aug 09 17:53:59 GMT-03:00 2005'> 3 <XMI.header> 4 <XMI.documentation> configinterface 5 <XMI.exporter>Netbeans XMI Writer</XMI.exporter> 6 <XMI.exporterVersion>1.0</XMI.exporterVersion> 7 </XMI.documentation> Configuration +xmlns : String +configuration +service 1 * Service +name : String +targetnamespace : String +typenamespace : String +packagename : String 8 </XMI.header> 1 * +service +interface 9 <XMI.content> 1 0 1 1 1 2 1 3 1 4 <JWSDP.configinterface.Service xmi.id = 'a1' name = 'Lista Remota' targetnamespace = 'http://modelo 2.org/wsdl' typenamespace = 'http://modelo 2.org/wsdl'' packagename = 'SistemadeInformacaoMedica'/> < JWSDP.configinterface._Configuration xmi.id = 'a2' xmlns = 'http://java.sun.com/xml/ns/jax-rpc/ri/config'/> Interface +name : String 1 5 1 6 <JWSDP.configinterface.Interface xmi.id = 'a3'/> </XMI.content> </XMI> 48

Transformação de UML para JWSDP Mapeamentos para os arquivos de Serviço Mapeamentos Nome P2JP C2JC I2I M2M Pinout2JP A2F Ae2F DT2JPT De UML Package Class Interface Method + Operation Parameter Attribute AssociationEnd DataType Para JAVA1.5 JPackage JClass JInterface Jmethod JParameter Jfield Jfield JprimitiveType 49

Regra de Transformação P2JP e C2JClass para os arquivos de Serviços 1 2 3 4 5 6 7 Rule P2JP{ From pck : UML!Package to jp : JAVAM!JPackage( Name <-pck.name, jelements <- pck.ownedelement ) } 1 2 3 4 5 6 7 8 9 10 11 rule C2JClass{ from c : UML!Class (c.stereotype -> exists(e e.name='service')) to conf : JAVAM!JClass( name <- c.name, *** annotation <- annot ), annot:javam!annotation( value <- '@WebService(name = ' + c.name + ',servicename = ' + c.name + ',targetnamespace=http://' + c.name + '.ws' ) } 50

Transformação de UML para JWSDP Execução da regra P2JP e C2JClass em ATL para os arquivos de serviços PSM 51

Transformação de UML para JWSDP Execução da regra Java2SourceCode_query em ATL para os arquivos de serviços 52

Transformação de UML para JWSDP Regra Java2SourceCode_query 1 2 3 4 5 query Java2SourceCode_query = JAVA!JClassifier.allInstances()-> select(e e.oclistypeof(java!jclass) or e.oclistypeof(javam!jinterface))-> collect(x x.tostring().writeto('c:/sourcecode/oracle/j2ee/' + x.jpackage.name.replaceall('.', '/') + '/' + x.name + '.java')); 6 7... uses Java2SourceCode; 53

Transformação de UML para JWSDP 1 package sistemainformacoesmedico; 2 public Class ListaRemota { 3 public ListaRemota() { 4 } 5 public int EncontrarBasesInformacoesCompartilhadas () { 6 } 7 public int CriarListaRemota () { 8 } 9 } 54

Transformações de modelos <<Service>> ListavRemota +CriarListaRemota():Doenças PIM PSM Arquivo de Configuração <WSORACLE.web.WebApp xmi.id = 'a5' xmlns = 'http://java.sun.com/xml/ns/j2ee' xsi = 'http://www.w3.org/2001/xmlschema-instance' version = '2.4'> <WSORACLE.web.WebApp.servletmapping> <WSORACLE.web.ServletMapping xmi.id = 'a6' name = 'MedicalDiagnoseSoapHttpPort' urlpattern = 'MedicalDiagnoseSoapHttpPort'/> </WSORACLE.web.WebApp.servletmapping> <WSORACLE.web.WebApp.servlet> <WSORACLE.web.Servlet xmi.id = 'a7' description = 'Web Service MedicalDiagnoseSoapHttpPort' displayname = 'Web Service MedicalDiagnoseSoapHttpPort' servletname = 'RemoteListSoapHttpPort' servletclass = 'MedicalDiagnose.RemoteList' loadonstartup = '1'/> </WSORACLE.web.WebApp.servlet> </WSORACLE.web.WebApp> <WSORACLE.web.WebApp xmi.id = 'a1' xmlns ='http://java.sun.com/xml/ns/j2ee' xsi = 'http://www.w3.org/2001/xmlschema-instance' version = '2.4'> <WSORACLE.web.WebApp.servletmapping> <WSORACLE.web.ServletMapping xmi.id = 'a2' name = 'SistemaInformacoesMedicoSoapHttpPort' urlpattern = 'SistemaInformacoesMedicoSoapHttpPort'/> </WSORACLE.web.WebApp.servletmapping> 55

Protótipo do Sistema Com o propósito de fazer testes sobre o modelo proposto e com base nos esqueletos de código obtidos através da abordagem MDA O protótipo foi desenvolvido para o ambiente Web O protótipo foi desenvolvido com o intuito de acessar e manipular bases com informações médicas através de Web Services 56

Protótipo do Sistema A interface do serviço foi criada Nome dos Métodos do Serviço CadastrarCirurgias CadastrarDoencas CadastrarExames CadastrarMedicamentos CadastrarSintomas CadastrarPaciente RemoverExames AssociarDoencas AssociarSintomas RemoverMedicamentos EncontrarBasesInformacaoCompartilhadas CriarListaRemota 57

Protótipo do Sistema A interface gráfica com o usuário 58

Protótipo do Sistema A interface gráfica com o usuário 59

Conclusão O desenvolvimento do sistema de informação médica colocou em evidência o processo de transformação de PIM para o PSM, utilizado em MDA O desenvolvimento do protótipo visava validar a utilização de Web Services como uma ferramenta para troca de informação médica 60

Contribuições Desenvolvimento da arquitetura do sistema de informação médica proposto Desenvolvimento do modelo independente de plataforma para o sistema de informação médica Desenvolvimento do metamodelo WSOracle Extensão do metamodelo JWSDP da versão 1.3 para a versão 1.5 61

Contribuições Extensão do metamodelo Java da versão 1.3 para a versão 1.5 Criação das especificações de correspondências e das regras de transformação entre o PIM (UML) e os PSM, WSOracle e JWSDP 62

Trabalhos Futuros Usar o Modelo PIM para outras plataformas como a da IBM e dotnet Acrescentar padrões de segurança no uso dos Web Services Pesquisar metodologias e algoritmos para geração semi-automática de definições de transformação a partir de especificações de correspondências Adicionar o controle de versões entre o desenvolvimento dos modelos e a criação das regras 63

Publicação Simone A. B. Melo, Denivaldo Lopes, Zair Abdelouahab: Developing Medical Information System with MDA and Web Services. Software Engineering Research and Practice 2006: 562-568 64

Agradecimentos Obrigada! Dúvidas? 65