Você está na página 1de 23

Informtica Pblica vol.

7 (1): 47-69, 2005

Sistemas Legados e as Novas Tecnologias: tcnicas


de integrao e estudo de caso
HERBERT LAROCA MENDES PINTO1
JOS LUS BRAGA2
(recebido em 03/09/2004; aprovado em 29/12/2004)

PALAVRAS-CHAVE
Engenharia de software Sistemas de informao Sistemas legados Objetos distribudos

RESUMO
O objetivo deste artigo conceituar sistemas legados, ou sistemas herdados, e demonstrar
abordagens, mtodos e tecnologias atuais para manter estes sistemas crticos em produo,
estendendo o seu ciclo de vida, integrando-os a novos sistemas e tecnologias. A importncia
desses sistemas para as organizaes, tanto do ponto de vista estratgico quanto do econmico, justifica o interesse pelo assunto com o conseqente desenvolvimento de tcnicas e
tecnologias para a sua integrao aos novos sistemas. Um pequeno estudo de caso tambm
apresentado, demonstrando uma das abordagens para integrao.

1. INTRODUO
Sistemas legados, ou seja, sistemas crticos em uso h determinado perodo e
desenvolvidos com tecnologia supostamente ultrapassada, so peas importantes em uma organizao. Na contramo da tecnologia, em constante evoluo,
estes sistemas costumam entrar em produo j desatualizados tecnologicamente,
devido a atrasos no seu ciclo normal de desenvolvimento. Geralmente estes sistemas contm informaes vitais para a organizao. Como proceder para manter a funcionalidade dos mesmos, sem provocar um impacto negativo ou causar
prejuzos ao funcionamento da rea de Tecnologia da Informao TI, e conseqentemente causar prejuzos para toda a organizao?
A atualizao e incluso de novos sistemas e tecnologias em uma organizao constante, tornando imprescindvel que novos sistemas sejam integrados
aos antigos, interagindo e compartilhando dados, processos e funcionalidades,
no conceito de escalabilidade e modularizao. Essa caracterstica est se tornando vivel com a utilizao de conceitos de orientao a objetos e tcnicas
que empacotam os sistemas e extraem dos mesmos somente as informaes e
funcionalidades relevantes. Um exemplo oportuno do uso dessa tecnologia deve
ser citado: a Internet. Grandes organizaes pblicas e privadas possuem pon1
2

herbert.pinto@serpro.gov.br
zeluis@dpi.ufv.br

48

Herbert Laroca Mendes Pinto e Jos Lus Braga

tos de presena na Internet, valendo-se de um contedo multimdia para informao, relacionamento, comrcio e integrao. No parece razovel que os sistemas em produo dessas empresas, provavelmente sistemas de gesto integrada crticos sejam profundamente alterados em sua estrutura bsica ou substitudos para atender a interface com a Web. O mais provvel, e menos custoso,
prover uma estrutura que permita interface Web integrar-se a esses sistemas,
extraindo deles informaes relevantes.
importante salientar que nem sempre a deciso de integrar um sistema legado ser simples ou se configurar na melhor opo. As opes possveis devem ser cuidadosamente analisadas, para evitar insucessos ou perdas financeiras significativas. Este artigo se prope a discutir a questo, trazendo ao leitor os
principais conceitos necessrios a uma tomada de deciso aceitvel sobre o tema.

2. SISTEMAS LEGADOS
As empresas gastam muito dinheiro em sistemas de software, e para que
elas obtenham um retorno deste investimento o software deve ser utilizado por
vrios anos. O tempo de durao de sistemas de software muito varivel, e
muitos sistemas de grande porte permanecem em uso por mais de dez anos.
Algumas organizaes ainda dependem de sistemas de software que tm mais
de vinte anos de existncia. Muitos desses antigos sistemas ainda so fundamentais para as empresas, isto , as empresas dependem dos servios fornecidos
pelo software, e qualquer falha desses servios teria um srio efeito em seu diaa-dia. A esses sistemas antigos foi dado o nome de Sistemas Legados [Somm03].
Sistemas legados so aplicaes de valor crtico para o negcio em produo nas empresas h cinco ou mais anos [Umar97], ou qualquer sistema de
informao que resiste significativamente modificao e evoluo [Brod95].
Alguns autores consideram ainda, como conceito para sistema legado: toda
aplicao em produo. Analisando esta caracterizao, verificamos que a partir da entrada de um determinado sistema em produo, dependendo da tecnologia
adotada e do prazo no ciclo de desenvolvimento, possivelmente o mesmo j
estar ultrapassado, tornando-se candidato a sistema legado
A viso de um sistema legado como um conjunto formado por software e
hardware adequada para uma anlise tcnica. No nvel scio-tcnico e
organizacional esta viso deve ser expandida: um sistema legado contm software,
hardware, profissionais, processos, regras de negcio e informaes geradas e
manipuladas por todo o sistema. Existem profissionais ligados diretamente ao
mesmo, como analistas, desenvolvedores e administradores de dados; e existem
profissionais que utilizam o sistema, como diretores, gerentes e usurios de um
modo geral.
necessrio tambm focar o lado humano de uma possvel mudana
tecnolgica com a modernizao ou mesmo substituio do sistema legado. Esse
acompanhamento estratgico se chama gesto de mudanas (change
management). Gesto de Mudanas so ferramentas e tcnicas utilizadas para
atenuar o impacto da mudana tecnolgica causado nos indivduos diretamente
ligados tecnologia [Somm03].
Algumas caractersticas podem auxiliar na identificao de sistemas legados:
sistemas em produo h mais de 5 anos; hardware e software obsoletos; siste-

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso

49

mas com mais de 10 mil linhas de cdigo; documentao antiga e desatualizada,


no condizente com as funcionalidades e processos atuais do sistema; cdigofonte amplamente modificado por diversas equipes ao longo do tempo, com
alteraes no documentadas; utilizao de um sistema de arquivos (seqenciais
ou indexados) ou gerenciador de banco de dados obsoletos; interface com o
usurio baseada em caractere; sistema no conhecido em sua totalidade pelos
profissionais responsveis por sua manuteno; os usurios do sistema no so
capazes de explicar com detalhes suas funes junto ao sistema e todos os processos que o mesmo executa; regras de negcio inseridas somente no cdigofonte do sistema; regras no esto documentadas ou no so conhecidas pela
grande maioria da equipe de manuteno.

