OLE Automation (posteriormente renomeado pela Microsoft para somente Automation,[1][2] apesar do termo antigo ainda ser bastante usado) é mecanismo para a comunicação entre processos baseado em Component Object Model (COM)[3] introduzido pela Microsoft. Ele fornece uma infraestrutura na qual aplicações (chamadas controladores de automação) podem acessar e manipular dados compartilhados (chamados objetos de automação) que são exportados por outras aplicações. Ela é uma evolução à Dynamic Data Exchange, um mecanismo mais antigo para que aplicações controlem umas as outras. Assim como em DDE, em OLE Automation o controlador de automação é o cliente e a aplicação exportando os objetos de automação é o servidor.
Uso
A Automation foi desenvolvida com a facilidades dos scripts em mente, de forma que os controladores pudessem fornecer linguagens como o Visual Basic for Applications pra usuários finais, permitindo que eles controlem objetos de automação através de scripts.
Interfaces
Um objeto de automação é simplesmente um objeto COM que implementa uma interface IDispatchM
. Essa interface expõe quatro métodos, entre eles Invoke
: esse método permite chamar métodos de uma classe pelo nome, com uma quantidade arbitrária de parâmetros. Nem o nome do método nem a quantidade (e seus respectivos tipos de dado) de parâmetros precisam ser conhecidos em tempo de compilação. A maioria dos componentes COM existentes são compatíveis com Automation.
Suporte em linguagens
Automation (diferente do resto da COM) é disponível para uma variedade de linguagens, incluindo:
- C++ (diretamente ou através de bibliotecas como MFC ou ATL)
- Visual Basic e Visual Basic for Applications
- Delphi[4]
- Linguagens da Microsoft .NET
- Java (não nativamente)
- JScript e VBScript
- Perl
- PHP[5]
- PowerBuilder
- Ruby (a partir do padrão 1.8.x)
Notas e referências
- ↑ Microsoft Corporation. «Automation (MFC)». MSDN.com
- ↑ David J. Kruglinski; Scott Wingo; George Shepherd (1998). Programming Microsoft Visual C++ 6.0 5 ed. Redmond: Microsoft Press. ISBN 1-57231-857-0
- ↑ Richard Potter (18 de abril de 1999). «OLE Automation». Consultado em 17 de abril de 2007. Arquivado do original em 4 de março de 2007
- ↑ «OLE Automation using Delphi»
- ↑ «PHP: COM and .Net (Windows)». 25 de julho de 2006
Ver também
- Object Linking and Embedding (OLE)
- Component Object Model (COM)