Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMurilo Ferro Alterado mais de 11 anos atrás
1
COM, DCOM, COM+ José de Anchieta Isaac de Lima Oliveira Filho
André Gustavo Pereira Humberto Nunes Filho 1
2
Sumário Contextualização COM DCOM COM+ Considerações finais
Referências
3
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)
4
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
5
Contextualização MTS (Microsoft Transaction Services)
Segurança Escalabilidade COM+ (COM + MTS)
6
COM(Component Object Model)
Isaac de Lima Oliveira Filho 6
7
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) 7 7
8
GUID 128 bits Estrutura 8
9
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 9
10
Interface Uma coleção de funções Várias interfaces para cada COM class
Todas as classes COM são derivadas da classe IUnkown 10
11
Base para todos as interfaces COM
QueryInterface AddRef Release Base para todos as interfaces COM 11
12
Interface IUknonw IDispatch 12
13
Passos para um Objeto COM Simples
13
14
Interagindo Cliente /Servidor
14
15
Cliente X Servidor Comportamento Síncrono
Chamadas individuais de métodos 15
16
Servidor COM Serviços que estejam disponíveis na Interface COM.
Três tipos: 16
17
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. 17
18
COMPONETES AUXILIARES
Servidor COM COMPONETES AUXILIARES 18
19
Cliente Pode ser feito em qualquer linguagem, desde que possa ter como referencia o objeto COM. 19
20
Calculadora Abordagem Prática COM 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
21
Cliente X Servidor(TesteCOM.dll)
Servidor(Objetos) € Visual Basic Operacoes.cpp / TesteCOM.cpp Métodos (Objetos) Visual C++ Visual J++ Interface COM CANAL LOCAL Operacoes.h/ TesteCOM.h Bliblioteca COM Regsrv32:LOCAL Interface para COM Referência da Bliblioteca Chamada da Função COM TesteCOM.idl TesteCOM.dll 21 21
22
Cliente X Servidor(Object)
22
23
DCOM(Distributed Component Object Model)
André Gustavo Pereira 23
24
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
25
Arquitetura DCOM Visão Geral
26
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).
27
DCOM Registro no Cliente
[HKEY_CLASSES_ROOT\CLSID\{<CLSID_AuctionServer> }] "AppID"="{<APPID_AuctionServer>}" [HKEY_CLASSES_ROOT \APPID\{<APPID_AuctionServer>}] "RemoteServerName"="auctions.r.us.com"
28
DCOM Código no Cliente IAuction* 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.
29
Arquitetura DCOM
30
DCOM Independência de localização
31
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)
32
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
33
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)
34
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
35
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
36
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
37
Escalabilidade Alguns componentes críticos podem ser isolados em servidores dedicados sem necessidade de recompilação
38
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.
39
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
40
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
41
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
42
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.
43
Segurança
44
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
45
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.
46
Tolerância a Falhas
47
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)
48
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
49
Neutralidade de Protocolo
DCOM pode utilizar qualquer protocolo de transporte, incluindo TCP/IP, UDP, IPX/SPX e NetBIOS Baseado em DCE RPC
50
Neutralidade de Plataforma
DCOM é aberto a todas as abordagens de desenvolvimento entre plataformas Foi definido um padrão binário por plataforma.
51
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
52
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
53
Utilização na Internet
54
COM+(Component Services)
Humberto Nunes Filho 54
55
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
56
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.
57
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
58
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.
59
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.
60
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.
61
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.
62
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
63
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.
64
COM+ Component Services
Contexto em COM+ Encapsulamento com fiscal em COM+
65
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.
66
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.
67
COM+ Component Services
Contexto em COM+ Encapsulamento via interceptação em COM+
68
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( )
69
COM+ Component Services
Contexto em COM+ O objeto contexto
70
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( )
71
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.
72
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.
73
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?
74
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.
75
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.
76
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.
77
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.
78
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.
79
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.
80
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.
81
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.
82
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
83
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
84
Referências MATOS, Telio; Introdução ao COM(Component Object Model).Disponível em 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 /50
85
Referências Microsoft Developer Network. DCOM Technical Overview. Disponível em us/library/ms aspx. Acesso em 02 de Abril de 2008. MSDN Library. DCOM Architecture. Disponível em Acesso em 02 de Abril de 2008.
86
Referências LOWY, Juval. COM and .NET Component Services. 1° Ed. Editora: O'Reilly Media, September p. Microsoft Developer Network. COM+ (Component Services). Microsoft Corporation Disponível em: < us/library/ms685978(VS.85).aspx>. Acesso em: 03/04/2008.
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.