Title: Objetos de Neg
1Objetos de Negócio CORBA
- BO Cooperantes
- Anatomia de um BO
- Anatomia de um BO cliente/servidor
2BO 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
3BO 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 comportam-se muito
semelhantemente como é o mundo real.
Computação Distribuída
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
4BO 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
5O 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
6Componentes 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
7Demo 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
8Vamos 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
9Vamos 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
10Vamos 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
11Uma definição
- Uma cápsula de conhecimento.
- Uma unidade de padronização.
Computação Distribuída
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
12Motivaçã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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
13A 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
14A 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
15A 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
16Precisamos 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
17Procurando 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
18Por 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
19Caracterí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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
20Exemplo de Componente
- TDicionario
- O conhecimento de navegar em
- árvores armazenadas em BD.
-
- Pode ser configurado ...
- Preserva o conhecimento ...
Computação Distribuída
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
21Principais 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
22Principais 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
23Principais 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
24Principais Características
- Suporte a várias interfaces.
- E a mais importante
- FEEDBACK VISUAL AO
- DESENVOLVEDOR (caso Delphi)
Computação Distribuída
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
25Mas seja qual for o motivo ...
Computação Distribuída
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
26BO 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
27BO 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
28Objetos 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro
29BO em CORBA
- De acordo com a OMG, um BO é um top-level 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
UNIRONDON
- Cuiabá - MT João Bosco Mangueira Sobral
Daniela Barreiro Claro