نظام التشغيل ويندوز
WinFS (اختصار لـ Windows Future Storage ) [ 1 ] كان الاسم الرمزي لمشروع نظام تخزين وإدارة البيانات الذي تم إلغاؤه [2] والذي يعتمد على قواعد البيانات العلائقية ، والذي طورته شركة مايكروسوفت وتم عرضه لأول مرة في عام 2003. وكان المقصود منه أن يكون نظامًا فرعيًا متقدمًا للتخزين لنظام التشغيل مايكروسوفت ويندوز ، مصممًا لحفظ وإدارة البيانات المهيكلة وشبه المهيكلة وغير المهيكلة .
يتضمن نظام ملفات ويندوز (WinFS) قاعدة بيانات علائقية لتخزين المعلومات، ويسمح بتخزين أي نوع من المعلومات فيها، شريطة وجود مخطط بيانات مُحدد جيدًا لهذا النوع. يمكن ربط عناصر البيانات الفردية من خلال علاقات يستنتجها النظام بناءً على سمات معينة أو يُحددها المستخدم صراحةً. ولأن البيانات لها مخطط بيانات مُحدد جيدًا، يمكن لأي تطبيق إعادة استخدامها؛ وباستخدام العلاقات، يمكن تنظيم البيانات ذات الصلة واسترجاعها بكفاءة. ولأن النظام يعرف بنية المعلومات والغرض منها، فإنه يستطيع تنفيذ استعلامات معقدة تُمكّن من إجراء عمليات بحث متقدمة وتجميع البيانات ذات الصلة من خلال استغلال العلاقات بينها.
على الرغم من أن نظام ملفات ويندوز (WinFS) ومخطط أنواعه المشترك يمكّنان التطبيق من التعرّف على أنواع البيانات المختلفة، إلا أنه لا يزال يتعين برمجة التطبيق لعرض هذه الأنواع. وبالتالي، لا يسمح بتطوير تطبيق واحد قادر على عرض أو تعديل جميع أنواع البيانات؛ بل يمكّن WinFS التطبيقات من فهم بنية جميع البيانات واستخراج المعلومات التي يمكن استخدامها لاحقًا. عند تقديم WinFS في مؤتمر المطورين المحترفين عام 2003 ، أصدرت مايكروسوفت أيضًا عرضًا مرئيًا بعنوان IWish [ 3 ] ، يعرض نماذج أولية للواجهات توضح كيفية عرض التطبيقات لواجهات تستفيد من نظام أنواع موحد. تراوحت المفاهيم المعروضة في الفيديو بين تطبيقات تستخدم علاقات العناصر لتقديم خيارات تصفية ديناميكية، وتطبيقات تجمع أنواع بيانات متعددة ذات صلة وتعرضها في عرض موحد.
كان يُنظر إلى نظام ملفات ويندوز (WinFS) على أنه أحد ركائز موجة تقنيات "لونغ هورن" ، وكان من المقرر تضمينه في الإصدار التالي من ويندوز. لاحقًا، تقرر تأجيل تضمين WinFS بعد إصدار ويندوز فيستا ، ولكن تم تعليق هذه الخطط في يونيو 2006، [ 4 ] حيث تم دمج بعض مكوناته التقنية في ADO.NET و Microsoft SQL Server . [ 5 ]
تحفيز
تُخزّن العديد من أنظمة الملفات الموجودة في أنظمة التشغيل الشائعة ، بما في ذلك نظام الملفات NTFS المستخدم في الإصدارات الحديثة من مايكروسوفت ويندوز، الملفات والكائنات الأخرى كسلسلة من البايتات فقط ، ولا تحتوي على معلومات تُذكر حول البيانات المخزنة في الملفات. كما توفر هذه الأنظمة طريقة واحدة فقط لتنظيم الملفات، وهي عبر الدلائل وأسماء الملفات. [ 6 ] [ 7 ]
لأن نظام الملفات لا يملك أي معرفة مسبقة بالبيانات التي يخزنها، [ 6 ] تميل التطبيقات إلى استخدام تنسيقات ملفات خاصة بها ، وغالبًا ما تكون هذه التنسيقات احتكارية . وهذا يعيق مشاركة البيانات بين التطبيقات المتعددة. ويصبح من الصعب إنشاء تطبيق يعالج المعلومات من أنواع ملفات متعددة، لأن المبرمجين مطالبون بفهم بنية ودلالات جميع الملفات. [ 8 ] يُعد استخدام تنسيقات الملفات الشائعة حلاً مؤقتًا لهذه المشكلة ، ولكنه ليس حلاً شاملاً؛ إذ لا يوجد ما يضمن استخدام جميع التطبيقات لهذا التنسيق. أما البيانات ذات المخططات الموحدة، مثل مستندات XML والبيانات العلائقية، فهي أفضل حالًا، نظرًا لبنيتها الموحدة ومتطلبات وقت التشغيل الموحدة. [ 9 ]
كذلك، لا يستطيع نظام الملفات التقليدي استرجاع البيانات والبحث عنها إلا بالاعتماد على اسم الملف، لأن معرفته الوحيدة بالبيانات تقتصر على أسماء الملفات التي تخزنها. [ 8 ] ويُعدّ الحل الأمثل هو وسم الملفات بخصائص تصفها. الخصائص هي بيانات وصفية عن الملفات، مثل نوعها (كالمستند ، أو الصورة ، أو الموسيقى ، أو المُنشئ ، إلخ). [ 6 ] وهذا يُتيح البحث عن الملفات باستخدام خصائصها، بطرق غير ممكنة باستخدام التسلسل الهرمي للمجلدات، كالبحث عن "صور تحتوي على الشخص س" . ويمكن لنظام الملفات التعرّف على هذه الخصائص إما بشكل مباشر، أو عبر امتداد ما. [ 6 ] وتأخذ تطبيقات البحث على سطح المكتب هذا المفهوم خطوةً أبعد. فهي تستخرج البيانات، بما فيها الخصائص، من الملفات وتُفهرسها. ولاستخراج البيانات، تستخدم هذه التطبيقات مُرشِّحًا لكل تنسيق ملف. وهذا يُتيح البحث بناءً على خصائص الملف والبيانات الموجودة فيه. [ 6 ]
مع ذلك، لا يزال هذا غير كافٍ لإدارة البيانات المترابطة، إذ لا توجد علاقات محددة بين العناصر المتباينة. على سبيل المثال، يستحيل البحث عن "أرقام هواتف جميع الأشخاص المقيمين في أكابولكو والذين ظهر كل منهم أكثر من 100 مرة في مجموعتي من الصور، والذين تواصلت معهم عبر البريد الإلكتروني خلال الشهر الماضي" . لا يمكن إجراء مثل هذا البحث إلا إذا استند إلى نموذج بيانات يحدد دلالات البيانات وعلاقاتها. [ 6 ] [ 7 ] يهدف نظام WinFS إلى توفير نموذج البيانات هذا، بالإضافة إلى البنية التحتية اللازمة لتشغيله وتخزين البيانات، فضلاً عن تحديد العلاقات بين عناصر البيانات وفقًا لهذا النموذج، وذلك بمستوى أداء مُرضٍ.
ملخص
يتعرف نظام ملفات WinFS بشكل أصلي على أنواع مختلفة من البيانات، مثل الصور والبريد الإلكتروني والمستندات والصوت والفيديو والتقويم وجهات الاتصال ، بدلاً من تركها كتدفقات بايت خام غير مُحللة (كما تفعل معظم أنظمة الملفات). البيانات المخزنة والمدارة بواسطة النظام هي نسخ من نوع البيانات الذي يتعرف عليه وقت تشغيل WinFS. تُهيكل البيانات باستخدام الخصائص. على سبيل المثال، تُظهر نسخة من نوع السيرة الذاتية البيانات من خلال عرض خصائص مثل الاسم والمؤهل العلمي والخبرة . قد تكون كل خاصية من نوع بسيط ( سلاسل نصية ، أعداد صحيحة، تواريخ ) أو أنواع معقدة ( جهات اتصال ). [ 8 ] [ 10 ] تُظهر أنواع البيانات المختلفة خصائص مختلفة. بالإضافة إلى ذلك، يسمح WinFS أيضًا بربط نسخ البيانات المختلفة معًا؛ على سبيل المثال ، يمكن ربط مستند وجهة اتصال من خلال علاقة "المؤلف" . [ 7 ] [ 10 ] تُعرض العلاقات أيضًا كخصائص. على سبيل المثال، إذا كانت وثيقة ما مرتبطة بجهة اتصال عبر علاقة " تم الإنشاء بواسطة "، فستحتوي الوثيقة على خاصية "تم الإنشاء بواسطة ". عند الوصول إليها، يتم استعراض العلاقة واسترجاع البيانات المرتبطة. [ 10 ] من خلال تتبع العلاقات، يمكن الوصول إلى جميع البيانات المرتبطة. [ 7 ] يُعزز WinFS مشاركة البيانات بين التطبيقات بجعل أنواع البيانات متاحة لجميع التطبيقات، بالإضافة إلى مخططاتها. [ 8 ] عندما يرغب تطبيق ما في استخدام نوع WinFS، يمكنه استخدام المخطط للعثور على بنية البيانات واستخدام المعلومات. وبالتالي، يتمكن التطبيق من الوصول إلى جميع البيانات على النظام حتى لو لم يكن على المطور كتابة محللات للتعرف على تنسيقات البيانات المختلفة. كما يمكنه استخدام العلاقات والبيانات المرتبطة لإنشاء عوامل تصفية ديناميكية لعرض المعلومات التي يتعامل معها التطبيق. تعمل واجهة برمجة تطبيقات WinFS على تجريد مهمة الوصول إلى البيانات بشكل أكبر. يتم عرض جميع أنواع WinFS ككائنات .NET مع خصائص الكائن التي تُطابق خصائص نوع البيانات مباشرةً. [ 6 ]كذلك، من خلال السماح للتطبيقات المختلفة التي تتعامل مع نفس البيانات بمشاركة نفس نسخة بيانات WinFS بدلاً من تخزين نفس البيانات في ملفات مختلفة، يتم التخلص من متاعب مزامنة المخازن المختلفة عند تغيير البيانات. [ 11 ] وبالتالي، يمكن لـ WinFS تقليل التكرار. [ 6 ] [ 9 ]
يُتيح الوصول إلى جميع البيانات في النظام إجراء عمليات بحث مُعقدة عن البيانات في جميع عناصر البيانات التي يُديرها WinFS. في المثال المذكور أعلاه ( "أرقام هواتف جميع الأشخاص الذين يعيشون في أكابولكو، والذين يظهر كل منهم أكثر من 100 مرة في مجموعتي من الصور، والذين تواصلتُ معهم عبر البريد الإلكتروني خلال الشهر الماضي" )، يستطيع WinFS استعراض علاقة الموضوع بين جميع الصور للعثور على جهات الاتصال . وبالمثل، يُمكنه تصفية جميع رسائل البريد الإلكتروني في الشهر الماضي والوصول إلى علاقة "تم التواصل معه" للوصول إلى جهات الاتصال. بعد ذلك، يُمكن تحديد جهات الاتصال المشتركة من مجموعتي النتائج، واستخراج أرقام هواتفها من خلال الوصول إلى الخاصية المناسبة لعناصر جهات الاتصال.
بالإضافة إلى البيانات ذات المخططات الكاملة (مثل XML والبيانات العلائقية )، يدعم WinFS البيانات شبه المهيكلة (مثل الصور، التي تحتوي على تدفق بتات غير مهيكل بالإضافة إلى بيانات وصفية مهيكلة) وكذلك البيانات غير المهيكلة (مثل الملفات). يخزن WinFS المكونات غير المهيكلة كملفات، بينما يخزن البيانات الوصفية المهيكلة في مخزن البيانات المهيكلة. [ 10 ] داخليًا، يستخدم WinFS قاعدة بيانات علائقية لإدارة البيانات، ولا يقتصر على انتماء البيانات إلى أي نموذج بيانات محدد. يقوم وقت تشغيل WinFS بربط المخطط بنمط علائقي، [ 6 ] من خلال تحديد الجداول التي سيتم تخزين الأنواع فيها والمفاتيح الأساسية والأجنبية اللازمة لتمثيل العلاقات. يتضمن WinFS تعيينات لمخططات الكائنات وXML افتراضيًا. يجب تحديد تعيينات المخططات الأخرى. يتم تحديد مخططات الكائنات باستخدام XML؛ ويقوم WinFS بإنشاء التعليمات البرمجية لعرض المخططات كفئات .NET . يمكن استخدام ADO.NET لتحديد مخطط العلاقات مباشرةً، مع ضرورة توفير ربط بمخطط الكائنات لعرضه كفئات. [ 10 ] تُجرى عمليات اجتياز العلاقات كعمليات ربط بين هذه الجداول. كما يقوم نظام WinFS بإنشاء فهارس تلقائيًا على هذه الجداول، مما يتيح الوصول السريع إلى المعلومات. [ 10 ] تُسرّع الفهرسة عمليات الربط بشكل ملحوظ، ويتم اجتياز العلاقات لاسترجاع البيانات ذات الصلة بسرعة فائقة. تُستخدم الفهارس أيضًا أثناء البحث عن المعلومات؛ حيث تستخدم عمليات البحث والاستعلام الفهارس لإتمام العمليات بسرعة، تمامًا مثل أنظمة البحث المكتبية .
تطوير
الجدول الزمني للتخزين المهيكل | ||||||||||||||||
1990 — – 1991 — – 1992 — – 1993 — – 1994 — – 1995 — – 1996 — – 1997 — – 1998 — – 1999 — – 2000 — – 2001 — – 2002 — – 2003 — – 2004 — – 2005 — – 2006 — – 2007 — – 2008 — – 2009 — – 2010 — – 2011 — – 2012 — – 2013 — – 2014 — – 2015 — – 2016 — – 2017 — – 2018 — – 2019 — | WinFS [ 12 ] محرك مايكروسوفت الدلالي |
| ||||||||||||||
الجدول الزمني لمشاريع التخزين المهيكل المختلفة التي طورتها مايكروسوفت . لم يُسفر أي منها حتى الآن عن بيئة تشغيل كاملة الميزات وواجهة برمجة تطبيقات (API) خاصة بها. السنوات تقريبية. | ||||||||||||||||
يُعدّ تطوير نظام ملفات ويندوز (WinFS) امتدادًا لميزةٍ خُطط لها في أوائل التسعينيات. كان من المفترض أن يُدمج نظام ملفات الكائنات (OFS) ضمن مشروع كايرو (Cairo) . كان من المفترض أن يتمتع OFS بميزات قوية لتجميع البيانات، [ 12 ] ولكن تم تجميد مشروع كايرو، ومعه OFS. مع ذلك، خلال تطوير COM لاحقًا ، خُطط لنظام تخزين يُسمى Storage+، يعتمد على SQL Server 8.0 الذي كان من المقرر أن يُقدم ميزات تجميع مماثلة. [ 12 ] لم يُكتب لهذا المشروع النجاح أيضًا، وتم ابتكار تقنية مشابهة، وهي نظام الملفات العلائقية (RFS)، ليتم إطلاقها مع SQL Server 2000. [ 12 ] إلا أن SQL Server 2000 انتهى به الأمر إلى أن يكون ترقيةً طفيفةً لـ SQL Server 7.0، ولم يتم تطبيق RFS.
لم يتم التخلي عن الفكرة، بل شكلت الأساس لنظام ملفات ويندوز (WinFS). [ 12 ] كان من المخطط في البداية تضمين WinFS في نظام التشغيل ويندوز فيستا ، [ 14 ] وقد تضمنت النسخة 4051 من ويندوز فيستا، والتي كانت تُعرف آنذاك باسمها الرمزي "لونغ هورن"، والتي تم تقديمها للمطورين في مؤتمر مايكروسوفت للمطورين المحترفين عام 2003، نظام WinFS، إلا أنها عانت من مشاكل كبيرة في الأداء. [ 12 ] في أغسطس 2004، أعلنت مايكروسوفت أن WinFS لن يُشحن مع ويندوز فيستا؛ بل سيكون متاحًا كتحديث قابل للتنزيل بعد إصدار فيستا. [ 12 ]
في 29 أغسطس 2005، [ 12 ] أتاحت مايكروسوفت بهدوء الإصدار التجريبي الأول من WinFS لمشتركي MSDN. كان يعمل على نظام التشغيل Windows XP ، ويتطلب .NET Framework للتشغيل. تم تضمين واجهة برمجة تطبيقات WinFS في مساحة اسم System.Storage . [ 15 ] تم تحديث الإصدار التجريبي في 1 ديسمبر 2005 ليكون متوافقًا مع الإصدار 2.0 من .NET Framework. [ 16 ] كان من المخطط إطلاق الإصدار التجريبي الثاني من WinFS في وقت لاحق من عام 2006، [ 17 ] وكان من المفترض أن يتضمن التكامل مع بحث سطح مكتب Windows ، بحيث تشمل نتائج البحث نتائج من الملفات العادية ومخازن WinFS، بالإضافة إلى السماح بالوصول إلى بيانات WinFS باستخدام ADO.NET . [ 18 ]
في 23 يونيو 2006، أعلن فريق WinFS في مايكروسوفت أن WinFS لن يُطرح كمنتج منفصل بعد الآن، [ 4 ] [ 19 ] وأن بعض مكوناته ستُدمج ضمن تقنيات أخرى. تضمنت العديد من الميزات الرئيسية التي أرادت مايكروسوفت توفيرها مع WinFS لوحة لتحرير خصائص البيانات الوصفية، والتنقل بين الخصائص باستخدام مسار التنقل ، وتصفية العناصر أو تكديسها فوق الخصائص، والبحث التدريجي ، وعمليات البحث المحفوظة ؛ [ 20 ] وقد أُدمجت هذه الميزات في نظام التشغيل ويندوز فيستا. [ 21 ] كما أُدمجت لاحقًا في ويندوز فيستا ميزة " تكوين الاستعلام " ، وهي ميزة في WinFS تسمح للمستخدمين بإجراء عمليات بحث إضافية باستخدام نتائج استعلام سابق. [ 22 ]
من أمثلة استخدامات هذه التقنية مكونات ربط الكائنات العلائقية في إطار عمل ADO.NET Entity Framework ؛ ودعم البيانات غير المهيكلة، ووضع التشغيل بدون إدارة، ودعم كائنات نظام الملفات عبر FILESTREAMنوع البيانات، والبيانات الهرمية في SQL Server 2008 ، الذي كان يُعرف آنذاك باسم Katmai ، بالإضافة إلى التكامل مع واجهات برمجة تطبيقات Win32 و Windows Shell ودعم اجتياز التسلسلات الهرمية من خلال اجتياز العلاقات في الإصدارات اللاحقة من Microsoft SQL Server ؛ [ 5 ] ومكونات المزامنة في Microsoft Sync Framework . [ 5 ]
في عام 2013، أشار بيل غيتس إلى نظام التشغيل WinFS باعتباره أكبر خيبة أمل له في مايكروسوفت، وأن فكرة WinFS كانت سابقة لعصرها، وأنها ستعود للظهور مجدداً. [ 24 ]
تخزين البيانات
بنيان