Figura 1 Ciclo de Vida de um Sistema de Informao. Fonte:


[Come00]

2.1 Evoluo
A evoluo de um sistema um termo amplo que cobre todo o tempo entre
uma simples adio de um campo a um banco de dados at a completa
reimplementao de um sistema. Essas atividades de evoluo de um sistema
podem ser divididas em trs categorias, segundo [Weid97]: manuteno, modernizao e substituio. A Figura 1 ilustra como as atividades da evoluo so
aplicadas s diferentes fases do ciclo de vida de um sistema. A linha pontilhada
representa o crescimento das necessidades de um negcio, ao passo que a linha
slida representa a funcionalidade fornecida pelo sistema de informao.
A Manuteno um processo incremental e iterativo em que pequenas modificaes so efetuadas no sistema. Essas modificaes podem indicar correes
de erros ou pequenas melhorias no sistema, e nunca devem indicar grandes
mudanas estruturais.
A Substituio indicada para sistemas que no conseguem se adaptar s
necessidades do negcio e para os quais a modernizao no mais possvel ou
vivel.
A Modernizao envolve mudanas maiores que a manuteno, mas conserva uma poro significativa do sistema. Essas mudanas freqentemente incluem a reestruturao do sistema, melhorias funcionais importantes, ou novos atri-

50

Herbert Laroca Mendes Pinto e Jos Lus Braga

butos de software. A modernizao utilizada quando um sistema legado requer mudanas mais significativas que as possveis com manuteno. O tipo
de modernizao de um sistema legado pode ser definido pelo nvel de entendimento do sistema requerido para suportar os esforos de modernizao [Weid97].
Conhecimento interno da lgica do sistema chamada modernizao whitebox, e a que requer somente o conhecimento das interfaces externas do sistema
chamada modernizao black-box.
2.1.1 Modernizao white-box
A modernizao white-box requer um processo inicial de engenharia reversa
para se entender a operao interna do sistema legado. Componentes do sistema
e seus relacionamentos so identificados e uma representao do sistema em
alto nvel de abstrao produzida [Chik90]. Um entendimento do programa
a principal forma de engenharia reversa usada na modernizao white-box.
Entender o sistema envolve modelar o domnio, extrair informao do cdigo
utilizando mecanismos de extrao apropriados e criar abstraes que ajudam a
entender a estrutura do sistema.
Analisar e entender cdigo antigo so uma tarefa difcil, porque com o tempo
todo sistema torna-se ininteligvel devido ao provvel grande nmero de manutenes efetuadas. Aps o cdigo ser analisado e entendido, a modernizao do
tipo white-box geralmente inclui alguma reestruturao de cdigo ou de sistema. A reestruturao de um software pode ser definida como a transformao
de uma forma de representao para outra, com o mesmo nvel relativo de abstrao, enquanto se preserva o comportamento externo do objetivo do sistema
(funcionalidade e semntica). Essa transformao tipicamente empregada para
se conseguir algum atributo de qualidade para o sistema como manutenibilidade
ou aumento de performance [Chik90].
2.1.2 Modernizao black-box
A modernizao black-box envolve o exame das entradas e sadas de um
sistema legado dentro de um contexto operacional para se entender as interfaces
desse sistema. Adquirir o conhecimento de uma interface de determinado sistema no uma tarefa fcil, mas isso no representa o grau de dificuldade associado tcnica de modernizao black-box. A modernizao black-box
freqentemente baseada em empacotamento. O empacotamento consiste em
envolver o sistema legado com uma camada de software que esconde a complexidade no requerida do sistema antigo e recria uma interface moderna. O
empacotamento utilizado para remover as diferenas entre a interface criada
por um artefato de software e as interfaces requeridas pelas prticas atuais de
integrao. Tradicionalmente, empacotamento uma tarefa de reengenharia, na
qual somente a interface do sistema legado analisada e os cdigos internos do
sistema legado so ignorados. Infelizmente, essa soluo no sempre a ideal, e
freqentemente se lana mo do entendimento interno do cdigo de um sistema
legado, utilizando para isso tcnicas white-box [Plak99].
As tcnicas de modernizao black-box permitem um aproveitamento e
integrao dos sistemas legados com menos esforo e recursos computacionais,
preservando custos e recursos.

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso

51

2.2 Arquitetura

Figura 2 - Modelo em camadas de um sistema legado.


Fonte: [Somm03]

Como visto anteriormente, um sistema legado, no contexto organizacional,


possui vrios componentes. Para uma discusso tcnica, entretanto, podemos
considerar os seguintes:
Hardware de Sistema: na maioria dos sistemas obsoletos o hardware
antigo. No existem mais fornecedores e a manuteno
dispendiosa.
Software de Apoio: o software de apoio, como o sistema operacional,
compiladores, ferramentas, etc tambm pode estar desatualizado. O
sistema pode ter sido compilado utilizando-se uma verso de um
compilador hoje descontinuada, e a mesma deve ser mantida.
Software de Aplicao: o software de aplicao em um sistema legado no um nico programa de aplicao, mas inclui geralmente
vrios programas. O sistema pode ter iniciado como um nico programa processando um ou dois arquivos de dados mas, ao longo do
tempo, podem ter sido implementadas alteraes como a adio de
novos programas, que compartilham os dados e se comunicam com
outros programas no sistema. Os diferentes programas foram escritos por pessoas diferentes que no esto mais disponveis, e em
diferentes linguagens de programao, ou em diferentes verses de
uma mesma linguagem de programao.
Dados de Aplicao: em muitos sistemas legados, um imenso volume de dados se acumulou durante o tempo de existncia do sistema.
Esses dados podem estar inconsistentes, duplicados em diferentes
arquivos. Como acontece com o software de aplicao, os arquivos
de dados iniciais sofrem alteraes medida que novas informaes
so exigidas. Embora ainda existam sistemas legados que utilizam
arquivos separados para manter seus dados, um grande nmero de

52

Herbert Laroca Mendes Pinto e Jos Lus Braga

