Objetos de Negócio CORBA BO Cooperantes Anatomia de um BO Anatomia de um BO cliente/servidor.

Post on 17-Apr-2015

122 views 5 download

Transcript of Objetos de Negócio CORBA BO Cooperantes Anatomia de um BO Anatomia de um BO cliente/servidor.

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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 comportam-se muito semelhantemente como é o mundo real.

Computação Distribuída UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral Daniela Barreiro Claro

Uma definição

• Uma cápsula de conhecimento.

• Uma unidade de padronização.

Computação Distribuída UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral Daniela Barreiro Claro

Mas seja qual for o motivo ...

• USE COMPONENTES !

Computação Distribuída UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral 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 UNIRONDON - Cuiabá - MTJoão Bosco Mangueira Sobral Daniela Barreiro Claro

BO 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á - MTJoão Bosco Mangueira Sobral Daniela Barreiro Claro