PID - Projeto de Interoperabilidade de Dados Pablo Vieira Florentino (Cefet-BA) Hesley da Silva Py (IBGE\COBAD\GEACE) Resumo O Projeto de Interoperabilidade de Dados (PID) traduz-se como um ajuste nos sistemas de informação do IBGE às novas tecnologias de interoperabilidade e disseminação de dados. O PID permitirá aos diversos sistemas de informação do IBGE trocar dados de forma transparente, utilizando formatos multiplataforma e auto-descritivos. Os dados serão disseminados através de tecnologias que permitam maior segurança e controle, oferecendo maior flexibilidade de interação. Com a definição desta nova política e o estabelecimento de padrões para troca de dados, será possível otimizar todo o processo de transferência de dados do e com o IBGE, atendendo primeiramente os diversos sistemas internos do IBGE, fornecendo uma área única para acesso a dados, eliminando a redundância e consequentemente divergências na apresentação dos dados. Em seguida, o projeto será estendido para atender à troca de dados com outras instituições de pesquisa em todo o mundo e com o governo, integrando o projeto e-Ping. 1. Introdução O Projeto de Interoperabilidade de Dados (PID) traduz-se como um ajuste nos sistemas de informação do IBGE às novas tecnologias de interoperabilidade e disseminação de dados. O PID permitirá aos diversos sistemas de informação do IBGE trocar dados de forma transparente, utilizando formatos multiplataforma e auto -descritivos. Os dados serão disseminados através de tecnologias que permitam maior segurança e controle, oferecendo maior flexibilidade de interação. Com a definição desta nova política e o estabelecimento de padrões para trocas de dados, será possível otimizar a transferência de dados que atenderá primeiramente aos diversos sistemas existentes no IBGE, fornecendo uma área única para acesso a dados, eliminando a redundância e consequentemente divergências na apresentação dos dados. Em seguida, o projeto será estendido para atender à troca de dados com outras instituições de pesquisa em todo o mundo e com o governo. Desta forma, pretende-se ajustar o IBGE às iniciativas de padronização do governo através do projeto e-Ping e aos padrões internacionais de troca de informações estatísticas, como o SDMX [3,4,5]. 2. Motivação Este projeto tem como motivação a pluralidade e heterogeneidade de ambientes computacionais existentes no IBGE, o suporte às novas alternativas de troca de dados via Internet/Intranet, a flexibilização de acesso às informações e a padronização de troca de dados entre sistemas internos e/ou externos. É importante ressaltar que o IBGE é uma organização dinâmica cujos dados precisam circular facilmente, corretos e atualizados, pelas suas diferentes áreas e setores, assim como ser facilmente disponibilizados para a sociedade. No entanto, é de fácil constatação a dificuldade de integração entre esses diferentes sistemas existentes na instituição. Não raro encontram-se casos (Figura 1) nos quais os dados, já armazenados em SGBDs avançados, como o DB2 [12] e Oracle [11], são exportados para um arquivo texto, sem qualquer semântica, com os campos separados por marcadores simples. Este arquivo texto deve então possuir um arquivo de “layout” proprietário que o descreva para que possa ser carregado em uma outra base de dados. Os arquivos gerados são geralmente grandes, ocupando um espaço em disco desnecessário. Neste processo de leitura e carga dos dados, é muito comum a ocorrência de erros na disposição dos dados dentro do arquivo, assim como nos separadores de campo. Estes erros geram dois tipos de retrabalho: os responsáveis pela geração do arquivo têm que re-escrever o programa que cria o arquivo, gerá- lo e disponibilizá- lo. Já os 2 responsáveis pelo sistema receptor dos dados têm de refazer os arquivos de configuração para carga de nova versão dos arquivos de dados. Este processo de refinamento até um arquivo de dados válido pode atrasar de forma cons iderável todo o processo de troca de informações, podendo trazer prejuízos para os projetos e para o próprio IBGE. Programa P Base de dados A Arquivo Texto loader Base de dados B Figura 1 – Fluxograma do processo de carga de dados com arquivos texto Outro ponto verificado que merece nossa atenção diz respeito à disseminação dos dados. Algumas vezes uma publicação é gerada a partir de dados localizados em um banco de dados local, que após publicados são carregados em sistemas - como por exemplo o SIDRA [13] - a partir dos quais novas publicações podem ser geradas. Nesse momento teríamos duas fontes distintas, e devido a questões de arredondamento, possivelmente diferentes para o mesmo dado. Existe ainda outro ponto relacionado à falta de visibilidade dos dados existentes. Devido a grande quantidade de áreas distintas no IBGE torna -se difícil uma divulgação que permita que todos saibam quais dados já existem, e estão disponíveis. Essa dificuldade acarreta muitas vezes retrabalho e redundância de dados. Uma última motivação para este projeto é a adequação do IBGE a padrões nacionais e internacionais de troca de dados. No âmbito nacional temos o e-Ping, proposto pelo Governo Federal, que tem como um de seus objetivos garantir uma maior interconectividade e integração de sistemas e dados na esfera governamental. Na área internacional, temos iniciativas de padronização de troca de informações lideradas pela OECD (Organization for Economic Cooperation and Development [4]) para criação de um padrão internacional para troca de dados e metadados estatísticos. 2.1. Objetivos Podemos citar como objetivos maiores do PID: § Padronizar e facilitar a troca de informações entre os diferentes sistemas do IBGE; § Oferecer aos usuários de informações do IBGE dados em formatos que possam ser lidos e manipulados em qualquer plataforma através de novas tecnologias de comunicação baseadas na Internet; § § Diminuir a ocorrência de erros quando na transferência de dados entre sistemas; Estabelecer uma fonte única de dados, eliminando redundâncias e inconsistências; 3 § Integrar o projeto e-Ping e facilitar a interoperabilidade entre os diversos sistemas que o compõem; § Adequação do IBGE a padrões internacionais, como o SMDX [5]. 2.2. Projetos envolvidos São considerados projetos relevantes para o PID todos aqueles pertencentes ao IBGE internos - que necessitem trocar dados entre si, fato bastante comum dentro da instituição, e todos aqueles que necessitem trocar dados com outras instituições - externos. 3. Descrição das Tecnologias 3.1. XML Com o avanço e popularização da Internet, consórcios internacionais de regulamentação deste meio de comunicação, como o W3C, definiram um formato padrão e público de dados. Este formato permite a especificação de bases de dados semi-estruturados, auto -descritivos e multiplataforma, ou seja, dados com alta portabilidade. Assim, os mesmos podem ser manipulados por diferentes plataformas como Windows, Linux, Unix, Macintosh, entre outras. Este formato é conhecido como XML (eXtensible Markup Language) [1,7] e serve de base para especificação de outras linguagens para dados semi-estruturados de aplicação específica. Junto com a XML foram criadas outras linguagens que facilitassem o manuseio dos dados contidos em XML. Entre estas linguagens, podemos citar: § XSLT – eXtensible Stylesheet Language Transformations – recomendação da W3C para transformação e apresentação de documentos XML [10] ; § Xquery – eXtensible Query Language – linguagem de consulta a arquivos XML com especificação da W3C [6]; § XPath – eXtensible Path Language – recomendação W3C para acessar e/ou referenciar partes de um documento XML [9]; § DTD – Document Type Definition – recomendação W3C para definir documentos XML; § XMLSchema – recomendação W3C para definir documentos XML [10]. 3.2. Serviços web Os serviços web (conhecidos também como Web Services) podem ser entendidos como aplicações voltadas para Internet que enviam e recebem informações mediante requisições. Serviços Web são predominantemente transações B2B (Business-to-Business) entre instituições e 4 organizações. Uma determinada organização pode ser consumidora de Serviços web e fornecedora de outros serviços web. Por exemplo, uma instituição financeira pode fazer uma consulta a um serviço web do Banco Central requisitando que sejam enviadas como resposta as taxas do dólar e do euro. Os dados transmitidos em um serviço web devem estar seguindo um padrão baseado em XML. Os serviços web funcionam sobre o protocolo HTTP, utilizando sobre esse o protocolo SOAP (Simple Object Access Protocol). Cada serviço web deve possuir as seguintes características: § Definição da estrutura e do tipo dos documentos a serem transmitidos; § Definição da URL onde ficará hospedado e funcionando o serviço web; § Protocolo a ser utilizado para troca de dados. Para descrever estas características foi definida a linguagem WSDL (Web Service Description Language), baseada em XML. Cada serviço web deve ter a sua descrição no formato WSDL. Este descrição é suficiente para que o mundo externo ao serviço tenha o conhecimento necessário para se comunicar com aquele único serviço web. Para facilitar o acesso a serviços web, já existe um serviço internacional, com catálogo de publicação de diversos serviços Web disponíveis, chamado UDDI (Universal Description, Discovery and Integration, podendo ser acessado no endereço http://uddi.org ). 4. PID Todo o trabalho realizado até o momento no PID tem caminhado no sentido de interoperabilizar e disseminar dados, buscando estabelecer um padrão de troca de dados (interoperabilidade) entre os diferentes sistemas existentes no IBGE, criar uma área única (disseminação) onde esses dados possam ser facilmente encontrados, conhecer e adotar o padrão existente para troca de dados com outros institutos de pesquisa ao redor do mundo e estabelecer um padrão para acesso aos dados existentes no IBGE pelos seus clientes (Governo e sociedade em geral). Dentre as possibilidades para compartilhamento de dados temos estudado o uso de dois métodos conhecidos como PULL e PUSH: § Métodos PUSH – O provedor de dados (área produtora) toma a iniciativa de enviar os dados para as partes interessadas. O envio dos dados no método PUSH pode ser feito de várias maneiras: e-mail, transferência de arquivos, e em alguns casos suportada por sistemas oferecidos pela parte coletora. É a forma tradicional de coleta de dados usada por organizações internacionais há muitos anos. 5 § Métodos PULL – O provedor dos dados (área produtora) torna os dados disponíveis via Internet. Neste caso os coletores de dados devem ter a possibilidade de buscar os dados por sua própria iniciativa. No estudo do método PULL temos dado especial atenção aos serviços web (webservices). Nesse caso, cada projeto institucional, seguindo o padrão definido pelo PID, disponibilizaria um serviço web, autodescritivo, através do qual todos os outros projetos pudessem acessar e recuperar informações. Dado um sistema X que disponibiliza informações para os sistemas Y e W, então X teria que fornecer um formato F.X (público ao IBGE) e um endereço de serviço web E.X para que Y e W (ou qualquer outro sistema dentro da instituição) pudessem fazer acesso aos seus dados. Cada sistema ficaria responsável por disponibilizar os dados, forçando todos os sistemas a obedecer a um padrão único. Eliminaria-se, assim, os diversos problemas de interoperabilidade tecnológica existentes entre os atua is sistemas. SISTEMA W ß Consulta W, Y... Z SISTEMA X à Resultado W, Y...Z em XML SISTEMA Y .. . SISTEMA Z E.X + F.X Figura 2. Proposta de arquitetura para o PID Com a utilização desta arquitetura, haveria mais independência e liberdade para consulta e aquisição dos dados, já que os sistemas estariam disponíveis a qualquer hora, sem depender diretamente do fator humano. Um outro ganho significativo seria a eliminação de inconsistências na apresentação das informações. Todos os dados disponibilizados pelo IBGE estariam disponíveis em uma área única, agrupados por áreas de interesse. Por exemplo, os dados referentes a uma determinada pesquisa estariam em uma área comum de conhecimento de todos, disponíveis através de uma única interface que é responsável por disponibilizar as informações em seu formato final. Dessa forma eliminamos o problema de redundância de dados e podemos impedir que publicações em meios diferentes sobre o mesmo tema (ex. publicações via sistemas web e publicações impressas) 6 possuam dados inconsistentes devido ao arredondamento feito nos dados numéricos, por exemplo. 5. Plano de Integração de novas tecnologias Abaixo é apresentada uma lista não definitiva das fases a serem seguidas para implantação do projeto PID. A. B. C. D. E. Tabela 1 – Fases do PID FASE Desenvolvimento de um website para compartilhamento das informações referentes ao projeto. Definição dos projetos envolvidos por prioridade e interoperabilidade: - Com ambientes internos - Com sistemas externos Capacitação (Cursos / Palestras) Implementação do padrão – FASE I Implementação do padrão – FASE II A. Desenvolvimento de um website para compartilhamento das informações referentes ao projeto: Com o intuito de manter todos os participantes do projeto PID atualizados com tudo que está acontecendo relacionado ao projeto, foi criado um website com as seguintes áreas: artigos, documentos, links e eventos; onde estão disponíveis, todas as informações referentes ao projeto. B. Definição dos projetos envolvidos por prioridade e interoperabilidade: Na fase inicial deverão acontecer diversas reuniões de conscientização e apresentação com líderes dos projetos existentes no âmbito do IBGE. Nestas reuniões deverão ser apresentados os projetos e-Ping e PID com os seus objetivos principais. Em seguida, uma breve apresentação sobre XML e WebService, fechando com uma apresentação mais detalhada sobre a proposta de arquitetura do PID. Num segundo momento, deverão ser definidos os projetos que irão integrar o PID, atribuindo aos mesmos um grau de prioridade para adequação ao padrão e sua classificação quanto a interoperabilidade: sistemas internos ou sistemas externos. C. Capacitação (Cursos) No que tange a capacitação dos funcionários envolvidos no processo de implantação e adequação ao padrão, será necessário realizar treinamento específico dos profissionais envolvidos. Para isto, deve-se oferecer cursos na de XML e WebServices e como desenvolver e 7 tratar estas duas tecnologias a partir de linguagens de programação utilizadas pelo IBGE, como Java e .Net. D. Implementação do padrão – FASE I Implementação e adequação de um projeto piloto considerados prioritário para a padronização. Nesta fase deve-se gerar documentação que sirva de subsídio para os projetos participantes da FASE II. E. Implementação do padrão – FASE II Implementação e adequação dos demais projetos componentes do PID. Os projetos desta fase devem se basear na experiência adquirida com o projeto da FASE I. Para isto, reuniões e/ou apresentações devem ser agendadas a fim de que os projetos exponham sobre o processo de implantação ocorrido. 6. Conclusão O Projeto de Interoperabilidade de Dados reforça as tendências mundiais no sentido de utilizar padrões para troca de dados em ambientes heterogêneos e distribuídos. Com este projeto, será possível alinhar o IBGE com as práticas mais avançadas para disseminação de dados, conseguindo eliminar problemas de redundância e divergências na apresentação dos dados. Além disso, será possível ao IBGE interagir com instituições externas de pesquisa no Brasil e no mundo. Referências Bibliográficas 1. ANDERSON, R. E. A.,ET.AL., 2000, Professional XML. 2, Wrox Press. 2. COMITÊ EXECUTIVO DO GOVERNO ELETRÔNICO, 2005, "e-Ping Padrões de Interoperabilidade do Governo Eletrônico". In: www.governo eletronico.gov.br. 3. METADATA TECHNOLOGY, 2006, " Metadata Technology". In: http://www.metadatatechnology.com/, Accessed in 07/2006. 4. OECD EXCHANGE EXPERT GROUP, 2006, "Organization for Economic Co-operation and Development Exchange Expert Group". In: http://www.oecd.org/std/research/exchangeexpertgroup/. 5. SDMX EXPERTS GROUP, 2006, "SDMX - Statistical Data and Metadata Exchange". In: http://www.sdmx.org/. 8 6. W3C XML QUERY WORKING GROUP, 2006, "XQuery 1.0: An XML Query Language". In: http://www.w3.org/TR/xquery. 7. W3C XML WORKING GROUP, 2006, "Extensible Markup Language (XML) 1.0 (Third Edition)". In: http://www.w3.org/TR/REC -xml, Accessed in 10/2005. 8. W3C XML WORKING GROUP, 2006, "XML Schema". In: http://www.w3.org/XML/Schema, Accessed in 07/2006. 9. W3C XPATH WORKING GROUP, 2006, "XML Path Language (XPath) Version 1.0". In: http://www.w3.org/TR/xpath. 10. W3C XSL WORKING GROUP, 2006, "The Extensible Stylesheet Language Family (XSL)". In: http://www.w3.org/Style/XSL/, Accessed in 10/2005. 11. ORACLE CORPORATION, 2006, "Oracle Database". In: http://www.oracle.com/database/index.html, Accessed in 07/2006. 12. IBM CORP, 2006, "DB2 Database". In: http://www.ibm.com/db2, Accessed in 07/2006. 13. INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATÍSTICA, 2006, "SIDRA". In: http://www.sidra.ibge.gov.br/, Accessed in 07/2006. 9