الأربعاء، 29 فبراير 2012

ويندوز كوميونيكاشن فاونداشن ( Windows Communication Foundation )


السلام عليكم و رحمة الله .. سنتحدث في هذا الموضوع عن بعض التقنيات الخاصة بمنصة الـ NET.

WCF - WPF

ويندوز كوميونيكاشن فاونداشن ( بالإنجليزية: Windows Communication Foundation )

 ( أو اختصاراً : WCF )

هو عبارة عن مكتبة واجهة برمجة تطبيقات ( بالإنجليزية: API ) ، وجزء من إطار عمل دوت نت، مخصص لبناء

 البرامج التي تحتاج إلى التواصل فيما بينها. وقد كان في الأصل مدرجا تحت اسم "Indigo"، وهو واحد من

 أربعة واجهات برمجية جديدة، اصدرتها مايكروسوفت في ديسمبر 2006 مع الإصدار 3.0 من إطار عمل

 دوت نت، وهي :

ويندوز كوميونيكاشن فاونداشن ( WCF ) : الواجهة المختصة باتصالات البرامج

( WPF Windows Presentation Foundation ( Avlon : الواجهة المختصة ببناء واجهات استخدام

للبرامج غنية الواجهة البطاقة الرقمية لويندوز CardSpace : تخزن للعملاء دليل لهوياتهم الرقمية،

مظهراً إياها لهم في شكل بظاقات، حيث يوفر واجهة متناسقة تمكن الناس بسهولة من استخدام الهويات الرقمية

في البرامج ومواقع الويب التي تقبلهم

أساسيات سير عمل ويندوز ( WF ) : هي تكنولوجيا مايكروسوفت لتعريف، وتنفيذ، والتحكم في

 سير العمل البرمجي ( بالإنجليزية : Workflow )

ولأن WCF جزء من إطار عمل دوت نت فإن البرامج التي تستخدمه يمكن برمجتها بأي لغة من لغات إطار عمل دوت نت.


WCF يوحد مختلف نماذج برمجة الاتصالات المدعومة في إطار عمل دوت نت إلى نموذج واحد. صدر في

 نوفمبر 2005. تقدم Net 2.0 واجهات منفصلة (API) للاتصالات القائمة على SOAP، و ذلك لتحقيق أقصى قدر

 من خدمات العمل البينى interoperability Web Services، ومن الاتصالات الثنائية المحسنة

 binary-optimized communication بين التطبيقات التي تعمل على أجهزة ويندوز(Net Remoting.)،

والمعاملات القامة على الاتصالات transactional communications، والمعاملات الموزعة على أكثر

 من جهاز (Distributed Transactions)، والاتصالات غير المتزامنة (asynchronous communications

(Message Queues.

و قد قامت WCF بتوحيد قدرات هذه الآليات إلى نموذج واحد عام شامل للاتصالات والبرمجة خدمية

 التوجه (بالإنجليزية: Service-oriented programming).
وتقوم WCF باستخدام SOAP messages بين عمليتين، مما يجعل تطبيقات القائمة على WCF متبادلة العمل

 البينى مع أي عملية أخرى تتواصل عبر SOAP messages.

عندما تتواصل عملية قائمة على WCF مع عملية غير قائمة على WCF، فإنها تستخدم تكويد XML.

لكن عندما تتواصل مع عملية أخرى قائمة على WCF يتم تشفير رسالة الـ SOAP في شكل رقمي ثنائي

 محسن optimized binary format وكلا من الطريقتين في التشفير مطابقة لهياكل البيانات data structure

 بنظام SOAP format وتسمى Infoset

و تقوم WCF باستخدام نظام ترميز pluggable، مما يسمح للمبرمجين كتابة التشفير الخاصة بهم.

ومع إطلاق الإصدار 3.5 من إطار عمل دوت نت. في نوفمبر 2007، أطلقت مايكروسوفت مشفر

 encoder لتقديم الدعم بالنسبة إلى JSON serialization format على WCF، وهذه الخدمة تسمح

 لـ WCF Service بعمل requests من صفحات AJAX-powered web pages.

[عدل]البنية الموجهة نحو الخدمات Service oriented architecture

صممت WCF وفقا لمبادئ البنية خدمية التوجه (بالإنجليزية: Service-oriented architecture) لكي تدعم

الحوسبة الموزعة. حيث الخدمات يستعملها المستهلك (بالإنجليزية: consumers).

يمكن للعملاء (بالإنجليزية: Clients) استعمال خدمات متعددة، ويمكن للخدمة (بالإنجليزية: Service)

 أن يستعملها عملاء متعددون.

الخدمة عادة ما يكون لها أي (WSDL interface (Web Services Description Language حيث يمكن

أي عميل WCF من استخدام الخدمة، بغض النظر عن النظام الموجودة فيه الخدمة Service.

WCF تشمل العديد من مبادئ ومقاييس خدمات الإنترنت المتقدمة Webservice WS مثل WS-Addressing،

 WS-ReliableMessaging و WS-Security.

وحيث أن مايكروسوفت هي أحد أعضاء WS-I فإنه من غير الواضح كم عدد الـ WS-I profiles

 التي تنوي دعمها كاملة.

تعريف WCF Services

تعرف في البرنامج في شكل class، وبه يعرف العقد (بالإنجليزية: interface) تمثل methods فيه العمليات

 التي تؤديها الخدمة وعادة، تعرف المدخلات والمخرجات في interface. يمكنك تصور ذلك باعتباره

 Data Transfer Objects.

البيانات، وعقود الخدماتتعرف في البرنامج باستخدام جمل معينة تعرف في الدوت نت

 باسم Attributes.

أي class يعرض باعتباره خدمة WCF يجب أن تكون به Attributes باسم ServiceContract أو يكون

 تطبيقات لواجهة مميزة به (or implement an interface marked with it).

كل methods التي يمكن للعملاءاستخدامها من خلال SOAP يجب أن تكون مميزة بكتابة

 Attribute OperationContract.

كل classes or structures التي تعرف البيانات التي سيتم نقلها إلى أو من العمليات لابد من تمييزها

 هي الأخرى بكتابة Attribute OperationContract.

هذه ال Attribute تدعم الجيل الاوتوماتيكى من descriptions WSDL للعمليات المصدرة

 exposed methods التي يمكن استعمالها من قبل العميل أو إعلانها إليه.

تستطيع الخدمة تصدير عقود متعددة multiple Service Contracts.، وهذا يمكن عمله بتعريف

 multiple.NET interfaces كل منها مميز كعقد للخدمة.

وتسمح أيضا ServiceContract وAttributes OperationContract للـ interface بلإشارة إلى عقد

 سابق التعريف، مما يوفر خياراً لدعم إصدارات مختلفة من interface. جميع عقود Services مرتبطة

 بعقود بيانات ضمنية أو صريحة التي تحدد البيانات التي تعمل على هذه الخدمة.

إذا كانت parameters المقبولة أو المخرجة من ال service methods تتكون من أنواع بدائية primitive types integer,

double, boolean), وغير ذلك)، فإن البيانات العقد يعرف ضمنيا من قبل WCF. إذا، من ناحية أخرى،

إذا كانت البيانات من النوع معقدة مثل object or a struct، فإنه لا بد من تعريف صريح من قبل

 المبرمج عن طريق تعريف Attribute.

عقود البيانات تحدد كيفية تسلسل بيانات ونزع تسلسل البيانات serialization and de-serialization،

مما يسمح بتمثيل objects التي تدخل أو تخرج حسب المطلوب.

عقد البيانات يعرف باستخدام Attribute DataContract في a class أو structure. أعضاء ال structure

 التي ستستخدمها الService تحتاج إلى التمييز بواسطة الAttribute DataMember. فقط أولئك الأعضاء

 سوف تنقل بين الخدمة والعملاء.

و بنفس الطريقة التي يمكن بها لعدة classes تمثيل نفس الـ interface، يمكن بها لعدة classes تطبيق نفس

 عقد البيانات Data Contract، ويمكن كيفية تسلسل بيانات ونزع تسلسل البيانات نفسها.

بالتعمق غى هذه الفكرة، نجد أن.NET class معرفة بلغة سي شارب أو فيجوال بيسك يستطيع أن يطبق

عقد بيانات Data Contract ويسلسل إلى حزمة بيانات data packet ثم يفك التسلسل إلى

Java class أو PHP class.

يمكن التحكم في سلوك الService بشكل عام والعمليات بشكل خاص باستخدام ServiceBehavior

 و perationBehavior attribute على التوالي.

ال Attribute ServiceBehavior لها خواص مختلفة properties.

فإن ConcurrencyMode property يحدد ما إذا كانت الService ستكون متزامنة concurrent،

 أي ما إذا كان سيدعم العملاء Clients في وقت واحد أم لا. وبالمثل، فإن property InstanceMode يحدد

 ما إذا كانت نسخة واحدة instance من الService ستقوم بالرد على جميع الطلبات المرسلة من العملاء

 ام انه ستنشأ نسخة جديدة instance Service للرد على كل طلب جديد.

تعريف نقاط اتصال

عميل الـ WCF يتصل بـ Service WCF عبر نقاط اتصال. كل خدمة تعرض عقودها عبر نقطة

 اتصال أو أكثر. لكل نقطة اتصال عنوان، وهو عبارة عن URL يعرف أاين يمكن الاتصال بها،

وخواص ربط binding properties تحدد كيفية نقل البيانات.

يمكن استخدام الحروف "ABC" لنتذكر "عنوان Address / الروابط Binding / العقد Contract"

الروابط تحدد نوع البروتوكولات المستخدم الاتصال بالخدمة، ما إذا كان ينبغي استخدام آليات

 أمنية security mechanisms، وما شابه ذلك.

ويحتوى WCF على تعريفات لمعظم بروتوكولات الاتصالات SOAP over

 HTTP ،SOAP over TCP، و SOAP over Message Queues،..إلخ.

عندما يريد العميل الوصول إلى الخدمة عبر نقاط اتصال، فإنه لا يحتاج فقط إلى معرفة العقود،

 ولكن أيضا على الاتزام بالروابط التي تحددها نقاط اتصال. وهكذا، يجب أن يكون كل من العميل والخدمة

 متوافقين في نقاط اتصال.

دعم REST في WCF

في الإصدار 3 من إطار عمل دوت نت، أضافت WCF الدعم للاتصالات -style communications REST

 يمكن للمبرمجين تحديد نماذج عنوان URL Templates في عقود العملية Operation Contracts،

للسماح بتنفيذ الmethods عند استلام طلب request عند موقع معين URL.

يمكن استخراج Parameters من عناوين الموقع تلقائيا URL وإعطاءها إلى ال methods

يوجد دعم ل JSON، و data serialization plain-old-XML

فضلا عن آليات بديلة لأنواع المرتجعات الثنائية binary return types (مثل JPG).

تبني

شركاء مايكروسوفت يدعمون WCF

SAP يقدم إضافات إلى أدوات مايكروسوفت فيجيوال ستوديو لتوليد client-side proxies تتيح الاتصال

 بـ SAP Enterprise systems

شركة آي بي إم ستنتج WCF Channel for MQ

كما أنتجت أيضاً لتتيح للمبرمجين اتصالات قائمة على WCF للاتصال بأي نظام خارجي افتراضي.





مدونة ديزاد سوفت التقنية




0 comments: