Resumo de Arquitetura de Software - COM (Component Object Model)

COM (Component Object Model)

COM (Component Object Model) - Resumo para Concursos

Definição e Objetivo

COM (Component Object Model) é um padrão de arquitetura de software da Microsoft para criação de componentes binários reutilizáveis. Seu objetivo é permitir a interoperabilidade entre linguagens e processos, seguindo o paradigma de orientação a objetos.

Principais Características

  • Binário: Componentes são distribuídos como código binário (não fonte)
  • Reutilização: Permite "montar" aplicações com componentes independentes
  • Interoperabilidade: Componentes podem ser escritos em diferentes linguagens
  • Local/Remoto: Funciona tanto localmente (DLLs) quanto remotamente (DCOM)

Conceitos Fundamentais

  • Interfaces: Contratos binários com métodos (sem implementação)
  • IUnknown: Interface base com métodos QueryInterface, AddRef e Release
  • GUIDs: Identificadores únicos globais para interfaces e classes
  • HRESULT: Tipo de retorno padrão para tratamento de erros

Vantagens

  • Atualização de componentes sem recompilar aplicações
  • Integração entre linguagens (ex: C++ e Visual Basic)
  • Suporte a versionamento via novas interfaces

Desvantagens

  • Complexidade no gerenciamento de referências
  • Problemas com "DLL Hell" (conflito de versões)
  • Principalmente restrito ao ecossistema Microsoft

Relacionamento com Outras Tecnologias

  • DCOM: Extensão para comunicação remota
  • COM+: Evolução com serviços adicionais (transações, segurança)
  • .NET: Sucessor com CLR, mas mantém interoperabilidade via RCW/CCW