sistemas corporativos centralizou seu gerenciamento de dados em


um sistema de banco de dados. A vantagem da adoo dessa estrutura que os dados do sistema so descritos utilizando-se modelos
de dados abstratos e menos provvel ocorrer a redundncia e
duplicidade de dados, facilitando a avaliao do impacto de mudanas no sistema. A separao dos dados de aplicao importante,
como veremos adiante, quando separaremos o sistema legado em
camadas, nveis lgicos e verificaremos sua classificao quanto
decomponibilidade. Outra questo a ser resolvida a obsolescncia
dos gerenciadores de dados. H sistemas legados que ainda utilizam
gerenciadores de dados hierrquicos ou baseados no modelo
CODASYL, que no so mais comercializados e nem so atualizados
por seus fabricantes. O custo de migrao para um gerenciador
relacional, mais moderno, costuma ser muito alto, o que pode
inviabilizar uma modernizao.
Regras ou processos de negcios: so as informaes sobre os processos internos da organizao, codificadas em uma linguagem de
programao e espalhadas pelos programas que fazem parte do sistema. Na grande maioria dos sistemas essas regras no esto satisfatoriamente documentadas, sendo do conhecimento tcito de gerentes, analistas e usurios do sistema. Um novo sistema dificilmente
conseguir reproduzir todas essas regras e funcionalidades.
Estendendo o conceito de camadas, podemos classificar um sistema legado
quanto sua separao em nveis lgicos para posterior tratamento, manuteno ou integrao, de acordo com a Figura 3:

Figura 3 Nveis lgicos de sistemas computacionais. Fonte: [Mece99]

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso

53

Altamente Decomponvel (amigvel): o sistema dividido em trs


nveis lgicos bem distintos e estruturados. A alterao de um nvel
no afetar significativamente o outro nvel. Todos os nveis so prontamente acessveis. Provavelmente foi utilizada a tecnologia de Sistemas Gerenciadores de Banco de Dados. Sua integrao a outros
sistemas considerada fcil.
Decomponvel nos dados (pouco amigvel): o sistema dividido em
dois nveis lgicos: o nvel de interface em conjunto com o nvel de
processamento lgico e o nvel de dados. O acesso aos dados nesse tipo
de sistema imediato, ao contrrio do acesso interface ou o
processamento lgico. Sua integrao a outros sistemas conseguida
com algum esforo de programao e utilizao de tecnologias.
Decomponvel no programa (pouco amigvel): o sistema tambm dividido em dois nveis lgicos: o nvel de interface, separado e o nvel de
programas e dados, em conjunto. Os dados somente so acessveis a
partir de funes do sistema (provavelmente transaes). Nesta categoria se encontram a maioria dos sistemas legados. Sua integrao a outros sistemas conseguida com algum esforo de programao e utilizao de tecnologias.
Monoltico (hostil): o sistema composto de um nico bloco lgico.
So aplicaes bem antigas, e o acesso s suas informaes bastante difcil. Sua integrao a outros sistemas bastante complexa.
[Mece99]
2.3 Avaliao
Quando se est avaliando um sistema legado, deve-se consider-lo sob duas
perspectivas diferentes, segundo [Warr98]. A partir de uma perspectiva de negcios, deve-se fazer uma avaliao do valor desse sistema para a empresa. A
partir de uma perspectiva de sistema, deve-se fazer uma avaliao da qualidade
do software de aplicao e do software e hardware de apoio do sistema. A combinao do valor de negcios com a qualidade do sistema , ento, utilizada
para ajudar a informar a deciso sobre o que fazer com o sistema legado.
Essas avaliaes so meramente subjetivas e sua quantificao deve ser efetuada utilizando-se uma abordagem de questionamentos aos vrios indivduos
envolvidos no processo, colhendo assim vrios pontos de vista. Dados quantitativos coletados tambm podero auxiliar na avaliao do sistema, como: o nmero de pedidos de modificaes no sistema; o volume de dados utilizados pelo
sistema, etc. A formulao das questes a serem efetuadas deve ser inerente s
duas perspectivas adotadas para a avaliao do sistema legado. Para cada questo dever ser dado um valor, dentro de determinada faixa, que indicar a situao de determinada caracterstica. Por exemplo, em uma perspectiva de sistema,
o questionamento: O desempenho do sistema satisfatrio? poderia receber
valores de 1 a 5, indicando: pssimo, ruim, satisfatrio, bom e timo. Estes
valores seriam computados (a mdia, por exemplo) e comporiam um indicador
que expressaria a qualidade do sistema.

54

Herbert Laroca Mendes Pinto e Jos Lus Braga

Para ilustrar essa avaliao, vamos supor que uma organizao possua dez
sistemas legados. A qualidade e o valor de negcios de cada um desses sistemas
so avaliados e comparados com outros sistemas, mediante um grfico, que
mostra o valor de negcios relativo e a qualidade do sistema, Figura 4. Podemos
verificar, pelo grfico, que existem quatro grupos de sistemas:
Baixa qualidade, baixo valor de negcios. Manter esses sistemas em
operao ser dispendioso e a taxa de retorno de investimento para
os negcios ser bastante pequena. Esses sistemas so candidatos a
serem descartados.
Baixa qualidade, alto valor de negcios. Esses sistemas esto prestando uma importante contribuio empresa e, assim, no podem
ser descartados. Contudo, sua baixa qualidade significa que os custos operacionais so altos, de modo que so candidatos transformao ou substituio do sistema, se um sistema adequado estiver
disponvel.
Alta qualidade, baixo valor de negcios. So sistemas que no contribuem muito para os negcios, mas cuja manuteno pode no ser
muito dispendiosa. No vale o risco substituir esses sistemas, de modo
que a manuteno normal pode ser continuada ou eles podem ser
descartados.
Alta qualidade, alto valor de negcios. Esses sistemas devem ser
mantidos em operao, mas sua alta qualidade significa que no
necessrio investir na sua transformao ou substituio. Deve-se
continuar com a manuteno normal do sistema.

Figura 4 - Qualidade de Sistema e valor de negcios. Fonte:


[Somm03]

O ideal que seja utilizada a avaliao objetiva para informar as decises