يستخدم نظام ملفات WinFS محركًا علائقيًا مشتقًا من SQL Server 2005، [ 25 ] لتوفير آلية علاقات البيانات. تُخزَّن ملفات WinFS ببساطة في قاعدة بيانات SQL Server (.MDF) مع تعيين سمة FILESTREAM. [ 26 ] تُخزَّن هذه الملفات في مجلد مقيد الوصول يُسمى "System Volume Information" (يقع في جذر وحدة التخزين)، [ 27 ] ضمن مجلدات فرعية تحت المجلد "WinFS" تحمل أسماء معرّفات GUID لهذه الملفات. [ 26 ]
يقع في أسفل بنية WinFS نواة WinFS ، التي تتفاعل مع نظام الملفات وتوفر إمكانيات الوصول إلى الملفات وعنونتها. [ 8 ] يستفيد محرك العلاقات من خدمات نواة WinFS لعرض مخزن منظم وخدمات أخرى مثل التأمين ، والتي يستخدمها وقت تشغيل WinFS لتنفيذ الوظائف. يوفر وقت تشغيل WinFS خدمات مثل المزامنة والقواعد التي يمكن استخدامها لمزامنة مخازن WinFS أو تنفيذ إجراءات معينة عند وقوع أحداث محددة. [ 8 ]
يعمل WinFS كخدمة تقوم بتشغيل ثلاث عمليات : [ 28 ]
- WinFS.exe ، الذي يستضيف مخزن البيانات العلائقية
- WinFSSearch.exe ، الذي يستضيف محرك الفهرسة والاستعلام
- WinFPM.exe (مدير ترقية ملفات WinFS) ، الذي يتفاعل مع نظام الملفات الأساسي
يُتيح هذا النظام الوصول البرمجي إلى خصائصه عبر مجموعة من واجهات برمجة تطبيقات .NET Framework . تُمكّن هذه الواجهات التطبيقات من تعريف أنواع بيانات مُخصصة، وتحديد العلاقات بين البيانات، وتخزين المعلومات واسترجاعها، وإجراء عمليات بحث متقدمة. [ 6 ] [ 8 ] بعد ذلك، يُمكن للتطبيقات تجميع البيانات وعرضها للمستخدم.
مخزن البيانات
يخزن نظام ملفات ويندوز (WinFS) البيانات في مخازن علائقية، تُعرض كمواقع افتراضية تُسمى مخازن . [ 12 ] يُعد مخزن WinFS مستودعًا مشتركًا يُمكن لأي تطبيق تخزين البيانات فيه، بالإضافة إلى بياناته الوصفية وعلاقاته ومخططه. يُمكن لوقت تشغيل WinFS تطبيق علاقات مُعينة بنفسه؛ على سبيل المثال، إذا كانت قيم خاصية الموضوع (subject ) لصورة ما وقيمة خاصية الاسم (name) لجهة اتصال متطابقتين، فسيتمكن WinFS من ربط جهة الاتصال بالصورة. [ 29 ] كما يُمكن تحديد العلاقات بواسطة تطبيقات أخرى أو المستخدم. [ 30 ]
يوفر نظام ملفات ويندوز (WinFS) تخزينًا موحدًا، لكنه لا يُحدد تنسيق البيانات المراد تخزينها في وحدات التخزين. بدلاً من ذلك، يدعم كتابة البيانات بتنسيقات خاصة بكل تطبيق. مع ذلك، يجب على التطبيقات توفير مخطط يُحدد كيفية تفسير تنسيق الملف. [ 6 ] على سبيل المثال، يمكن إضافة مخطط لتمكين WinFS من فهم كيفية قراءة ملف PDF ، وبالتالي البحث فيه وتحليله . باستخدام هذا المخطط، يستطيع أي تطبيق قراءة البيانات من أي تطبيق آخر، كما يسمح هذا للتطبيقات المختلفة بالكتابة بتنسيقات بعضها البعض من خلال مشاركة المخطط. [ 30 ]
يمكن إنشاء عدة مخازن WinFS على جهاز واحد. [ 30 ] يتيح ذلك فصل فئات البيانات المختلفة؛ فعلى سبيل المثال، يمكن حفظ المستندات الرسمية والمستندات الشخصية في مخازن منفصلة. يوفر WinFS، افتراضيًا، مخزنًا واحدًا فقط يُسمى "DefaultStore". [ 12 ] تُعرض مخازن WinFS ككائنات shell، على غرار المجلدات الافتراضية ، والتي تُنشئ ديناميكيًا قائمة بجميع العناصر الموجودة في المخزن وتعرضها في عرض مجلد. كما يتيح كائن shell البحث عن المعلومات في مخزن البيانات. [ 12 ]
تُسمى وحدة البيانات التي يجب تخزينها في مخزن WinFS عنصر WinFS . [ 6 ] [ 30 ] يحتوي عنصر WinFS، بالإضافة إلى عنصر البيانات الأساسي، على معلومات حول كيفية ارتباط عنصر البيانات ببيانات أخرى. تُخزن هذه العلاقة على شكل روابط منطقية. تُحدد الروابط عناصر البيانات الأخرى التي يرتبط بها العنصر الحالي. بعبارة أخرى، تُحدد الروابط علاقة البيانات بعناصر البيانات الأخرى. تُخزن الروابط فعليًا باستخدام مُعرّف رابط، يُحدد اسم العلاقة والغرض منها، مثل نوعها أو مكوناتها . [ 6 ] يُخزن مُعرّف الرابط كخاصية لعنصر البيانات. تُعتبر جميع الكائنات التي لها نفس مُعرّف الرابط مرتبطة. [ 6 ] يجب توفير مخطط XML ، الذي يُحدد بنية عناصر البيانات التي سيتم تخزينها في WinFS، إلى وقت تشغيل WinFS مسبقًا. [ 6 ] في الإصدار التجريبي الأول من WinFS، كان يجب إضافة تجميع المخطط إلى ذاكرة التجميع العمومية (GAC) قبل استخدامه.
نموذج البيانات
يُصمّم نظام ملفات ويندوز (WinFS) البيانات باستخدام عناصر البيانات، بالإضافة إلى علاقاتها وامتداداتها وقواعد استخدامها. [ 8 ] يحتاج WinFS إلى فهم نوع وبنية عناصر البيانات، حتى يتسنى إتاحة المعلومات المخزنة في عنصر البيانات لأي تطبيق يطلبها. ويتم ذلك باستخدام المخططات. لكل نوع من عناصر البيانات المراد تخزينها في WinFS، يجب توفير مخطط مطابق لتحديد نوع البيانات وبنيتها وارتباطاتها. تُعرّف هذه المخططات باستخدام لغة XML . [ 6 ]
تتضمن مخططات WinFS المُعرّفة مسبقًا مخططات للمستندات، والبريد الإلكتروني، والمواعيد، والمهام، والوسائط، والصوت، والفيديو، بالإضافة إلى مخططات النظام التي تشمل التكوين، والبرامج، وبيانات أخرى متعلقة بالنظام. [ 8 ] يمكن تعريف مخططات مخصصة لكل تطبيق على حدة، في الحالات التي يرغب فيها تطبيق ما بتخزين بياناته في WinFS، دون مشاركة بنية تلك البيانات مع تطبيقات أخرى، أو يمكن إتاحتها على مستوى النظام بأكمله. [ 8 ]
نظام الكتابة

