CORBA – O que é isto?

I ai amigos tudo bem?

A algumas semanas atrás estava conversando com o Miro sobre SOA, WebServices.

E então Miro mencionou uma frase que ficou martelando em minha cabeça:

“Para entender SOA a melhor forma entender as tecnologias que originaram esta arquitetura.”

Sempre estou em alguma pesquisa e neste momento apareceu a Luz no final do Túnel e diante das inúmeras dicas fornecidas por ele comecei a pesquisar sobre o assunto, e atualmente tenho lido sobre CORBA.

Neste post passo uma visão geral de como originou CORBA e o seu real significado:

  • Sistemas Monolíticos e Mainframes
  • Arquitetura Cliente/Servidor
  • Multi-tier Cliente Servidor
  • Sistemas Distribuídos
  • Arquitetura CORBA

Percebará uma certa semelhança com SOA

Corba Overview

Para descobrirmos onde se encaixa CORBA é necessário fazermos brevemente um resumo sobre a evolução de Sistemas Monolíticos à Sistemas Distribuídos, iniciando com o veterano mainframe.

Sistemas Monolíticos e Mainframes

Mainframe
Mainframe

Arquitetura Monolí­tica: É  uma aplicação formada por vários módulos que são compilados separadamente e depois linkados, formando assim um grande sistema onde os módulos podem se interagir.

Mainframe usa uma arquitetura monolítica. Mainframes possuem um custo alto mas tem a capacidade de servir muitos usuários e possuir um gerenciamento central.

Os softwares escritos para mainframes são frequentemente monolíticos isto é a interface com usuário, lógica de negócios e os dados acessados. Porque os terminais burros (dumb terminals) não fazem o processamento, toda aplicação é feito no mainframe.

Arquitetura Cliente/Servidor

Arquitetura Cliente/Servidor é a separação da arquitetura em dois lados (cliente e o servidor).

Cliente e Servidor permitiu a utilização de aplicações distribuídas, ou seja, o banco de dados passou a residir no servidor, e a interface com o usuário passou a residir no cliente.
Este tipo de arquitetura a definimos como computação distribuída em duas camadas (Two-Tier).

Multi-tier Cliente Servidor

Existe um problema com o tradicional Cliente Servidor(two-tier) que o mesmo não suporta uma carga muito grande de usuários e processamentos e para solucionar este problema surgiu n-tier.

Conhecido como three-tier, estas arquiteturas permitem a colocação da lógica da aplicação em uma única camada compartilhavel e facilitam a manutenção das aplicações. São separados por Three logical tiers: Camada de interface com o usuário, a camada de regra de negócio, e a camada de acesso ao banco de dados.

Sistemas Distribuídos

Sistemas distribuídos é próxima grande evolução, pois possui o conceito da arquitetura multi-tier client/server.
A arquitetura sistemas distribuídos possui uma flexibilidade permitindo que software e hardware estejam em lugares distintos, mas transparecendo aos usuários que estão em um único sistema.
Corba

Com a evolução das aplicações de negócios da arquitetura do mainframe monolítico para a alta descentralização da arquitetura distribuída surgiu o CORBA.

CORBA possui um mecanismo padrão que define a interface entre os componentes a Object Management Group (A organização responsável pela padronização e promoção do CORBA).

CORBA permite que vários componentes de uma aplicação mesmo estando separados, ou seja, em linguagens independentes ou sistemas independentes consigam se comunicar entre si, através desta independência CORBA permite que plataformas diferentes possam ser implementadas.

Arquitetura CORBA

CORBA é uma arquitetura, um padrão de arquitetura para sistemas distribuídos. Tem como objetivo definir uma arquitetura para objetos distribuídos e tais objetos são identificados como sendo objetos de referências. Todo serviço que provém de um objeto é conhecido como interface.
Antes de entendermos o que é uma interface (IDL) é necessário compreender o núcleo da arquitetura CORBA que é conhecido como ORB (Object Request Broker).

Object Request Broker(ORB) : é um serviço distribuído que tem como funcionabilidade permitir que objetos localizados remotamente se comuniquem através de envio e recebimento de requisições. Possui como característica a interoperabilidade entre aplicações.

Interoperabilidade é mais importante em sistemas distribuídos quanto à portabilidade. (Sun Developer Network).

Interface Definition Language (IDL): especificam interfaces entre objetos, Uma interface IDL possui a capacidade de ser mapeada para outras linguagens de programação. Ou seja, um cliente escrito em C++ pode se comunicar com um servidor escrito em JAVA, que  se comunica com outro servidor escrito em COBOL.

Finalizando…

Lembrando que não sou um expert neste assunto, se falei algo errado por favor estejam a vontade para discutirmos o assunto e assim aprender ainda mais.

Abraços…

Referências:

Introduction to CORBA : Sun Developer Network – Acesso Dezembro 2008

Rosemberger, Jeremy :  Corba 14 in Days


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s