sobre o que fazer com um sistema legado. Contudo, em muitos casos, essas
decises no so realmente objetivas, mas se baseiam em consideraes
organizacionais ou polticas. Por exemplo, se duas empresas fazem uma fuso,

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso

55

os sistemas utilizados pela empresa com maior influncia sero utilizados naturalmente pela empresa resultante e os outros sistemas podero ser descartados.
Se a gerncia snior em uma organizao tomar a deciso de migrar para uma
nova plataforma de hardware, ento isso poder exigir que aplicaes sejam
substitudas. Se no houver nenhum oramento disponvel para a transformao
do sistema em um determinado ano, ento a manuteno do sistema poder
continuar, embora isso venha a resultar em custos de longo prazo mais elevados.
imprescindvel para uma organizao efetuar uma correta avaliao de seus
sistemas legados. Caso essa avaliao seja efetuada sem critrio, as decises
tomadas podero representar perdas significativas de dinheiro e recursos.

3. ABORDAGENS PARA A INTEGRAO


Sero apresentadas trs abordagens principais para a integrao e modernizao de sistemas legados. A fragmentao ou empacotamento de telas (screen
scrapping), a integrao ponto a ponto e o empacotamento utilizando-se
empacotadores orientados a objeto.
3.1 Fragmentao de telas Screen Scrapping

Figura 5 - A tcnica Screen Scrapping . Fonte [Come00].

O objetivo desta tcnica empacotar a interface antiga do sistema legado,


geralmente baseada em telas-texto no formato caractere visualizadas via terminal, e fornecer uma interface mais recente e tecnologicamente integrvel. Esta
nova interface ser mais flexvel que a antiga, permitindo seu uso em computadores pessoais, criando uma nova interface grfica ou fornecendo contedo para
a Web, por exemplo.
Com a fragmentao de telas um programa (screen scraper) se conecta a
uma aplicao legada e simula os sinais de teclado que um usurio faria para
acessar a funcionalidade da aplicao legada. Do ponto de vista de uma aplica-

56

Herbert Laroca Mendes Pinto e Jos Lus Braga

o legada, como se um usurio estivesse utilizando a aplicao. O programa


screen-scraper utiliza APIS fornecidas pelo software de emulao de conexo
do terminal para manipular certas informaes de telas predefinidas de uma
forma invisvel para o usurio. Na maioria das vezes, somente um pequeno
subconjunto de instrues da API utilizado, como connect, wait for string,
send key, apenas para nomear alguns exemplos. Na maioria dos casos, o estado
da sesso do terminal no informado ao usurio.
O maior problema em utilizar a abordagem de fragmentao de telas causado pela ineficincia para manipular eventos inesperados relacionados ao ambiente de conexo com o servidor, como teclado travado, desconexes de sesso,
e mensagens de broadcast dos servidores [Come00].
3.2 Ponto a Ponto
Uma segunda alternativa para o empacotamento das aplicaes legadas
tomar uma abordagem ponto a ponto na qual o empacotador reside tanto na
aplicao legada quanto na aplicao no-legada que se deseja integrar. Os dois
componentes se comunicam atravs de chamadas de transao. A idia bsica,
como mostrado na Figura 6, em primeiro lugar escrever o cdigo do
empacotador que acessa diretamente a funcionalidade proporcionada pela aplicao legada, chamando as suas sub-rotinas internas. Aps isso, deve-se escrever o cdigo do empacotador na aplicao no-legada, que se comunica com o
cdigo do empacotador legado enviando suas transaes. muito comum ver o
fluxo de transaes fluindo em ambas as direes, normalmente porque um
componente da aplicao legada foi substitudo, completa ou parcialmente, pela
aplicao no-legada. A maior vantagem do empacotamento ponto a ponto a
rapidez, pois o empacotador legado acessa o cdigo atual que realiza a funcionalidade do negcio. A maior desvantagem que o cdigo do empacotador
existe para ambas as aplicaes, a legada e a no legada, acoplando efetivamente o cdigo do empacotador ao ncleo da aplicao legada. Isso tambm implica ter desenvolvedores para ambos os ambientes [Ambl98].

Figura 6 Empacotando uma aplicao legada atravs de uma


abordagem ponto a ponto. Fonte: [Ambl98]

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso

57

3.3 Empacotamento Orientado a Objetos Wrapping OO


A tecnologia de objetos vem sendo utilizada para implementar com sucesso
sistemas de computao complexos. Sistemas orientados a objeto podem ser
desenvolvidos e implementados de uma maneira mais produtiva, e adicionalmente o uso de recursos como abstrao, empacotamento, herana e outras tcnicas de orientao a objetos tornam um sistema orientado a objeto simples de
ser entendido. Empacotar utilizando tecnologias orientadas a objeto uma tcnica na qual as interfaces de uma aplicao no orientada a objetos so envolvidas ou encapsuladas por uma camada ou casca que possibilita um meio padro
e formal de acesso aplicao legada por outras aplicaes tecnologicamente
mais atualizadas e orientadas a objeto. atravs dessa nova camada orientada a
objeto que o sistema legado ir integrar-se e interagir com novas aplicaes,
para desempenhar as funes necessrias ao funcionamento do mesmo. Aps
encapsulada, a funcionalidade do sistema legado torna-se reutilizvel nos vrios outros novos sistemas que venham a ser integrados ao antigo sistema, como
se fosse um objeto comum. Essa a maior vantagem sobre os outros tipos de
abordagens. Do ponto de vista de um objeto do sistema, o empacotador se parece com qualquer outro objeto deste contexto, como mostra a Figura 7.

Object System

via wrapping

Legacy Application

Legacy API

Figura 7 O processo de empacotamento. Fonte: [Asma00]

4. TECNOLOGIAS PARA A INTEGRAO


