com, dcom, com+ josé de anchieta isaac de lima oliveira filho andré gustavo pereira humberto nunes...

86
COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho 1 /86

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM, DCOM, COM+José de Anchieta

Isaac de Lima Oliveira Filho

André Gustavo Pereira

Humberto Nunes Filho

1 /86

Page 2: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Sumário

Contextualização COM DCOM COM+ Considerações finais Referências

2 /86

Page 3: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Contextualização

Em 1987, DDE (Dynamic Data Exchange) Compartilhamento de dados entre aplicações

(Object Link Embbeding) OLE 1.0 Evolução da DDE Não possuia limitação no compartilhamento dos dados Noção de embarcado

Utilizavam Tabelas de Funções Virtuais (Vtables)

3 /86

Page 4: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Contextualização

OLE passou a ser OLE2 com novos recursos COM (Component Object Model) Possibilidade de reuso de componentes

DCOM O programador se preocupa apenas com a lógica de negócio Já possui implementado os padrões de rede de baixo nível

4 /86

Page 5: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Contextualização

MTS (Microsoft Transaction Services) Segurança Escalabilidade

COM+ (COM + MTS)

5 /86

Page 6: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM(Component Object Model)

Isaac de Lima Oliveira Filho

6 /86

Page 7: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Definições Arquitetura de softtware independente da

plataforma de utilização, que permite desenvolver componentes de objetos que podem interagir com outras aplicações.

Comunicação entre processos COM especifica um binário padrão para

interfaces dinâmicas para garantir a interoperabilidade de objetos

Identificadores de classe (CLSIDs), que são identificadores globais únicos (GUID).

Cada componente COM expõe sua funcionalidade através de uma ou mais interfaces.

MIDL(Compilador COM para IDL)

77 /86

Page 8: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

GUID

128 bits

Estrutura

88 /86

Page 9: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Propriedades Reflexivas, simétricas e transitivas. Um arquivo IDL permite que desenvolvedores

definam classes orientadas a objeto, interfaces, estruturas, enumerações e outros tipos definidos pelo utilizador, independentemente da linguagem de programação.

Reusabilidades de componentes Encapslamento de dados e de seu

processomento através dos ponteiros de interface

99 /86

Page 10: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Interface

Uma coleção de funções Várias interfaces para cada COM class Todas as classes COM são derivadas da classe

IUnkown

1010 /86

Page 11: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Interface

Base para

todos as

interfaces COM

QueryInterface

AddR

ef R

ele

ase

1111 /86

Page 12: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Interface

IDispatch

IUknonw

1212 /86

Page 13: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Passos para um Objeto COM Simples

1313 /86

Page 14: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Interagindo Cliente /Servidor

1414 /86

Page 15: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Cliente X Servidor

Comportamento Síncrono Chamadas individuais de métodos

1515 /86

Page 16: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Servidor COM

Serviços que estejam disponíveis na Interface COM.

Três tipos:

1616 /86

Page 17: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Servidor COM

In-process: implementados com Dynamic Link Libraries(DLL’s), servidor carregado Dinamicamente.

Out-of-process: programas executáveis. tratado por SCM em computadores também remotos(DCOM).

Windows NT: tratado pelo WINDOWS NT. Surrogate: In-process pode ocorrer

remotamente.

1717 /86

Page 18: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Servidor COM

COMPONETES AUXILIARES

1818 /86

Page 19: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Cliente

Pode ser feito em qualquer linguagem, desde que possa ter como referencia o objeto COM.

1919 /86

Page 20: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Abordagem Prática COM

20

Calculadora Plataforma Windows Ferramenta Visual Studio 2005 ATL (Active Template Library )Wizard COM Servidor tipo In-process, oferecendo

serviço implementado em Visual C++. Cliente em Visual Basic, chamando

quatro operações

20 /86

Page 21: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Cliente X Servidor(TesteCOM.dll)

Visual Basic

Visual C++

Visual J++

Operacoes.cpp /

TesteCOM.cpp

Operacoes.h/

TesteCOM.hInterface para COM

Métodos (Objetos)

TesteCOM.dllTesteCOM.dll

21

Cliente

Bliblioteca COM

Regsrv32:Regsrv32:LOCALLOCAL

CANAL LOCAL

Servidor(Objetos)

TesteCOM.idl

Interface COMInterface COM

Referência da BlibliotecaChamada da Função COM

21 /86

Page 22: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Cliente X Servidor(Object)

22 /86

Page 23: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

DCOM(Distributed Component Object Model)

André Gustavo Pereira

23 /86

Page 24: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