يتمثل الفرق الأهم بين نظام الملفات ونظام WinFS في أن WinFS يعرف نوع كل عنصر بيانات يخزنه، ويحدد هذا النوع خصائص عنصر البيانات. يرتبط نظام أنواع WinFS ارتباطًا وثيقًا بمفهوم الفئات والوراثة في إطار عمل .NET . ويمكن إنشاء نوع جديد عن طريق توسيع أي نوع مُعرَّف مسبقًا وتداخله. [ 6 ]
يوفر نظام ملفات WinFS أربعة أنواع أساسية مُعرَّفة مسبقًا : العناصر ، والعلاقات ، والأنواع العددية، والأنواع المتداخلة . [ 6 ] العنصر هو كائن البيانات الأساسي الذي يمكن تخزينه، والعلاقة هي الرابط أو الصلة بين عنصرين من البيانات. بما أن جميع عناصر WinFS يجب أن يكون لها نوع، فإن نوع العنصر المُخزَّن يُحدد خصائصه. قد تكون خصائص العنصر من النوع العددي، الذي يُحدد أصغر وحدة معلومات يمكن أن تحتويها الخاصية، أو من النوع المتداخل، وهو عبارة عن مجموعة من أكثر من نوع عددي و/أو نوع متداخل. جميع أنواع WinFS مُتاحة كفئات .NET CLR . [ 30 ]
يمكن تخزين أي كائن مُمَثَّل كوحدة بيانات، مثل جهة اتصال، أو صورة، أو فيديو، أو مستند، وما إلى ذلك، في مخزن WinFS كنوع مُخصَّص من نوع العنصر. [ 30 ] يوفر WinFS افتراضيًا أنواع عناصر للملفات، وجهات الاتصال، والمستندات، والصور، والصوت، والفيديو، والتقويم، والرسائل. يمكن لعنصر الملف تخزين أي بيانات عامة تُخزَّن في أنظمة الملفات كملفات. ولكن ما لم يتم توفير مخطط متقدم للملف، بتعريفه كعنصر مُخصَّص، فلن يتمكن WinFS من الوصول إلى بياناته. يدعم عنصر الملف هذا فقط الارتباط بعناصر أخرى. [ 6 ]