4.1 Corba
A arquitetura CORBA, que significa Common Object Request Broker
Architecture, uma abordagem para objetos distribudos recomendada pelo
Grupo de Gerenciamento de Objetos (Object Management Group OMG), um
consrcio de organizaes que esto trabalhando juntas para desenvolver um
conjunto de padres para a computao de objetos distribudos. A arquitetura
CORBA basicamente define os servios realizados por um ORB (Object Request
Broker), que uma tecnologia de middleware que permite que objetos enviem
mensagens para outros objetos atravs de uma rede, proporcionando uma definio de linguagem de interface (IDL) que especifica a abordagem-padro para
a definio da interface de objetos. A IDL CORBA proporciona um mecanismo
de empacotamento de objetos que esconde definitivamente os detalhes de
implementao de um objeto. A arquitetura CORBA define os padres que as

58

Herbert Laroca Mendes Pinto e Jos Lus Braga

empresas que desenvolvem os ORBs necessitam para que os seus objetos possam interagir uns com os outros de maneira consistente. Para um entendimento
da estrutura da arquitetura CORBA necessrio conhecer e entender os seguintes componentes:
Object Request Broker, que permite aos objetos uma transparncia
no envio e recebimento de solicitaes e respostas em um ambiente
distribudo. Ele fundamental para a construo de aplicaes de
objetos distribudos e para interoperabilidades entre aplicaes em
um ambiente hetero e homogneo.
Servios de Objeto, uma coleo de servios (interfaces e objetos)
que fornece funes bsicas para uso e implementao de objetos.
Os servios so necessrios para a construo de qualquer aplicao
distribuda e so sempre independentes dos domnios das aplicaes. Como exemplo, o servio de ciclo de vida define convenes
para criar, apagar, copiar e mover objetos. Ele no dita como os objetos so implementados em uma aplicao.
Servios Comuns, um conjunto de servios que as aplicaes podero compartilhar, mas os quais no so fundamentais como os servios de objetos. Por exemplo, um gerenciamento do sistema ou um
servio de e-mail podem ser classificados como servios comuns.
Objetos de Aplicao, que so os produtos que rodam em cima da
arquitetura CORBA. Objetos de aplicao correspondem noo
tradicional de aplicaes, e eles no so padronizados pelo OMG.
No nosso contexto um objeto de aplicao o sistema legado.

Figura 8 Um objeto empacotador. Fonte: [Juric00]

4.2 EJB (Enterprise JavaBeans)


Enterprise JavaBeans so componentes fornecidos em conjunto com um servidor de aplicao, ou servidor EJB, que implementa o ambiente de execuo
para o componente e gerencia servios comuns, como segurana, transaes,
estados, compartilhamento de recursos, persistncia automtica e chamada remota. Isso permite ao desenvolvedor dos componentes o foco somente no problema do negcio a ser resolvido. O primeiro passo para empacotar um sistema

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso.

59

legado utilizando EJB separar a interface do sistema legado em mdulos consistindo em unidades lgicas. O grau de dificuldade em dividir o sistema legado
em funes discretas ir variar dependendo do grau em que essas separaes
foram definidas nas interfaces do sistema legado e quais interfaces novas devem
ser construdas. Embora uma abordagem black-box seja mais indicada, uma
documentao e interface pobre podem tornar necessria uma verificao mais
detalhada do sistema legado para uma melhor compreenso do mesmo. O prximo passo construir um nico ponto de contato para o sistema legado. uma
boa idia centralizar toda a comunicao em um nico software. O mtodo de
comunicao usado por este software depende de cada situao. Opes para a
comunicao entre o ponto de contato e o sistema legado incluem RMI Remote
Method Invocation (protocolo exclusivo para comunicao entre objetos Java)
sobre IIOP Internet Inter-Orb Protocol (protocolo que permite a execuo do
padro CORBA sobre o protocolo Web), sockets (software para conexo ao protocolo de rede), ou mesmo um middleware (um programa capaz de permitir a
comunicao entre dois sistemas heterogneos) orientado a mensagem (MOM
Message Oriented Middleware), que possui a vantagem de separar o servidor
EJB do sistema legado e permitir comunicao assncrona. Este ponto nico de
contato pode ser implementado como um bean (componente), chamado
adaptador, ou um service broker, um componente de software externo ao servidor EJB. Colocar o ponto de contato dentro ou fora do servidor depende principalmente do mtodo de comunicao escolhido e de algumas restries de segurana. Por exemplo, se for necessrio criar uma nova thread, que so blocos
de cdigos do mesmo programa executados independe e concorrentemente, ou
verificar um socket, o ponto de contato deve estar fora do servidor de aplicao
porque a especificao EJB no permite o multithread de JavaBeans (execuo
simultnea de pedaos de cdigo JavaBeans) ou a escuta de sockets [Come00].
A etapa final no empacotamento do sistema legado implementar um componente empacotador para cada mdulo do sistema legado. Na Figura 9 esse
empacotador mostrado como Bean 2. Esses componentes fazem requisies
ao sistema legado utilizando um ponto de contato nico, de um modo similar ao
empacotamento de objetos. Existem vrias vantagens na abordagem de
empacotamento de sistemas legados utilizando-se componentes. Primeiro, com
um esforo relativamente limitado, as vantagens dos sistemas baseados em componentes so fornecidas. Por exemplo, pode-se construir novos JavaBeans que
usem os empacotadores de modos no-previstos, aumentando a flexibilidade do
sistema. Segundo, os empacotadores so Enterprise JavaBeans e podem ser totalmente integrados com todos os servios e facilidades gerenciais includos no
servidor de aplicao. Finalmente, o empacotamento das lgicas de negcio
legadas permitem a criao de um roteiro para a substituio do sistema legado
incrementalmente. Aps empacotar a funcionalidade do sistema legado, podese reimplementar os empacotadores um por vez (Bean 1 na Figura 9) , sem
necessitar uma substituio total do sistema. Isso possvel devido ao sistema e
os clientes no experimentarem nenhuma interrupo, enquanto os
empacotadores reimplementados mantm as mesmas interfaces fornecidas pelo
empacotador anterior. Desse modo, possvel a substituio completa do sistema antigo [Come00].

60

Herbert Laroca Mendes Pinto e Jos Lus Braga

Figura 9 Empacotando a lgica de negcios legada utilizando EJB.


Fonte: [Come00]

4.3 Web Services