DCOM

Estende o COM para suportar comunicação entre objetos em máquinas diferentes, através de uma LAN, WAN ou da Internet.

Pode utilizar aplicações COM existentes

COM e DCOM não são propriedades da Microsoft, mas são gerenciados pelo consórcio independente ActiveX Consortium

24 /86

Page 25: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Arquitetura DCOM

Visão Geral

25 /86

Page 26: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

DCOM

O gerenciador de serviços de controle (SCM) no cliente conecta ao SCM da máquina remota e solicita a criação do objeto

Para instanciar objetos em máquinas remotas, é necessário conhecer o nome do servidor e o identificador da classe (CLSID)

O nome do servidor pode ser obtido de três formas: Configuração fixa no sistema de registro ou no

DCOM Class Store Parâmetro fixo na chamada às funções de criação

dos objetos Nome de uma instância específica (moniker).

26 /86

Page 27: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

DCOM

Registro no Cliente[HKEY_CLASSES_ROOT\CLSID\

{<CLSID_AuctionServer>}] "AppID"="{<APPID_AuctionServer>}"[HKEY_CLASSES_ROOT \APPID\

{<APPID_AuctionServer>}] "RemoteServerName"="auctions.r.us.com"

27 /86

Page 28: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

DCOM Código no ClienteIAuction* pAuction = NULL;HRESULT hr=CoCreateInstance( CLSID_AuctionService, // Request an instance of

class CLSID_AuctionService

NULL, // No aggregation.

CLSCTX_SERVER, // Any server is fine.

IID_IAuction, // Ask for an interface of type IID_IAuction

(void**) &pAuction ); // Pointer to

returned interface pointer.

28 /86

Page 29: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Arquitetura DCOM

29 /86

Page 30: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

DCOM

Independência de localização

30 /86

Page 31: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Marshaling e Unmarshaling

Baseado no padrão DCE RPC: A assinatura do método é descrita em IDL São gerados o proxy e o stub

Um ponteiro para a interface é utilizado para acessar o proxy

O processo de marshaling pode ser customizado. Isso pode ser necessário na comunicação com aplicações que não utilizam o padrão DCE RPC.

Referências estáticas podem ser passadas por valor ao invés de acessadas remotamente (Ex: monikers)

31 /86

Page 32: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Gerenciamento de Comunicação

Cada componente possui um contador de referências para controlar a quantidade de clientes conectados em um determinado momento. Quando este contador possui valor zero, o respectivo componente pode ser liberado da memória.

DCOM utiliza um protocolo de ping para detectar se o cliente ainda está ativo

32 /86

Page 33: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Gerenciamento de Comunicação

Um componente pode ser tanto um provedor como um consumidor de uma funcionalidade (fluxo de informações bidirecionais)

A comunicação pode ser síncrona ou assíncrona (a partir do Windows 2000)

33 /86

Page 34: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Concorrência

Apartment: associação entre um objeto COM e uma thread ou um grupo de threads

Single-Threaded Apartments: Uma única thread controla a chamada aos

métodos do objeto Uma única thread pode controlar todas as

instâncias, ou somente uma Chamadas feitas de outras threads são

enfileiradas quando o componente está em execução

Todos os métodos são sincronizados

34 /86

Page 35: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Concorrência

Multithreaded Apartment Várias threads podem chamar métodos de um

objeto O objeto deve sincronizar a execução dos

métodos, quando necessário

35 /86

Page 36: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Escalabilidade

Multiprocessamento Simétrico (SMP): gerenciamento de fila de threads para requisições

Para componentes “sem estado”, é possível executar múltiplas cópias em máquinas diferentes

36 /86

Page 37: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Escalabilidade

Alguns componentes críticos podem ser isolados em servidores dedicados sem necessidade de recompilação

37 /86

Page 38: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Escalabilidade

Inicialmente, uma única máquina servidora pode armazenar todos os componentes da aplicação. Com o aumento na demanda, tais componentes podem ser distribuídos em novos servidores.

38 /86

Page 39: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Escalabilidade

Novas interfaces podem ser acrescentadas a um componente, sem interferir no acesso às interfaces anteriores. Isso permite que diferentes versões do mesmo componente sejam utilizadas simultaneamente

39 /86

Page 40: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Desempenho

COM possui um mecanismo próprio para chamada remota de procedimentos (RPC) orientada a objetos

O protocolo de comunicação preferencialmente utilizado pelo DCOM é o UDP

Uma única mensagem de ping é enviada para um determinado cliente, independente da quantidade de componentes acessados no servidor

