Кіріспе
Microsoft Windows бағдарламалық қосымшаларында OLE Automation (кейіннен жай ғана Автоматтандыру деп аталды) – Microsoft компаниясы құраған процестер аралық байланыс механизмі. Ол Component Object Model (COM) жиынтығының бір бөлігіне негізделген, бастапқыда Visual Basic сияқты скрипт тілдерін пайдалану үшін жасалған, бірақ қазір Windows жүйесінде көптеген тілдер қолданады. Барлық автоматтандыру объектілері IDispatch интерфейсін іске асыруға міндетті. Ол автоматтандыру контроллері деп аталатын бағдарламаларға басқа бағдарламалар экспорттайтын ортақ автоматтандыру объектілеріне қол жеткізуге және оларды басқаруға (яғни, қасиеттерін орнатуға немесе әдістерін шақыруға) мүмкіндік беретін инфрақұрылымды қамтамасыз етеді. Бұл бұрынғы бағдарламалардың бір-бірін басқаруына арналған Динамикалық дерек алмасу (DDE) механизмін ығыстырады. DDE сияқты, OLE Automation-да автоматтандыру контроллері "клиент", ал автоматтандыру объектілерін экспорттайтын бағдарлама "сервер" болып табылады. Атына қарамастан, автоматтандыру объектілері міндетті түрде Microsoft OLE-ді пайдаланбайды, бірақ кейбір автоматтандыру объектілерін OLE орталарында қолдануға болады. Бұл шатасудың себебі Microsoft компаниясының OLE анықтамасының бұрынғы нұсқаларында, ол COM-ның дерлік синонимі болған.
Артықшылықтары мен шектеулері
Өзара жұмыс істеуді қамтамасыз ету үшін автоматтандыру интерфейстері барлық COM типтерінің шектеулі жиынтығын ғана пайдаланады. Атап айтқанда, автоматтандыру интерфейстері жай COM массивтерінің орнына SAFEARRAY-ді қолдануы тиіс. Бірақ, автоматтандырумен үйлесімді COM серверлері ендірілген OLE жіберу (marshalling) жүзеге асыруын пайдалана алады. Бұл процестен тыс жіберу үшін қосымша прокси/стаб жобаларын қажет етуді болдырмайды.
Қолданылуы
Автоматтандыру оңай сценарий жазу мүмкіндігімен жасалған, сондықтан басқару контроллерлері көбінесе соңғы пайдаланушыларға Visual Basic for Applications сияқты тілдерді ұсынады, оларға сценарийлер арқылы автоматтандыру объектілерін басқаруға мүмкіндік береді. Автоматтандыру объектілері көбінесе C++ сияқты кең таралған тілдерде жазылады, онда C++ мүмкіндіктерін пайдалану дамытуды жеңілдетуге көмектеседі. Visual Basic және Borland Delphi сияқты тілдер де автоматтандыру үшін ыңғайлы синтаксиспен қамтамасыз етеді, ол негізгі іске асырудың күрделігін жасырады.
Түр кітапханалары
Қолданбаны автоматтандыру үшін автоматтандыру контроллерін әзірлеуші, мақсатты қолданба экспорттайтын белсенділік объектілерін қолданатын объект моделін білуі керек. Бұл мақсатты қолданбаны әзірлеушінің өзінің объект моделін жариялап құжаттауын қажет етеді. Мақсатты қолданбаның объект моделін білмей автоматтандыру контроллерлерін жасау «мүмкін емес дерлік». Осы қиындықтарға байланысты, автоматтандыру компоненттері әдетте типтік кітапханалармен жабдықталады, олар кластар, интерфейстер және объект кітапханасы ұсынатын басқа мүмкіндіктер туралы метадеректерді қамтиды. Интерфейстер Microsoft Interface Definition Language тілінде сипатталған. Түр кітапханаларын әртүрлі құралдар арқылы қарауға болады, мысалы Microsoft OLE/COM Object Viewer (oleview.exe, Microsoft Platform SDK құрамының бөлігі) немесе Visual Basic (6 нұсқасына дейін) және Visual Studio NET-тегі Object Browser. Типтік кітапханалар COM және басқа платформалар, мысалы Microsoft .NET және Java арасындағы өзара әрекеттесу үшін Proxy үлгісі/stub кодын жасау үшін қолданылады. Мысалы, .NET Framework SDK құралына ерте байланыс (типтік кітапханадан алынған интерфейстер туралы ақпаратпен) және кеш байланыс (IDispatch арқылы, .NET Reflection API-ге шайқастырылған) арқылы, COM Interop деп аталатын .NET-COM көпірін пайдалана отырып, автоматтандыру объектілеріне қол жеткізу үшін прокси .NET DLL құратын құралдар кіреді. Java-да COM қолдауы болмағандықтан, JACOB және jSegue сияқты құралдар жиынтығы типтік кітапханалардан прокси бастапқы кодын (екі бөліктен тұратын, Java кластарының жиынтығы және Java Native Interface DLL үшін C++ көзі) құруға мүмкіндік береді. Бұл шешімдер тек Windows жүйесінде жұмыс істейді. DCOM сым протоколын (MSRPC) пайдалана отырып, JNI қажет емес COM компоненттерімен өзара әрекеттесуді қамтамасыз ететін және Windows емес платформаларда да жұмыс істейтін тағы бір Java негізіндегі jInterop кітапханасы бар. Microsoft Microsoft Office-тегі барлық қолданбалардың объект моделін жариялаған, ал кейбір басқа бағдарламалық жасақтама әзірлеушілер өз қолданбаларының объект моделін де құжаттаған. Объект модельдері автоматтандыру контроллерлеріне типтік кітапханалар түрінде ұсынылады, олардың интерфейстері ODL-де сипатталған.