Uma definio de Web Services, segundo o W3C (World Wide Web
Consortium): Um Web Service um sistema de software desenvolvido para
fornecer uma interao mquina-a-mquina sobre uma rede. Ele possui uma
interface descrita em um formato padro (especificamente WSDL). Outros sistemas interagem com o Web Service do modo descrito em sua interface usando
mensagens padro SOAP, tipicamente com http, e uma serializao XML em
conjunto com outros padres Web [W3C03].
Web Services so interfaces independentes de plataforma que permitem a
comunicao entre aplicaes utilizando as tecnologias existentes na Internet,
como HTTP e XML. As aplicaes j estavam aptas a comunicar-se pela Internet
h anos, mas somente recentemente foram criadas normas para permitir uma
comunicao padro entre as aplicaes distribudas. Os Web Services dependem de trs padres-chave para permitir essa comunicao, independente da
plataforma na qual esto sendo executadas as aplicaes, ou linguagem de programao utilizada para o seu desenvolvimento:
SOAP Simple Object Access Protocol. Especifica um formato para
as mensagens passadas entre os Web Services.
WSDL Web Service Description Language. Descreve o web service,
permitindo que outros Web Services saibam como acess-lo, o que
mandar como entrada e o que esperar como sada.
UDDI Universal Description, Discovery and Integration standard.
um sistema de registro que permite que os Web Services publiquem
documentos WSDL, para que outros Web Services. UDDI tambm
fornece a especificao sobre os formatos de entrada de dados, modelos de segurana, protocolos e formatos de sada de dados.
SOAPConstrudos com os fundamentos fornecidos por estes padres esto
surgindo outros padres para manipulao de processos de negcio complexos,
autenticao e integridade de mensagens, etc. Por trs de todos estes padres
est o uso do XML como formato de mensagens e um protocolo padro como o
http para mtodo de transporte [Nave03].

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso

61

Figura 10 Arquitetura proposta por (NAVEEN


et Al). Fonte [Nave03]

5. UM EXEMPLO PRTICO
Para exemplificar, vamos criar uma interface Web simples para um determinado processo de um sistema legado operacional em uma empresa atacadista. A
empresa, aps anlises e estudos, optou por manter seu sistema legado, desenvolvido na linguagem Clipper, executado sob o ambiente Windows. Devido a
novas demandas, surgiu a necessidade de modernizar determinado processo de
consulta a uma de suas informaes estratgicas: as vendas anuais de cada vendedor, Tabela 1. Para disponibilizar essa informao a todos os vendedores, e de
forma menos custosa possvel, a Internet foi escolhida como meio.
Tabela 1 A base legada.

62

Herbert Laroca Mendes Pinto e Jos Lus Braga

As informaes esto armazenadas em arquivos no formato DBF (data base


file), localizados em determinado diretrio. A forma de integrao escolhida, e
menos intrusiva, o acesso direto aos dados pertinentes contidos nestes arquivos. Como neste exemplo a informao obtida do sistema legado, o acesso
direto ao banco de dados legado satisfatrio. Por outro lado, se fosse necessrio uma incluso de dados no sistema legado, esta tcnica no sera indicada.
Incluindo dados diretamente na base legada poderamos infringir regras de negcio e regras de integridade inseridas no cdigo-fonte legado: nesse caso, outras abordagens de integrao so mais apropriadas. A tecnologia escolhida para
a interface Web foi JSP (Java Server Pages) e JavaBeans. JSP definir a interface
Web de entrada de dados e um JavaBean ser desenvolvido para buscar os dados do sistema legado. Convm salientar que no existiu a preocupao com a
segurana no acesso aos dados e critrio na programao do cdigo-fonte exemplo, por no fazerem parte do escopo e interesse deste artigo. Vamos apresentar
a soluo em passos:
Passo 1: Preparar o acesso base de dados legada

Figura 11 Configurando o ODBC para acesso aos dados da base legada

Como o ambiente Windows, a tecnologia ODBC (drives de acesso a dados), proprietria da empresa Microsoft Corporation, ser a utilizada para o acesso
aos dados legados. A Figura 11 ilustra a criao e configurao de um driver
ODBC para acesso ao arquivo DBF que contm os dados que sero utilizados
pela interface Web.
Passo 2: Criar a classe JavaBean responsvel pela conexo base legada
Um JavaBean ser criado para prover o acesso propriamente dito aos dados
da base legada. O cdigo do mesmo listado nas Figuras 12 e 13. No cdigo
mostrado, identificam-se alguns atributos e mtodos notveis:
Atributo dbUrl: Este o endereo do banco de dados. Sua estrutura
(jdbc:odbc:Sistema_Legado) indica:
JDBC: a tecnologia Java (uma API) para acesso a base de dados.
ODBC: o subprotocolo usado. Como o ambiente Windows, e
ODBC tambm um conjunto de drivers para acesso aos dados, o
que se usa neste caso uma ponte (bridge) JDBC<->ODBC.

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso

63

Sistema_Legado: um identificador do banco de dados. Neste caso,


o nome dado para o driver ODBC (Figura 11).
Mtodo conecta: o mtodo responsvel por efetuar a conexo, via JDBC,
ao
banco
de
dados
legado. A
instruo
class.forName(
sun.jdbc.odbc.JdbcOdbcDriver ) responsvel por carregar o driver
JdbcOdbc bridge, conforme explicado anteriormente.
Mtodo desconecta: ir efetuar o fechamento das conexes abertas.
Mtodo getValor: o mtodo mais importante da classe. Ele o responsvel
por retornar o valor solicitado pela interface web. Dentro deste mtodo existe a
clusula SQL responsvel por consultar a base e retornar o valor, a partir dos
parmetros obtidos da interface visual web.

Figura 12 A classe JavaBean responsvel por implementar o mtodo de busca aos


dados legados.

64

Herbert Laroca Mendes Pinto e Jos Lus Braga

Figura 13 A classe JavaBean responsvel por implementar o mtodo de busca


aos dados legados (continuao).

Passo 3: Criar a interface visual que ir interagir com o usurio


