COM é um acrônimo para Component Object Model
; é uma camada orientada a
objeto (e serviços associados) sobre DCE RPC (um padrão aberto) e
define uma convenção de chamada comum que permite que código escrito em qualquer
linguagem chame e interopere com código escrito em qualquer outra linguagem
(desde que essas linguagens reconheçam o COM). O código não apenas pode ser
escrito em qualquer linguagem, mas nem precisa fazer parte do mesmo
executável; o código pode ser carregado a partir de uma DLL, ser encontrado em outro
processo rodando na mesma máquina, ou, com DCOM (COM Distribuído), ser
encontrado em outro processo em uma máquina remota, tudo sem que o código
precise saber onde um componente reside.
Existe um subconjunto do COM conhecido como Automação OLE que compreende um conjunto de
interfaces COM que permitem ligações flexíveis a objetos COM, para que possam
ser introspectados e chamados em tempo de execução sem conhecimento em tempo de compilação de
como o objeto funciona. A extensão COM do PHP utiliza interfaces de
automação OLE para permitir que sejam criados e chamados objetos compatíveis
a partir de scripts. Tecnicamente falando, isso deveria ser chamado de
"OLE Automation Extension for PHP
" (Extensão de Automação OLE para PHP), já que nem todos os objetos COM são
compatíveis com OLE.
Agora, por que O COM seria ou deveria ser usado? COM é uma das principais formas de unir aplicativos e componentes na plataforma Windows; usando COM pode-se iniciar o Microsoft Word, preencher um modelo de documento e salvar o resultado como um documento Word e enviá-lo a um visitante do site. Pode-se também pode usar o COM para executar tarefas administrativas na rede e configurar o IIS; estes são apenas os usos mais comuns; pode-se fazer muito mais com o COM.
Além disso, a extensão oferece suporte à instanciação e criação montagens .Net usando a camada de interoperabilidade COM fornecida pela Microsoft.