أتمتة OLE
في برمجة تطبيقات مايكروسوفت ويندوز ، تُعدّ أتمتة OLE (التي أُعيد تسميتها لاحقًا إلى الأتمتة [ 1 ] [ 2 ] ) آلية اتصال بين العمليات طورتها مايكروسوفت . وهي مبنية على جزء من نموذج كائنات المكونات (COM) الذي صُمم في الأصل للاستخدام في لغات البرمجة النصية - فيجوال بيسك في الأصل - ولكنها تُستخدم الآن في العديد من لغات ويندوز. يجب على جميع كائنات الأتمتة تنفيذ واجهة IDispatch . توفر هذه الآلية بنية تحتية تُمكّن التطبيقات، التي تُسمى وحدات تحكم الأتمتة، من الوصول إلى كائنات الأتمتة المشتركة التي تُصدّرها تطبيقات أخرى ومعالجتها (أي ضبط خصائصها أو استدعاء توابعها) . وهي تحل محل تبادل البيانات الديناميكي (DDE)، وهي آلية أقدم للتحكم بين التطبيقات. [ 3 ] وكما هو الحال مع DDE، في أتمتة OLE، تُعتبر وحدة تحكم الأتمتة هي "العميل"، بينما يُعتبر التطبيق الذي يُصدّر كائنات الأتمتة هو "الخادم".
على عكس ما يوحي به اسمها، لا تستخدم كائنات الأتمتة بالضرورة تقنية Microsoft OLE ، مع أن بعض كائنات الأتمتة يمكن استخدامها في بيئات OLE. ويعود هذا الالتباس إلى تعريف مايكروسوفت السابق لتقنية OLE، التي كانت في السابق مرادفًا تقريبًا لتقنية COM.
المزايا والعيوب
لضمان قابلية التشغيل البيني، تقتصر واجهات التشغيل الآلي على استخدام مجموعة فرعية من جميع أنواع COM. [ 4 ] [ 5 ] وعلى وجه التحديد، يجب أن تستخدم واجهات التشغيل الآلي SAFEARRAY بدلاً من مصفوفات COM الخام.
مع ذلك، يمكن لخوادم COM المتوافقة مع التشغيل الآلي الاعتماد على تطبيق OLE المدمج لترتيب البيانات. [ 6 ] وهذا يُغني عن الحاجة إلى مشاريع وسيطة/بديلة إضافية لترتيب البيانات خارج العملية.
الاستخدام
صُممت أنظمة الأتمتة مع مراعاة سهولة البرمجة النصية، لذا غالبًا ما توفر وحدات التحكم لغات مثل Visual Basic for Applications للمستخدمين النهائيين، مما يسمح لهم بالتحكم في عناصر الأتمتة عبر البرامج النصية. تُكتب عناصر الأتمتة عادةً بلغات تقليدية مثل C++ ، [ 7 ] حيث يمكن استخدام خصائص C++ لتبسيط عملية التطوير، [ 8 ] كما توفر لغات مثل Visual Basic و Borland Delphi بنيةً سهلة الاستخدام للأتمتة تُخفي تعقيد التنفيذ الأساسي.
مكتبات الأنواع
لأتمتة تطبيق ما، يجب على مطور وحدة التحكم في الأتمتة معرفة نموذج الكائنات الذي يستخدمه التطبيق المستهدف الذي يُصدّر كائنات التنشيط. [ 9 ] يتطلب هذا من مطور التطبيق المستهدف توثيق نموذج كائناته بشكل علني. يُعد تطوير وحدات التحكم في الأتمتة دون معرفة نموذج كائنات التطبيق المستهدف أمرًا "صعبًا، إن لم يكن مستحيلاً". [ 10 ] نظرًا لهذه التعقيدات، تُزوّد مكونات الأتمتة عادةً بمكتبات أنواع ، تحتوي على بيانات وصفية حول الفئات والواجهات والميزات الأخرى التي تُوفّرها مكتبة الكائنات. تُوصف الواجهات بلغة تعريف واجهة مايكروسوفت (Microsoft Interface Definition Language ). يمكن عرض مكتبات الأنواع باستخدام أدوات متنوعة، مثل عارض كائنات OLE/COM من مايكروسوفت ( oleview.exeجزء من حزمة تطوير البرامج لمنصة مايكروسوفت ) أو مستعرض الكائنات في فيجوال بيسك (حتى الإصدار 6) وفيجوال ستوديو دوت نت . تُستخدم مكتبات الأنواع لإنشاء نمط وكيل / رمز برمجي للتوافق بين COM ومنصات أخرى، مثل مايكروسوفت دوت نت وجافا . على سبيل المثال، تتضمن حزمة تطوير البرامج (SDK) الخاصة بإطار عمل .NET أدواتٍ تُتيح إنشاء مكتبة DLL وسيطة لـ .NET للوصول إلى كائنات Automation باستخدام كلٍّ من الربط المبكر (مع استخراج معلومات حول الواجهات من مكتبة أنواع) والربط المتأخر (عبر IDispatch، المُرتبط بواجهة برمجة تطبيقات .NET Reflection API)، وذلك باستخدام جسر COM Interop المُدمج بين .NET وCOM . [ 11 ] في حين أن Java تفتقر إلى دعم COM مُدمج، فإن مجموعات أدوات مثل JACOB [ 12 ] وjSegue [ 13 ] تُتيح إنشاء شفرة مصدر وسيطة (تتكون من جزأين: مجموعة من فئات Java وشفرة مصدر C++ لمكتبة DLL خاصة بواجهة Java الأصلية ) من مكتبات الأنواع. تعمل هذه الحلول على نظام Windows فقط. كما توجد مكتبة j-Interop [ 14 ] أخرى مبنية على Java تُتيح التوافق مع مكونات COM دون الحاجة إلى JNI ، باستخدام بروتوكول DCOM السلكي (MSRPC)، وتعمل أيضًا على منصات غير Windows.
قامت مايكروسوفت بتوثيق نموذج الكائنات لجميع تطبيقات مايكروسوفت أوفيس علنًا ، [ 15 ] كما قام بعض مطوري البرامج الآخرين بتوثيق نماذج الكائنات لتطبيقاتهم. تُقدَّم نماذج الكائنات لوحدات التحكم الآلي كمكتبات أنواع، مع وصف واجهاتها بلغة ODL .
الدعم اللغوي
تتوفر خاصية التشغيل الآلي لمجموعة متنوعة من اللغات، بما في ذلك على سبيل المثال لا الحصر:
- ABAP
- ج
- C++ (مع دعم Compiler COM، [ 16 ] أو مع مكتبات مثل MFC أو ATL )
- سي شارب
- فيجوال بيسك وفيجوال بيسك للتطبيقات
- فيجوال فوكس برو
- dBASE (عبر فئة OleAutoClient)
- دلفي [ 17 ]
- MATLAB [ 18 ]
- لغات مايكروسوفت دوت نت [ 11 ]
- لغة برمجة التطبيقات (APL) (معظم إصدارات ويندوز)
- جافا (فقط باستخدام أدوات خارجية)
- JScript [ 9 ] و VBScript
- فتح كائن Rexx [ 19 ]
- بيرل [ 20 ]
- PHP [ 21 ]
- باور بيلدر
- بايثون [ 22 ] [ 23 ]
- روبي (عبر مكتبة 'win32ole' المضمنة في توزيعة روبي القياسية 1.8.x أو أحدث)
- Tcl [ 24 ]
- Visual DataFlex
- WinBatch [ 25 ]
انظر أيضاً
مراجع
- ↑ شركة مايكروسوفت (3 أغسطس 2021). "الأتمتة (MFC)" . MSDN .
- ↑ كرو جيه؛ وينغو، سكوت؛ شيبارد، جورج (1998). "الفصل 25: الأتمتة". برمجة مايكروسوفت فيجوال سي++ 6.0 ( الطبعة الخامسة). ريدموند، واشنطن: مطبعة مايكروسوفت . ISBN 978-1-57231-857-1.
- ↑ غوردون ماكومب (1997). "استخدام أتمتة OLE للتحكم في WordPerfect" . مؤرشف من الأصل بتاريخ 15 أغسطس 2017. تم الاطلاع عليه بتاريخ 20 يوليو 2006 .— يصف ماكومب كيفية استخدام أتمتة OLE بدلاً من DDE للتحكم في WordPerfect
- ↑ مايكروسوفت MSDN: سمة oleautomation
- ↑ مايكروسوفت MSDN: أنواع متوافقة مع التشغيل الآلي
- ↑ مايكروسوفت MSDN: تفاصيل التنسيق (COM) مكتبة أنواع التنسيق إضافات المجتمع
- ↑ كريس أوكلي. "أتمتة OLE لمبرمجي C++" .
- ↑ مجلة MSDN: سمات لغة C++: اجعل برمجة COM سهلة للغاية مع ميزة جديدة في Visual Studio .NET
- 1 2 يهودا شيران وتومر شيران. "أتمتة OLE في جافا سكريبت" . مرجع الويب .- على الرغم من العنوان، فإن المقال يناقش JScript بدلاً من JavaScript
- ↑ بروس أرمسترونغ (16 يناير 2006). "OLE - توسيع إمكانيات PowerBuilder (الجزء 2)" . مجلة مطوري PowerBuilder . 12 (11). مؤرشف من الأصل في 19 فبراير 2008. تم الاطلاع عليه في 21 يوليو 2006 .
- 1 2 أبلمان، دان (2001). "الفصل 15: التوافق مع COM والوصول إلى واجهة برمجة تطبيقات Win32". الانتقال إلى VB.NET: الاستراتيجيات والمفاهيم والبرمجيات . Apress . ISBN 978-1-893115-97-2.
- ↑ "مشروع جاكوب" . 17-10-2004.
- ↑ "jSegue" . 2005-12-14.
- ↑ "j-Interop: التوافق بين Java وCOM من أي منصة" . مؤرشف من الأصل بتاريخ 1 فبراير 2009. تم الاطلاع عليه بتاريخ 20 ديسمبر 2013 .
- ↑ "كيفية العثور على وثائق نموذج كائنات Office واستخدامها" . قاعدة المعرفة . شركة مايكروسوفت.
- ↑ "دعم COM للمترجم" . MSDN . مايكروسوفت. 3 أغسطس 2021.
- ↑ "أتمتة OLE باستخدام دلفي" . About.com . مؤرشف من الأصل بتاريخ 9 نوفمبر 2005. تم الاطلاع عليه بتاريخ 26 يوليو 2006 .
- ↑ "actxserver - وثائق MATLAB" .
- ↑ "Open Object Rexx" . مؤرشف من الأصل بتاريخ 7 فبراير 2005. تم الاطلاع عليه بتاريخ 20 مارس 2009 .
- ↑ جان دوبوا (صيف 1998). "Win32::OLE" . مجلة بيرل . 3 (2).
- ↑ مجموعة PHP (2006-07-25). "PHP: COM و .Net (Windows)" .
- ↑ مارك هاموند (20 يناير 2018). "امتدادات بايثون لنظام التشغيل ويندوز" .
- ↑ Sourceforge (17 فبراير 2014). "حزمة Comtypes Python" .
- ↑ مبرمجو لغة Tcl. "OLE من منظور Tcl" .
- ↑ ستان ليتلفيلد. "برنامج تعليمي لبرمجة OLE WINBATCH OLE" .
للمزيد من القراءة
- شركة مايكروسوفت (ديسمبر 1993). مرجع مبرمج OLE 2: إنشاء تطبيقات قابلة للبرمجة باستخدام أتمتة OLE الإصدار 2. مكتبة مراجع المبرمجين. مطبعة مايكروسوفت . ISBN 978-1-55615-629-8.
- كريج بروكشميت (1995). داخل أولي . مايكروسوفت برس .
- شركة مايكروسوفت (1996). مرجع مبرمج أتمتة OLE . مكتبة مراجع المبرمجين. مطبعة مايكروسوفت . ISBN 978-1-55615-851-3.
- شركة مايكروسوفت (1999). مرجع لغة فيجوال بيسك لتطبيقات مايكروسوفت أوفيس 2000. مطبعة مايكروسوفت . رقم ISBN 978-1-57231-955-4.— وثائق مطبوعة كاملة لنموذج كائنات مايكروسوفت أوفيس
روابط خارجية
- أتمتة OLE: ورقة بحثية عامة حول مقدمة ومشاكل تطبيق OLE.
- " VOLE - برنامج تشغيل أتمتة/COM أنيق بلغة C++ " - مكتبة مفتوحة المصدر، مستقلة عن المُصرّف، لتشغيل أتمتة COM بلغة C++، تُستخدم عند الحاجة إلى تشغيل IDispatch مباشرةً. يتميز VOLE بقوة عالية، ويُغلف جميع جوانب IDispatch "منخفضة المستوى" بشكل كامل، كما أنه مرن للغاية، حيث يستقبل ويعيد أنواع C++ عادية.
- البرمجة الكائنية التوجه
- واجهات برمجة تطبيقات مايكروسوفت