O programa listado na Figura 14 implementa a interface visual web que
ir interagir com o usurio. A Figura 15 ilustra a janela visualizada no browser.
As instrues contidas entre as tags <% e %> o cdigo JSP. O restante do
cdigo HTML. O cdigo <jsp:useBean id=bean1" class=beans.processa
/> registra a classe JavaBean para uso na pgina, e as informaes digitadas
pelo usurio (cdigo do vendedor e ano de referncia) so obtidas pelo comando FORM, e armazenadas nas variveis vend e anoref . O cdigo JSP <%=
df.format(bean1.getValor(vend, anoref)) %> executa o mtodo getValor (passo
2) do JavaBean e retorna o valor das vendas, que mostrado na pgina. O
cdigo JSP <%= bean1.getErro() %> mostra eventuais erros que venham a
ocorrer.
O exemplo apresentado simples, e vrios aspectos relevantes no foram
abordados, mas seu acompanhamento permite uma viso prtica dos conceitos
apresentados neste artigo.

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso.

Figura 14 O programa JSP que implementa a interface Web para o usurio

Figura 15 Visualizao da interface no browser.

65

66

Herbert Laroca Mendes Pinto e Jos Lus Braga

6. CONCLUSO
Os sistemas legados existem e sempre existiro, medida que as tecnologias
vigentes tornam-se obsoletas ao longo de um tempo cada vez mais curto. O
simples descarte destes sistemas incorre em prejuzos financeiros e estruturais
para as organizaes: o desenvolvimento de um sistema complexo envolve um
grande nmero de recursos, e estes recursos geram gastos que precisam ser
justificados e transformados em benefcios para a organizao. No obstante, a
substituio do sistema legado por um novo sistema, tecnologicamente atualizado, promove tambm certos transtornos que devem ser avaliados, como o prazo
previsto para a entrada em produo e a sua total operacionalidade, ou a garantia de que o mesmo possuir a mesma funcionalidade fornecida pelo sistema
legado antigo, no nvel das regras de negcio, regras estas que nem sempre
esto implcitas em manuais ou documentao.
O objetivo deste artigo foi demonstrar mtodos e tecnologias existentes no
presente momento para o aproveitamento dos referidos sistemas. Inicialmente, a
pretenso foi fornecer informaes sobre a evoluo dos sistemas e uma apresentao e definio detalhada de sistemas legados, e posteriormente, a preocupao foi descrever mecanismos de avaliao de um sistema legado, para que a
definio sobre a modernizao ou no de um determinado sistema seja feita
com grande critrio. A partir da deciso de modernizar o sistema legado, foram apresentadas, introdutoriamente, abordagens e tecnologias para a integrao
do mesmo, com tecnologia ultrapassada, aos novos sistemas, com tecnologia
atualizada. No foi objetivo deste artigo apontar determinada tecnologia ou abordagem como tima, e sim fornecer subsdios, a partir da explanao das
tecnologias, para uma posterior anlise da melhor abordagem e tecnologia
indicada para cada caso. No existem regras literais definidas para a escolha da
abordagem ou tecnologia a ser utilizada em determinado empacotamento de
um sistema legado. Ao longo de experincias na utilizao de tcnicas e
metodologias dever ser criada uma postura crtica que poder inferir na escolha do uso das tcnicas e mtodos aqui apresentados.
Notoriamente, as abordagens explanadas utilizam-se de objetos distribudos.
Em conjunto com os protocolos da Internet, objetos distribudos so a grande
aposta para a integrao dos sistemas, incluindo os sistemas legados. A grande
ironia que, com o advento da Internet, e a necessidade de utilizao dos sistemas via esse meio, criou-se tambm a necessidade de integrar os sistemas
corporativos antigos aos novos conceitos da Internet. Interfaces novas, sistemas antigos, conceitos legados, como processamento centralizado e terminais.
Portanto, podemos concluir que no existe uma forma ou mtodo geral que
defina qual abordagem ou tecnologia utilizar. Cada caso deve ser estudado, e
deve-se aproveitar o melhor de cada tecnologia disponvel para se efetuar a
integrao. Cada sistema, complexo em sua grande maioria, ir fornecer pistas
para a sua integrao e o uso de vrias tecnologias e abordagens tornar-se-
comum durante um projeto de integrao de sistemas legados.
Vrias organizaes como OMG (Object Management Group), W3C (World
Wide Web Consortium) e WS-I (The Web Services Interoperability Organization)
esto trabalhando para criar uma padronizao para a integrao de sistemas

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso.

67

distribudos e heterogneos, o que ir tornar mais fcil a integrao dos mesmos. A tendncia verificada o aumento crescente da facilidade de integrao,
com a disponibilidade cada vez maior de padres e ferramentas para auxiliar
esta tarefa. Com o passar do tempo e a maturidade das tcnicas, ferramentas e
padres, os sistemas legados tendem a desaparecer, transformando-se em objetos funcionais distribudos pelas redes das suas respectivas organizaes.

7. GLOSSRIO
API sigla para Application Programming Interface, ou Interface de Programao de Aplicativos. um conjunto de rotinas e funes pr-compiladas e
prontas (normalmente na forma de dll s) que realizam uma tarefa comum. Estas
interfaces foram concebidas para padronizar recursos do sistema operacional
utilizados pelos aplicativos. Entre as API s mais utilizadas, temos a API do
Windows, de correio eletrnico (MAPI) e de vinculao de objetos (OLE).
Bean (Java Bean) um componente reutilizvel de software que pode ser
manipulado visualmente por qualquer ferramenta de desenvolvimento de aplicaes. Possui mtodos, propriedades e eventos.
Broadcast Traduo de radio difuso. Em uma rede de computadores,
broadcast significa um aviso enviado simultaneamente para todos os micros da rede.
Clipper Linguagem de programao criada na dcada de 80, muito popular no brasil nos fins da dcada de 80 e meados da dcada de 90. Sua principal
caracterstica a facilidade de programao para o desenvolvimento de aplicaes com banco de dados em um dialeto xbase e no formato DBF.
CODASYL Conference on Data Systems Languages Uma organizao
fundada em 1957 pelo Departamento de Defesa dos Estados Unidos. Sua misso foi desenvolver linguagens de programao para computadores.
DBF Data base file: Extenso de arquivos de dados criados por ferramentas
xbase, como o FoxPro DOS e dbase III Plus.
HTTP Hyper Text Transfer Protocol: Protocolo de Transferncia de Hiper
Texto. Protocolo desenvolvido originalmente para transferir pginas HTML. As
pginas Web so acessadas usando-se este protocolo.
IIOP Internet Inter-ORB Protocol: Um protocolo desenvolvido pelo OMG
- Object Management Group (OMG) para permitir solues CORBA sobre a
World Wide Web. IIOP permite que browsers e servidores web utilizem estruturas e objetos mais complexos, ao contrrio do protocolo HTTP, que suporta
somente texto
Middleware Um programa que permite que dois sistemas diferentes possam se comunicar. Por exemplo, permitir que um determinado programa, capaz
de acessar um determinado banco de dados, possa acessar bancos de dados em
outros formatos. Outro exemplo a possibilidade de permitir que servidores de
diferentes plataformas trabalhem em conjunto.
Multithread Capacidade de gerncia e execuo de vrias threads (ver
thread). Define uma caracterstica de um sistema operacional.
ODBC Open DataBase Connectivity: Um mtodo de acesso a banco de
dados desenvolvido pela empresa MicroSoft.