يمكن للمطور توسيع أي من هذه الأنواع، أو النوع الأساسي Item، لتوفير نوع لبياناته المخصصة. تُعرَّف البيانات الموجودة في Item من خلال خصائصها، أو حقولها التي تحتوي على البيانات الفعلية. على سبيل المثال، قد يحتوي عنصر Contact على حقل Name من نوع ScalarType، وحقل Address من نوع NestedType، والذي يتكون بدوره من حقلين من نوع ScalarType. لتعريف هذا النوع، يتم توسيع الفئة الأساسية Item وإضافة الحقول اللازمة إليها. [ 6 ] يمكن تعريف حقل NestedType كفئة أخرى تحتوي على حقلي ScalarType. بمجرد تعريف النوع، يجب تعريف مخطط يحدد النوع الأولي لكل حقل، على سبيل المثال، حقل Name من نوع String، وحقل Address من فئة Address مخصصة، وكلا حقليه من نوع String. من بين الأنواع الأولية الأخرى التي يدعمها WinFS: Integer و Byte و Decimal و Float و Double و Boolean وDateTime، وغيرها. [ 6 ] سيحدد المخطط أيضًا الحقول الإلزامية والحقول الاختيارية. [ 31 ] سيُستخدم عنصر جهة الاتصال المُعرَّف بهذه الطريقة لتخزين معلومات جهة الاتصال، وذلك بتعبئة حقل الخصائص وحفظه. يجب تعبئة الحقول الإلزامية فقط عند الحفظ الأولي. [ 30 ] يمكن للمستخدم تعبئة حقول أخرى لاحقًا، أو تركها دون تعبئة. في حال الحاجة إلى إضافة حقول خصائص إضافية، مثل تاريخ آخر محادثة ، يمكن توسيع هذا النوع لاستيعابها. يمكن تعريف أنواع العناصر لبيانات أخرى بطريقة مماثلة.

يقوم نظام ملفات ويندوز (WinFS) بإنشاء جداول لجميع العناصر المُعرَّفة. [ 31 ] تُشكِّل جميع الحقول المُعرَّفة للعنصر أعمدة الجدول، وتُخزَّن جميع مثيلات العنصر كصفوف في الجدول الخاص بالعناصر المعنية. عندما يُشير أي حقل في الجدول إلى بيانات في جدول آخر، يُعتبر ذلك علاقة. يُحدِّد مخطط العلاقة الجداول المُشاركة ونوع العلاقة واسمها. يُدير وقت تشغيل WinFS مخططات العلاقات. [ 30 ] تُعرَض جميع العناصر ككائنات .NET CLR ، بواجهة موحدة تُتيح الوصول إلى البيانات المُخزَّنة في الحقول. بالتالي، يُمكن لأي تطبيق استرداد كائن من أي نوع عنصر واستخدام البيانات الموجودة فيه، دون معرفة البنية الفيزيائية التي خُزِّنت فيها البيانات. [ 6 ]
تُعرَض أنواع WinFS كفئات .NET، والتي يمكن إنشاء مثيلات لها ككائنات .NET. تُخزَّن البيانات في هذه المثيلات من خلال ضبط خصائصها. بمجرد الانتهاء، تُحفظ البيانات في مخزن WinFS. يُمكن الوصول إلى مخزن WinFS باستخدام فئة ItemContext (انظر قسم استرجاع البيانات لمزيد من التفاصيل). تتيح ItemContext الوصول المُعاملاتي إلى مخزن WinFS؛ أي أن جميع العمليات التي تتم منذ ربط كائن ItemContext بالمخزن وحتى إغلاقه إما تنجح جميعها أو يتم التراجع عنها جميعًا. عند إجراء تغييرات على البيانات، لا تُكتب على القرص، بل تُكتب في سجل في الذاكرة. فقط عند إغلاق الاتصال، تُكتب التغييرات على القرص دفعةً واحدة. يُساعد هذا في تحسين عمليات الإدخال/الإخراج للقرص. [ 10 ] يقوم مقتطف الشفرة التالي، المكتوب بلغة C# ، بإنشاء اتصال وتخزينه في مخزن WinFS.
// الاتصال بمخزن WinFS الافتراضي باستخدام ( ItemContext ic = ItemContext.Open ( )) { // إنشاء جهة الاتصال وتعيين البيانات في الخصائص المناسبة ContactEAddress contact = new ContactEAddress { Name = new PersonName { // الاسم من نوع ComplexType Displayname = " Doe, John" , FirstName = "John" , LastName = " Doe" }, TelephoneNumber = new TelephoneNumber { // رقم الهاتف من نوع ComplexType Country = CountryCode.Antarctica , Areacode = 4567 , Number = 9876543210 }, Age = 111 // العمر من نوع SimpleType };// أضف العنصر إلى المجلد الشخصي للمستخدم. // يربط هذا العنصر بنوع المجلد الوهمي، من أجل التوافق مع الإصدارات السابقة // حيث يسمح هذا بالوصول إلى العنصر في تسلسل هرمي للمجلدات // للتطبيقات التي ليست أصلية لنظام WinFS. Folder containingFolder = UserDataFolder.FindMyPersonalFolder ( ) ; containingFolder.OutFolderMemberRelationship.AddItem ( ic , contact ) ;// البحث عن مستند وربطه. يبدأ البحث بإنشاء كائن ItemSearcher. يحتوي كل كائن من نوع WinFS على دالة GetSearcher() التي تُنشئ كائن ItemSearcher يبحث في مستندات من ذلك النوع. باستخدام ( ItemSearcher searcher = Document.GetSearcher ( ic )) { Document d = searcher.Find ( @ "Title = 'Some Particular Document'" ) ; d.OutAuthoringRelationship.AddItem ( ic , contact ) ; } // بما أنه لا يوجد سوى مستند واحد مطلوب العثور عليه، يمكن استخدام دالة ItemContext.FindOne() أيضًا.// البحث عن صورة وربطها باستخدام ( ItemSearcher searcher = Picture.GetSearcher ( ic )) { Picture p = searcher.Find ( @ " Occasion = ' Graduation ' and Sequence = '3'" ); p.OutSubjectRelationship.AddItem ( ic , contact ) ; }// حفظ البيانات في المخزن وإغلاق مرجع المخزن ic.Update ( ); }العلاقات
يمكن ربط عنصر بيانات بعنصر واحد أو أكثر، مما يُنشئ علاقة واحد إلى واحد، أو بأكثر من عنصر، مما يُنشئ علاقة واحد إلى متعدد. [ 6 ] بدورها، قد ترتبط العناصر المرتبطة بعناصر بيانات أخرى، مما يُنشئ شبكة من العلاقات، تُسمى علاقة متعدد إلى متعدد. يُنشئ إنشاء علاقة بين عنصرين حقلاً إضافياً في بيانات العنصرين المعنيين، يُشير إلى الصف في جدول العنصر الآخر حيث يتم تخزين الكائن المرتبط. [ 30 ]

في نظام ملفات ويندوز (WinFS)، تُعدّ العلاقة (Relationship) مثالًا على النوع الأساسي Relationship، وهو نوع مُوسّع يُشير إلى تخصيص العلاقة. العلاقة هي ربط بين عنصرين، مصدر وهدف. للمصدر علاقة صادرة، بينما للهدف علاقة واردة. [ 31 ] يوفر نظام ملفات ويندوز ثلاثة أنواع من العلاقات الأساسية: علاقة الحفظ ، وعلاقة المرجع، وعلاقة التضمين . [ 6 ] أي علاقة مُخصصة بين نوعين من البيانات هي مثال على هذه الأنواع من العلاقات.
- تحدد علاقات الحفظ ملكية العنصر المستهدف ومدة صلاحيته (التي تحدد مدة سريان العلاقة). على سبيل المثال، العلاقة بين مجلد وملف، وبين موظف وسجل راتبه، هي علاقة حفظ - حيث يُزال سجل الراتب عند إزالة المجلد. يمكن أن يكون العنصر المستهدف جزءًا من أكثر من علاقة حفظ. في هذه الحالة، يُزال عند إزالة جميع العناصر المصدرية.
- توفر علاقات المرجعية رابطًا بين عنصرين، ولكن ليس لها أي عمر مرتبط، أي أن كل عنصر سيستمر في التخزين حتى بدون الآخر.
- تُضفي علاقات التضمين ترتيبًا على العنصرين المرتبطين بالعلاقة، مثل العلاقة بين عنصر الأصل وعنصر الفرع.
يمكن تحديد العلاقات بين عنصرين إما برمجيًا بواسطة التطبيق الذي يُنشئ البيانات، أو يمكن للمستخدم استخدام مستعرض عناصر WinFS لربط العناصر يدويًا. [ 31 ] كما يُمكن لمستعرض عناصر WinFS عرض العناصر وكيفية ارتباطها بيانيًا، لتمكين المستخدم من معرفة كيفية تنظيم بياناته. [ 30 ]
قواعد
يتضمن نظام ملفات ويندوز (WinFS) قواعد [22 ] تُنفذ عند تحقق شرط معين. تعمل قواعد WinFS على البيانات وعلاقاتها. على سبيل المثال، يمكن إنشاء قاعدة تنص على أنه عند إنشاء عنصر يحتوي على حقل "الاسم" ، وإذا كانت قيمة هذا الحقل اسمًا محددًا، فيجب إنشاء علاقة تربط هذا العنصر بعنصر آخر. كما يمكن لقواعد WinFS الوصول إلى أي تطبيق خارجي. على سبيل المثال، يمكن إنشاء قاعدة تُشغل تطبيق إشعار عند استلام بريد إلكتروني من جهة اتصال معينة. [ 22 ] ويمكن أيضًا استخدام قواعد WinFS لإضافة حقول خصائص جديدة إلى عناصر البيانات الموجودة. [ 22 ]
تُعرض قواعد WinFS أيضًا ككائنات .NET CLR. وبذلك، يمكن استخدام أي قاعدة لأي غرض. بل يمكن توسيع قاعدة ما عن طريق الوراثة منها لتكوين قاعدة جديدة تتضمن شرط القاعدة الأصلية وإجراءها بالإضافة إلى بعض الميزات الأخرى. [ 22 ]
راف
يدعم نظام ملفات ويندوز (WinFS) إنشاء عروض تطبيقات غنية (RAV) من خلال تجميع بيانات مختلفة في جدول افتراضي. على عكس عرض قاعدة البيانات ، حيث يكون كل عنصر قيمة عددية فقط، يمكن أن تحتوي عروض التطبيقات الغنية على عناصر معقدة أو حتى مجموعات من العناصر. يمكن أن تتوزع البيانات الفعلية على أنواع أو مثيلات بيانات متعددة، ويمكن استرجاعها من خلال تتبع العلاقات. [ 10 ] يتم تقسيم عروض التطبيقات الغنية تلقائيًا إلى صفحات (تقسيم مجموعة البيانات بأكملها إلى صفحات أصغر تحتوي على مجموعات فرعية منفصلة من البيانات) بواسطة بيئة تشغيل WinFS. يتم تحديد حجم الصفحة أثناء إنشاء العرض، وتوفر واجهة برمجة تطبيقات WinFS طرقًا للتكرار عبر الصفحات. كما تدعم عروض التطبيقات الغنية تعديل العرض وفقًا لمعلمات تجميع مختلفة. ويمكن أيضًا الاستعلام عن العروض.
التحكم في الوصول
على الرغم من مشاركة جميع البيانات، إلا أن الوصول إليها ليس متساوياً. يستخدم نظام ملفات ويندوز (WinFS) نظام مصادقة ويندوز لتوفير آليتين لحماية البيانات. [ 30 ] أولاً، أمان على مستوى المشاركة يتحكم في الوصول إلى مشاركة WinFS الخاصة بك. ثانياً، أمان على مستوى العنصر يدعم واصفات الأمان المتوافقة مع نظام التشغيل ويندوز NT. يجب أن تتمتع العملية التي تصل إلى العنصر بصلاحيات كافية للوصول إليه. كما يوجد في نظام التشغيل فيستا مفهوم "مستوى التكامل" للتطبيق. لا يمكن الوصول إلى البيانات ذات مستوى التكامل الأعلى من قِبل عملية ذات مستوى تكامل أدنى.
استرجاع البيانات