Múltiplos acessos a métodos remotos podem ser empacotados pelo proxy em uma única chamada

40 /86

Page 41: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Desempenho

Um componente pode conectar outros dois componentes diretamente, funcionando como um diretório de serviços

Quando um mesmo componente estiver sendo executado em mais de um servidor, um “broker” pode decidir qual das referências deve ser utilizada

41 /86

Page 42: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Segurança

DCOM utiliza o framework de segurança estensível do Windows NT

O DCOM encapsula os requisitos de segurança dos componentes

A lista de acesso aos componentes (ACL) é armazenada

A arquitetura de segurança do Windows NT suporta diversos provedores de segurança que podem ser utilizados em conjunto com protocolos padronizados da Internet.

42 /86

Page 43: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Segurança

43 /86

Page 44: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Balanceamento de Carga

Principais técnicas de balanceamento: isolamento de componentes críticos, execução paralela e pipeline de processos seqüenciais.

Balanceamento estático: um usuário acessa um servidor específico de uma aplicação, independente das condições atuais da rede

Um componente de referência pode estabelecer a conexão do cliente com um determinado servidor

44 /86

Page 45: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Balanceamento de Carga

Balanceamento Dinâmico: o componente de referência indica qual servidor deve ser conectado através de informações como a topologia de rede, estatísticas sobre demandas passadas, tempo de leitura do servidor, etc.

Balanceamento dinâmico não requer intervenção de um administrador

Outra alternativa é a utilização do proxy para interceptar a chamada a um método e redirecioná-lo para outro servidor.

45 /86

Page 46: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Tolerância a Falhas

46 /86

Page 47: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Tolerância a Falhas

Utiliza um mecanismo próprio de ping. Uma técnica pode ser implementada

utilizando o componente de redirecionamento.

Outra técnica é ter duas cópias do mesmo componente servidor sendo executadas em máquinas diferentes, processando a mesma informação (hot backup)

47 /86

Page 48: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Desenvolvimento

A localização de cada componente pode ser modificada com uma simples mudança de configuração.

Clientes podem ser atualizados através de repositórios (class store)

O componente de redirecionamento pode ser utilizado para retornar o componente apropriado para o cliente

48 /86

Page 49: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Neutralidade de Protocolo

DCOM pode utilizar qualquer protocolo de transporte, incluindo TCP/IP, UDP, IPX/SPX e NetBIOS

Baseado em DCE RPC

49 /86

Page 50: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Neutralidade de Plataforma

DCOM é aberto a todas as abordagens de desenvolvimento entre plataformas

Foi definido um padrão binário por plataforma.

50 /86

Page 51: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Neutralidade de Plataforma

Foram definidos serviços independentes da plataforma, como: conexão, criação e localização de componentes, chamada de métodos padrão e o framework de segurança

São utilizados ainda serviços disponíveis em cada plataforma para implementar multithread e controle de concorrência, interação com sistema de arquivos, etc.

Aplicações Java podem utilizar componentes DCOM importando uma descrição java compatível do componente

51 /86

Page 52: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Utilização na Internet

DCOM utiliza uma única porta para iniciar conexões e designa um intervalo de portas configurável para os componentes em execução (uma porta por processo)

DCOM pode ainda ser configurado para utilizar o protocolo HTTP

52 /86

Page 53: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Utilização na Internet

53 /86

Page 54: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+(Component Services)

Humberto Nunes Filho

54 /86

Page 55: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services

Introdução Visão Geral

Evolução do COM e MTS Criado para dar suporte a transações distribuídas

aumentando a escalabilidade, disponibilidade, um melhor gerenciamento e processamento de aplicativos COM.

Usado para desenvolvimento e gerenciamento de aplicações distribuídas baseadas na plataforma Microsoft Windows

55 /86

Page 56: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Introdução

Visão Geral Foi projetado primeiramente para o Microsoft Visual C+

+ e o Microsoft Visual Basic. Acrescenta novos serviços e aplicações para

componentes COM em tempo de execução. Resposta da Microsoft a Sun Microsystems em relação

ao EJB. Na versão 1.5 requer Windows XP ou Windows Server

2003, na versão 1.0 requer Windows 2000.

56 /86

Page 57: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Introdução

Principais serviços COM+ Administração: novas ferramentas e serviços que

possibilitam programadores e administradores configurar e gerenciar componentes. Microsoft Management Console Component Services

Explorer. COM + também fornece um padrão de localização o

COM + Catalog, que serve para armazenar informações de configuração

57 /86

Page 58: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Introdução

Principais serviços COM+ Just - in-Time Activation (JITA): serviço que instância um

