prot ótipo de software para gera ção de sistemas distribu...

48
Prot Prot ó ó tipo de software tipo de software para gera para gera ç ç ão de ão de sistemas distribu sistemas distribu í í dos dos utilizando Design utilizando Design Patterns Patterns Aluno: Fabiano Oss [email protected] Orientador: Everaldo A Grahl [email protected]

Upload: others

Post on 09-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

ProtProtóótipo de software tipo de software para gerapara geraçção de ão de

sistemas distribusistemas distribuíídos dos utilizando Designutilizando Design

PatternsPatterns

Aluno: Fabiano Oss

[email protected]

Orientador: Everaldo A Grahl

[email protected]

Page 2: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Agenda

� Introdução;

� Objetivos;

� Sistemas distribuídos;

� Design Patterns;

� XML;

� Desenvolvimento do trabalho;

� Conclusões.

Page 3: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Introdução

• Já tive este caso antes, ou algo parecido?

• Sistemas distribuídos

Page 4: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Objetivos

� Protótipo para geração de sistemas distribuídos;

� adptar alguns padrões para sistemas distribuídos;

� unir as tecnologias XML e CORBA

Page 5: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Sistemas Distribuídos

Page 6: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Introdução

� Evolução do desenvolvimento de sistemas;– monolíticos (anos 50 até 70);

– cliente/servidor (anos 80 e 90);

– sistemas distribuídos (momento atual);

Page 7: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Arquiteturas

� Commom Object Request Broker Architecture (CORBA);

� Java Remote Method Invocation and Specification (Java/RMI);

� Distributed Component Object Model (DCOM).

Page 8: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

CORBA

Page 9: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Requisição

Page 10: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

IDL - Interface Definition Language

Page 11: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Exemplointerface cliente{

/* atributos */

attribute long codigo;

atribute string nome;

/*operacoes*/

long operacao1(in string nome);

};

/* herença */

interface pessoaFisica:cliente{

void operacao2(in long codigo, inout string nome);};

Page 12: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Visibroker + Delphi 6

� Implementação do CORBA 2.3;

� compilador IDL para Pascal (idl2pas);

� units:Orbpas45.pas e Corba.pas;

� runtime: orbpas40.dll, orb_br.dll e vport.dll;

Page 13: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Design Patterns

Page 14: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Conceito

“Um pattern descreve um problema que ocorre várias vezes em nosso ambiente,

assim como elabora uma solução reutilizável para ele, de modo que não

necessite se preocupar novamente, com a solução do problema nas novas

implementações”

(Gamma, 1995)

Page 15: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Evolução

� Christopher Alexander

� Ward e Kent

� Coad, Copplien, Gama, ...

� Atualmente...

� Conceito

� aplicação para software

� aplicação para software oo.

� Conferências, novos conceitos, etc.

Page 16: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Distributed Callback

� Problema;

� aplicabilidade;

� benefícios;

� conseqüências

Page 17: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Como funciona?

interface foo_app {

string getInfo(in string my_name, inout string

mood, out string joke);

}

Page 18: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Resultadointerface foo_app_cb;

interface foo_app {

oneway void get_info(in string my_name,

in string mood, in foo_app_cb

my_callback);

};

interface foo_app_cb

{

oneway void callback(in string mood, in string

joke,in string return_value,

in boolean successful);

};

Page 19: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Lock

� Problema;

� aplicabilidade;

� resumo;

� benefícios;

� conseqüências

Page 20: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Notificação (Event Service)

� Problema;

� aplicabilidade;

� resumo;

� benefícios;

� conseqüências

Page 21: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Factory

� Problema;

� aplicabilidade;

� resumo;

� benefícios

Page 22: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Persistent Layer

� Problema;

� aplicabilidade;

� resumo;

� benefícios;

Page 23: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

IDL Persistent Layertypedef sequence<string> strArray;

exception ERR_CONEXAO {string descricaoErro;long codigoErro;

};

exception ERR_DB {string descricaoErro;long codigoErro;

};

interface conexao {attribute string dataBaseName;boolean login(in string driver, in string login, in string senha) raises

(ERR_CONEXAO);boolean disconecta();Object getConexao();

};interface tableManager{

void setConexao(in conexao con);string select(in string stm);string execStorageProcedure(in string nome, in strArra y parametros) raises

(ERR_DB);long insert(in strArray colName, in strArray colValue , in string tableName)

raises (ERR_DB);long insertDB(in string stm) raises (ERR_DB);long update(in strArray colName, in strArray colValue , in string tableName, in

strArray where) raises (ERR_DB);long updateDB(in string stm) raises (ERR_DB);long delete(in strArray where, in string tableName) ra ises (ERR_DB);long deleteDB(in string stm) raises (ERR_DB);string refresh(in string stm) raises (ERR_DB);

};

Page 24: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Template

� Problema;

� aplicabilidade;

� resumo;

� benefícios;

object #classeForm: T#classeFormOldCreateOrder = FalsePageProducer = AdapterPageProducerLeft = 297Top = 188

Height = 150Width = 215

Page 25: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Extensive Markup Language (XML)

Page 26: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

XML

� inteligência;

� adaptação;

� manutenção;

� troca de informações;

� auto-descritivos;

� portabilidade, etc.

Page 27: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Exemplo...

Page 28: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Desenvolvimento

Page 29: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Use Case

Page 30: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Package

Page 31: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Package Dicionário

Page 32: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Package Patterns

Page 33: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Package Geração

Page 34: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Diagrama Seqüência Ler Arquivo UML

Page 35: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Diagrama Seqüência Gerar IDL

Page 36: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Diagrama Seqüência Gerar DDL

Page 37: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Diagrama Seqüência Gerar Business Server

Page 38: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Diagrama Seqüência Gerar Cliente

Page 39: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Protótipo

Page 40: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Gerar IDL

Page 41: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Arquitetura

Page 42: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Gerar Business Server

Page 43: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Gerar Cliente

Page 44: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Aplicação

Page 45: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Conclusão

� Sistemas distribuídos;

� Design Patterns;

� Padrões utilizados;

� Arquitetura;

� Ferramentas utilizadas

Page 46: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Demonstração

Page 47: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Perguntas ???

Page 48: Prot ótipo de software para gera ção de sistemas distribu ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2001-2fabianoossap.pdf · Prot ótipo de software para gera ção de sistemas

Fim!