1 programação orientada aos componentes quartas à tarde no dei 12 de abril de 2000

17
1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

1

Programação Orientada aos COMponentes

Quartas à Tarde no DEI12 de Abril de 2000

Page 2: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

2

ComponentesAgenda

• Introdução

• Tutorial

• Casos Práticos– I2S: Reengenharia via COM– IDT: Engenharia usando COM

Page 3: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

3

ProgramaçãoAs Grandes Promessas

• “não reinventar a roda”– Reutilização– Interoperabilidade

• Facilidade de Manutenção– Flexibilidade– Evolução

Page 4: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

4

ProgramaçãoEvolução da Programação

Linguagem máquina

Programação estruturada

POO

Unidade estrutural

Programa Subrotina Objecto

Relação com nível anterior

_ Unidade de Programa delimitada

Subrotinas + memória local persistente

Dependências

Processador Linguagem prog. (bib. suporte)

Linguagem prog. (bib. suporte)

Page 5: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

5

ProgramaçãoProblemas Identificados

• Reutilização– Diferenças linguagens de programação– Diferenças entre versões do mesmo

compilador– Controlo de versões

• Interoperabilidade– Diferenças entre compiladores e linkers– Diferenças entre arquitecturas

Page 6: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

6

ProgramaçãoProblemas Identificados (cont.)

• Flexibilidade– Incompatibilidades entre bibliotecas– Isolamento das funcionalidades– Controlo de versões– Necessidade de recompilação

‘completa’ da aplicação• Evolução

– Incompatibilidades entre bibliotecas– Diferenças entre versões do SO &

hardware– Necessidade de recompilação

‘completa’ da aplicação

Page 7: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

7

O Que Se PretendeProgramação

Page 8: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

8

ComponentesConceitos Genéricos

• Componente– Unidade de execução que encapsula

funcionalidades

• Interface– “Ponto de acesso” às funcionalidades do

componenteIUnknown

ComponenteInterface1

Interface2

Page 9: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

9

ComponentesComponentes & Interfaces

IUnknown

CompAritmetica

IAritBasica

IAritAvancada

interface IAritBasica

{

long Adicionar(long iN1, long iN2);

long Subtrarir(long iN1, long iN2);

long Multiplicar(long iN1, long iN2);

long Dividir(long iN1, long iN2);

};

interface IAritAvancada

{

long Potencia(long base, long expoente);

};

coclass CoAritmetica

{

[default] interface IAritBasica;

interface IAritAvancada;

};

Page 10: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

10

Arquitectura GeralComponentes

IUnknown

Componente1

IUnknown

Componente5

IUnknown

Componente2

IUnknown

CompSO3

IUnknown

CompEmail1

IUnknown

componente3

IUnknown

Componente4

Listagem de Titulos (Biblioteca)

Utilizador

FormFicheiro Editar

Sistema Operativo

Programa de Email

IUnknown

CompEmail2

IUnknown

CompSO4

IUnknown

CompSO2

IUnknown

CompSO1

Page 11: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

11

ComponentesVantagens

• Reutilização• Interoperabilidade

– Arquitectura (hardware + S.O.)– Linguagem de programação

• Actualização de componentes sem recompilação da aplicação ou até mesmo sem reinicialização

• “Controlo” de versões• Encapsulam detalhes de

implementação

Page 12: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

12

ComponentesModelos de Componentes

• COM, DCOM, COM+

• CORBA

• Java / RMI

Page 13: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

13

COMIntrodução

• Standard binário– Reutilização em grande escala (sem

código fonte) – Suporte multi-linguagem

• Parte integrante do SO Windows• DCOM para plataformas não-

Windows • Auto-activação!• Auto-desactivação! (usando

ATL/MFC)

Page 14: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

14

COMIntrodução (cont.)

• Localização transparente• Múltiplas interfaces por objecto• Interfaces standard

– Persistência; Notificação; Structured storage; etc.

• Programação com abordagem procedimental (stateless)

• Serviços– Transacções; Eventos; invocação Off-

line; etc.

Page 15: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

15

COMProgramação de Aplicações

• Componente– definir um interface utilizando IDL– atribuir CLSID e identificador programático– gerar código proxy/stub – implementar métodos da interface– Tratar de contagem de instancias

• Servidor– Implementar "class factory"

• Registar Classes de componentes• Cliente

– criar instância do objecto e obter ponteiro de interface

– invocar métodos

Page 16: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

16

COMProgramação COM/ATL (Visual Studio)• Criar Componentes usando wizard

– definir um interface utilizando wizard– implementar métodos da interface

• VS Regista automaticamente as Classes

• Cliente– criar instância do objecto e obter

ponteiro de interface– invocar métodos

Page 17: 1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000

17

ConclusõesComponentes

IUnknown

Componente1

IUnknown

Componente5

IUnknown

Componente2

IUnknown

CompSO3

IUnknown

CompEmail1

IUnknown

componente3

IUnknown

Componente4

Listagem de Titulos (Biblioteca)

Utilizador

FormFicheiro Editar

Sistema Operativo

Programa de Email

IUnknown

CompEmail2

IUnknown

CompSO4

IUnknown

CompSO2

IUnknown

CompSO1