A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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 André Gustavo Pereira Humberto Nunes Filho 1 /86

2 Sumário Contextualização COM DCOM COM+ Considerações finais Referências 2 /86

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) 3 /86

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 4 /86

5 Contextualização MTS (Microsoft Transaction Services) Segurança Escalabilidade COM+ (COM + MTS) 5 /86

6 COM(Component Object Model) Isaac de Lima Oliveira Filho 6 /86

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 /86

8 GUID 128 bits Estrutura 8 8 /86

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 9 /86

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 /86

11 Interface Base para todos as interfaces COM QueryInterface AddRef Release /86

12 Interface IDispatch IUknonw /86

13 Passos para um Objeto COM Simples /86

14 Interagindo Cliente /Servidor /86

15 Cliente X Servidor Comportamento Síncrono Chamadas individuais de métodos /86

16 Servidor COM Serviços que estejam disponíveis na Interface COM. Três tipos: /86

17 Servidor COM In-process: implementados com Dynamic Link Libraries(DLLs), 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 /86

18 Servidor COM COMPONETES AUXILIARES /86

19 Cliente Pode ser feito em qualquer linguagem, desde que possa ter como referencia o objeto COM /86

20 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

21 Cliente X Servidor(TesteCOM.dll) Visual Basic Visual C++ Visual J++ Operacoes.cpp / TesteCOM.cpp Operacoes.h/ TesteCOM.h Operacoes.h/ TesteCOM.h Interface para COM Métodos (Objetos ) TesteCOM.dll 21 Cliente Regsrv32:LO CAL Bliblioteca COM Regsrv32:LO CAL CANAL LOCAL Servidor(Objetos) TesteCOM.idl Interface COM Referência da Bliblioteca Chamada da Função COM 21 /86

22 Cliente X Servidor(Object) 22 /86

23 DCOM(Distributed Component Object Model) André Gustavo Pereira 23 /86

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 24 /86

25 Arquitetura DCOM Visão Geral 25 /86

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). 26 /86

27 DCOM Registro no Cliente [HKEY_CLASSES_ROOT\CLSID\{ }] "AppID"="{ }" [HKEY_CLASSES_ROOT \APPID\{ }] "RemoteServerName"="auctions.r.us.com" 27 /86

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. 28 /86

29 Arquitetura DCOM 29 /86

30 DCOM Independência de localização 30 /86

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) 31 /86

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 32 /86

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) 33 /86

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 34 /86

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 35 /86

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 36 /86

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

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. 38 /86

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 39 /86

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 40 /86

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 41 /86

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. 42 /86

43 Segurança 43 /86

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 44 /86

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. 45 /86

46 Tolerância a Falhas 46 /86

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) 47 /86

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 48 /86

49 Neutralidade de Protocolo DCOM pode utilizar qualquer protocolo de transporte, incluindo TCP/IP, UDP, IPX/SPX e NetBIOS Baseado em DCE RPC 49 /86

50 Neutralidade de Plataforma DCOM é aberto a todas as abordagens de desenvolvimento entre plataformas Foi definido um padrão binário por plataforma. 50 /86

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 51 /86

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 52 /86

53 Utilização na Internet 53 /86

54 COM+(Component Services) Humberto Nunes Filho 54 /86

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 55 /86

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 /86

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 57 /86

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. 58 /86

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. 59 /86

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. 60 /86

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. 61 /86

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 62 /86

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. 63 /86

64 COM+ Component Services Contexto em COM+ Encapsulamento com fiscal em COM+ 64 /86

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. 65 /86

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. 66 /86

67 COM+ Component Services Contexto em COM+ Encapsulamento via interceptação em COM+ 67 /86

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( ) 68 /86

69 COM+ Component Services Contexto em COM+ O objeto contexto 69 /86

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( ) 70 /86

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. 71 /86

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. 72 /86

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? 73 /86

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. 74 /86

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. 75 /86

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. 76 /86

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. 77 /86

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. 78 /86

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. 79 /86

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. 80 /86

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. 81 /86

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 82 /86

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 83 /86

84 Referências 84 /50 MATOS, Telio; Introdução ao COM(Component Object Model).Disponível em ADAV/2004_2005/GuiaoCOM.pdf em novembro de 2004.http://www.dei.isep.ipp.pt/~tmatos/ MORAGN, Bryan; Java e os Component Object Model. Acessado em 26 de março de MSDN Liibrary. Acessado em 26 de março de /86

85 Referências Microsoft Developer Network. DCOM Technical Overview. Disponível em us/library/ms aspx. Acesso em 02 de Abril de 2008.http://msdn2.microsoft.com/en- us/library/ms aspx MSDN Library. DCOM Architecture. Disponível em Acesso em 02 de Abril de /86

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:. Acesso em: 03/04/ /86


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google