الطريقة الأساسية لاسترجاع البيانات من مخزن WinFS هي الاستعلام عنه وفقًا لمعايير محددة، [ 8 ] مما يُعيد مجموعة قابلة للتعداد من العناصر المطابقة لتلك المعايير. تُحدد معايير الاستعلام باستخدام لغة استعلام OPath . تُتاح البيانات المُعادة كنسخ من مخططات الأنواع، المتوافقة مع نموذج كائنات .NET . [ 32 ] ويمكن الوصول إلى البيانات من خلال خصائص الكائنات الفردية. [ 31 ]
تُعرض العلاقات أيضًا كخصائص. يحتوي كل عنصر من عناصر WinFS على خاصيتين، هما IncomingRelationships و OutgoingRelationships ، واللتان تُتيحان الوصول إلى مجموعة حالات العلاقات التي يُشارك فيها العنصر. ويمكن الوصول إلى العنصر الآخر المُشارك في إحدى حالات العلاقات من خلال حالة العلاقة المُناسبة. [ 10 ] [ 31 ]
إن إمكانية الوصول إلى البيانات باستخدام وصفها، بدلاً من موقعها، تتيح للمستخدم النهائي إمكانيات تنظيمية دون التقيد بالتنظيم الهرمي المستخدم في أنظمة الملفات. ففي نظام الملفات، يُخزَّن كل ملف أو مجلد في مجلد واحد فقط. أما عناصر WinFS، فيمكنها المشاركة في أي عدد من علاقات التخزين، ومع أي عناصر أخرى. وبالتالي، لا يقتصر المستخدمون النهائيون على تنظيم الملفات والمجلدات فقط، بل يمكن أن يصبح جهة اتصال حاوية للمستندات، وصورة حاوية لجهات الاتصال، وهكذا. ولضمان التوافق مع الأنظمة القديمة، يتضمن WinFS نوعًا وهميًا يُسمى " مجلد"، وهو موجود فقط للمشاركة في علاقات التخزين ومحاكاة تنظيم الملفات والمجلدات. وبما أن أي عنصر WinFS يمكن ربطه بأكثر من عنصر "مجلد"، فمن وجهة نظر المستخدم النهائي، يمكن أن يتواجد العنصر في مجلدات متعددة دون تكرار البيانات الفعلية. [ 10 ] كما يمكن للتطبيقات تحليل مخططات العلاقات لعرض مرشحات متنوعة. على سبيل المثال، يمكن لتطبيق البريد الإلكتروني تحليل جهات الاتصال ذات الصلة وعلاقات جهات الاتصال بفواتير المطاعم وإنشاء عوامل تصفية ديناميكية مثل "رسائل البريد الإلكتروني المرسلة إلى الأشخاص الذين تناولت معهم الغداء" .
عمليات البحث
توفر واجهة برمجة تطبيقات WinFS فئة تُسمى ItemContext ، وهي مرتبطة بمخزن WinFS. يُمكن استخدام كائن ItemContext لتحديد نطاق البحث ليشمل المخزن بأكمله أو جزءًا منه. كما يُتيح الوصول إلى المخزن بشكل مُعاملاتي . [ 15 ] يُمكن لكائن من هذه الفئة إنشاء كائن ItemSearcher الذي يأخذ نوع العنصر المراد استرجاعه (كائن يُمثل النوع) أو العلاقة، بالإضافة إلى سلسلة استعلام OPath التي تُمثل معايير البحث. [ 31 ] [ 33 ] يتم إرجاع مجموعة من جميع النتائج المُطابقة، والتي يُمكن ربطها بواجهة مستخدم لعرضها بشكل جماعي أو سردها بشكل فردي. [ 30 ] يُمكن أيضًا تعديل خصائص العناصر ثم تخزينها مرة أخرى في مخزن البيانات لتحديثها. يتم إغلاق كائن ItemContext (مما يُشير إلى نهاية ارتباط الكائن بالمخزن) عند إجراء الاستعلامات أو دمج التغييرات في المخزن.
يمكن الوصول إلى العناصر ذات الصلة أيضًا من خلال العناصر نفسها. تتيح خاصيتا IncomingRelationships و OutgoingRelationships الوصول إلى جميع مثيلات العلاقات، المصنفة وفقًا لاسم العلاقة. تعرض كائنات العلاقات هذه العنصر الآخر عبر خاصية معينة. على سبيل المثال، إذا كانت صورة ما مرتبطة بصورة أخرى، فيمكن الوصول إليها من خلال تتبع العلاقة كما يلي:
ContactsCollection contacts = picture.OutgoingRelationships.Cast ( typeof ( Contact )). Value ; // يسترجع هذا مجموعة جميع العلاقات الصادرة من كائن الصورة // ويقوم بتصفية جهات الاتصال التي يمكن الوصول إليها من خلالها ويسترجع قيمتها.// أو يمكن تحديد العلاقة بشكل ثابت كـ ContactsCollection contacts = picture . OutgoingRelationships . OutContactRelationship . Contact ;تتيح سلسلة استعلام OPath تحديد المعلمات المراد الاستعلام عنها باستخدام خصائص العناصر ، والعناصر المضمنة ، والعلاقات . يمكنها تحديد شرط بحث واحد، مثل "title = Something" ، أو شرط مركب مثل "title = 'Title 1' || title = 'Title 2' && author = 'Someone'" . يمكن تحديد هذه العمليات المنطقية والعلائقية باستخدام عوامل التشغيل مثل && ، و || ، و= ، و!= في لغة C#، بالإضافة إلى ما يقابلها في اللغة الإنجليزية مثل EQUAL و NOT EQUAL . كما تدعم OPath عوامل التشغيل مثل LIKE و GROUP BY و ORDER BY ، بالإضافة إلى شروط الأحرف البديلة. لذا، فإن "title LIKE 'any*'" تُعد سلسلة استعلام صالحة. يمكن استخدام هذه العوامل لتنفيذ عمليات بحث معقدة مثل
باستخدام ( ItemContext ic = ItemContext.Open ( )) { // يبدأ البحث بإنشاء كائن ItemSearcher. يتم إنشاء الباحث من // مثيل علاقة لأن جهات الاتصال التي يتم البحث عنها مرتبطة. // تحدد المعلمة الأولى نطاق البحث. استخدام ItemContext كنطاق يعني // أنه سيتم البحث في المتجر بأكمله. يمكن حصر النطاق في مجموعة من العناصر التي قد تكون // في علاقة ارتباط مع جهات الاتصال. في هذه الحالة ، يتم تمرير المجموعة كنطاق للبحث. ItemSearcher searcher = OutContactRelationship.GetTargetSearcher ( ic , typeof ( Contact ) ); ContactCollection contacts = searcher.FindAll ( " OutContactRelationship.Contact.Name LIKE 'A*'" ); }ينشئ مقتطف الشفرة أعلاه كائن ItemSearcher يبحث في مثيل OutContactRelationship الذي يربط الصور بجهات الاتصال، أي أنه يبحث في جميع الصور المرتبطة بجهة اتصال معينة. ثم يُنفذ الاستعلام Name LIKE 'A*' على جميع جهات الاتصال التي يمكن الوصول إليها عبر OutContactRelationship ، مُعيدًا قائمة "جهات الاتصال التي تبدأ أسماؤها بالحرف A والتي أملك صورها" . وبالمثل، يمكن أخذ المزيد من العلاقات في الاعتبار لتضييق نطاق النتائج. [ 10 ] [ 31 ] علاوة على ذلك، يمكن لمعالج استعلامات اللغة الطبيعية، الذي يحلل الاستعلام باللغة الطبيعية ويُنشئ سلسلة استعلام OPath سليمة للبحث عبر العلاقات المناسبة، أن يسمح للمستخدمين بإجراء عمليات بحث مثل "العثور على اسم النبيذ الذي تناولته مع الشخص X الشهر الماضي" ، شريطة أن تستخدم تطبيقات الإدارة المالية نظام ملفات WinFS لتخزين الفواتير.
تحدد العلاقات المختلفة مجموعات بيانات مختلفة. لذا، عند إجراء بحث يشمل علاقات متعددة، يتم استرجاع مجموعات البيانات المختلفة بشكل فردي، ثم يتم حساب اتحاد هذه المجموعات. تحتوي المجموعة الناتجة فقط على عناصر البيانات التي تتوافق مع جميع العلاقات. [ 31 ]
إشعارات
يتضمن نظام ملفات ويندوز (WinFS) دعمًا مُحسّنًا للتعامل مع البيانات التي تتغير بشكل متكرر. باستخدام إشعارات WinFS ، تختار التطبيقات تلقي إشعارات بالتغييرات التي تطرأ على عناصر بيانات مُحددة . سيُطلق WinFS حدث ItemChangedEvent ، باستخدام نموذج أحداث .NET، عند تغيير عنصر مُشترك فيه، وسيتم نشر هذا الحدث إلى التطبيقات. [ 31 ]
وكيل معلومات
يتضمن نظام ملفات ويندوز (WinFS) ميزة "وكيل المعلومات" لإدارة واسترجاع وتخزين قواعد وتفضيلات إشعارات المستخدم النهائي المتعلقة بتغييرات العناصر في مخزن البيانات. باستخدام "وكيل المعلومات"، يُمكن تحديد العلاقات تلقائيًا بين العناصر الجديدة بناءً على أحداث مثل المواعيد، فعلى سبيل المثال، يُمكن ربط المواعيد بالصور بناءً على تواريخ التقاطها، مما يُتيح الاستعلام عن أعياد الميلاد أو العطلات دون الحاجة إلى معرفة تواريخها الفعلية (" اعثر على جميع الصور الملتقطة في عيد الميلاد هذا "). تشمل الأمثلة الأخرى نقل العناصر الجديدة تلقائيًا إلى مجلدات مُحددة بناءً على قاعدة مُحددة بأوقات المواعيد وتواريخ التقاط الصور (" عند استيراد صورة مُلتقطة خلال حدث عمل، انقلها إلى مجلد أحداث العمل ")، أو إمكانيات أكثر تعقيدًا. يُمكن لـ"وكيل المعلومات" أيضًا إعادة توجيه الإشعارات إلى أجهزة أخرى (" إذا تلقيت بريدًا إلكترونيًا ذا أولوية عالية من مديري، أرسل إشعارًا إلى هاتفي ")، وهو يُشبه وظيفة "القواعد والتنبيهات" في مايكروسوفت أوتلوك.
مشاركة البيانات
يُتيح نظام ملفات WinFS سهولة مشاركة البيانات بين التطبيقات، وبين مخازن WinFS المتعددة التي قد تكون موجودة على أجهزة كمبيوتر مختلفة، وذلك عن طريق النسخ من وإلى هذه المخازن. [ 34 ] كما يُمكن نسخ عنصر WinFS إلى نظام ملفات غير WinFS، ولكن ما لم يُعاد هذا العنصر إلى مخزن WinFS، فلن يدعم الخدمات المتقدمة التي يوفرها WinFS.
توفر واجهة برمجة تطبيقات WinFS أيضًا بعض الدعم للمشاركة مع التطبيقات غير التابعة لـ WinFS. يكشف WinFS عن كائن shell للوصول إلى مخازن WinFS. يربط هذا الكائن عناصر WinFS بتسلسل هرمي للمجلدات الافتراضية، ويمكن لأي تطبيق الوصول إليه. [ 12 ] يمكن للمجلدات الافتراضية مشاركة المحتوى الجديد المشار إليه بواسطة الاستعلام تلقائيًا مع المستخدمين (على سبيل المثال، يمكن لمجلد افتراضي بعنوان " جميع صور الإجازة " مشاركة العناصر الجديدة التي يُرجعها هذا الاستعلام تلقائيًا مع المستخدمين). كما يمكن مشاركة بيانات WinFS يدويًا باستخدام مشاركات الشبكة ، من خلال مشاركة كائن shell القديم. [ 34 ] يمكن تخزين تنسيقات الملفات غير التابعة لـ WinFS في مخازن WinFS، باستخدام عنصر الملف الذي يوفره WinFS. يمكن كتابة برامج استيراد لتحويل تنسيقات ملفات محددة إلى أنواع عناصر WinFS. [ 34 ]
بالإضافة إلى ذلك، يوفر نظام ملفات ويندوز (WinFS) خدمات لمزامنة العناصر تلقائيًا في مخزنين أو أكثر من مخازن WinFS، وفقًا لشروط محددة مسبقًا، مثل " مشاركة الصور فقط " أو " مشاركة الصور المرتبطة بجهة اتصال معينة ". [ 34 ] قد تكون المخازن على أجهزة كمبيوتر مختلفة. تتم المزامنة بطريقة نظير إلى نظير ؛ فلا توجد جهة مركزية. يمكن أن تكون المزامنة يدوية أو تلقائية أو مجدولة. أثناء المزامنة، يكتشف WinFS العناصر الجديدة والمعدلة، ويُحدّثها وفقًا لذلك. في حال تعارض تغييرين أو أكثر، يمكن لـ WinFS اللجوء إلى الحل التلقائي بناءً على قواعد محددة مسبقًا، أو تأجيل المزامنة للحل اليدوي. كما يُحدّث WinFS المخططات، إذا لزم الأمر. [ 34 ]
دعم التطبيقات
مساحة اسم الصدفة
يتضمن الإصدار التجريبي الأول من WinFS امتدادًا لمساحة أسماء النظام ، مما يُظهر مخازن WinFS ككائنات رئيسية في عرض "جهاز الكمبيوتر" . [ 12 ] يمكن نسخ الملفات من وإلى هذه المخازن، كما يمكن للتطبيقات حفظها مباشرةً فيها. حتى المجلدات، مثل "مستنداتي"، يمكن إعادة توجيهها إلى هذه المخازن. [ 12 ] يستخدم WinFS إضافات الاستيراد لتحليل الملفات أثناء استيرادها إلى المخزن، وإنشاء مخططات وكائنات WinFS المناسبة، وعند استخراج الكائنات، يُعاد تجميعها في ملفات. [ 34 ] إذا لم تكن إضافات الاستيراد لبعض الملفات مثبتة، فسيتم تخزينها كأنواع ملفات عامة .
مايكروسوفت ريف
مايكروسوفت ريف هو تطبيق مُضمّن مع الإصدار التجريبي الأول من نظام الملفات WinFS. يتيح مزامنة مخزنين أو أكثر من مخازن WinFS، ويدعم المزامنة في وضع الشبكة الكاملة بالإضافة إلى بنية المحور المركزي . أثناء المزامنة، يحدد مايكروسوفت ريف التغييرات التي طرأت على كل مخزن منذ آخر مزامنة، ويُحدّث البيانات وفقًا لذلك. عند تطبيق التغييرات، يكتشف التطبيق أيضًا وجود أي تعارض، أي تغيير البيانات نفسها في كلا المخزنين منذ آخر مزامنة. في هذه الحالة، إما أن يُسجّل البيانات المتعارضة لحلها لاحقًا أو يحلها فورًا. يستخدم مايكروسوفت ريف تقنية الند للند للتواصل ونقل البيانات.
ستور سباي

مع الإصدار التجريبي الأول من WinFS، أضافت مايكروسوفت تطبيقًا غير مدعوم يُدعى StoreSpy ، [ 35 ] والذي كان يسمح بتصفح مخازن WinFS من خلال عرض هرمي لعناصر WinFS. كان التطبيق يُنشئ تلقائيًا مجلدات افتراضية بناءً على أذونات الوصول والتاريخ وبيانات وصفية أخرى، ويعرضها في شكل شجرة هرمية، على غرار عرض المجلدات التقليدية. كما كان التطبيق يُنشئ علامات تبويب لأنواع العناصر المختلفة. سمح StoreSpy بعرض العناصر والعلاقات والمجموعات المتعددة والعناصر المتداخلة والملحقات [ 36 ] وأنواع أخرى في المخزن مع بياناتها الوصفية الكاملة. كما كان يوفر واجهة بحث لإجراء عمليات بحث يدوية وحفظها كمجلدات افتراضية. كان التطبيق يعرض أيضًا عرضًا رسوميًا لقواعد WinFS. مع ذلك، لم يكن يسمح بتحرير العناصر أو خصائصها، على الرغم من أنه كان من المقرر إدراج هذه الميزة في إصدار لاحق. [ 37 ] ولكن تم تقليص مشروع WinFS قبل أن يرى النور.
نوع المتصفح
يتضمن نظام WinFS أيضًا تطبيقًا آخر يُسمى WinFS Type Browser ، والذي يُستخدم لاستعراض أنواع WinFS، بالإضافة إلى عرض العلاقة الهرمية بينها. [ 38 ] يُمكن عرض أي نوع من أنواع WinFS، سواءً الأنواع المدمجة أو المخططات المخصصة، مع جميع الخصائص والأساليب التي يدعمها. كما يُظهر الأنواع التي يُشتق منها، بالإضافة إلى الأنواع الأخرى التي تُوسّع مخطط النوع. مع ذلك، ورغم تضمينه مع WinFS، فقد تم إصداره كأداة غير مدعومة. [ 38 ]
أوباثر
يتضمن الإصدار التجريبي الأول من WinFS تطبيقًا غير مدعوم يُسمى OPather . [ 39 ] يوفر هذا التطبيق واجهة رسومية لكتابة استعلامات Opath . ويمكن استخدامه بتحديد نوع الكائن المستهدف وتحديد معلمات الاستعلام. كما يتضمن ميزة إكمال المعلمات المشابهة لـ Intellisense . ويمكن استخدامه بعد ذلك لتنفيذ مهام عرض البيانات، مثل ربط نتائج الاستعلام بعنصر تحكم DataGrid ، أو إنشاء طرق عرض للبيانات في WinFS نفسه، أو استخراج سلسلة الاستعلام.
مشروع "البرتقالي"
أطلقت مايكروسوفت مشروعًا لبناء تطبيق لعرض البيانات على نظام ملفات ويندوز (WinFS). كان يُعرف المشروع بالاسم الرمزي "Project Orange" ، وكان من المفترض أن يُبنى باستخدام Windows Presentation Foundation . [ 40 ] كان من المفترض أن يُتيح استكشاف العناصر المخزنة في مخازن WinFS، وأن تُشكّل علاقات البيانات جزءًا أساسيًا من نموذج التنقل. كما كان من المفترض أن يُتيح للمستخدمين تنظيم مخازن WinFS بشكل رسومي، ما يُجسّد العديد من المفاهيم المعروضة في ملف فيديو IWish Concept Video WMV . مع ذلك، ونظرًا لتوقف مشروع WinFS، فإن مصير هذا المشروع غير معروف.
انظر أيضاً
- منظم سطح المكتب
- نظام تخزين جنوم – نظام إدارة تخزين لسطح مكتب جنوم
- نيبوموك
- المراجع
- نظام إدارة قواعد البيانات العلائقية (RDBMS)
مراجع
- ↑ "تسريبات ويندوز تُشير إلى تغييرات قادمة" . ZDNet . CBS Interactive . 30 سبتمبر 2007. مؤرشف من الأصل في 30 سبتمبر 2007.
- ↑ سكوفيلد، جاك (29 يونيو 2006). "لماذا كان على نظام ملفات ويندوز أن يختفي؟" . صحيفة الغارديان . غارديان نيوز آند ميديا . تم الاطلاع عليه في 9 ديسمبر 2010 .
- ↑ "فيديو مفهوم IWish" . مايكروسوفت. مؤرشف من الأصل بتاريخ 2006-06-02 . تم الاطلاع عليه بتاريخ 2008-07-14 .
- 1 2 كوينتين كلارك (23 يونيو 2006). "تحديث نظام الملفات ويندوز" . ما الجديد؟ مدونات MSDN . تم الاطلاع عليه بتاريخ 23-06-2006 .
- 1 2 3 كوينتين كلارك. "أين نظام الملفات WinFS الآن؟" . مؤرشف من الأصل بتاريخ 17-05-2008 . تم الاطلاع عليه بتاريخ 17-05-2008 .
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 شون وايلدرموث (30 يونيو 2006). "منظور المطور حول نظام ملفات ويندوز: الجزء الأول" . MSDN . تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ١ ٢ ٣ ٤ فيجاي بانجارو. "التوحيد، التنظيم، الاستكشاف، والابتكار. يا إلهي! (الجزء الثاني)" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 9 يونيو 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- 1 2 3 4 5 6 7 8 9 10 11 شون غريمالدي (13 سبتمبر 2006). "ملفات WinFS: Divide et Impera" . MSDN . تم الاسترجاع في 30 يونيو 2007 .
- 1 2 توماس ريزو (13 سبتمبر 2006). "WinFS 101: تقديم نظام ملفات ويندوز الجديد" . MSDN . تم الاسترجاع في 30 يونيو 2007 .
- 1 2 3 4 5 6 7 8 9 10 11 "WinFS on The .NET Show" . مايكروسوفت . مؤرشف من الأصل بتاريخ 2009-01-05 . تم الاطلاع عليه بتاريخ 2007-07-04 .
- ↑ فيجاي بانجارو. "التوحيد، والتنظيم، والاستكشاف، والابتكار. يا إلهي! (الجزء الأول)" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 8 يوليو 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ١٠ ١١ ١٢ ١٣ ١٤ ١٥ ١٦ ١٧ بول ثوروت. "معاينة نظام تخزين ويندوز (WinFS)" . مؤرشف من الأصل بتاريخ ٢٠٠٧-٠٧-٠٢ . تم الاطلاع عليه بتاريخ ٢٠٠٧-٠٦-٣٠ .
- 1 2 "موعدي مع القدر، أو بالأحرى... التخزين المتكامل" . مؤرشف من الأصل بتاريخ 31-10-2007 . تم الاطلاع عليه بتاريخ 30-06-2007 .
- ↑ كاث إيفريت. "هل يستحق لونغ هورن كل هذا العناء؟" . زد نت. مؤرشف من الأصل بتاريخ 12 مارس 2010. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- 1 2 "WinFS للمطورين" . NTFS.com. مؤرشف من الأصل بتاريخ 2007-07-03 . تم الاطلاع عليه بتاريخ 2007-07-04 .
- ↑ فيجاي بانجارو. "تحديث WinFS Beta 1 متوفر الآن" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 20 مايو 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ↑ شان سينها. "نستعرض الإصدار القادم من WinFS في مؤتمر Tech Ed 2006 في بوسطن! انضموا إلينا!" . مدونة فريق WinFS. مؤرشفة من الأصل بتاريخ 8 مارس 2007. تم الاطلاع عليها بتاريخ 30 يونيو 2007 .
- ↑ سانجاي أناند. "مغامرتي مع ديستني، أو بالأحرى... التخزين المتكامل" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 31 أكتوبر 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ↑ كوينتين كلارك. "تحديث للتحديث" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 3 يوليو 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ↑ "WinFS: نظام ملفات ويندوز (مقالات تقنية حول مايكروسوفت أكسس 2002)" . MSDN . مايكروسوفت . أكتوبر 2003. مؤرشف من الأصل بتاريخ 21 ديسمبر 2003. تم الاطلاع عليه بتاريخ 1 فبراير 2018 .
- ↑ "دليل منتج ويندوز فيستا" . مايكروسوفت . 2006. الصفحات 44-51 . مؤرشف من الأصل (DOCX) في 1 يوليو 2011. تم الاطلاع عليه في 1 مارس 2018 .
- 1 2 3 4 5 كاتي ديميتروفا. "حول قواعد WinFS" . MSDN . مايكروسوفت . مؤرشف من الأصل بتاريخ 26 ديسمبر 2008. تم الاطلاع عليه بتاريخ 2 مارس 2018 .
- ↑ بينتز، بن (31 أكتوبر 2006). "تركيب الاستعلام: بناء بحث على بحث آخر" . مدونة Shell: Revealed . مايكروسوفت . مؤرشف من الأصل في 15 ديسمبر 2006. تم الاطلاع عليه في 2 مارس 2018 .
- ↑ "لا يزال الملياردير بيل غيتس يندب نظام التشغيل ويندوز فيستا الذي لم يكتمل نموه."
- ↑ نيت موك (29 أغسطس 2005). "مايكروسوفت تشرح نظام ويندوز إف إس، وتصدر النسخة التجريبية الأولى" . بيتا نيوز . تم الاطلاع عليه بتاريخ 2 يوليو 2007 .
- 1 2 شيشير ميهروترا (سبتمبر 2005). "WinFS" التوجهات المستقبلية: نظرة عامة . مؤتمر المطورين المحترفين 2005. مايكروسوفت. مؤرشف من الأصل (PPT) في 12 ديسمبر 2005. تم الاسترجاع في 22 مايو 2023 - عبر MicrosoftPDC Commnet..
- ↑ تشالوبوف، أليكسي (14 مارس 2006). "بنية نظام الملفات ويندوز" . في: أولغا، دامبيت (محرر). ويندوز (عرض تقديمي). ص 4. مؤرشف (عرض تقديمي) من الأصل بتاريخ 9 ديسمبر 2021. تم الاطلاع عليه بتاريخ 22 مايو 2023 .
- ↑ إروين فان دير مير. "نظرة أولى على WinFS Beta 1" . مؤرشف من الأصل بتاريخ 2007-06-09 . تم الاطلاع عليه بتاريخ 2007-07-03 .
- ↑ فيجاي بانجارو. "صندوق بريد WinFS" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 22-05-2007 . تم الاطلاع عليه بتاريخ 30-06-2007 .
- 1 2 3 4 5 6 7 8 9 10 11 12 ريتشارد غرايمز. "نظام تخزين ملفات ثوري يُمكّن المستخدمين من البحث عن الملفات وإدارتها بناءً على محتواها" . مجلة MSDN. مؤرشف من الأصل بتاريخ 27 يونيو 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- 1 2 3 4 5 6 7 8 9 10 شون وايلدرموث (يوليو 2004). "منظور المطور حول نظام ملفات ويندوز: الجزء الثاني" . MSDN . مايكروسوفت . تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ↑ فيجاي بانجارو. "التوحيد، والتنظيم، والاستكشاف، والابتكار. يا إلهي! (الجزء 4)" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 18 يونيو 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ↑ توماس ريزو، شون غريمالدي (18 أكتوبر 2004). "مقدمة إلى OPath في نظام ملفات ويندوز" . MSDN . مايكروسوفت . تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- 1 2 3 4 5 6 نيل بادجيت. "إدخال البيانات إلى نظام ملفات ويندوز باستخدام مزامنة ويندوز" . مدونة فريق ويندوز. مؤرشف من الأصل بتاريخ 17 فبراير 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ↑ وي-مينغ لي (2005-09-07). "WinFS -StoreSpy" . تم الاطلاع عليه بتاريخ 2007-06-30 .
- ↑ "مدونة ستيفانو ديميلياني: WinFS StoreSpy الإصدار 0.8 لنظام التشغيل WinHEC 2004 Longhorn" . تم الاطلاع عليه بتاريخ 12 مارس 2007 .
- ↑ "يجب أن يصبح StoreSpy هو StoreEditor" . مؤرشف من الأصل بتاريخ 29-09-2007 . تم الاطلاع عليه بتاريخ 30-06-2007 .
- 1 2 سانجاي ناجامانجلام. "تصور أنواع WinFS" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 16 أغسطس 2007. تم الاطلاع عليه بتاريخ 3 يوليو 2007 .
- ↑ لويز ميراندا. "استخدام OPather للمساعدة في كتابة الاستعلامات" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 19 نوفمبر 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
- ↑ شيشير ميهروترا. "التطبيق الأمثل لتنظيم المستخدمين" . مدونة فريق WinFS. مؤرشف من الأصل بتاريخ 9 مارس 2007. تم الاطلاع عليه بتاريخ 30 يونيو 2007 .
روابط خارجية
- مدونة WinFS
- WinFS على شبكة مطوري مايكروسوفت ( ذاكرة التخزين المؤقت لأرشيف الإنترنت )
- فيديوهات القناة التاسعة
- مجموعة أخبار WinFS
- معاينة WinFS Beta 1 ( ذاكرة التخزين المؤقت لأرشيف الإنترنت )
- قسم WinFS على موقع NetFXGuide.com ( ذاكرة التخزين المؤقت لأرشيف الإنترنت )
- واجهات برمجة تطبيقات مايكروسوفت
- أنظمة ملفات القرص في ويندوز
- إدارة نظام التشغيل ويندوز
- أنظمة الملفات الدلالية
