integração de sistemas: um estudo de suas tecnologias

8
IME Monografias em Sistemas e Computação n /2012 Integração de Sistemas: Um estudo de suas Tecnologias Patrick Baptista Amaral de Lara Seção de Engenharia de Computação INSTITUTO MILITAR DE ENGENHARIA PRAÇA GENERAL TIBÚRCIO 80 CEP 22290-270 RIO DE JANEIRO BRASIL

Upload: patrick-lara

Post on 03-Sep-2015

219 views

Category:

Documents


0 download

DESCRIPTION

A questão da integração de sistemas, em especial de sistemas heterogêneos, tem sido abordada com diferentes visões durante a busca por soluções. Dentre as soluções pesquisadas, é possível identificar três camadas de abordagem do problema: a camada da aplicação, na qual o trabalho proposto será focado, a camada de segurança, que será reservada para um estudo em trabalhos futuros, e a camada de comunicação, onde percebemos a utilização de várias tecnologias diferentes, sendo tipicamente utilizadas: CORBA, RMI e Web Services. Além destas tecnologias mencionadas, existem também os padrões de projeto para a construção de soluções de integração, que servem de guia para o desenvolvimento deste tipo de solução.

TRANSCRIPT

  • IME

    Monografias em Sistemas e Computao

    n /2012

    Integrao de Sistemas:

    Um estudo de suas Tecnologias

    Patrick Baptista Amaral de Lara

    Seo de Engenharia de Computao

    INSTITUTO MILITAR DE ENGENHARIA

    PRAA GENERAL TIBRCIO 80 CEP 22290-270

    RIO DE JANEIRO BRASIL

  • Monografias em Sistemas e Computao Dezembro, 2012

    Integrao de Sistemas: um Estudo de suas Tecnologias

    Patrick Baptista Amaral de Lara [email protected]

    Responsvel pela publicao:

    Ricardo Choren IME Seo de Engenharia de Computao Praa General Tibrcio 80, Praia Vermelha 22290-270, Rio de Janeiro/RJ, Brasil

    Tel. +55 21 2546-7090 E-mail: [email protected]

  • 1 Introduo

    A integrao de sistemas atualmente um dos maiores desafios encontrados na rea de desenvolvimento de sistemas. No mbito do Ministrio da Defesa, especificamente nos sistemas de Comando e Controle, torna-se necessria uma correta integrao, em tempo de hbil, dos sistemas de comando e controle existentes nas Foras Armadas, a fim de permitir uma maior interoperabilidade entre as unidades operativas, e a correta troca de informaes entre os seus Comandos de Fora.

    1.1 O Problema

    O problema a ser abordado o da integrao de sistemas heterogneos. A integrao, em tempo de execuo, dos sistemas heterogneos de comando e controle existentes nas Foras Armadas, necessria para elevar a capacidade de interoperabilidade de suas unidades e Comandos operativos.

    1.2 Objetivo

    Este trabalho tem o objetivo de realizar um estudo sobre integrao de sistemas, a fim de possibilitar a elaborao de uma futura proposta de interface para a integrao dos sistemas de Comando e Controle das Foras Armadas, e realizar um estudo sobre as ferramentas que possam ser utilizadas para resolver o problema da forma mais eficaz, levando em considerao todas as dificuldades encontradas, e que precisem ser solucionadas, dentro do perodo de tempo do estudo.

    2 Reviso da Literatura

    A questo da integrao de sistemas, em especial de sistemas heterogneos, tem sido abordada com diferentes vises durante a busca por solues. Dentre as solues pesquisadas, possvel identificar trs camadas de abordagem do problema: a camada da aplicao, na qual o trabalho proposto ser focado, a camada de segurana, que ser reservada para um estudo em trabalhos futuros, e a camada de comunicao, onde percebemos a utilizao de vrias tecnologias diferentes, sendo tipicamente utilizadas: CORBA [1,2], RMI [3] e Web Services [4]. Alm destas tecnologias mencionadas, existem tambm os padres de projeto para a construo de solues de integrao [5], que servem de guia para o desenvolvimento deste tipo de soluo. Dentre os trabalhos relacionados, foram destacados para estudo aqueles que esto sendo apresentados nesta seo.

    2.1 Distributed Component Object Model (DCOM)

    DCOM uma tecnologia desenvolvida pela Microsoft como uma extenso ao Component Object Model (COM), com o objetivo de suportar a comunicao entre objetos em diferentes computadores [6]. Component Object Model define um modo padronizado para um mdulo cliente e um mdulo servidor se comunicarem atravs de uma interface especfica. Proporciona um modelo de programao de componentes e um padro binrio para os mesmos. De acordo com a Microsoft, uma extenso do sistema operacional, e atualmente a grande maioria das aplicaes Microsoft se expe como componentes COM [7].

    DCOM foi idealizado com o objetivo de integrar ambientes heterogneos, de forma a permitir a reutilizao de ferramentas e objetos, possibilitando a reduo de custos para novas aquisies, e um maior aproveitamento da equipe de desenvolvimento, com uma baixa curva de aprendizado [6]. Porm, a no houve a integrao entre sistemas no Microsoft. Para que clientes UNIX faam conexes aos servidores Microsoft, so necessrios softwares adicionais, complexos de serem gerenciados e o inverso no era permitido. uma boa tecnologia para integrao de sistemas sobre os

  • sistemas da Microsoft, sem a integrao com outros sistemas operacionais. No existe a necessidade de instalao de drivers nos clientes, j que toda a comunicao entre cliente e servidor realizada por meio de bibliotecas do sistema operacional.

    Os objetos COM/DCOM podem ser implementados na maioria das linguagens de programao para Windows, o que d uma grande flexibilidade ao desenvolvedor. Por outro lado, o padro binrio e proprietrio da Microsoft so aspectos a serem considerados, principalmente quando o objetivo a construo de aplicaes verdadeiramente heterogneas e interoperveis com outras tecnologias. Ainda que fosse gratuita, o DCOM s funcionava sobre plataformas Windows, que no so livres [8]. Esta tecnologia foi substituda pela Application Programming Interface (API) [9] chamada .NET Remoting [10], e empacotada no framework WCF (Windows Communication Foundation) [11].

    2.2 Remote Method Invocation (RMI)

    RMI foi a primeira arquitetura de objetos distribudos suportada, por meio de um framework, pela Mquina Virtual Java. Projetada para permitir a invocao de mtodos remotos de objetos em mquinas virtuais distintas, de maneira transparente. Estende a linguagem Java para suportar programao distribuda baseada em objetos e prov novas interfaces e classes que permitem ao desenvolvedor encontrar objetos remotos, carreg-los e execut-los de maneira segura. Acompanha a mquina virtual Java a partir verso 1.0 e foi pensado para possibilitar a fcil criao de sistemas distribudos a partir de uma aplicao cujas classes j estejam implementadas [3,8].

    Disponvel em uma nica linguagem de programao, o RMI ao mesmo tempo mostrou suas principais facilidades (vantagens), e deixou visvel qual seria sua principal desvantagem, a nica linguagem suportada: Java. Apesar de permitir a interoperabilidade entre aplicaes em diferentes arquiteturas de hardware e sistemas operacionais, isto s permitido atravs da utilizao da mquina virtual Java. Como s existem implementaes para linguagem Java, o desenvolvedor obrigado a deixar seus objetos presos a ela. Entretanto, o desenvolvedor passa a ter toda a simplicidade e transparncia da linguagem Java, programando em um elevado nvel de abstrao, encapsulando detalhes da comunicao. Faz uso de um modelo de objetos nico e global, com um nico sistema de tipos, e possui todas as possibilidades de integrao com o framework Java e facilidades da mquina virtual [8].

    2.3 Servios Web (Web Services)

    Web Services so tipicamente servios oferecidos pela internet. Foram criados como uma promessa de evoluo das tecnologias de informao, com o objetivo de mudar a forma como os aplicativos compartilham os seus comportamentos, ou seja, a lgica de negcio, e os dados entre si. O padro capaz de fornecer uma maneira aberta para integrar aplicaes. A utilizao de padres abertos permite a integrao de componentes e aplicaes de forma independente da tecnologia utilizada. Sua principal vantagem em relao s demais tecnologias baseados em objetos, a simplicidade e a utilizao de padres abertos, no proprietrios [12].

    O framework dos servios Web dividido em trs reas: protocolos de comunicao, descries do servio e descoberta do servio. As seguintes especificaes so mais estveis em cada rea [4]:

    - Simple Object Access Protocol (SOAP), que permite a comunicao entre os servios Web [13];

    - Web Services Description Language (WSDL), que fornece uma descrio formal, legvel por computador, dos servios Web [14]; e

    - Universal Description, Discovery, and Integration (UDDI) directory, que o registro das descries dos servios Web [15].

  • Os servios Web so a evoluo de padres e protocolos utilizados para criar a internet da forma que a conhecemos. Sua infraestrutura construda sobre padres e tecnologias abertas, como o XML (eXtensilbe Markup Language). Os servios Web podem ser implementados sobre qualquer sistema operacional ou linguagem de programao que suporte os referidos padres abertos [12].

    3 Conceitos Bsicos

    3.1 Tecnologias de Middlewares

    Devido aos sistemas a serem integrados serem distribudos e heterogneos, torna-se necessrio a utilizao de especificaes abertas com interfaces padronizadas, o que nos remete aos middlewares. Middleware uma camada de software que oferece abstraes de alto nvel, visando facilitar a programao distribuda. As abstraes possibilitam uma viso homognea dos recursos heterogneos existentes nas camadas inferiores (rede, hardware e sistema operacional) [8].

    Middlewares fornecem um conjunto de servios em comum, que permitem as aplicaes

    servidoras e clientes interagirem atravs da rede. So de importncia fundamental para a programao

    distribuda, pelo fato de prover servios padronizados. Dentre os vrios tipos existentes de

    middlewares, vamos destacar aqueles que so orientados a objetos. Esses padres tm por objetivo

    promover um ambiente transacional distribudo e heterogneo, onde os cdigos transformados em

    objetos so usados para compor as transaes. Os middlewares orientados a objetos oferecem uma

    srie de servios, na forma de objetos abstratos ou interfaces, que melhoram o ambiente e facilitam a

    sua utilizao, alm de fornecer transparncia de localizao e de chamada de cdigo heterogneo e

    distribudo [8]. Exemplo de middleware: OpenBus v2.0 [16].

    3.2 Middleware Openbus

    OpenBus um projeto de um middleware para integrao de sistemas heterogneos, que sejam desenvolvidos em diferentes linguagens de programao e plataformas computacionais. O OpenBus utiliza duas ferramentas complementares para construir uma infraestrutura bsica de integrao de sistemas, o CORBA e o SCS [17].

    3.3 Common Object Requester Broker Architecture (CORBA)

    CORBA um padro da indstria que especifica um middleware para sistemas distribudos heterogneos orientados a objetos. Ele define o modelo bsico de comunicao usado nas integraes de sistemas feitas com o OpenBus. Possui suporte para diversas linguagens de programao e plataformas computacionais, o que permite integrar com o OpenBus uma grande variedade de sistemas [18].

    3.4 Software Component System (SCS)

    SCS um modelo simples e flexvel de componentes de software baseado em CORBA. O modelo bem similar s especificaes Enterprise Java Beans [19], mas sem a limitao de utilizao de uma nica linguagem, pois utiliza CORBA como a sua base. Possibilita estruturar sistemas usando uma arquitetura baseada em componentes. Ele utilizado no OpenBus como um modelo de arquitetura para a infraestrutura oferecida, e tambm para estruturar a maneira como as integraes so realizadas.

  • 4 A Proposta

    O trabalho proposto ser baseado na definio de Interface Description Languages (IDL), que sirvam de exemplo para o uso prtico nas Foras Armadas, alm de uma aplicao real que demonstre a utilizao das ferramentas escolhidas, com a aplicao das prticas sugeridas no estudo.

    As IDL sero definidas de acordo com o framework e barramento a serem utilizados, como por exemplo: OpenBus (CORBA), Java (RMI) ou servios Web. A tabela abaixo destaca as vantagens e desvantagens de cada tecnologia inicialmente estudada, at o presente momento.

    Critrios de Avaliao OpenBus (CORBA) Java (RMI) Web Services

    Custo/Dificuldade de Implementao

    Inicialmente alto. (barramento CORBA)

    Inicialmente baixo. Baixo, dependendo do framework.

    Interoperabilidade (independncia de

    linguagem e plataforma)

    Boa, independente de linguagem e plataforma.

    (Linux, Mac, Win., etc.)

    Ruim, dependente da linguagem Java.

    Boa, independente de linguagem e plataforma.

    Desempenho Esperado (durante a troca de

    mensagens)

    Muito bom. (pacotes de mensagens so lidos de forma binria)

    Muito bom. (pacotes de mensagens lidos de forma binria)

    Razovel. (overhead gerado maior do que CORBA e RMI)

    A escolha do barramento e da respectiva tecnologia a ser utilizada estar de acordo com o estudo de viabilidade do trabalho, onde sero levantados os meios e os recursos necessrios para a execuo da metodologia prevista.

    5 Metodologia

    Inicialmente, foi sugerida uma implementao por servios Web, utilizando o protocolo de comunicaes entre servios SOAP, e o uso de interfaces WSDL. Posteriormente, observou-se que a implementao utilizando o framework OpenBus poderia tornar mais rpido o trfego de mensagens. Porm, por ser baseado na tecnologia CORBA, haver grande dificuldade na implementao inicial de seu barramento. Existe tambm a possibilidade de utilizao da tecnologia Java RMI. Esta opo foi considerada, em princpio, de fcil implementao, porm com grandes restries quanto sua interoperabilidade com outros sistemas, devido dependncia da linguagem Java.

    Para o desenvolvimento do trabalho acadmico, pretende-se realizar as seguintes tarefas, durante o

    perodo de fevereiro de 2013 a janeiro de 2014:

    a) Um maior estudo das tecnologias de integrao e de suas ferramentas, tcnicas existentes e trabalhos relacionados;

    b) A escolha da ferramenta adequada e suas tecnologias bsicas; c) Desenvolvimento de uma interface base (ou contrato base) para um dos tipos de

    acompanhamento disponveis no sistema de comando e controle (por exemplo, para os navios);

    d) Validao das ferramentas com a interface base (ou contrato base), implementando uma aplicao exemplo, ou utilizando uma aplicao j existente;

    e) Desenvolvimento das Interfaces (IDL ou WSDL), que sero o produto-alvo da dissertao; f) Desenvolvimento de uma aplicao, ou utilizao de uma j existente, para exemplificar ao

    menos a integrao entre o sistema de comando e controle do Ministrio da Defesa, e os

    sistemas de duas Foras diferentes, mostrando os resultados em uma nica aplicao; e

    g) Realizao de testes, com a possibilidade de testes de desempenho que demonstrem a rapidez com que a aplicao realiza uma tarefa, demonstrando que mais rpida do que a aplicao

    que foi implementada anteriormente.

  • 6 Concluso

    Este trabalho o ponto de partida para um estudo mais aprofundado sobre as tecnologias que so envolvidas na integrao de sistemas. O estudo de caso so os Sistemas de Comando e Controle das Foras Armadas. A escolha das ferramentas adequadas, e que possam ser utilizadas para resolver o problema da forma mais eficaz, e de suas tcnicas, assim como a elaborao de suas interfaces (IDL), sero objetos de estudo e de implementao no trabalho que ser realizado durante o ano de elaborao da dissertao. Levando em considerao todas as dificuldades que precisam ser solucionadas, dentro do perodo de tempo previsto, foi proposta uma lista das tarefas a serem realizadas durante o ano de 2013.

    7 Bibliografia

    [1] S. Vinoski. CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Enviroments, IEEE Communications Magazine, Feb. 1997.

    [2] OMG: OBJECT MANAGEMENT GROUP. CORBA Component Model, http://www.omg.org/technology/documents/formal/components.htm, April 2006.

    [3] T. B. Downing. Java RMI: Remote Method Invocation [1st ed.]: IDG Books Worldwide, Inc. Foster City, CA, USA, 1998.

    [4] F. Curbera, M. Duftler et al. Unraveling the Web Services Web: An Introduction to SOAP, WSDL, and UDDI, IEEE Internet Computing, Mar./Apr. 2002.

    [5] G. Hohpe & B. Woolf. Enterprise integration patterns: Designing, building, and deploying messaging solutions. [S.l.]: Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 2003.

    [6] Andr Raabe, Ferrari et. al, Objetos Distribudos Aplicaes, Maio 2003.

    [7] Tapajs, Uires, Arquitetura Distribuda: IIOP, COM, RMI, SOAP e MDA, Maro 2003.

    [8] B. B. Boniati et al. Interoperabilidade em Sistemas utilizando Web Services como Middlewares, Departamento de Tecnologia, Universidade Federal do Noroeste, do Estado do Rio Grande do Sul (UNIJUI), Anais do II Simpsio de Informtica da Regio Centro / RS Santa Maria, Agosto 2003.

    [9] David Orenstein. Application Programming Interface (API), Computerworld Inc., http://www.computerworld.com/s/article/43487/Application_Programming_Interface, 2010.

    [10] MICROSOFT, .NET Framework, http://msdn.microsoft.com/en-us/vstudio/aa496123, 2012.

    [11] Rob Windsor. Introduo ao Windows Communication Foudation, ObjectSharp Consulting, Toronto, Canad, http://www.companyweb.com.br/OD-clientServer.ppt, 2012.

    [12] Fbio R. Schneider. Integrao de Aplicaes Empresariais Utilizando Web Services, Universidade Federal de Santa Catarina, Florianpolis, 2003.

    [13] Yves Lafon & Hugo Haas. Simple Object Acess Protocol v1.2, http://www.w3.org/2000/xp/, W3C Architecture Domain, 2001.

    [14] Erik Christensen et al. Web Services Description Language (WSDL) v1.1, http://www.w3.org/TR/wsdl.html, W3C, Note 15, Maro 2001.

    [15] UDDI/XML.org. Online Community for the Universal, Description, Discovery, and Integration OASIS Standard, http://uddi.xml.org, 2012.

    [16] OpenBus Enterprise Integration Application Middleware. TecGraf., PUC-Rio, http://www.tecgraf.puc-rio.br/openbus, 2006.

  • [17] C. E. Lara Augusto et al. Uma Infra-Estrutura para a Execuo Distribuda de Componentes de Software. Dissertao (Mestrado), PUC-Rio, 109p., Rio de Janeiro, Brasil, setembro 2008.

    [18] R. C. Henrique et al. Uma Arquitetura de Servios de Acesso a Dados Estruturados em Aplicaes Cientficas. Dissertao (Mestrado), PUC-Rio, 54p., Rio de Janeiro, Brasil, abril 2009.

    [19] SUN MICROSYSTEMS, Enterprise Java Beans v3.0, Santa Clara, USA, maio 2006.