68

Herbert Laroca Mendes Pinto e Jos Lus Braga

ORB Object Request Broker: Um componente no modelo CORBA que


funciona como um middleware entre clientes e servidores.
RMI Remote Method Invocation: Um conjunto de protocolos desenvolvidos pela Sun que permite a comunicao entre objetos desenvolvidos na linguagem Java.
SOAP Simple Object Access Protocol: Um protocolo baseado em XML
utilizado para codificar a informao de mensagens de um Web Service antes
de remete-las para a rede.
Sockets - Mdulos de software que conectam os aplicativos ao protocolo de rede.
Thread Fragmentos de cdigo de um mesmo programa executados de forma independente, concorrentemente.
Web Teia em Ingls, um termo usado para se referir redes de computadores. O termo surgiu devido ao formato de uma teia de aranha lembrar a
disposio fsica de uma rede, com cabos interligando os pontos.
XML Extensible Markup Language: Uma especificao desenvolvida pelo
W3C. Pode ser considerada uma extenso de HTML, permitindo a criao de
tags personalizadas.
Legacy Systems and New Technologies: integration techniques and case study

KEYWORDS
Software Engineering Information Systems Legacy Systems Distributed
Objects

ABSTRACT
This papers aims at introducing the concept of legacy systems and the available
techniques and methods for integrating them into new systems developed under
new technologies, thus increasing their lifetime and usefulness. Legacy systems
play a very important role in the information infrastructure of organizations,
both from a strategic and economic points of view, thus making them worth of
attention and development of new techniques for their seamless integration to
new applications. A simple case study was developed and is presented in the
paper, to demonstrate one of those integration techniques.

8. REFERNCIAS BIBLIOGRFICAS
[Ambl98] Ambler, Scott W.. Anlise e Projeto Orientados a Objeto, 88-371, IBPI Press, 1998
[Asma00] Asman, Paul. Legacy Wrapping, Federal Reserve Bank of New York, November
2000
[Brod95] Brodie, M; Stonebraker, M .. Migrating Legacy Systems: Gateways, Interfaces and
the Incremental Approach, Morgan Kaufmann Publishers, Inc. USA, 1995.
[Chik90] Chikofsky, Elliot J. & Cross II, J.H. Reverse Engineer and Design Recovery: A

Sistemas Legados e as Novas Tecnologias: tcnicas de integrao e estudo de caso.

69

Taxonomy. IEEE Software, 7 (January 1990): 13-17.


[Come00] Comella-Dorda Santiago et al. A Survey of Legacy System Modernization
Approaches, Carnegie Mellon University, April 2000.
[Juric00] Juric, Matjaz B. et al. Integrating Legacy Systems in distributed object Architecture,
Institute of Informatics, University of Maribor, 2000
[Mece99] MECELLA, Massimo; MISSIER, Paolo; MASSARI,Antonio;BATINI,
Carlo.Integration of Highly Fragmented Legacy Information Systems Through Object
Modeling and Layered Wrappers - Proceedings of the 37th Meeting of the Associazione
Italiana per lInformatica ed il Calcolo Automatico (AICA 1999), Abano Terme (PD), Italy,
1999.
[Nave03] Naveen et Al. Web Service Facade for Legacy Applications , Naveen Yajaman,
Microsoft Corporation; Josh Brown, Implement.com; Shanmugam Subramaniam, Tony John,
Narsimha Reddy, and Venkataraman R, Digitial GlobalSoft (offshore division of HP); Andrew
Mason, Microsoft Corporation, 2003
[Plak99] Plakosh, Daniel; Hissam, Scott; & Wallnau, Kurt. Into the Black Box: A Case Study
in Obtaining Visibility into Commercial Software (CMU/SEI-99-TN-010). Pittsburgh, Pa.:
Software Engineering Institute, Carnegie Mellon University. (1999).
[Somm03] Sommerville, Ian. Engenharia de Software, 497-513, Addison-Wesley, 2003.
[Umar97] UMAR A. Application Reengineering Building Web-Based Applications and
Dealing With Legacy. Prentice Hall. 1997
[Weid97] Weiderman, Nelson H.; Bergey, John K.; Smith, Dennis B.; & Tilley, Scott R.
Approaches to Legacy System Evolution (CMU/SEI-97-TR-014 ). Pittsburgh, Pa.: Software
Engineering Institute, Carnegie Mellon University
[W3C03] W3C Web Services Architecture W3C Working Draft 8 August 2003
[Warr98] Ransom, Jane; Sommerville, Ian; Warren Ian. A Method for Assessing Legacy Systems
for Evolution. Computing Dept., Lancaster University, LANCASTER LA1 4YR, UK. 1998

SOBRE OS AUTORES
HERBERT LAROCA MENDES PINTO
Analista Desenvolvimento de Sistemas
Servio Federal de Processamento de Dados - SERPRO.
JOS LUS BRAGA
Professor Titular do Departamento de Informtica da Universidade Federal
de Viosa
Doutor em Informtica pela PUC-Rio
Ps-Doutor em Tecnologias da Informao pela University of Florida
reas de Interesse: ontologias, sistemas de informao cooperativos, engenharia de
software, inteligncia computacional