Objetos de Negócio CORBA
BO Cooperantes
Anatomia de um BO
Anatomia de um BO cliente/servidor
BO em CORBA
• Um BO provê um modo natural para
descrever conceitos do mundo real,
independentes da aplicação.
• Cliente, “order”, dinheiro, pagamento,
carro, ...
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
BO em CORBA
• BO proporcionam uma visão de software
que transcende ferramentas, aplicações,
base de dados e outros conceitos de
sistemas.
• A última promessa da tecnologia de objetos
e componentes é provê esses componentes
de média granularidade que comportamse muito semelhantemente como é o mundo
real.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
BO Cooperativos
• BO devem ser componentes independentes.
• Enquanto sendo hábeis para interoperar com
outros BO.
• Formando um “lattice” (treliça) de
componentes que são objetos de negócios
cooperativos.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
O que são Componentes de Software
• Mais uma forma de gerar frases ...
“Os componentes são importantes porque é muito
importante usar componentes.”
• Mais um modismo semelhante a Orientação a
Objetos ...
“Meu gato é orientado a objetos.”
• Alguém já viu um Componente de Domínio ?
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Componentes de Domínio
• Significado de Domínio :
“Cooperação entre componentes”
• Exemplo em Delphi:
Podemos observar componentes durante
a construção de uma simples aplicação
em Delphi ...
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Demo em Delphi
• Uma pessoa ... (pessoa)
• Tem nome ... (pessoa e nome)
• Que pode ser abreviado ...
(pessoa, nome, nome_abreviado)
• E fonetizado ...
(pessoa, nome, nome_abreviado, nome_
fonetizado)
• A aplicação está pronta ...
(nome, nome_abreviado, nome_fonetizado)
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Vamos Definir Componentes ?
• Qualquer subsistema que possa ser
separado e que possui uma interface
“reusável” e potencialmente padronizável.
• Um elemento de software que pode ser
facilmente utilizado em múltiplos contextos,
incluindo aqueles não previstos
originalmente.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Vamos definir componentes ?
• Um objeto com uma interface pública
preparado para ser utilizado dentro de um
ambiente orientado a objetos.
• Estes ambientes definem interfaces para que
os objetos possam se comunicar entre si e
provêm suporte para o reuso.
• São uma combinação de: um modelo de
programação e um metamodelo de
informação.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Vamos definir componentes ?
• Um subsistema que não está ligado a
nenhuma aplicação específica.
• Um produto de alta qualidade, resultado de
um cuidadoso desenho e teste.
• Empacotado para reuso, com uma interface
bem projetada e documentada.
• Algo genérico, para ser usado em diferentes
lugares, configurado na hora do uso.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Uma definição
• Uma cápsula de conhecimento.
• Uma unidade de padronização.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Motivação
“The number of applications that need to
be written is growing exponentially.
Unless we can find a way to write them
in a tenth of the time,
we are tost”.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
A Crise do Software
• 52.7% dos projetos necessitam correções de
orçamento, o que implica em perdas
significativas.
• Produtividade dos desenvolvedores caiu
13% desde 1993.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
A Crise do Software
• A arquitetura Cliente/Servidor clássica não
aumentou a produtividade no
desenvolvimento de software como
prometido.
• Programar Orientado a Objeto ajuda, mas
não resolve.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
A Crise do Software
• Múltiplos sistemas de informação que não
se falam.
• Definição de padrões.
• Qualidade da informação: interpretação do
padrão.
• Mudam os governos, mudam as direções
antes dos sistemas ficarem prontos.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Precisamos de uma Infoestrutura ...
• Que não dependa da infraestrutura
tecnológica.
• Que possa ser implementada em partes
independentes.
• Que não se perca nas mudanças políticas.
• Que possa ser reaproveitada por todos.
• Que implemente os padrões, para que não
fiquem no papel.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Procurando Soluções ...
• Os sistemas monolíticos estão caminhando
para uma rápida extinção;
• Surge um novo paradigma de
desenvolvimento de software, com base em
componentes padronizados, baseados em
arquiteturas que ofereçam os serviços
necessários à distribuição dos objetos.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Por que usar Componentes ?
• Pelas razões erradas:
é moderno ...
são bonitos ...
não fica bem se não usar ...
alguém mandou ...
• Pelas razões certas:
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ !!!
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Características de Componentes
• Um componente deve permitir
configuração sem perder identidade ...
• Tem que encapsular algum invariante que
agregue valor, protegendo ele das mudanças
tecnológicas ...
• Mais informações:
www.sbis.epm.br
www.datasus.epm.br/ccssis
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Exemplo de Componente
• TDicionario
O conhecimento de navegar em
árvores armazenadas em BD.
Pode ser configurado ...
Preserva o conhecimento ...
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Principais Características
• Possui documentação que lhe é própria.
(help on line)
• Podem ser agrupados em conjuntos para
distribuição (Packages).
• Pode ser substituído sem afetar a aplicação.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Principais Características
• Suportam composição (agregação):
componentes formados a partir de outros
componentes.
• Suportam introspecção.
• Suportam mecanismos de notificações
(eventos).
• Suportam serialização.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Principais Características
• Possuem um modelo que integra eles às
ferramentas de desenvolvimento.
(COM, CORBA, JAVABEANS, EJB)
• Suportam uma linguagem de definição.
(IDL)
• Desejáveis: Implementadas nos modelos,
mas não suportadas pelas ferramentas de
desenvolvimento.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Principais Características
• Suporte a várias interfaces.
• E a mais importante:
FEEDBACK VISUAL AO
DESENVOLVEDOR (caso Delphi)
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Mas seja qual for o motivo ...
• USE COMPONENTES !
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
BO em CORBA
• Primeiro, deve-se definir as regras para que
esses componentes funcionem. (OMG)
• De acordo com a OMG, um BO é um
componente no nível da aplicação que
podemos usar em combinações
imprevisíveis. Um BO é, por definição,
independente de qualquer aplicação.
• Aplicações Distribuídas são suites de BO.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
BO em CORBA
• Uma aplicação, simplesmente, provê o
ambiente para executar esses BO.
• Um BO é um componente que
representa uma entidade
“reconhecível” na vida cotidiana.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Objetos a Nível de Sistemas
• Em contraste, objetos a nível de
sistemas, representam entidades que
fazem sentido somente para sistemas
de informação e programadores.
• Eles não representam nada que um
usuário final reconheça.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
BO em CORBA
• De acordo com a OMG, um BO é um toplevel object reconhecível pelo usuário final
de um sistema.
• Um BO é um objeto auto-contido e
“distribuível” que tem uma interface de
usuário, estado e sabe como cooperar com
outros BO desenvolvidos separadamente
para realizar uma tarefa desejada.
Computação Distribuída
João Bosco Mangueira Sobral
UNIRONDON - Cuiabá - MT
Daniela Barreiro Claro
Download

Objetos de Negocios Componentes