componente quando ele é chamado, e descarta quando ele não está mais sendo usado.

Object pooling: serviço que permite uma instância freqüentemente usada, como conexões de dados sejam mantidos num pool para que possam ser utilizadas por vários clientes. Melhorando o desempenho e a capacidade de resposta de uma aplicação dramaticamente.

58 /86

Page 59: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Introdução

Principais serviços COM+ Transações: serviço que permite que operações

realizadas por componentes distribuídos e recursos, como a base de dados possam ser tratados como uma única operação. Transações são requisitos da maioria dos sistemas comerciais.

Sincronização: serviço para controlar o acesso simultâneo aos objetos.

Segurança: serviço para autenticação e controle de acesso dos clientes em uma aplicação.

59 /86

Page 60: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Introdução

Principais serviços COM+ Componentes “enfileirados”: serviço que permite que

componentes possam se comunicar através de mensagens assíncronas.

Eventos: serviço que permite que componentes possam se informar mutuamente sobre mudanças significativas. Suporta o modelo de notificação de eventos publicar-escrever.

60 /86

Page 61: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

Modelo que explica o caminho percorrido pelos serviços para serem executados.

COM + fornece serviços para os componentes interceptando as chamadas que o cliente faz as interfaces desses componentes.

COM+ usa uma fiscal para fornecer os serviços e encapsular a execução exigida pelos objetos.

61 /86

Page 62: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

Encapsulamento com fiscal em COM+ Transparência na localização: permite que o código no

cliente seja independente da atual localização do objeto. Nada no código do cliente sabe onde o objeto executa.

Ao ignorar a localização do objeto o código do cliente é dissociado do objeto.

O código cliente não precisa ser modificado se a localização do objeto sofrer mudanças

62 /86

Page 63: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

Encapsulamento com fiscal em COM+ COM+ Introduz um proxy entre o objeto e o cliente COM+ divide o processo em apartamentos e cada

chamada entre eles é fiscalizada. O cliente interage diretamente com o objeto ou com o

proxy. COM+ fiscaliza a chamada do cliente mascarando a

verdadeira localização do objeto.

63 /86

Page 64: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

Encapsulamento com fiscal em COM+

64 /86

Page 65: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

Encapsulamento via interceptação em COM+ O COM+ também coloca um proxy e um stub entre o

cliente e o objeto se o serviço requer interceptação, independentemente do caminho em que são configurados.

COM+ subdivide os apartamentos em contextos e cada contexto pode conter um ou mais objetos.

65 /86

Page 66: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

Encapsulamento via interceptação em COM+ Os objetos de cada contexto possuem a mesma

configuração. Todas as chamadas devem ser fiscalizadas por um

proxy e um stub para que o COM+ possa interceptar as chamadas e providenciar a configuração do serviço.

66 /86

Page 67: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

Encapsulamento via interceptação em COM+

67 /86

Page 68: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services

Contexto em COM+ O objeto contexto

COM+ representa cada contexto por um objeto chamado objeto contexto.

Todo contexto tem um objeto contexto Objetos podem obter um ponteiro para seus objetos

contexto chamando CoGetObjectContext( )

68 /86

Page 69: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

O objeto contexto

69 /86

Page 70: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Contexto em COM+

O objeto chamada COM+ cria um objeto transitório chamado objeto

chamada cada vez que o objeto é chamado. O objeto chamada representa a chamada atual. Objetos podem acessar o seu objeto chamada

chamando CoGetCallContext( )

70 /86

Page 71: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Gerenciamento de instância

COM+ fornece todo componente configurado com acesso já pronto ao serviço de gerenciamento de instância.

COM+ pode ser usado com dois serviços de gerenciamento de instância, objeto pooling e JITA, individualmente ou combinados.

71 /86

Page 72: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Gerenciamento de instância

Object Pooling COM+ pode manter um pool de objetos já prontos e

criados para servir os clientes. Com Objetot Pooling, para cada objeto do pool há um

único custo de criação e tal objeto pode ser reutilizado por vários clientes.

72 /86

Page 73: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Gerenciamento de instância

Object Pooling Objeto pooling é mais apropriado quando o objeto de

inicialização é genérico o bastante para não requerer parâmetros específicos do cliente.

Este é um bom serviço de gerenciamento de instância, mas o que fazer quando se tem clientes que usam o serviço por longos períodos de tempo?

73 /86

Page 74: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services

Gerenciamento de instância Just-in-Time Activation (JITA)

COM+ fornece outra técnica de gerenciamento de instância denominada Just-in-Time Activation

