PROGRAMA
DE
PÓS-GRADUAÇÃO
EM
CIÊNCIA
DA
COMPUTAÇÃO
MARCELO
COSTA
CAMPOS
UMA
IMPLEMENTAÇÃO
DO
SERVIÇO
DE
PERSISTÊNCIA
CORBA
PARA INTEGRAÇÃO
DE
BASES
DE DADOS
Dissertação submetida à Universidade Federal
de
Santa Catarinacomo
parte dosrequisitos para a obtenção
do Grau
de Mestreem
Ciência daComputação
JOÃO
BOSCO MANGUEIRA SOBRAL
PERSISTÊN
CIA
CORBA
PARA INTEGRAÇÃO DE
BASES
DE
DADOS
MARCELO
COSTA
CAMPOS
Esta Dissertação foi julgada
adequada
para a obtençãodo
título de Mestreem
Ciênciada Computação, Área
de Concentração Sistemas deComputação
e aprovadaem
suaforma
final peloPrograma
dePós-Graduação
em
Ciênciada Computação.
Ferna o
Álva~
(C rdenadordo
PPGCC)
g
/ ' ' 'Vê
Q
'ä z,
Prof ão =- ‹
Mn
- a Sobral, Dr.(Or tad
<
I4LWQ
Pro ão
ãâ
a eira obral, Dr.`.. Ú4
1/1”z).›l,._-_
,-3/zâzz.¡flI
P
f J geMuniz
Ba
toDr
B//WM/7f¿>
//QM
Prof.
Bemardo
Gon
es Ri o, Dr.porque não
acreditamos queo
homem
seja produtodo
meio,mas
sim,que
omeio
é produtodo
homem
"esteve e estará ao nosso lado ajudando e
abençoando
todos osmomentos
de nossas vidas.O
meu
agradecimento especial vai para toda aminha
família,em
especial aosmeus
pais, irmãos, avós, tios, primos e paraPriscilla a
minha
futura esposa.Não
deixo de fazer referênciasaos funcionários da Faculdade
Cândido Rondon,
professoresdo
mestrado da Universidade Federal de Santa Catarina, aosmeus
colegas de sala e para o professor Cristiano Maciel,LISTA
DE
FIGURAS
... ..LISTA
DE
TABELAS
... ..LISTA
DE
SIGLAS
... ..RESUMO
... ._ABSTRACT
... ..¿ ... .. 1.INTRODUÇAO
... .. l.l. Trabalhos Correlatos ... .. 1.2. Organizaçãodo
Trabalho ... .. 2.PERSISTÉNCIA
DE
OBJETOS
... .. 2.1. Conceitos Básicos ... .. 2.2. Estado deum
Objeto ... ..2.3.
Meios
deArmazenamento
de Objetos ... ..2.3.1. Arquivos Flat ... ..
2.3.2.
Banco
deDados
... ..2.3.2.1.
Banco
deDados
Relacional ... ..2.3.2.2.
Banco
deDados
Objeto Relacional ... ..2.3.2.3.
Banco
deDados
Orientado a Objetos .... ..2.4. Objetos Persistentes ... ..
2.5. Finalidade
da
Persistência ... ..2.5.1. Suporte para
Armazenamento
de Objetos2.5.2. lndependência de
Bancos
deDados
...2.5.3. Arquitetura Aberta ... ..
2.6.
Abordagens
para Implementação de Persistência2.7. Estratégia de Persistência ... _.
2.8. Persistência para Aplicação
JAVA
... ..2.8.1.
Formas
de Persistênciaem
JAVA
... ..2.8.2. Serialização de Objetos ... ..
3.
ARQUITETURA
CORBA
... ..3.1. Utilização da Padronização
CORBA
... ..3.1 .1 .
Vantagens
e Desvantagens ... ..3.2. Serviços e facilidades
CORBA
... ._3.3. Visão Geral
da
ArquiteturaCORBA
... _.4.
SER
VIÇO
DE
PERSISTÊNCIA
DO
CORBA
... .. 4.1.1.Concepção do
PSS
... .. 4.1.2.Linguagem
PSDL
... .. 4.2.Implementação do
PSS
... .. 4.2.1.Definição do
PSDL
... ._ ... ..40
4.1.
PSS
(Persistent State Service) ... .. ... ..40
... .. 41 ... ..
44
... .. 45 ... ._46
4.2.2.Implementação
do
Exemplo
... ..48
4.2.3. Interfacesdo
PSS
... .. 5.O
SER
VIÇO
DE
PERSISTÊNCIA
(PSS) ... ._ 5.1.Desenvolvimento do
ServiçoPSS
... .. 50 ... ..52
... .. 52
5.1.1.
Ambiente
deDesenvolvimento
... _. 52 5.1.2. Aspectos para aImplementação
do
PSS
... .. 5.1.3.Funcionamento do
ServiçoPSS
Padrão ... .. 5.2.Funcionamento do
ServiçoImplementado
... .. 5.3. Fasesda Implementação do
Serviço ... .. 5.3.1. Servidorda
Aplicação(SERVER)
... .. 5.3.2. Cliente da Aplicação(CLIENTE)
... .. 5.3.3.Métodos
daImplementação
... .. 5.3.4.Implementando o
Serviço de PersistênciaPSS
5.3.5. Serviçodo
VisiBroker ... .. 5.4. Importânciado
Serviço de Persistência (PSS) ... ._ 6.CONCLUSÃO
... ..ANEXOA
_CÓDIGO
PERSISTENTE
OA
VA) ... .. REFERÊNCIASB1BL1OGRÁF1cAs..._..._...fx:fÍÍÍÍ.Í.ÍffÍ:Í:.:...Í:...ANEXO E-BASE
DE
cONHEc1MENTO...ÃÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ..Í..Íf.Íf..IfÍ..fANEXO C
_
FONTES
DO
SISTEAEA
... .. ... .. 53 ... ..54
... ..57
... ..59
... .. 61 ... ._ 63 ... ..64
... .. 65 ... ..67
... .. 68 <?'<zš'zäC'.š'Figura
2.1- Situação necessáriade
armazenamento
objetos,SESSIONS
(1996)....14
Figura
2.2- Situaçãode
Armazenamento
de
Informações,SESSIONS
(1996) 15Figura
2.3-Arquitetura
do
Serviço Persistência,SESSIONS
(1996) ...15
Figura
2.4- Níveisda
Interfacedo
Serviçode
Persistência,SESSIONS
(1996) 17Figura
2.5-Arquitetura
JDBC
(Sistemas Persistentes),LINS
(2000) ... 21Figura
3.1-Estrutura
do
OMA,
ORF
ALI
(1997) ... .. ... ..28
Figura
3.2- Requisiçãodo
Clientepara
uma
Implementação,
OTTE
(1996) ... ..36
Figura
3.3-Estrutura de
uma
Implementação
de
Objeto,OTTE
(1996) ... ..39
Figura
4.1Estrutura
do
Serviçode PSS,
BROSE
(2001) ... ... .. 42Figura
4.2-Arquitetura
do
Serviçode PSS,
BROSE
(2001) .... . ... ..44
Figura
4.3-Estrutura
da
Linguagem
PSDL
... ... .. . ... ..45
Figura
4.4-Arquivo
PSDL
-
InterfaceMeeting
... ..46
Figura
4.5-Arquivo
PSDL
-
Interface Class MeetingState ... ..47
Figura
4.6-Arquivo
PSDL
-
Interface Meeting.psdl ... ..48
Figura
4.7-Implementação do
MeetingServant
... ..49
Figura
4.8-Implementação
dosMétodo
do
MeetingServant
... ... ..49
Figura
4.9-Implementação do
MeetingServer
... ... ..50
Figura
4.10 -Módulo
CosPersistentState ... .. 51Figura
5.1- Serviçode
PersistênciaPSS
... .. 53Figura
5.2Gerar
Arquivo
PSDL
-
CACHÉ
4(JAVA)
... ..55
Figura
5.3Arquivo
PSDL
- Veículo ... ..56
Figura
5.4- Definiçãoda Base de
Conhecimento
... ..58
Figura
5.5-Funcionamento do
Serviço PersistênciaPSS
...59
Figura
5.6-Fases
e Processosda Implementação
... ... ..60
Figura
5.7-Servidor
da
Aplicação
... .. . ... .. 61Figura
5.8-Objeto
ServidorDesenvolvido
... ..63
Figura
5.9- Clienteda
Aplicação ... ..64
Figura
5.10-Configuração
do
Módulo
IDL
... ..65
Figura
5.11-Objeto
PersistenteDesenvolvido
... ..67
Figura
5.12- ServiçoOSAGENT
do
VisiBroker
... ..67
Tabela
5.1-Objetos
da
AplicaçãoDesenvolvidos
... ..API
ACID
BDR
BDOR
BDOO
COSS
COS
CORBA
GOP
IDL
JDBC
ODBC
OMG
ORB
ORDBMS
OODBMS
POS
PSDL
PSS
SGBD
SQL
Aplícation
Programmer
Interface «A
I
(Atomicidade, Concorrencia, Isolamento e Durabilidade)
Banco
deDados
Relacional 'Banco
deDados
Objeto RelacionalBanco
deDados
Orientadoa
ObjetosCommon
Object Services SpectficationsCommon
Object ServicesCommon
Object RequestBroker
ArchitectureGateway-Based
Object PersístenceInterface Definítion
Language
Java DataBase
C
onnectivityOpen
DataBase
ConnectivityObject
Management Group
Object Request
Broker
Object-Relational
DBMS
Object-Oríented
DBMS
Persistent Object Service
Persistent State Definition
Language
Persistent State Service
Sistema Gerenciador de
Banco
deDados
Este trabalho esta inserido
no
contexto de Objetos Distribuídos e versa sobre o desenvolvimento deum
serviçode
persistência de objetos, apropriadoao
contexto daí
arquitetura
CORBA.
A
implementação do
serviço de persistência utiliza produtos queestão
em
conformidade
com
o
padrãoCORBA
e foi desenvolvido baseando-se nalinguagem
de programação
JAVA.
O
modelo do
Serviço de Persistênciaimplementado
apresenta-secomo
o
mediador
entre a aplicação eo
sistema dearmazenamento
de dados.O
Persistent State Service (PSS)especificado pelo padrão
CORBA,
procura facilitar o gerenciamento demudanças
(alteração
da
estrutura deum
objeto,novos
serviços e novas regrasde
negócios) evitando a necessidade de re-compilação dos objetos de serviço.Assim
é que, a possibilidade de interoperar estas distintas tecnologias utilizando as características deum
sistema distribuído,toma
este trabalho capaz de identificar as vantagens encontradas nesse tipo de sistema, taiscomo: maior
escalabilidade,desempenho,
interoperabilidade, segurança e rapidezem
suas transações, seguindoo
Serviço de Persistência de Objetos. Abordar-se-a implementaçãodo
Serviço de Persistência de Objetos PSS,que
é objeto depesquisa deste trabalho,
com
ênfase na utilizaçãoda
arquiteturaCORBA
e desenvolvidona linguagem de
programação
JAVA.
Possibilitando a interoperabilidadeda
aplicaçãoThis inserted
work
this in the Distributed Object context andtums on
thedevelopment
of
a service of object persistence, appropriate to the contextof
architectureCORBA.
The
implementationof
the persistence service uses products that are in compliance withstandard
CORBA
and were
developed being basedon
theprogramming
languageJAVA
The
model of
theimplemented
Serviceof
Persistence is presented as the mediatorbetween
the application and the systemof
storage of data.The
Persistent State Service (PSS) specifiedby
standardCORBA,
looks for to facilitate themanagement
of changes(alteration of the structure of an object,
new
services andnew
business-oriented rules)preventing the recompilation necessity
of
service objects.Thus
it is that, the possibilityof
interoperar these distinct technologies using the characteristicsof
a distributedsystem,
becomes
thiswork
capable to identify the advantages found in this typeof
system, such as: escalabilidade,
perfomance,
interoperabilidade, security and rapidity inits transactions, following the Service of Object Persistence.
To
approach it implementation of the Serviceof
Object Persistence PSS, that is objectof
research of this work, with emphasis in the use of developed architectureCORBA
and
in theprogramming
languageJAVA.
Making
possible the interoperabilidadeof
the1.
INTRODUÇÃO
O
presente trabalho situa-se na área decomputação
com
seus respectivos objetosdistribuídos e versa sobre
o
desenvolvimento deum
serviço de persistência de objetos,apropriado ao contexto da arquitetura
CORBA.
O
fatode
que
uma
aplicação cria objetosem
tempo
deexecução
eque
não é possívelmanter
esses objetos criados namemória
deum
computador
porum
tempo
ilimitado e,que
após a finalização daexecução
deuma
aplicação,pode
causar a necessidade de searmazenar
esses objetosem
meios
fisicos e seguroscomo
banco
de dados. Isso fazcom
que
essearmazenamento
proporcione a sobrevivência dosmesmos
após aexecução
daaplicação, caracterizando assim,
o
quevem
a ser a persistênciade
objetos.Um
objeto é dito persistentequando o
seu ciclo de vida vaialém
dos limites da aplicaçãoque
o criou. Isto significaque o
objetodeve
ser gravadoem um
meio
dearmazenamento como,
por exemplo,um
arquivo,um
banco
dedados
relacional(BDR),
um
banco
de dados objeto relacional(BDOR)
ou
num
banco
de dados orientado aobjetos
(BDOO).
Existem alguns serviços de persistência de objetos
como:
oJDBC
(JavaDataBase
Connectivity)
em
Java eo
PSS
(Persístent State Service)na
arquiteturaCORBA.
Nestetrabalho será abordado o PSS,
no
sentido de se estudaro
serviço de persistênciaCORBA.
Ressalta-se que oPSS
fomece
uma
interface única para armazenaro
estadopersistente dos objetos
em
uma
variedade de dispositivos dearmazenamento,
taiscomo:
BDR,
BDOR,
BDOO
e arquivos,PEREIRA
(2000).A
motivação
deste trabalho estáno
estudodo
Serviço de PersistênciaCORBA,
voltadopara a interoperabilidade nas diversas tecnologias de
armazenamento.
Um
objeto distribuído é essencialmenteum
artefato de software,que pode
interoperarcom
outros objetos distribuídos através de sistemas operacionais, redes, linguagens,existe a tendência de se construir sistemas computacionais abertos utilizando objetos
distribuídos,
ORFALI
(1997).Os
objetos distribuídoscompõem
aplicações distribuídas. Esses objetos sãodesenvolvidos de acordo
com
um
modelo,com
as características de herança. Daío
fatode os
mesmos
possuíremuma
caracteristica fundamental para desenvolvedores deaplicativos, a reutilização. Pois é possível reutilizar objetos de
um
outro sistemadesenvolvido
em
outra linguagem de programação. Para serem reutilizados, essesobjetos
devem
ser persistidos,ou
seja, armazenados.1.1.
Trabalhos
Correlatos
Alguns
trabalhos já publicados, relacionados à persistência de objetos, apresentam oseguinte contexto histórico: ›
Em
LINS
(2000), encontra-seo
desenvolvimento de Sistemas Persistentesem
.lavacom
J
DBC,
onde
são colocadas as vantagens e desvantagensna
utilizaçãoda
interface JDBC
para desenvolver sistemas
com
um
serviço de persistência.Já
em
COSTA
(2000), vê-se o desenvolvimento de aplicações distribuídascom
JavaeCORBA
éabordado
visando a integraçãocom
bancos de dados relacional e orientados aobjetos.
Em
PEREIRA
(2000), observa-seuma
nova abordagem
para persistência de objetosem
ambiente distribuído, tendo
como
base o serviço de persistênciaPSS
especificado pelaOMG.
O
serviço desenvolvidotem
o propósito de integrar tecnologias de bancos de dados,além
de reduzir otempo
de desenvolvimento e a complexidade das aplicações.1.2.
Organização do
Trabalho
O
presente trabalho mostracomo uma
aplicaçãocom
objetosJAVA,
pode
usaruma
implementação do
PSS, para a sua utilizaçãoem
diversos sistemas gerenciadores debanco de
dados, independente defomecedores
(MySQL,
SQL
Server, Oracle 9i,DB2,
CACHÉ,
entre outros). Perante a diversidadede
bancos de dados existentes, foramescolhidos para a realização deste estudo,
o banco de
dados relacionalSQL
Server2000
e
o banco
de dados objeto relacionalCACHÉ
4.O
presente trabalho está organizadoem
seis capitulos.No
segundo capítulo faz-se a apresentação dos fundamentos técnicos sobre persistência de objetos.O
terceiro capítulo apresenta osfundamentos da
arquiteturaCORBA,
ressaltandoo que
é necessário parao
desenvolvimento deste trabalho.
No
quarto capitulo é enfocadoo
estudo sobreo
Serviçode
PersistênciaCORBA,
proporcionado pelo PSS.O
quinto capítulocontém
uma
implementação do
serviço de persistência de objeto PSS, utilizadonuma
aplicação2.
PERSISTÊNCIA
DE OBJETOS
Este capítulo descreve a conceituação básica sobre persistência de objetos.
Nele
sãoabordados
os conceitos básicosdo
serviço de persistência, finalidadeda
persistência,arquitetura
do
serviço e utilização de persistência para aplicaçõesJAVA.
2.1.
Conceitos
Básicos
O
serviço de persistência de objetos defineuma
interface única para0 armazenamento
persistente
do
estado dos objetos nos diversosmeios
de armazenamento, incluindoBancos de Dados
Orientado a Objeto(ODBMS),
Bancos
deDados
Relacionais,Bancos
de
Dados
Objeto-Relacional etambém,
arquivos simples.Este serviço de persistência e'
uma
especificação padronizada paraque
as aplicações
possam
armazenar e restaurar os objetos nestesmeios
de armazenamento. Este padrãode especificação
vem
impactarcom
as tradicionais aplicações de fomecedores parao
armazenamento
de objetosem
banco
de dados. Entretanto, os fornecedores dasaplicações para
armazenamento
em
banco
de dados orientados a objetos visualizaram areal necessidade de agregar esta especificação
em
suas interfaces e processos,SESSIONS
(1996).2.2.
Estado de
um
Objeto
O
estadodo
objetopode
ser considerado de duas partes: o estado dinâmico, que estátipicamente
na
memória
e não fazendo partedo
ciclo de vidado
objetocomo
um
todoeo
estado persistente, usado para construiro
estado dinâmico,MCCARTY
( l 999).2.3.
Meios
de
Armazenamento
de Objetos
2.3.1.
Arquivos
Flat
Um
arquivo éuma
estrutura de dados residenteem
memória
auxiliar,que
consistenum
mesmo
em
número
indeterminado,ALCALDE
(l99l).Um
registrológico,
ou
simplesmente registro é cadaum
doscomponentes do
arquivo,contendo
oconjunto de infonnações
que
são tratadas deforma
unitária.É
constituído porum
oumais
elementosdenominados
campos, quepodem
ser de diferentes tipos eque
por suavez
podem
sercompostos
por sub-campos.Se
um
arquivocontém
a informação deum
conjunto de indivíduosou
objetos, os seusregistros
contêm
a informação de cadaum
deles e os campos, os diferentes dadosque
acompõem,
ALCALDE
(l99l).Um
registro fisicoou
blococorrespondem
à quantidade de informaçãoque
se transfereem
cada operaçao de acesso (leituraou
gravação).Convém
distinguir claramente os conceitos de registros lógicos e registros físicos.A
diferença é
que
enquantoo
tamanho
e o formatodo
registro lógico são definidos pelo programador, otamanho do
registro fisicovem
dado
pelas características físicasdo
computador
utilizado.Em
geral,um
registro fisico (bloco)pode
conterum
ou
mais registros lógicos,mas
também
pode
acontecer deum
registro lógico ocupar mais deum
registro fisico.No
primeiro caso, diz-se que os registros estão
em
blocos,denominando-se
fator deblocagem o
número
de registros lógicos que cada registro fisico contém.Para poder selecionar
um
registrodo
conjunto quecompõe
o arquivo, necessita-se deum
dado
identificadorque
o diferencie dos demais.Denomina-se campo-chave o
campo
especialdo
registroque
sewe
para identificá-lo.Alguns
arquivosnão têm campo-chave
nos seus registros, enquanto outros
podem
ter vários, recebendo estes-onome
de chaveprimária
ou
secundária,ALCALDE
(l99l).As
principais características dessa estrutura de dados são as seguintes:0 Residência
em
suporte de informação externo,também chamado
dememória
secundáriaou
auxiliar,como
as fitas e os discos magnéticos.0 Independência
com
relaçãoao programa,
oque
significaque
a vidado
que
em
diferentesmomentos
pode-se fazer usodo
mesmo
arquivoem
diferentes programas.0
Permanência
das informações armazenadas,ou
seja, a informaçãocontida
num
arquivo não desaparecequando o computador
é desligado,diferentemente das infom1ações
armazenadas
namemória
principal.e
Grande
capacidade dearmazenamento,
sendo esta capacidadeteoricamente ilimitada; por outro lado, as estruturas de dados residentes
na
memória
principaltêm
o seutamanho
limitado pela sua capacidade.2.3.2.
Banco
de
Dados
A
tecnologia aplicada aosmétodos
dearmazenamento
de informaçõesvem
crescendo egerando
um
impacto cada vezmaior
no
uso de computadores,em
qualquer áreaem
que
os
mesmos podem
ser aplicados,TEIXEIRA
(1996).Um
banco
dedados pode
ser definidocomo
um
conjunto de dadosdevidamente
relacionados. Por
dados
compreende-secomo
fatos conhecidos quepodem
serarmazenados
eque possuem
um
significado implícito. Porém,o
significadodo termo
banco
de dados émais
restrito que simplesmente a definição dada acima.Um
banco
dedados
possui as seguintes propriedades:o
um
banco
dedados
éuma
coleção lógica coerente de dadoscom
um
significadoinerente;
0
um
banco
dedados
é projetado, construído e preenchidocom
dados paraum
propósito específico;0
um
banco
dedados
possuium
conjunto pré-definido de usuários e aplicações;0
um
banco
de dados representaalgum
aspectodo
mundo
real, o qual e'chamado
demini-mundo,
e qualquer alteração efetuada nomini-mundo
e automaticamente refletidano banco
de dados.Um
banco
dedados pode
ser criado e mantido porum
conjunto de aplicações desenvolvidas especialmente para a tarefa dearmazenagem
de dadosou
porum
SistemaGerenciador de
Banco
deDados
(SGBD).
Um
SGBD
permite aos usuários criarem emanipularem
bancos de dados de propósito geral.O
conjuntoformado
porum
banco
dedados,
mais
as aplicaçõesque
manipulam o
mesmo
échamado
de Sistema Gerenciadorde
Banco
de Dados,TEIXEIRA
(l996).2.3.2.1.
Banco
de
Dados
Relacional
O
modelo
de dados relacional representa os dados através deum
conjunto de relações(tabelas). Estas relações
contêm
informações sobre entidades e relacionamentosexistentes
no domínio
da aplicação utilizadacomo
alvo para amodelagem.
lnfonnalmente
uma
relaçãopode
ser consideradacomo uma
tabela de valores,onde
cada
linha desta tabela representauma
coleção de valores de dados inter-relacionados.Nesse
contexto, esses conjuntos de valorespodem
estar representandouma
instânciade
uma
entidadeou
relacionamento da aplicação.Os nomes
fomecidos
às tabelas e àssuas colunas
podem
auxiliar nacompreensão do
significado dos valoresarmazenados
em
cadauma
das suas linhas.Em
uma
terminologiado modelo
relacional, cada linha da relação édenominada
de tupla,0
nome
da coluna édenominado
atributoda
relação,MCCARTY
(I999).O
domínio
consiste deum
grupo de valores atômicos nos quaisum
ou mais
atributo (ou colunas) retiram seus valores reais.O
esquema
deuma
relação consiste deum
conjuntode atributos que
descrevem
as características dos elementos a serem modelados.Os
domínios
nos quais os atributos da relação retiram seus valoresnão
precisam sernecessariamente distintos,
THOMPSON
(2002).Como
esquema
deum
banco de dados relacional entende-se o conjunto de intenções definidas para todas as relações das informações,em um
conjunto de restrições deintegridade. Sobre os
nomes
fornecidos aos atributos, é permitido àqueles querepresentam conceitos semelhantes, possuir ou não o
mesmo
nome
em
diferentesrelações.
Da mesma
fonna, atributos representando conceitos diferentespodem
possuirvalores dos atributos
devem
obedecerquando
apareceremem
uma
relação,THOMPSON
(2002).2.3.2.2.
Banco
de
Dados
Objeto
Relacional
O
banco de dados
objeto relacional éuma
tecnologiacom
um
modelo
de dadosrelacional estendido, visando ser
mais
representativoem
semântica e construções demodelagens. Estes
SGBDs
surgiramda
necessidade das aplicaçõesem
utilizar certascaracterísticas orientadas a objetos,
sem
no
entanto, desconsiderar os grandesinvestimentos que foram feitos nos
SGBDs
relacionais.Relacional estendido e objeto relacional são sinônimos para produtos
que
tentamunificar aspectos de
modelo
relacional edo
orientado a objetos.Como
uma
tecnologia evolucionária, aabordagem
objeto relacionaltem
herdado as transações robustas e ascaracterísticas de gerenciamento de performance
do
relacional e a flexibilidadedo
orientado a objetos,
NASSU
(1999).Uma
das principais características é permitirque
o usuário defina tipos adicionais dedados, especificando a estrutura e a
forma
de operá-lo. Assim, osdados
sãoarmazenados
em
suaforma
natural.Além
dos tipos-base já existentes, é permitido ao usuário criarnovos
tipos e trabalharcom
dadoscomplexos
como
imagens,som
e vídeo. Outra caracteristica importante deum
BDOR
é vista na utilização de herança, funçõese operações definidas pelos usuários.Esta
nova
classe de banco de dadoscombina
a velocidade e a capacidade decrescimento de
um
modelo
multidimensional transacionalcom
o
poder e a flexibilidade da tecnologia de objetos.Devido
à suas características únicas, os bancos dedados
objetorelacionais são ideais para o desenvolvimento de aplicações de processamento de
transações de elevado desempenho,
NASSU
(l 999).Os
modelos
multidimensionais facilitam bastante amodelagem
dos dados, poisaspectos a
assumirem
uma
forma que
possa ser digerida pelatecnologia.
Além
disso, há consideráveis vantagens durante aexecução
deprocessamentos complexos,
NASSU
(1999).2.3.2.3.
Banco
de
Dados
Orientado
a
Objetos
O
modelo
deBanco
deDados
Orientado a Objetos éuma
tecnologiaque
integrabanco
de
dados
e a tecnologia de orientação a objetos. Aplicações de linguagens orientadas aobjeto e sistemas estão exigindo capacidades de
banco
de dados, taiscomo
continuidade, simultaneidade e transações nos seus ambientes,
KHOSHAFIAN
(l 994).Através
de
construções orientadas a objetos, os usuáriospodem
encapsular os detalhesda implementação
de seus módulos, compartilhar a referência a objetos e expandir seussistemas através de
módulos
existentes.A
fimcionalidade debanco
de dados énecessária para assegurar
o
compartilhamento concomitante e a continuidade dasinformações nas aplicações. Através dos bancos de dados, o usuário
pode
obtero
estadoem
que
os objetos seencontram
e estar atualizando entre as várias solicitações deum
programa. Vários usuários
podem
aomesmo
tempo
compartilhar as informações,KHOSHAFIAN
(1994).A
orientação a objetos édefinida
como
:Orientação
a
Objeto=
tipos dedados
abstratas+
Herança
+
Identidade
do
objetoProcessos de bancos de dados são definidas assim :
Processos
bancos
dedados
=
continuídade+
concomitância
+
transações
+
recuperação
+
filtragem
+
integridade
+
segurança
+
desempenho
Bancos
dedados
orientado a objeto são, portanto,definidos
como
segue :Bancos
deDados
Orientadoa
Objetos=
Orientaçãoa
Objetos+
Aptídões de
Bancos
deDados
Os
bancos de dados orientados a objetoeliminam o
assimchamado
hiato semânticoentre
o
campo
da ação deuma
aplicação e sua representaçãono armazenamento
consistente.
Desde que o
mundo
real sejamodelado
corretamente, as ligações e relaçõesentre suas entidades são representadas e manipuladas diretamente.
Os
bancos de dadosorientados a objetos
propõem
esta habilidade através dos conceitos orientados a objetodos tipos de
dados
abstratos, herança e identidadedo
objeto,KHOSHAFIAN
(l 994).Os
bancos de dados orientados a objetotambém
reduzem
a impedânciada
mistura entreas linguagens de
programação
e os sistemas de gerenciamento debanco de
dados.Em
aplicações complexas, o
dado
é recuperado deum
sistema gerenciador de bancos dedados usando
uma
linguagem de filtragem debanco
de dados e é entãomanipulado
porrotinas desenvolvidas
em
uma
linguagem de programação,KHOSHAFIAN
(1994).2.4.
Objetos
Persistentes
A
orientação a objetosvem
tomando-se
rapidamente omodelo
deprogramação
denovas aplicações.
Desde
então, muitosprogramas
necessitam tratarcom
objetospersistentes,
NASSU
(1999).A
própria persistênciapode
serdefinida
como
sendo osobjetos
que
sobrevivem aosprogramas
responsáveis por sua criação.2.5.
Finalidade
da
Persistência
Suporte centralizado, constituido sob
uma
única interface apropriada paraamtazenamento de
objetosem
bancos
dedados
relacionais,bancos
dedados
objetos relacionais, bancos de
dados
orientado a objetosou
em
sistemas de arquivos;e Independência de
banco
de dados,onde
utilizaráuma
simples interfaceno
cliente para
armazenar
objetosem
diferentesbanco de
dados, utilizandoum
mecanismo
simples paraimplementar
o suporte a objetos ;6 Arquitetura aberta,
onde
irá permitirque novos
produtos debanco
dedados
possa agregar e se
comunicar
com
os objetosem
qualquermomento
da
fase de desenvolvimentoda
aplicação.2.5.1.
Suporte
para
Armazenamento
de Objetos
O
serviçode
persistênciade
objetos ofereceuma
solução simplificada para oarmazenamento
de objetos.Os
bancos dedados
orientados a objetos são produtoshabilitados para o
amiazenamento
de qualquer objeto,independendo da
escolhado
formato
na
suaimplementação
e utilização.Como
apresentadona
figura
2.1, pode-seobter casos
em
que
os objetospodem
serarmazenados somente
em
banco de dados
orientado a objetos,
SESSIONS
(l99(›).Aplicação e
f
objetos
Banco Dados
Il
;flfICD [;3;OS f” Orientado a ~ r Objetos _-K.Oi
HQ...li
Sã
I .Figura
2.1- Situação necessáriade
armazenamento
objetos,SESSIONS
(1996)\
Este fato é
que
em
diferentesempresas
a realidade e'muito
diferenteda
visão projetadade informações
em
bancos de dados orientado a objetos. Atualmente, as empresaspossuem
e utilizam diversos produtos dearmazenamento
de informaçõescomo
osdescritos
na figura
2.2.O
serviço ofereceuma
interface para oarmazenamento
deobjetos para as diferentes bases de dados tais
como
arquivos de dados,banco
de dadosrelacional, base de
dados
objeto relacional., Aplicação e Objetos
E
øM_#_W_ É Arquivoso
,,,,,,,,, ,_```````/
BD
Relacional <ÂL\
z
/í
.//
CD
/BD
HierárquicoU
l//,ff/
\~
BD
OrientadoQ
ObjetosFigura
2.2- Situaçãode
Armazenamento
de
Informações,SESSIONS
(1996)Banco Dados
A
visãodo
serviço de persistência de objetos é mostradana figura
2.3.Aplicaçãoe Objetos
:J
WWW*
ArquiVOS ... . ~Ma~~~- ~~~~ --»«~---›BD
Relacional ~»~‹~»- ~«-~--›BD
Hierárquico“W
_,¿,,___,_.,i...__í____ ,,,,,_,__M›í
B
BD
Orientado ObjetosFigura
2.3-Arquitetura
do
Serviço Persistência,SESSIONS
(1996)Banco Dados
PERS STENT OBJECT SERV CECom
o crescente e rápido interesse das corporaçõesno
desenvolvimento de aplicaçõesutilizando linguagens orientadas a objetos,
não
ocorre omesmo
para os bancos de dados orientado a objeto pois a razão éque
no mercado
e nas grandesempresas
se encontram as maiorias das informaçõesarmazenadas
em
banco de
dados tradicionais e a maioria dos aplicativosforam
desenvolvidos antes desta especificação.2.5.2.
Independência de
Bancos
de
Dados
A
independência de bancos dedados
das aplicações para os clientes, está diferenciada para as aplicações e interfaces para o usuário final.Os
códigos das interfaces dos usuários utilizam objetosque
podem
suportaro
serviço de persistência de objetos,em
grande escala, independente
do banco
dedados que
estáarmazenando
as informações,SESSIONS
(l996).Atualmente
é possível desenvolver aplicações para cliente que estãoem
totalindependência
com
obanco
de dados dearmazenamento, onde
esta éuma
importantefinalidade
do
serviço de persistênciade
objeto. Isso implica dizerque
amais
importante finalidadeda
independência debanco
dedados
para os clientes é mantero banco
dedados
independente,mas
contendoo
mesmo
niveldo
objeto. Entretanto, a independência de bancos de dados das aplicações servidoras, setoma
mais críticaque
as aplicações cliente,SESSIONS
(1996).Assim
a finalidade da implementação deste serviço de objetos estáem
habilitar as suasclasses e objetos para
uma
possível requisição da interface cliente, onde, se possuir a necessidade de adicionar novos códigos para a independência de bancos de dados, issoserá possível desenvolvendo poucas linhas de códigos.
2.5.3.
Arquitetura Aberta
O
serviço de persistência de objetopode
ser considerado para a integração edependência dos objetos entre dois sistemas imaginários,
SESSIONS
(l996). Estel I APL|cAÇAo CLIENTE (cÓ0|<5os c|_|ENTE› sERv|Ço PERs|sTÊNc|A
í
a
INTERFACEBANCO
DADOS
Figura
2.4- Níveisda
Interfacedo
Serviçode
Persistência,SESSIONS
(1996)A
primeira interface utilizada pelo códigoda
aplicaçãodo
cliente é a interfaceque
garante a independência de
banco
de dados.A
segunda éo
conjunto de interfacesque
conecta
com
os diferentes bancos de dados.Porém,
é esta interfaceque
garante a arquitetura aberta,que
proporciona todas as conexõesda
aplicaçãocom
os bancos de dados.2.6.
Abordagens
para
Implementação
de
Persistência
Numa
perspectiva metodológica, verifica-seque
existem três abordagens para implementaro
serviço de persistênciaem
programação
orientada a objetos:0
GOP
(Gateway-based
Object Persistence): implicaem
adicionarem
programação
orientada a objetos, acessos para armazenar dados persistentesusando
o tradicionalarmazenamento
de dados não orientado a objeto.É
usadoem
casosonde
o usuário quer escrever aplicações usandomodelos
deprogramação
orientada a objetos,onde o amiazenamento
de dados não é feitoatravés da orientação a objetos.
Um
exemplo
é aarmazenagem
de objetosem
0
ORDBMS
(Object-reliationalDBMS):
são construídoscom
a premissa deque
estender
o
modelo
relacional éo melhor caminho
para novas aplicaçõesorientadas a objetos. _Levando-se
em
consideraçãoque
osmodelos
relacionaisestão
sendo
bem
sucedidos na prática eo
SQL
consideradoum
padrão global,o
ORDBMS
adiciona suportes paramodelagem
de dados orientada a objetos para estenderambos
modelos
de dados relacionais e linguagem de consulta, enquantoque
as características da tecnologia dosDBMSS
relacionaisficam
relativamenteintactas.
‹›
OODBMS
(Object-oríentedDBMS):
são construídoscom
o
principio deque
o
melhor caminho
para adicionar persistência de objetos é fazer objetospersistentes
que
são utilizadosem
linguagens orientadas a objetos. Pelo fato dosOODBMS
terem suas origens nas linguagens orientadas a objetos, eles sãofreqüentemente considerados
como
sistemas persistentes de linguagens deprogramação.
De
qualquer forma,OODBMS
vai muitoalém
de simples adiçãode persistência
em
qualqueruma
das linguagens deprogramação
orientadas aobjetos.
OODBMS
suporta avançosem
aplicações debanco
dedados
orientados a objetoscom
característicascomo
suporte para objetos persistentesem
mais deuma
linguagem de programação, distribuição de dados, versões, generalizaçãodinâmica
denovos
tipos, entre outras.2.7.
Estratégia
de
Persistência
As
abordagensacima
descritas, cada qualcom
suas características específicas, serviram decaminho
para orientar a temática deste trabalho.Nas
literaturas utilizadas, detecta-se a existência deum
padrão dearmazenamento
deobjetos
que
foi desenvolvido sobre padrões existentes de linguagens de programação, objetos e bancos de dadoscom
o
objetivo de simplificar oarmazenamento
de objetosegarantir a portabilidade das aplicações. Este padrão estende Java,
C%+
e Smaltalkcom
facilidades completas para
programação
de bancos de dados, de talforma que
osPode-se
am1azenar
objetos diretamenteem
banco
de dados relacionais, objeto-relacional e orientado a objetos,que
sejam compatíveiscom
o
este padrao,SESSIONS
(1996).Com
o
propósito de facilitaro
gerenciamento demudanças, além
de reduziro
tempo
dedesenvolvimento e a complexidade das aplicações, são mostradas as estratégias de persistência mais
comuns:
e Persistência
por Herança:
Uma
classe herda as capacidades de persistência deuma
classe persistente pré-definida.O
objeto instanciado desta classepode
serpersistente
ou
transitório,mas
a operação de manipulação dedados
entre a áreapersistente e transitória deve ser feita explicitamente.
Esta estratégia
não
suporta persistência ortogonal (a identificação dos objetospersistentes é relatada para o tipo
do
sistema) e ainda asseguramum
desequilíbrio
da
impedância.o Persistência
por
Instanciamento:Um
objeto é feito persistente etoma
suascapacidades persistentes
quando
instanciado. Evidentemente esta estratégianão
suporta persistência ortogonal (elemento que permite
ou
auxiliaum
objetopersistente ser explícito). Ocorre
um
problema
nesta estratégiaque quando
asreferências de
um
objeto persistente são transitórias. Esteproblema pode
colocar a integridade referencialem
desequilíbrio e é freqüentemente resolvido pelo uso de relacionamentos inversos.Usando
este tipo de relacionamento, as estruturasdas classes e implementações são
mais
rígidos, desta maneiraum
desequilíbriode relacionamento é criado.
ø Persistência
por
alcançabilidade:um
objeto é feito persistentequando
ele é alcançável de outro objeto persistente. Esta é a única estratégia de persistênciaque
assegura apromessa
deremover
totalmenteo
desequilíbriodo
relacionamento enquanto suporta persistência ortogonal,
SESSIONS
(1996).2.8.
Persistência
para Aplicação
JAVA
A
persistênciaem
aplicações Javapode
ser obtida através de diferentes formas.As
tecnologias existentes para alcançar persistênciapodem
ser divididasem
dois gruposprincipais: as
que propõem
extensões da linguagem e daMáquina
Virtual de Java para obter persistência ortogonal,como
Pjama, e asque
definem uma
camada
de serviço de persistênciano
topoda
linguagem e utilizam osmecanismos
de persistência existentes,como
banco
de dados relacional(BDR), onde
acamada
de serviços utilizada écomposta
pela
API
JDBC,
REESE
(2001)JDBC
éuma
API que
permite ao desenvolvedor Java usar a linguagem para obteracesso a
uma
grande quantidade 'deSGBDs
e a outras fontes.JDBC
foi projetado paraser simples, disponibilizando todas as tarefas
do
banco de dados de forma fácil,LINS
(2000). '
De
forma
simplificada,JDBC
permite estabelecer aconexão
com
o banco de dados, enviarcomandos
SQL
e processar os resultados.JDBC
éuma
interface de baixo nível,já
que
é utilizada para enviar diretamentecomandos SQL,
por isso servetambém
como
base para construção de interfaces e ferramentas de
mais
alto nível e quefazem
omapeamento
de classes para estruturas de bancos de dados,como
tabelasdo
BDR.
Como
apresentado na figura 2.5 a arquiteturaJDBC
écomposto
por trêscomponentes
principais: a
API
contendo classes e interfaces quedefinem
os serviços a seremimplementados
pelos drivers; oDriverManager
responsável pela gerênciado
conjunto dos drivers disponíveis à aplicação; e os driversJDBC,
os quaisimplementam
asfuncionalidades definidas nas interfaces
da
API. Estes drivers realizam aschamadas
específicas
do
SGBD
utilizado e se dividemem
quatro tipos distintos:l
(JDBC-ODBC
Bridge)que
se utilizam de driversODBC
(Open DataBase
Conectivíty) já existentes;
2 (Driver parcial)
que mapeia
aschamadas
JDBC
paraum
API
nativa;3 (Drivers Middleware)
que
éum
driver puro Java paraum
servidor middleware que suporta a utilização de aplicações clientesJDBC;
4 (Direct-to-database) que e'
um
driver puro Javaque
permite a conexão
com
um
I Aplicação ; API JDBC i JDBC Driver Manager | ¡ iJDBC_Net . Driver Drjvgf j É Driver ` Bridge Driver Í ODBC e BD _ _ Qfivers Drivers JDBC Protocolo de
Midmewafe JDQC Protocolos de Acesso Proprietários dos Banoos de Dados
Figura
2.5-Arquitetura
JDBC
(Sistemas Persistentes),LINS
(2000)2.8.1.
Formas
de
Persistência
em
JAVA
Os
objetos Javapossuem
um
ciclo de vida.Um
objetocomeça
sua'vidaquando
é criado, depois de criado o objeto existe até que seja destmído pelo coletor de lixo damáquina
virtual Java,
LINS
(2000).Persistência
normalmente
éimplementada
preservando o estado (atributos) deum
objeto entre execuções
do
programa. Para preservaro
estado,o
objeto é convertidoem
um
stream de bytes e usandoalgum
tipo dearmazenamento
a longo prazo(normalmente
um
disco).Quando
o
objeto é requerido, é restabelecidodo
disco a longo prazo, oprocesso de restauração cria
um
objeto Java novo, idêntico ao original.Embora
o objeto restabelecido não seja omesmo
objeto, seu estado ecomportamento
são idênticos,REESE
(2001).Há
várias formas de persistência disponíveis para programadoresem
Java.As
formasapresentadas abaixo incluem persistência baseada
em
arquivos,banco
de dadosrelacional e banco de dados orientado a objetos. Estas formas de persistência diferem
em
várias categorias, incluindo: organização lógicado
estado deum
objeto, aquantidade de trabalho requerida para programar aplicações que suportem persistência,
acesso simultâneo para o objeto persistente (de processos diferentes) e suporte a transações
commit
e semânticas rollback.a)
Arquivos
Dados
armazenados
em um
arquivopodem
ser simples(um
arquivo de texto),ou
podem
ser
complexos
(um
diagrama
de circuito). interage-se freqüentementecom
objetos que sãoam1azenados
em
arquivos (processamento de'documentos
de textos, planilhaseletrônicas, e assim por diante).
Arquivos
podem
ser usadoscomo
a base paraum
esquema
de persistênciaem
Java.Embora
Java não suporteum
mecanismo
embutido
para armazenar objetosem
arquivos,Java provê
uma
biblioteca defluxo
portátil(Data
Input eData
Output). Esta bibliotecatoma
mais fácil para oprogramador
salvar e recuperar objetos.Um
mecanismo
de
persistência baseadoem
arquivo requer esforçosdo programador
para alcançar persistência.
O
programador
tem que
escolheruma
representaçãoextema
do
objeto e desenvolvero
códigoque
salva e recupera os objetos. Objetosarmazenados
em
arquivos sãonormalmente
apropriados para aplicações de único-usuárioque
seguem
o
modelo
Abrir/Fechar .. Arquivo/Salvar.b)
RDBMS
(Banco de
Dados
Relacional)Sistemas de Gerência de
Bancos
deDados
Relacionais(RDBMS)
também podem
armazenar
objetos persistentes,mas
as características deum
banco dedados
relacionalsão diferentes da persistência baseada
em
arquivos.Um
banco
de dados relacional e'organizado
em
tabelas, linhas e colunas,em
lugar deuma
seqüência de bytes dentro deUm
al`qUl\/O.Há
doismodos
principais para armazenar objetosem um
banco de 'dados relacional.A
primeira opção é interagir
com
obanco
de dadosem
suas condições.A
API
JDBC
provê interfaces
que
diretamente representam estruturas de banco de dados relacionais.Estas estruturas
podem
ser usadas epodem
ser manipuladas.A
outraopção
é escrever sua própria classe Java emapear
entre as estruturas de dados relacionais e suas classes.Ao
usarum
banco
de dados relacional, que seconfigura
como uma
ferramenta para executarmapeamento
para classes, deve-se escreverum
volume
grande de código parainteragir
com
o banco
de dados.Gerenciamento
de objetosno banco
de dados requerque
sejam escritas declarações deSQL
(inserts, deletes, updates, etc),que
são remetidasao
banco
de dados pelaAPI
JDBC.
Bancos de Dados
Relacionaisnormalmente
suportam controle de concorrência,onde
múltiplos usuários
podem
ter acesso aobanco
de dadossem
interferências mútuas,porque
o banco
de dados usa controle de acesso. Adicionalmente, quase todos os bancos dedados
relacionais suportam propriedadesACID
(atomicidade, concorrência,isolamento e durabilidade). Estas propriedades protegem a integridade dos
dados
assegurando
que
as transações são totalmente efetivadasou
voltam ao seu estado inicial.c)
ODBMS
(Bancos de
Dados
Orientados
a Objetos)Sistemas Gerenciadores de
Banco
deDados
Orientados a Objetos(ODBMS)
suportam apersistência de maneira diferente da persistência baseada
em
arquivo e dos bancos dedados
relacionais.A
filosofia
atrás dos bancos de dados orientados a objeto étomar o
trabalho
do
programador mais simples.Banco
deDados
Orientados a Objetosannazenam
objetos,onde
oprogramador não
tem que
escrever declarações deSQL
ou
métodos
deempacotamento de
objetos.Sendo que
a interfacedo banco
dedados
orientado a objeto
normalmente
levaem
consideração estes detalhes.Normalmente
Banco
deDados
Orientados a Objetos suportam controle de concorrênciae propriedades
ACID,
como
os bancos de dados relacionais. Elesprovêem
acesso de concorrência parabanco
de dados, assimcomo
o
controle de transaçõescommit
e rollback.2.8.2.
Serialização
de Objetos
Serialização de objetos significa simplesmente gravar os valores de todos os seus
uma
seqüência, elepode
ser gravadoem um
arquivo,que
lhe proporcionaráum
objetopersistente
que
continuará existindomesmo
após o términodo programa no
qual foicriado,
REESE
(2001).O
processo de serialização de objetos permite converter a representação deum
objetoem
memória
parauma
seqüência de bytesque pode
então ser enviada paraum
0bject0utputStream, que por sua vez
pode
estar associado aum
arquivoem
discoou
auma
conexão
de rede.A
serialização de objetos está na classe java.io.Abaixo
estão relacionadasalgumas
classes importantes usadas:
0 Classes de Conectividade: '
l. java.sql.DriverManager - gerencia os drivers que são registrados
com
ela
2. java.sql.Driver - gerencia
um
tipo específico debanco
de dados. Estaclasse é
uma
interface.3. java.sql.Connection - representa
uma
sessãocom
um
banco
de dadosespecífico.
As
instruçõesSQL
são executadas e os resultados sãoretomados
parauma
conexão
individual. Esta classe éuma
interface.0 Classes de processamento de Dados:
l. java.sql.Statement - envia
uma
instruçãoSQL.
Esta classe éuma
interface.2. java.sql.ResultSet - retém
o
resultadoda execução
deuma
instruçãoSQL.
Esta classe é
uma
interface.O
método
registerValídatíon, permite registrar objeto para ser validado. Validarum
objeto significa verificar se ele ainda está relacionadocom
oque
ele estava relacionadoA
palavra chave transientmarca
os dadosnão
tendo valores salvosquando
a classe éserializada.
Um
exemplo
seria qualquer coisa, cujo valor sejasomente
válidoem um
determinado
momento,
como
por exemplo: transient int velocidade_atual.O
serializador sabeque
eletem
que preservar espaço para o valor,mas
não
salvaum
valor
que
está prestes a setomar
desatualizado. Por essa razão, oscampos
transientestambém devem
normalmente
sermarcados
como
private, jáque não
se desejaque
osoutros objetos
usem
os dados que eles encontram lá,LlNS
(2000).Com
facilidades pode-sepromover
a serialização deuma
classe, bastaque
elaimplemente
a interface Serializable. Entre as vantagens encontradas na serialização de objetos pode-se citar a portabilidade necessária para objetos remotos eo
suporte àpersistência.
Nesse segundo
caso,uma
classe serializável poderá utilizar os recursos de3.
ARQUITETURA
CORBA
A
especificaçãoCORBA
(Common
Object RequestBroker
Architecture)' éum
padrãopara objetos
que
está sendo desenvolvido e proposto pelaOMG
(ObjectManagement
Group),
que
éuma
organização intemacionalfonnada
por muitas empresasmembros,
incluindo vendedores de sistemas de infonnações, desenvolvedores de softwares e
usuários.
A
OMG
promove
a aplicações da tecnológicas orientadas a objetosno
desenvolvimentode
sistemas distribuídos.O
caráter da organização inclui o estabelecimento dasespecificações de gerenciamento de objetos para
promover
um
padrãocomum
paradesenvolvimento de aplicações.
Os
objetivos primordiais são: reusabilidade,portabilidade e interoperabilidade de softwares baseados
em
objetos; eem
ambientes distribuídos e heterogêneos.Em
concordânciacom
tais especificações, será possiveldesenvolver
um
ambiente de aplicações heterogêneas usando as principaisiplataformasde
hardware
e sistemas operacionais.O CORBA
e'uma
arquiteturaque
pennite aos objetos desistemas distribuídos
comunicarem-se
entre si deforma
transparente,não
importandoem
qual plataformaou
sistema operacional estejam sendo executados,
em
que
linguagem deprogramação
foram implementados
e atémesmo
qualo
protocolo decomunicação que
eles utilizam,OTTE
(1996).Este
modelo
baseadoem
objetos permiteque métodos
de objetos sejam ativadosremotamente, através de
um
elemento intemiediáriochamado
ORB
(Object RequestBroker) situado entre o objeto propriamente dito e o sistema operacional, acrescido de funcionalidades que