Tal técnica permite a utilização do objeto somente durante a duração da chamada.

JITA é melhor utilizado quando a instanciação do objeto não é uma operação custosa comparada com a escassez de recursos ou com os gastos implicados com o objeto.

É especialmente usado quando o objeto é armazenado por longos períodos de tempo sem ser utilizado.

74 /86

Page 75: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Transações

O serviço de gerenciamento de transações COM+ é baseado no modelo MTS com algumas inovações.

As principais propriedades em uma transação são: atomicidade, consistência, isolamento e durabilidade.

75 /86

Page 76: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Transações

No modelo de programação COM +, pode-se criar componentes e deles extrair o melhor possível, permitindo que a lógica do negócio ou a criação de uma conexão com a base de dados possa automatizar suas operações.

COM+ permite que você possa especificar um tempo limite para transações diferentes e para os objetos que as exigem.

76 /86

Page 77: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Transações

Este procedimento resolve o tempo limite em transações curtas versus longas permitindo a execução de procedimentos armazenados.

Modelo de concorrência A idéia por trás do modelo de concorrência COM +

é simples mas poderosa, em vez de conseguir sincronização física, COM + atinge sincronização lógica.

77 /86

Page 78: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services Modelo de concorrência

Se há garantia de um componente não ser acessado por vários treads lógicos ao mesmo tempo,a sincronização daquele componente é garantida.

Tudo que o COM+ provê é a garantia de que o componente não é acessado por mais de um tread lógico naquele momento.

78 /86

Page 79: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services

Eventos COM+ Os serviços de eventos COM+ lidam com a

maioria dos eventos para publisher e subscriber. Os publisher oferecem os tipos de eventos

requeridos pelos subscriber. Ao contrário de uma sistema de eventos

acoplados rigoroso onde os publisher precisam lidar com uma sobrecarga de subscriber exigindo diretamente os serviços de eventos.

79 /86

Page 80: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services

Eventos COM+ COM+ mantém a inscrição dos dados

simplificando o modelo de programação para publisher e subscriber porque o componente COM+ não precisa conter a lógica de construção da inscrição.

Os serviços de eventos COM+ usam um event class object para gerenciar a conexão entre o publisher e o subscriber.

80 /86

Page 81: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services

Eventos COM+ O event class object é um componente COM+ que

é gerenciado e armazenado pelo sistema COM+ e contém as interfaces e os métodos usados pelo publisher para chamar os eventos.

É um objeto persistente que indica os eventos que podem ocorrer e opcionalmente identificar o publisher.

Você especifica as interfaces e os métodos que você quer e o event class para conter e providenciar o tipo de biblioteca especifico.

81 /86

Page 82: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

COM+ Component Services

Introdução Visão Geral

Evolução do COM e MTS Criado para dar suporte a transações distribuídas

aumentando a escalabilidade, disponibilidade, um melhor gerenciamento e processamento de aplicativos COM.

Usado para desenvolvimento e gerenciamento de aplicações distribuídas baseadas na plataforma Microsoft Windows

82 /86

Page 83: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Considerações finais

Componentes não são tecnologia

COM passou a ser parte do consórcio Active X

Microsoft deixou COM e passou a utilizar .Net

83 /86

Page 84: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Referências

84 /50

MATOS, Telio; Introdução ao COM(Component Object Model).Disponível em http://www.dei.isep.ipp.pt/~tmatos/ ADAV/2004_2005/GuiaoCOM.pdf em novembro de 2004.

MORAGN, Bryan; Java e os Component Object Model. Acessado em 26 de março de 2008.

MSDN Liibrary. Acessado em 26 de março de 2008.

84 /86

Page 85: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Referências Microsoft Developer Network. DCOM Technical

Overview. Disponível em http://msdn2.microsoft.com/en-us/library/ms809340.aspx. Acesso em 02 de Abril de 2008.

MSDN Library. DCOM Architecture. Disponível em http://msdn2.microsoft.com/en-us/library/ms809311.aspx. Acesso em 02 de Abril de 2008.

85 /86

Page 86: COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho André Gustavo Pereira Humberto Nunes Filho José de Anchieta Isaac de Lima Oliveira Filho

Referências LOWY, Juval. COM and .NET Component

Services. 1° Ed. Editora: O'Reilly Media, September 2001. 384 p.

Microsoft Developer Network. COM+ (Component Services). Microsoft Corporation 2008. Disponível em: <http://msdn2.microsoft.com/en-us/library/ms685978(VS.85).aspx>. Acesso em: 03/04/2008.

86 /86