กลับไปหน้าบทความ

อ่าน 17 นาที

วินเอฟเอส

WinFS (ย่อมาจาก Windows Future Storage ) [ 1 ] เป็น ชื่อรหัส ของ โครงการระบบจัดเก็บและ จัดการ ข้อมูล ที่ถูกยกเลิก [ 2 ] ซึ่งใช้ ฐานข้อมูลเชิงสัมพันธ์ พัฒนาโดย Microsoft...

วินเอฟเอส

WinFS (ย่อมาจากWindows Future Storage ) [ 1 ]เป็นชื่อรหัสของ โครงการระบบจัดเก็บและ จัดการข้อมูล ที่ถูกยกเลิก [ 2 ]ซึ่งใช้ฐานข้อมูลเชิงสัมพันธ์พัฒนาโดยMicrosoftและสาธิตครั้งแรกในปี 2546 โดยมีจุดประสงค์เป็นระบบย่อยจัดเก็บข้อมูลขั้นสูงสำหรับระบบปฏิบัติการMicrosoft Windowsออกแบบมาเพื่อการจัดเก็บและจัดการข้อมูลที่มีโครงสร้างกึ่งโครงสร้างและ ไม่มี โครงสร้าง

WinFS มีฐานข้อมูลเชิงสัมพันธ์สำหรับจัดเก็บข้อมูล และอนุญาตให้จัดเก็บข้อมูลได้ทุกประเภท ตราบใดที่มีโครงสร้างข้อมูล (schema) ที่กำหนดไว้อย่างชัดเจน สำหรับประเภทข้อมูลนั้น ๆ ข้อมูลแต่ละรายการสามารถเชื่อมโยงกันได้ผ่านความสัมพันธ์ที่ระบบอนุมานขึ้นเองจากคุณลักษณะบางอย่าง หรือที่ผู้ใช้กำหนดไว้อย่างชัดเจน เนื่องจากข้อมูลมีโครงสร้างที่กำหนดไว้อย่างชัดเจน แอปพลิเคชันใด ๆ ก็สามารถนำข้อมูลนั้นกลับมาใช้ใหม่ได้ และการใช้ความสัมพันธ์เหล่านั้นทำให้สามารถจัดระเบียบและเรียกค้นข้อมูลที่เกี่ยวข้องได้อย่างมีประสิทธิภาพ เนื่องจากระบบรู้จักโครงสร้างและเจตนาของข้อมูล จึงสามารถทำการสืบค้นที่ซับซ้อนซึ่งช่วยให้สามารถค้นหาขั้นสูงและรวบรวมข้อมูลที่เกี่ยวข้องโดยใช้ประโยชน์จากความสัมพันธ์ระหว่างข้อมูลเหล่านั้นได้

แม้ว่า WinFS และสคีมาประเภทที่ใช้ร่วมกันจะทำให้แอปพลิเคชันสามารถรับรู้ประเภทข้อมูลที่แตกต่างกันได้ แต่แอปพลิเคชันก็ยังคงต้องเขียนโค้ดเพื่อแสดงผลประเภทข้อมูลที่แตกต่างกันเหล่านั้น ดังนั้นจึงไม่สามารถพัฒนาแอปพลิเคชันเดียวที่สามารถดูหรือแก้ไขประเภทข้อมูลทั้งหมดได้ แต่ WinFS ช่วยให้แอปพลิเคชันเข้าใจโครงสร้างของข้อมูลทั้งหมดและดึงข้อมูลที่สามารถนำไปใช้ต่อได้ เมื่อ WinFS เปิดตัวในงานProfessional Developers Conference ปี 2003 ไมโครซอฟต์ยังได้เผยแพร่การนำเสนอวิดีโอชื่อ IWish [ 3 ]ซึ่งแสดงอินเทอร์เฟซจำลองที่แสดงให้เห็นว่าแอปพลิเคชันจะเปิดเผยอินเทอร์เฟซที่ใช้ประโยชน์จากระบบประเภทที่เป็นหนึ่งเดียวได้อย่างไร แนวคิดที่แสดงในวิดีโอมีตั้งแต่แอปพลิเคชันที่ใช้ความสัมพันธ์ของรายการเพื่อเสนอตัวเลือกการกรองแบบไดนามิก ไปจนถึงแอปพลิเคชันที่จัดกลุ่มประเภทข้อมูลที่เกี่ยวข้องหลายประเภทและแสดงผลในรูปแบบการนำเสนอที่เป็นหนึ่งเดียว

WinFS ถูกนำเสนอว่าเป็นหนึ่งในเสาหลักของ เทคโนโลยี "Longhorn"และจะวางจำหน่ายเป็นส่วนหนึ่งของ Windows เวอร์ชันถัดไป ต่อมามีการตัดสินใจว่า WinFS จะวางจำหน่ายหลังจากWindows Vista ออกวางจำหน่าย แต่แผนดังกล่าวถูกระงับในเดือนมิถุนายน พ.ศ. 2549 [ 4 ]โดยเทคโนโลยีส่วนประกอบบางส่วนถูกรวมเข้ากับADO.NETและMicrosoft SQL Server [ 5 ]

แรงจูงใจ

ระบบไฟล์จำนวนมากที่พบในระบบปฏิบัติการ ทั่วไป รวมถึง ระบบไฟล์ NTFSที่ใช้ใน Microsoft Windows เวอร์ชันใหม่ๆ จะจัดเก็บไฟล์และวัตถุอื่นๆ ในรูปแบบของสตรีมไบต์ เท่านั้น และมีข้อมูลเกี่ยวกับข้อมูลที่จัดเก็บในไฟล์น้อยมากหรือไม่มีเลย ระบบไฟล์ดังกล่าวยังมีวิธีการจัดระเบียบไฟล์เพียงวิธีเดียวเท่านั้น คือผ่านไดเร็กทอรีและชื่อไฟล์[ 6 ] [ 7 ]

เนื่องจากระบบไฟล์ไม่มีความรู้เกี่ยวกับข้อมูลที่จัดเก็บ[ 6 ]แอปพลิเคชันจึงมักใช้รูปแบบไฟล์ของตนเอง ซึ่งมักเป็นรูปแบบไฟล์เฉพาะของแต่ละแอปพลิเคชัน สิ่งนี้ขัดขวางการแบ่งปันข้อมูลระหว่างแอปพลิเคชันหลายตัว การสร้างแอปพลิเคชันที่ประมวลผลข้อมูลจากไฟล์หลายประเภทจึงเป็นเรื่องยาก เพราะโปรแกรมเมอร์ต้องเข้าใจโครงสร้างและความหมายของไฟล์ทั้งหมด[ 8 ]การใช้รูปแบบไฟล์ทั่วไปเป็นวิธีแก้ปัญหาชั่วคราว แต่ไม่ใช่ทางออกที่ครอบคลุม ไม่มีการรับประกันว่าแอปพลิเคชันทั้งหมดจะใช้รูปแบบดังกล่าว ข้อมูลที่มีโครงสร้างมาตรฐาน เช่น เอกสาร XMLและข้อมูลเชิงสัมพันธ์จะมีประสิทธิภาพดีกว่า เนื่องจากมีโครงสร้างมาตรฐานและข้อกำหนดในการทำงาน[ 9 ]

นอกจากนี้ ระบบไฟล์แบบดั้งเดิมสามารถเรียกและค้นหาข้อมูลได้โดยอาศัยเพียงชื่อไฟล์เท่านั้น เนื่องจากความรู้เพียงอย่างเดียวที่ระบบมีเกี่ยวกับข้อมูลคือชื่อของไฟล์ที่จัดเก็บข้อมูล[ 8 ] วิธีแก้ปัญหาที่ดีกว่าคือการติดแท็กไฟล์ด้วยคุณลักษณะที่อธิบายไฟล์ คุณลักษณะเหล่านี้เป็นเมตาเดต้าเกี่ยวกับไฟล์ เช่น ประเภทของไฟล์ (เช่น เอกสาร รูปภาพ เพลงผู้สร้างฯลฯ) [ 6 ]วิธีนี้ช่วยให้ สามารถค้นหาไฟล์ตามคุณลักษณะได้ ในแบบที่ไม่สามารถ ทำได้โดยใช้ลำดับชั้นของโฟลเดอร์ เช่น การค้นหา"รูปภาพที่มีบุคคล X"คุณลักษณะเหล่านี้สามารถจดจำได้โดยระบบไฟล์โดยตรงหรือผ่านส่วนขยายบางอย่าง[ 6 ] แอปพลิเคชัน ค้นหาบนเดสก์ท็อปนำแนวคิดนี้ไปอีกขั้นหนึ่ง พวกมันดึงข้อมูล รวมถึงคุณลักษณะ จากไฟล์และจัดทำดัชนี เพื่อดึงข้อมูล พวกมันใช้ตัวกรองสำหรับแต่ละรูปแบบไฟล์ วิธีนี้ช่วยให้สามารถค้นหาได้ทั้งจากคุณลักษณะของไฟล์และข้อมูลในไฟล์[ 6 ]

อย่างไรก็ตาม วิธีนี้ยังไม่ช่วยในการจัดการข้อมูลที่เกี่ยวข้อง เนื่องจากรายการที่แตกต่างกันไม่มีความสัมพันธ์ที่กำหนดไว้ ตัวอย่างเช่น เป็นไปไม่ได้ที่จะค้นหา"หมายเลขโทรศัพท์ของทุกคนที่อาศัยอยู่ในอะคาปุลโกและแต่ละคนมีมากกว่า 100 ครั้งในคอลเลกชันรูปถ่ายของฉันและฉันได้รับอีเมลจากพวกเขาในเดือนที่ผ่านมา"การค้นหาดังกล่าวไม่สามารถทำได้เว้นแต่จะอิงตามแบบจำลองข้อมูลที่มีทั้งความหมายและความสัมพันธ์ของข้อมูลที่กำหนดไว้[ 6 ] [ 7 ] WinFS มุ่งมั่นที่จะจัดหาแบบจำลองข้อมูลดังกล่าวและโครงสร้างพื้นฐานรันไทม์ที่สามารถใช้เพื่อจัดเก็บข้อมูล ตลอดจนความสัมพันธ์ระหว่างรายการข้อมูลตามแบบจำลองข้อมูล โดยทำเช่นนั้นด้วยระดับประสิทธิภาพที่น่าพอใจ

ภาพรวม

WinFS รู้จักข้อมูลประเภทต่างๆ ได้โดยตรง เช่น รูปภาพอีเมลเอกสารเสียงวิดีโอปฏิทินรายชื่อติดต่อ แทนที่จะปล่อย ให้ข้อมูล เหล่านั้นเป็นเพียงสตรีมไบต์ดิบที่ไม่ได้วิเคราะห์ (เหมือนกับระบบไฟล์ส่วนใหญ่) ข้อมูลที่จัดเก็บ และจัดการโดยระบบเป็นอินสแตนซ์ของประเภทข้อมูลที่รันไทม์ของ WinFS รู้จัก ข้อมูลมีโครงสร้างโดยใช้คุณสมบัติ ตัวอย่างเช่น อินสแตนซ์ของ ประเภท เรซูเม่จะแสดงข้อมูลโดยการเปิดเผยคุณสมบัติ เช่นชื่อคุณวุฒิการศึกษาประสบการณ์คุณสมบัติแต่ละอย่างอาจเป็นประเภทง่ายๆ ( สตริงจำนวนเต็มวันที่ ) หรือประเภทที่ซับซ้อน ( รายชื่อติดต่อ ) [ 8 ] [ 10 ]ประเภทข้อมูลที่แตกต่างกันจะเปิดเผยคุณสมบัติที่แตกต่างกัน นอกจากนั้น WinFS ยังอนุญาตให้เชื่อมโยงอินสแตนซ์ข้อมูลที่แตกต่างกันเข้าด้วยกันได้ เช่น เอกสารและรายชื่อติดต่อสามารถเชื่อมโยงกันได้ด้วยความสัมพันธ์ " เขียนโดย " [ 7 ] [ 10 ]ความสัมพันธ์เหล่านี้ยังถูกเปิดเผยเป็นคุณสมบัติด้วย ตัวอย่างเช่น หากเอกสารมีความสัมพันธ์กับผู้ติดต่อโดย ความสัมพันธ์ Created Byเอกสารนั้นจะมี คุณสมบัติ Created Byเมื่อมีการเข้าถึง ความสัมพันธ์จะถูกสำรวจและข้อมูลที่เกี่ยวข้องจะถูกส่งคืน[ 10 ]โดยการติดตามความสัมพันธ์ ข้อมูลที่เกี่ยวข้องทั้งหมดสามารถเข้าถึงได้[ 7 ] WinFS ส่งเสริมการแบ่งปันข้อมูลระหว่างแอปพลิเคชันโดยทำให้ประเภทข้อมูลสามารถเข้าถึงได้โดยแอปพลิเคชันทั้งหมด พร้อมกับสคีมาของแอปพลิเคชันเหล่านั้น[ 8 ]เมื่อแอปพลิเคชันต้องการใช้ประเภท WinFS แอปพลิเคชันสามารถใช้สคีมาเพื่อค้นหาโครงสร้างข้อมูลและสามารถใช้ข้อมูลได้ ดังนั้น แอปพลิเคชันจึงสามารถเข้าถึงข้อมูลทั้งหมดในระบบได้ แม้ว่านักพัฒนาจะไม่ต้องเขียนตัวแยกวิเคราะห์เพื่อรับรู้รูปแบบข้อมูลที่แตกต่างกันก็ตาม นอกจากนี้ยังสามารถใช้ความสัมพันธ์และข้อมูลที่เกี่ยวข้องเพื่อสร้างตัวกรองแบบไดนามิกเพื่อแสดงข้อมูลที่แอปพลิเคชันจัดการได้ WinFS API ยังช่วยลดความซับซ้อนของงานการเข้าถึงข้อมูล ประเภท WinFS ทั้งหมดถูกเปิดเผยเป็นวัตถุ.NETโดยคุณสมบัติของวัตถุจะแมปโดยตรงกับคุณสมบัติของประเภทข้อมูล[ 6 ]นอกจากนี้ การอนุญาตให้แอปพลิเคชันต่างๆ ที่จัดการกับข้อมูลเดียวกันใช้ข้อมูลอินสแตนซ์ WinFS เดียวกันแทนที่จะจัดเก็บข้อมูลเดียวกันในไฟล์ที่แตกต่างกัน จะช่วยลดความยุ่งยากในการซิงโครไนซ์ที่เก็บข้อมูลต่างๆ เมื่อข้อมูลเปลี่ยนแปลง[ 11 ]ดังนั้น WinFS จึงสามารถลดความซ้ำซ้อนได้[ 6 ] [ 9 ]

การเข้าถึงข้อมูลทั้งหมดในระบบช่วยให้สามารถค้นหาข้อมูลที่ซับซ้อนได้ในทุกรายการที่ WinFS จัดการ ในตัวอย่างที่ใช้ข้างต้น ( "หมายเลขโทรศัพท์ของทุกคนที่อาศัยอยู่ในอะคาปุลโกและแต่ละคนปรากฏในคอลเลกชันภาพถ่ายของฉันมากกว่า 100 ครั้ง และฉันเคยติดต่อทางอีเมลกับพวกเขาในเดือนที่ผ่านมา" ) WinFS สามารถตรวจสอบ ความสัมพันธ์ของ หัวเรื่องในภาพถ่ายทั้งหมดเพื่อค้นหา รายการ ติดต่อในทำนองเดียวกัน มันสามารถกรองอีเมลทั้งหมดในเดือนที่ผ่านมาและเข้าถึง ความสัมพันธ์ ของการติดต่อเพื่อค้นหาผู้ติดต่อ จากนั้นสามารถระบุผู้ติดต่อที่เหมือนกันจากผลลัพธ์ทั้งสองชุดและดึงหมายเลขโทรศัพท์ของพวกเขาได้โดยการเข้าถึงคุณสมบัติที่เหมาะสมของรายการติดต่อ

นอกจากข้อมูลที่มีโครงสร้างอย่างสมบูรณ์ (เช่นXMLและ ข้อมูล เชิงสัมพันธ์ ) แล้ว 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 —
Storage+ โดยใช้SQL 7.0 [ 12 ]
RFSโดยใช้SQL 2000 [ 12 ]
วินเอฟเอส[ 12 ]
เอ็นจิ้นเชิงความหมายของไมโครซอฟต์
ยกเลิก
ยกเลิก
ยกเลิก
คุณสมบัติที่ถูกตัด
คุณสมบัติที่ถูกตัด
ยกเลิก
ไม่มีข้อมูลที่ทราบ
ลำดับเหตุการณ์ของโครงการจัดเก็บข้อมูลแบบมีโครงสร้างต่างๆ ของMicrosoftยังไม่มีโครงการใดที่พัฒนาจนมีรันไทม์และ API ที่สมบูรณ์แบบ ปีที่ระบุเป็นเพียงค่าประมาณ

การพัฒนา WinFS เป็นส่วนขยายของฟีเจอร์ที่วางแผนไว้ตั้งแต่ช่วงต้นทศวรรษ 1990 โดยมีชื่อว่าObject File System ( OFS) ซึ่งเดิมทีตั้งใจจะรวมไว้เป็นส่วนหนึ่งของCairo OFS ควรจะมีคุณสมบัติการรวมข้อมูลที่มีประสิทธิภาพ[ 12 ]แต่โครงการ Cairo ถูกระงับไป และ OFS ก็ถูกระงับไปด้วยเช่นกัน อย่างไรก็ตาม ต่อมาในระหว่างการพัฒนาCOMระบบจัดเก็บข้อมูลที่เรียกว่า Storage+ ซึ่งใช้ SQL Server 8.0 ที่กำลังจะออกมานั้น ได้รับการวางแผนไว้ โดยมีคุณสมบัติการรวมข้อมูลที่คล้ายคลึงกัน[ 12 ]แต่สิ่งนี้ก็ไม่เคยเกิดขึ้นจริงเช่นกัน และเทคโนโลยีที่คล้ายกันอย่างRelational File System (RFS) ก็ถูกคิดค้นขึ้นมาเพื่อเปิดตัวพร้อมกับ SQL Server 2000 [ 12 ]อย่างไรก็ตาม SQL Server 2000 กลับกลายเป็นเพียงการอัปเกรดเล็กน้อยของ SQL Server 7.0 และ RFS ก็ไม่ได้ถูกนำมาใช้

แนวคิดนี้ไม่ได้ถูกยกเลิก และทำหน้าที่เป็นพื้นฐานสำหรับ WinFS [ 12 ]เดิมที WinFS ถูกวางแผนให้รวมอยู่ในWindows Vista [ 14 ]และ Windows Vista รุ่น build 4051 ซึ่งในขณะนั้นเรียกว่า "Longhorn" ตามชื่อรหัสที่มอบให้กับนักพัฒนาในงาน Microsoft Professional Developers Conference ในปี 2546 นั้นรวมถึง WinFS ด้วย แต่ประสบปัญหาด้านประสิทธิภาพอย่างมาก[ 12 ]ในเดือนสิงหาคม 2547 ไมโครซอฟต์ประกาศว่า WinFS จะไม่ถูกรวมอยู่ใน Windows Vista แต่จะสามารถดาวน์โหลดเป็นการอัปเดตได้หลังจากวางจำหน่าย Vista แล้ว[ 12 ]

เมื่อวันที่ 29 สิงหาคม พ.ศ. 2548 [ 12 ]ไมโครซอฟต์ได้เปิดให้สมาชิก MSDN ทดลองใช้ WinFS Beta 1 อย่างเงียบๆ โดยใช้งานได้บนWindows XPและต้อง ใช้ . NET Frameworkในการทำงาน API ของ WinFS ถูกรวมอยู่ในเนมสเปซSystem.Storage [ 15 ]เวอร์ชันเบต้าได้รับการปรับปรุงใหม่เมื่อวันที่ 1 ธันวาคม พ.ศ. 2548 เพื่อให้เข้ากันได้กับ .NET Framework เวอร์ชัน 2.0 [ 16 ] WinFS Beta 2 มีกำหนดวางจำหน่ายในภายหลังในปี พ.ศ. 2549 [ 17 ]และคาดว่าจะรวมการทำงานร่วมกับWindows Desktop Search เพื่อให้ผลการค้นหารวม ผลลัพธ์จากทั้งไฟล์ปกติและที่เก็บ WinFS รวมถึงอนุญาตให้เข้าถึงข้อมูล WinFS โดยใช้ADO.NET [ 18 ]

เมื่อวันที่ 23 มิถุนายน พ.ศ. 2549 ทีม WinFS ของ Microsoft ประกาศว่า WinFS จะไม่ถูกส่งมอบเป็นผลิตภัณฑ์แยกต่างหากอีกต่อไป[ 4 ] [ 19 ]และส่วนประกอบบางอย่างจะถูกรวมไว้ภายใต้เทคโนโลยีอื่นๆ คุณสมบัติหลักหลายอย่างที่ Microsoft ตั้งใจจะมอบให้พร้อมกับ WinFS ได้แก่ หน้าต่างสำหรับการแก้ไขคุณสมบัติเมตาเดตา การนำทางคุณสมบัติแบบใช้ breadcrumbการกรองหรือการซ้อนรายการตามคุณสมบัติการค้นหาแบบเพิ่มทีละขั้นและการค้นหาที่บันทึกไว้ [ 20 ] คุณสมบัติเหล่านี้ถูกรวมไว้ใน Windows Vista [ 21 ]การสร้างแบบสอบถามซึ่งเป็นคุณสมบัติของ WinFS ที่อนุญาตให้ผู้ใช้ทำการค้นหาเพิ่มเติมโดยใช้ผลลัพธ์ของแบบสอบถามก่อนหน้า[ 22 ]ต่อมาได้ถูกรวมไว้ใน Windows Vista [ 23 ]

ตัวอย่างการใช้งานเทคโนโลยี ได้แก่ ส่วนประกอบ การแมปอ็อบเจ็กต์เชิงสัมพันธ์ในADO.NET Entity Framework ; การสนับสนุนข้อมูลที่ไม่มีโครงสร้าง โหมดการทำงานแบบไม่ต้องดูแล การสนับสนุน ออบเจ็กต์ ระบบไฟล์ผ่านFILESTREAMประเภทข้อมูล และข้อมูลแบบลำดับชั้นในSQL Server 2008ซึ่งในขณะนั้นมีชื่อรหัสว่าKatmaiรวมถึงการผสานรวมกับWin32 APIและWindows Shellและการสนับสนุนการสำรวจลำดับชั้นโดยการสำรวจความสัมพันธ์ใน Microsoft SQL Server รุ่นต่อมา; [ 5 ]และส่วนประกอบการซิงโครไนซ์ในMicrosoft Sync Framework [ 5 ]

ในปี 2013 บิล เกตส์ อ้างว่า WinFS เป็นสิ่งที่ทำให้เขาผิดหวังมากที่สุดใน Microsoft และแนวคิดของ WinFS นั้นล้ำหน้ากว่ายุคสมัย ซึ่งจะกลับมาอีกครั้ง[ 24 ]

การจัดเก็บข้อมูล

สถาปัตยกรรม

สถาปัตยกรรมของ WinFS Stack

WinFS ใช้เอนจินเชิงสัมพันธ์ซึ่งได้มาจาก SQL Server 2005 [ 25 ]เพื่อจัดเตรียมกลไกความสัมพันธ์ของข้อมูล พื้นที่จัดเก็บ WinFS เป็นเพียงไฟล์ฐานข้อมูล SQL Server (.MDF) ที่มีการตั้งค่าแอตทริบิวต์ FILESTREAM [ 26 ]ไฟล์เหล่านี้จะถูกจัดเก็บไว้ในโฟลเดอร์ที่มีการจำกัดการเข้าถึงชื่อ "System Volume Information" (วางไว้ในรูทของวอลุ่ม) [ 27 ]ในโฟลเดอร์ภายใต้โฟลเดอร์ "WinFS" ที่มีชื่อเป็นGUIDของพื้นที่จัดเก็บเหล่านี้[ 26 ]

ที่ส่วนล่างสุดของสแต็ก WinFS คือWinFS Coreซึ่งโต้ตอบกับระบบไฟล์และให้ความสามารถในการเข้าถึงไฟล์และการกำหนดแอดเดรส[ 8 ]เอ็นจินเชิงสัมพันธ์ใช้ประโยชน์จากบริการ WinFS Core เพื่อนำเสนอที่เก็บข้อมูลที่มีโครงสร้างและบริการอื่นๆ เช่นการล็อกซึ่งรันไทม์ WinFS ใช้เพื่อใช้งานฟังก์ชันดังกล่าว รันไทม์ WinFS เปิดเผยบริการต่างๆเช่นการซิงโครไนซ์และกฎที่สามารถใช้เพื่อซิงโครไนซ์ที่เก็บข้อมูล WinFS หรือดำเนินการบางอย่างเมื่อเกิดเหตุการณ์บางอย่าง[ 8 ]

WinFS ทำงานเป็นบริการที่รันสามกระบวนการ : [ 28 ]

  1. WinFS.exeซึ่งเป็นตัวจัดการฐานข้อมูลเชิงสัมพันธ์
  2. WinFSSearch.exeคือไฟล์ที่ทำหน้าที่ประมวลผลดัชนีและค้นหาข้อมูล
  3. WinFPM.exe (WinFS File Promotion Manager)คือโปรแกรมที่เชื่อมต่อกับระบบไฟล์พื้นฐาน

อนุญาตให้เข้าถึงคุณสมบัติต่างๆ ผ่านชุดAPI ของ . NET Framework ซึ่งช่วยให้แอปพลิเคชันสามารถกำหนดประเภทข้อมูลที่กำหนดเอง กำหนดความสัมพันธ์ระหว่างข้อมูล จัดเก็บและเรียกค้นข้อมูล และอนุญาตให้ค้นหาขั้นสูงได้[ 6 ] [ 8 ]จากนั้นแอปพลิเคชันสามารถรวบรวมข้อมูลและนำเสนอข้อมูลที่รวบรวมแล้วให้กับผู้ใช้ได้

ที่เก็บข้อมูล

WinFS จัดเก็บข้อมูลในที่เก็บข้อมูลเชิงสัมพันธ์ ซึ่งเปิดเผยเป็นตำแหน่งเสมือนที่เรียกว่าที่เก็บข้อมูล [ 12 ] ที่เก็บข้อมูล WinFS เป็นที่เก็บข้อมูลทั่วไปที่แอปพลิเคชันใดๆ สามารถจัดเก็บข้อมูลพร้อมกับเมตาเดตา ความสัมพันธ์ และสคีมาได้ รันไทม์ WinFS สามารถใช้ความสัมพันธ์บางอย่างได้ด้วยตนเอง ตัวอย่างเช่น หากค่าของ คุณสมบัติ หัวเรื่องของรูปภาพและ คุณสมบัติ ชื่อของรายชื่อติดต่อเหมือนกัน WinFS ก็สามารถเชื่อมโยงรายชื่อติดต่อกับรูปภาพได้[ 29 ]ความสัมพันธ์ยังสามารถระบุได้โดยแอปพลิเคชันอื่นๆ หรือผู้ใช้[ 30 ]

WinFS ให้บริการพื้นที่จัดเก็บข้อมูลแบบรวมศูนย์ แต่ไม่ได้กำหนดรูปแบบที่จะจัดเก็บในที่เก็บข้อมูล แต่รองรับการเขียนข้อมูลในรูปแบบเฉพาะแอปพลิเคชัน อย่างไรก็ตาม แอปพลิเคชันต้องจัดเตรียมสคีมาที่กำหนดวิธีการตีความรูปแบบไฟล์[ 6 ]ตัวอย่างเช่น สามารถเพิ่มสคีมาเพื่อให้ WinFS เข้าใจวิธีการอ่านและค้นหาและวิเคราะห์ ไฟล์ PDFได้ โดยการใช้สคีมา แอปพลิเคชันใดๆ ก็สามารถอ่านข้อมูลจากแอปพลิเคชันอื่นๆ ได้ และยังช่วยให้แอปพลิเคชันต่างๆ สามารถเขียนในรูปแบบของกันและกันได้โดยการแชร์สคีมา[ 30 ]

สามารถสร้าง WinFS store ได้หลายแห่งบนเครื่องเดียว[ 30 ]ซึ่งช่วยให้สามารถแยกเก็บข้อมูลประเภทต่างๆ ออกจากกันได้ ตัวอย่างเช่น เอกสารราชการและเอกสารส่วนตัวสามารถเก็บไว้ใน store ที่แตกต่างกันได้ โดยค่าเริ่มต้น WinFS จะมี store เพียงแห่งเดียวชื่อ "DefaultStore" [ 12 ] WinFS store จะถูกเปิดเผยเป็นออบเจ็กต์เชลล์ คล้ายกับโฟลเดอร์เสมือนซึ่งจะสร้างรายการของรายการทั้งหมดที่มีอยู่ใน store แบบไดนามิกและแสดงในมุมมองโฟลเดอร์ ออบเจ็กต์เชลล์ยังช่วยให้สามารถค้นหาข้อมูลใน datastore ได้อีกด้วย[ 12 ]

หน่วยข้อมูลที่ต้องจัดเก็บใน WinFS store เรียกว่า WinFS Item [ 6 ] [ 30 ] WinFS item พร้อมกับข้อมูลหลัก ยังมีข้อมูลเกี่ยวกับความสัมพันธ์ระหว่างข้อมูลกับข้อมูลอื่นๆ ด้วยความสัมพันธ์ นี้ จะถูกจัดเก็บในรูปของลิงก์เชิงตรรกะ ลิงก์จะระบุว่าข้อมูลปัจจุบันมีความสัมพันธ์กับข้อมูลอื่นๆ ใดบ้าง กล่าวอีกนัยหนึ่ง ลิงก์จะระบุความสัมพันธ์ของข้อมูลกับข้อมูลอื่นๆ ลิงก์จะถูกจัดเก็บทางกายภาพโดยใช้ตัวระบุลิงก์ ซึ่งระบุชื่อและเจตนาของความสัมพันธ์ เช่นประเภทของหรือ ประกอบด้วย [ 6 ] ตัวระบุลิงก์จะถูกจัดเก็บเป็นแอตทริบิวต์ของข้อมูล วัตถุทั้งหมดที่มีรหัสลิงก์เดียวกันจะถือว่ามีความสัมพันธ์กัน[ 6 ] ต้องมีการส่ง XML schemaที่กำหนดโครงสร้างของข้อมูลที่จะจัดเก็บใน WinFS ไปยัง WinFS runtime ล่วงหน้า[ 6 ]ใน WinFS Beta 1 ต้องเพิ่ม schema assembly ลงใน GAC ก่อนจึงจะสามารถใช้งานได้

แบบจำลองข้อมูล

WinFS สร้างแบบจำลองข้อมูลโดยใช้รายการข้อมูล พร้อมด้วยความสัมพันธ์ส่วนขยาย และกฎที่ควบคุมการใช้งาน[ 8 ] WinFS จำเป็นต้องเข้าใจประเภทและโครงสร้างของรายการข้อมูล เพื่อให้ข้อมูลที่จัดเก็บในรายการข้อมูลนั้นสามารถใช้งานได้กับแอปพลิเคชันใดๆ ที่ร้องขอ ซึ่งทำได้โดยการใช้สคีมา สำหรับรายการข้อมูลทุกประเภทที่จะจัดเก็บใน WinFS จะต้องมีสคีมาที่สอดคล้องกันเพื่อกำหนดประเภท โครงสร้าง และความสัมพันธ์ของข้อมูล สคีมาเหล่านี้ถูกกำหนดโดยใช้ XML [ 6 ]

สคีมา WinFS ที่กำหนดไว้ล่วงหน้าประกอบด้วยสคีมาสำหรับเอกสาร อีเมล การนัดหมาย งาน สื่อ เสียง วิดีโอ และยังรวมถึงสคีมาของระบบที่ประกอบด้วยการกำหนดค่า โปรแกรม และข้อมูลอื่นๆ ที่เกี่ยวข้องกับระบบ[ 8 ]สามารถกำหนดสคีมาแบบกำหนดเองได้สำหรับแต่ละแอปพลิเคชัน ในกรณีที่แอปพลิเคชันต้องการจัดเก็บข้อมูลใน WinFS แต่ไม่ต้องการแชร์โครงสร้างของข้อมูลนั้นกับแอปพลิเคชันอื่นๆ หรือสามารถทำให้ใช้งานได้ทั่วทั้งระบบ[ 8 ]

ระบบประเภท

ลำดับชั้นประเภท WinFS

ความแตกต่างที่สำคัญที่สุดระหว่างระบบไฟล์และ WinFS คือ WinFS รู้จักประเภทของรายการข้อมูลแต่ละรายการที่จัดเก็บไว้ และประเภทจะระบุคุณสมบัติของรายการข้อมูล ระบบประเภทของ WinFS มีความเกี่ยวข้องอย่างใกล้ชิดกับแนวคิดของคลาสและการสืบทอด ในเฟรมเวิร์ก .NET สามารถสร้างประเภทใหม่ได้โดยการขยายและซ้อนประเภทที่กำหนดไว้ล่วงหน้า[ 6 ]

WinFS มีประเภทพื้นฐานที่กำหนดไว้ล่วงหน้าสี่ประเภท ได้แก่รายการ (Items) , ความสัมพันธ์ (Relationships) , ประเภทสเกลาร์ (ScalarTypes)และ ประเภท ซ้อน (NestedTypes ) [ 6 ]รายการคือวัตถุข้อมูลพื้นฐานที่สามารถจัดเก็บได้ และความสัมพันธ์คือความสัมพันธ์หรือการเชื่อมโยงระหว่างรายการข้อมูลสองรายการ เนื่องจากรายการ WinFS ทั้งหมดต้องมีประเภท ประเภทของรายการที่จัดเก็บจึงกำหนดคุณสมบัติของรายการ คุณสมบัติของรายการอาจเป็นประเภทสเกลาร์ ซึ่งกำหนดหน่วยข้อมูลที่เล็กที่สุดที่คุณสมบัติสามารถมีได้ หรือประเภทซ้อน ซึ่งเป็นการรวบรวมประเภทสเกลาร์และ/หรือประเภทซ้อนมากกว่าหนึ่งรายการ ประเภท WinFS ทั้งหมดมีให้ใช้งานในรูปแบบคลาส . NET CLR [ 30 ]

วัตถุใดๆ ที่แสดงเป็นหน่วยข้อมูล เช่น รายชื่อติดต่อ รูปภาพ วิดีโอ เอกสาร ฯลฯ สามารถจัดเก็บใน WinFS store ในรูปแบบเฉพาะของประเภท Item ได้[ 30 ]โดยค่าเริ่มต้น WinFS จะมีประเภท Item สำหรับไฟล์ รายชื่อติดต่อ เอกสาร รูปภาพ เสียง วิดีโอ ปฏิทิน และข้อความ Item ไฟล์สามารถจัดเก็บข้อมูลทั่วไปใดๆ ก็ได้ ซึ่งจัดเก็บอยู่ในระบบไฟล์ในรูปแบบไฟล์ แต่เว้นแต่จะมีการจัดเตรียมสคีมาขั้นสูงสำหรับไฟล์ โดยการกำหนดให้เป็น Item เฉพาะ WinFS จะไม่สามารถเข้าถึงข้อมูลของไฟล์นั้นได้ Item ไฟล์ดังกล่าวสามารถรองรับได้เฉพาะการเชื่อมโยงกับ Item อื่นๆ เท่านั้น[ 6 ]

การกำหนดประเภทใหม่

นักพัฒนาสามารถขยายประเภทเหล่านี้หรือประเภทพื้นฐาน Item เพื่อจัดเตรียมประเภทสำหรับข้อมูลที่กำหนดเองได้ ข้อมูลที่อยู่ใน 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 store เริ่มต้นโดยใช้( 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 ซึ่งใช้ค้นหาเอกสารประเภทนั้นusing ( 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

ใน WinFS ความสัมพันธ์ (Relationship) เป็นอินสแตนซ์ของประเภทพื้นฐาน Relationship ซึ่งขยายเพื่อแสดงถึงความสัมพันธ์เฉพาะทาง ความสัมพันธ์คือการแมประหว่างสองรายการ คือ แหล่งที่มา (Source) และเป้าหมาย (Target) แหล่งที่มามีความสัมพันธ์ขาออก (Outgoing Relationship) ในขณะที่เป้าหมายมีความสัมพันธ์ขาเข้า (Incoming Relationship) [ 31 ] WinFS มีความสัมพันธ์พื้นฐานสามประเภท ได้แก่Holding Relationship , Reference RelationshipและEmbedding Relationship [ 6 ] ความสัมพันธ์แบบกำหนดเองใดๆ ระหว่างประเภทข้อมูลสองประเภทเป็นอินสแตนซ์ของประเภทความสัมพันธ์เหล่านี้

  • ความสัมพันธ์แบบถือครอง (Holding Relationships)ระบุความเป็นเจ้าของและอายุการใช้งาน (ซึ่งกำหนดว่าความสัมพันธ์นั้นมีผลใช้ได้นานแค่ไหน) ของรายการเป้าหมาย (Target Item) ตัวอย่างเช่น ความสัมพันธ์ระหว่างโฟลเดอร์กับไฟล์ และระหว่างพนักงานกับบันทึกเงินเดือนของเขา เป็นความสัมพันธ์แบบถือครอง – รายการหลังจะถูกลบออกเมื่อรายการแรกถูกลบออก รายการเป้าหมายสามารถเป็นส่วนหนึ่งของความสัมพันธ์แบบถือครองได้มากกว่าหนึ่งรายการ ในกรณีเช่นนั้น รายการเป้าหมายจะต้องถูกลบออกเมื่อรายการต้นทางทั้งหมดถูกลบออก
  • ความสัมพันธ์อ้างอิงเป็นตัวเชื่อมโยงระหว่างสองรายการ แต่ไม่มีอายุการใช้งานที่เกี่ยวข้อง กล่าวคือ แต่ละรายการจะยังคงถูกจัดเก็บไว้แม้ว่าจะไม่มีอีกรายการหนึ่งก็ตาม
  • ความสัมพันธ์แบบฝังตัว (Embedding Relationships)จะจัดลำดับให้กับสองรายการที่เชื่อมโยงกันด้วยความสัมพันธ์นั้น เช่น ความสัมพันธ์ระหว่างรายการหลักและรายการย่อย

ความสัมพันธ์ระหว่างสองรายการสามารถตั้งค่าได้ทางโปรแกรมโดยแอปพลิเคชันที่สร้างข้อมูล หรือผู้ใช้สามารถใช้ WinFS Item Browser เพื่อเชื่อมโยงรายการด้วยตนเองได้[ 31 ]นอกจากนี้ WinFS item browser ยังสามารถแสดงรายการและความสัมพันธ์ระหว่างรายการเหล่านั้นในรูปแบบกราฟิก เพื่อให้ผู้ใช้ทราบว่าข้อมูลของตนได้รับการจัดระเบียบอย่างไร[ 30 ]

กฎ

WinFS ประกอบด้วยกฎ [ 22 ]ซึ่งจะถูกดำเนินการเมื่อตรงตามเงื่อนไขบางอย่าง กฎของ WinFS ทำงานกับข้อมูลและความสัมพันธ์ของข้อมูล ตัวอย่างเช่น สามารถสร้างกฎที่ระบุว่าเมื่อใดก็ตามที่มีการสร้างรายการที่มีฟิลด์"ชื่อ"และหากค่าของฟิลด์นั้นเป็นชื่อเฉพาะ ควรสร้างความสัมพันธ์ที่เชื่อมโยงรายการนั้นกับรายการอื่น กฎของ WinFS ยังสามารถเข้าถึงแอปพลิเคชันภายนอกใดๆ ได้ ตัวอย่างเช่น สามารถสร้างกฎที่เรียกใช้ แอปพลิ เคชันแจ้งเตือนเมื่อใดก็ตามที่ได้รับอีเมลจากผู้ติดต่อเฉพาะ[ 22 ]กฎของ WinFS ยังสามารถใช้เพื่อเพิ่มฟิลด์คุณสมบัติใหม่ให้กับรายการข้อมูลที่มีอยู่ได้[ 22 ]

กฎ WinFS ยังถูกเปิดเผยเป็นวัตถุ .NET CLR ด้วย ดังนั้นกฎใดๆ ก็สามารถนำไปใช้เพื่อวัตถุประสงค์ใดๆ ก็ได้ กฎยังสามารถขยายได้โดยการสืบทอดจากกฎเดิมเพื่อสร้างกฎใหม่ที่ประกอบด้วยเงื่อนไขและการกระทำของกฎแม่บวกกับสิ่งอื่นๆ เพิ่มเติม[ 22 ]

ราฟ

WinFS รองรับการสร้างRich Application Views (RAV) โดยการรวบรวมข้อมูลต่างๆ ในรูปแบบตารางเสมือน ซึ่งแตกต่างจากมุมมองฐานข้อมูลที่แต่ละองค์ประกอบสามารถเป็นค่าสเกลาร์ได้เท่านั้น RAVs สามารถมีรายการที่ซับซ้อนหรือแม้แต่คอลเลกชันของรายการได้ ข้อมูลจริงสามารถครอบคลุมประเภทข้อมูลหรืออินสแตนซ์หลายประเภท และยังสามารถดึงข้อมูลได้โดยการสำรวจความสัมพันธ์[ 10 ] RAVs จะถูกแบ่งเป็นหน้า (แบ่งชุดข้อมูลทั้งหมดออกเป็นหน้า ย่อยๆ ที่มีชุดย่อยของข้อมูลที่ไม่เชื่อมต่อกัน) โดยรันไทม์ของ WinFS ขนาดของหน้าจะถูกกำหนดในระหว่างการสร้างมุมมอง และ API ของ WinFS จะเปิดเผยวิธีการวนซ้ำผ่านหน้าต่างๆ RAVs ยังรองรับการแก้ไขมุมมองตามพารามิเตอร์การจัดกลุ่มต่างๆ นอกจากนี้ยังสามารถสอบถามมุมมองได้อีกด้วย

การควบคุมการเข้าถึง

แม้ว่าข้อมูลทั้งหมดจะถูกแชร์ แต่ก็ไม่ได้หมายความว่าทุกอย่างจะเข้าถึงได้เท่าเทียมกัน WinFS ใช้ระบบการตรวจสอบสิทธิ์ของ Windowsเพื่อให้กลไกการป้องกันข้อมูลสองแบบ[ 30 ]ประการแรก มีการรักษาความปลอดภัยระดับการแชร์ที่ควบคุมการเข้าถึงการแชร์ WinFS ของคุณ ประการที่สอง มีการรักษาความปลอดภัยระดับรายการที่รองรับคำอธิบายความปลอดภัยที่เข้ากันได้กับ NT กระบวนการที่เข้าถึงรายการต้องมีสิทธิ์เพียงพอที่จะเข้าถึงได้ นอกจากนี้ใน Vista ยังมีแนวคิดเรื่อง"ระดับความสมบูรณ์"สำหรับแอปพลิเคชัน ข้อมูลที่มีความสมบูรณ์สูงกว่าจะไม่สามารถเข้าถึงได้โดยกระบวนการที่มีความสมบูรณ์ต่ำกว่า

การดึงข้อมูล

ผังงานสำหรับการสร้าง ค้นหา และอัปเดตอินสแตนซ์ข้อมูล WinFS

โหมดหลักของการดึงข้อมูลจากที่เก็บ WinFS คือการสอบถามที่เก็บ WinFS ตามเกณฑ์บางอย่าง[ 8 ]ซึ่งจะส่งคืน ชุดรายการ ที่สามารถแจงนับได้ซึ่งตรงกับเกณฑ์ เกณฑ์สำหรับการสอบถามจะถูกระบุโดยใช้ภาษาการสอบถามOPath ข้อมูลที่ส่งคืนจะพร้อมใช้งานในรูปแบบของอินสแตนซ์ของสคีมาประเภทที่สอดคล้องกับแบบจำลองวัตถุ . NET [ 32 ]สามารถเข้าถึงข้อมูลในนั้นได้โดยการเข้าถึงคุณสมบัติของวัตถุแต่ละรายการ[ 31 ]

ความสัมพันธ์ยังถูกเปิดเผยเป็นคุณสมบัติด้วย แต่ละรายการของ WinFS มีคุณสมบัติสองอย่าง ได้แก่IncomingRelationshipsและOutgoingRelationshipsซึ่งให้สิทธิ์ในการเข้าถึงชุดของอินสแตนซ์ความสัมพันธ์ที่รายการนั้นมีส่วนร่วม รายการอื่นที่มีส่วนร่วมในอินสแตนซ์ความสัมพันธ์หนึ่งสามารถเข้าถึงได้ผ่านอินสแตนซ์ความสัมพันธ์ที่เหมาะสม[ 10 ] [ 31 ]

ข้อเท็จจริงที่ว่าสามารถเข้าถึงข้อมูลได้โดยใช้คำอธิบาย แทนที่จะเป็นตำแหน่งที่ตั้ง สามารถนำมาใช้เพื่อให้ผู้ใช้ปลายทางมีความสามารถในการจัดระเบียบโดยไม่จำกัดเฉพาะการจัดระเบียบแบบลำดับชั้นเหมือนที่ใช้ในระบบไฟล์ ในระบบไฟล์ ไฟล์หรือโฟลเดอร์แต่ละรายการจะอยู่ในโฟลเดอร์เดียวเท่านั้น แต่รายการ WinFS สามารถมีส่วนร่วมในความสัมพันธ์การถือครองได้หลายรายการ และยังสามารถเชื่อมโยงกับรายการอื่นๆ ได้อีกด้วย ดังนั้น ผู้ใช้ปลายทางจึงไม่ถูกจำกัดเฉพาะการจัดระเบียบไฟล์/โฟลเดอร์เท่านั้น แต่รายชื่อผู้ติดต่อสามารถกลายเป็นคอนเทนเนอร์สำหรับเอกสาร รูปภาพสามารถเป็นคอนเทนเนอร์สำหรับรายชื่อผู้ติดต่อ และอื่นๆ เพื่อความเข้ากันได้กับระบบเดิม WinFS จึงมีประเภทเสมือนที่เรียกว่าโฟลเดอร์ซึ่งมีอยู่เพื่อมีส่วนร่วมในความสัมพันธ์การถือครองและจำลองการจัดระเบียบไฟล์/โฟลเดอร์เท่านั้น เนื่องจากรายการ WinFS ใดๆ ก็สามารถเชื่อมโยงกับรายการโฟลเดอร์ได้มากกว่าหนึ่งรายการ จากมุมมองของผู้ใช้ปลายทาง รายการหนึ่งสามารถอยู่ในหลายโฟลเดอร์ได้โดยไม่ต้องทำซ้ำข้อมูลจริง[ 10 ]แอปพลิเคชันยังสามารถวิเคราะห์กราฟ ความสัมพันธ์ เพื่อแสดงตัวกรองต่างๆ ได้ อีกด้วย ตัวอย่างเช่น แอปพลิเคชันอีเมลสามารถวิเคราะห์รายชื่อผู้ติดต่อที่เกี่ยวข้องและความสัมพันธ์ของรายชื่อผู้ติดต่อกับใบเสร็จค่าอาหารในร้านอาหาร และสร้างตัวกรองแบบไดนามิก เช่น"อีเมลที่ส่งถึงคนที่ฉันไปทานอาหารกลางวันด้วย "

การค้นหา

WinFS API มีคลาสที่เรียกว่า คลาส ItemContextซึ่งผูกกับที่เก็บข้อมูล WinFS วัตถุ ItemContextสามารถใช้เพื่อกำหนดขอบเขตการค้นหาไปยังที่เก็บข้อมูลทั้งหมดหรือส่วนย่อยของที่เก็บข้อมูล นอกจากนี้ยังให้ การเข้าถึง แบบทำธุรกรรมไปยังที่เก็บข้อมูล[ 15 ]จากนั้นวัตถุของคลาสนี้สามารถสร้าง วัตถุ ItemSearcherซึ่งรับประเภท (วัตถุที่แสดงถึงประเภท) ของรายการที่จะดึงข้อมูลหรือความสัมพันธ์และ สตริง คำค้นหาOPath ที่แสดงถึงเกณฑ์สำหรับการค้นหา[ 31 ] [ 33 ]ชุดของการจับคู่ทั้งหมดจะถูกส่งคืน ซึ่งสามารถผูกกับวิดเจ็ต UI เพื่อแสดงผลทั้งหมดหรือแสดงรายการทีละรายการ[ 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นอกจาก นี้ยังรองรับตัวดำเนินการแบบ SQLเช่นLIKE , GROUP BYและORDER BYรวมถึงเงื่อนไขแบบไวด์การ์ดด้วย ดังนั้น"title LIKE 'any*'"จึงเป็นสตริงคำสั่งค้นหาที่ถูกต้อง ตัวดำเนินการเหล่านี้สามารถใช้เพื่อดำเนินการค้นหาที่ซับซ้อนได้ เช่น

เมื่อใช้( ItemContext ic = ItemContext.Open ( )) { // การค้นหาเริ่มต้นด้วยการสร้างอ็อบเจ็กต์ ItemSearcher ตัวค้นหาถูกสร้างขึ้นจาก // อินส แตนซ์ความสัมพันธ์ เนื่องจากผู้ติดต่อที่กำลังค้นหาอยู่ในความสัมพันธ์// พารามิเตอร์แรกกำหนดขอบเขตของการค้นหา ItemContext เป็นขอบเขตหมายความว่า// จะค้นหาทั้งสโตร์ ขอบเขตสามารถจำกัดไว้ที่ชุดของ Items ซึ่งอาจ// อยู่ในความสัมพันธ์แบบ holding กับผู้ติดต่อ ในกรณีนั้น ชุดจะถูกส่งผ่านเป็น// ขอบเขตของการค้นหา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 มีฟีเจอร์ Information Agent สำหรับการจัดการ การเรียกใช้ และการจัดเก็บกฎการแจ้งเตือนและการตั้งค่าของผู้ใช้ปลายทางสำหรับการเปลี่ยนแปลงรายการในที่เก็บข้อมูล โดยใช้ Information Agent เราสามารถกำหนดความสัมพันธ์กับรายการใหม่โดยอัตโนมัติตามเหตุการณ์ต่างๆ เช่น การนัดหมาย ตัวอย่างเช่น การนัดหมายสามารถเชื่อมโยงกับรูปภาพตามวันที่ถ่ายรูป ทำให้สามารถค้นหาข้อมูลวันเกิดหรือวันหยุดได้โดยไม่ต้องทราบวันที่จริงของเหตุการณ์เหล่านั้น (" ค้นหารูปภาพทั้งหมดที่ถ่ายในวันเกิดนี้ ") ตัวอย่างอื่นๆ ได้แก่ การย้ายรายการใหม่ไปยังโฟลเดอร์เฉพาะโดยอัตโนมัติตามกฎที่กำหนดโดยเวลาการนัดหมายและวันที่ถ่ายรูป (" เมื่อฉันนำเข้ารูปภาพที่ถ่ายระหว่างงานธุรกิจ ให้ย้ายไปยังโฟลเดอร์งานธุรกิจ ") หรือความเป็นไปได้ที่ซับซ้อนกว่านั้น Information Agent ยังสามารถส่งต่อการแจ้งเตือนไปยังอุปกรณ์อื่นๆ ได้ (" หากฉันได้รับอีเมลที่มีความสำคัญสูงจากเจ้านาย ให้ส่งการแจ้งเตือนไปยังโทรศัพท์ของฉัน ") และคล้ายกับฟังก์ชันกฎและการแจ้งเตือนของ Microsoft Outlook

การแบ่งปันข้อมูล

WinFS ช่วยให้สามารถแชร์ข้อมูลระหว่างแอปพลิเคชันและระหว่าง WinFS store หลายแห่งซึ่งอาจอยู่บนคอมพิวเตอร์เครื่องต่างๆ ได้อย่างง่ายดาย โดยการคัดลอกไปและกลับ[ 34 ]รายการ WinFS ยังสามารถคัดลอกไปยังระบบไฟล์ที่ไม่ใช่ WinFS ได้ แต่หากรายการข้อมูลนั้นไม่ได้ถูกนำกลับไปไว้ใน WinFS store ก็จะไม่สามารถรองรับบริการขั้นสูงที่ WinFS จัดให้ได้

API ของ WinFS ยังให้การสนับสนุนบางส่วนสำหรับการแชร์กับแอปพลิเคชันที่ไม่ใช่ WinFS ด้วย WinFS เปิดเผยออบเจ็กต์เชลล์เพื่อเข้าถึงที่เก็บข้อมูล WinFS ออบเจ็กต์นี้จะแมปรายการ WinFS กับลำดับชั้นของโฟลเดอร์เสมือน และสามารถเข้าถึงได้โดยแอปพลิเคชันใดๆ ก็ได้[ 12 ]โฟลเดอร์เสมือนสามารถแชร์เนื้อหาใหม่ที่อ้างอิงโดยการสืบค้นกับผู้ใช้ได้โดยอัตโนมัติ (โฟลเดอร์เสมือนสำหรับ " รูปถ่ายวันหยุดทั้งหมด " สามารถแชร์รายการใหม่ที่ส่งคืนโดยการสืบค้นนี้กับผู้ใช้ได้โดยอัตโนมัติ) ข้อมูล WinFS ยังสามารถแชร์ด้วยตนเองโดยใช้การแชร์เครือข่ายโดยการแชร์ออบเจ็กต์เชลล์แบบดั้งเดิม[ 34 ]รูปแบบไฟล์ที่ไม่ใช่ WinFS สามารถจัดเก็บในที่เก็บข้อมูล WinFS ได้โดยใช้รายการไฟล์ที่ WinFS จัดให้ สามารถเขียนตัวนำเข้าเพื่อแปลงรูปแบบไฟล์เฉพาะเป็นประเภทรายการ WinFS ได้[ 34 ]

นอกจากนี้ WinFS ยังให้บริการซิงโครไนซ์รายการใน WinFS store สองรายการขึ้นไปโดยอัตโนมัติ โดยขึ้นอยู่กับเงื่อนไขที่กำหนดไว้ล่วงหน้า เช่น " แชร์เฉพาะรูปภาพ " หรือ " แชร์รูปภาพที่มีผู้ติดต่อ X ที่เกี่ยวข้อง " [ 34 ] store อาจอยู่บนคอมพิวเตอร์ที่แตกต่างกัน การซิงโครไนซ์ทำใน ลักษณะ peer-to-peerโดยไม่มีหน่วยงานกลาง การซิงโครไนซ์สามารถทำได้ด้วยตนเอง อัตโนมัติ หรือตามกำหนดเวลา ในระหว่างการซิงโครไนซ์ WinFS จะค้นหารายการใหม่และรายการที่แก้ไข และอัปเดตตามนั้น หากมีการเปลี่ยนแปลงสองรายการขึ้นไปขัดแย้งกัน WinFS สามารถใช้การแก้ไขอัตโนมัติตามกฎที่กำหนดไว้ล่วงหน้า หรือเลื่อนการซิงโครไนซ์ออกไปเพื่อแก้ไขด้วยตนเอง WinFS ยังอัปเดต schema หากจำเป็น[ 34 ]

การสนับสนุนแอปพลิเคชัน

เนมสเปซเชลล์

WinFS Beta 1 ประกอบด้วย ส่วนขยายเนมสเปซ เชลล์ซึ่งแสดงที่เก็บ WinFS เป็นวัตถุระดับบนสุดในมุมมองMy Computer [ 12 ]สามารถคัดลอกไฟล์เข้าและออกจากที่เก็บได้ เช่นเดียวกับที่แอปพลิเคชันสามารถใช้บันทึกโดยตรงได้ แม้แต่โฟลเดอร์เช่นMy Documentsก็สามารถเปลี่ยนเส้นทางไปยังที่เก็บได้[ 12 ] WinFS ใช้ ปลั๊กอิน Importerเพื่อวิเคราะห์ไฟล์ขณะที่กำลังนำเข้าสู่ที่เก็บ และสร้างสคีมาและวัตถุ WinFS ที่เหมาะสม และเมื่อนำวัตถุออก จะทำการบรรจุใหม่ลงในไฟล์[ 34 ]หากไม่ได้ติดตั้งตัวนำเข้าสำหรับไฟล์บางไฟล์ ไฟล์เหล่านั้นจะถูกจัดเก็บเป็นประเภท ไฟล์ ทั่วไป

ไมโครซอฟต์ เรฟ

Microsoft Raveเป็นแอปพลิเคชันที่มาพร้อมกับ WinFS Beta 1 ช่วยให้สามารถซิงโครไนซ์ WinFS store สองตัวขึ้นไปได้ และรองรับการซิงโครไนซ์ใน โหมด full meshรวมถึง โทโพโลยี แบบ central hubด้วย ในระหว่างการซิงโครไนซ์ Microsoft Rave จะตรวจสอบการเปลี่ยนแปลงที่เกิดขึ้นกับแต่ละ store ตั้งแต่การซิงโครไนซ์ครั้งล่าสุด และอัปเดตตามนั้น เมื่อทำการเปลี่ยนแปลงแล้ว มันจะตรวจจับด้วยว่ามีข้อขัดแย้งหรือไม่ เช่น ข้อมูลเดียวกันถูกเปลี่ยนแปลงในทั้งสอง store ตั้งแต่การซิงโครไนซ์ครั้งล่าสุด มันจะบันทึกข้อมูลที่ขัดแย้งไว้เพื่อแก้ไขในภายหลัง หรือแก้ไขทันที Microsoft Rave ใช้ เทคโนโลยี peer-to-peerในการสื่อสารและถ่ายโอนข้อมูล

สโตร์สปาย

WinFS มีStoreSpyซึ่งเป็นโปรแกรมเรียกดูรายการ WinFS ที่สามารถใช้เพื่อเรียกดูอินสแตนซ์ข้อมูลที่มีโครงสร้าง พร้อมด้วยคุณสมบัติและความสัมพันธ์ต่างๆ

ใน WinFS Beta 1 ไมโครซอฟต์ได้รวมแอปพลิเคชันที่ไม่ได้รับการสนับสนุนชื่อStoreSpy [ 35 ] ซึ่งอนุญาตให้เรียกดูที่เก็บ WinFS โดยแสดงมุมมองแบบลำดับชั้นของรายการ WinFS แอปพลิเคชันนี้สร้างโฟลเดอร์เสมือนโดย อัตโนมัติ ตามสิทธิ์การเข้าถึง วันที่ และข้อมูลเมตาอื่นๆ และแสดงในมุมมองแบบลำดับชั้นคล้ายกับที่แสดงโฟลเดอร์แบบดั้งเดิม แอปพลิเคชันสร้างแท็บสำหรับประเภทรายการต่างๆ StoreSpy อนุญาตให้ดูรายการความสัมพันธ์ชุดหลายรายการองค์ประกอบที่ซ้อนกัน ส่วนขยาย[ 36 ] และประเภทอื่นๆ ในที่เก็บพร้อมกับข้อมูลเมตาแบบเต็ม นอกจากนี้ยังแสดงอินเทอร์เฟซการค้นหาเพื่อทำการค้นหาด้วยตนเองและบันทึกเป็นโฟลเดอร์เสมือน แอปพลิเคชันยังแสดงมุมมองกราฟิกของกฎ WinFS อย่างไรก็ตาม แอปพลิเคชันนี้ไม่อนุญาตให้แก้ไขรายการหรือคุณสมบัติของรายการ แม้ว่าจะมีการกำหนดให้รวมอยู่ในเวอร์ชันในอนาคต[ 37 ]แต่โครงการ WinFS ถูกตัดทอนก่อนที่จะเกิดขึ้นจริง

ประเภทเบราว์เซอร์

WinFS ยังมีแอปพลิเคชันอีกตัวหนึ่งชื่อWinFS Type Browserซึ่งสามารถใช้เรียกดูประเภท WinFS รวมถึงแสดงภาพความสัมพันธ์แบบลำดับชั้นระหว่างประเภท WinFS ได้[ 38 ]ประเภท WinFS ทั้งประเภทในตัวและสคีมาที่กำหนดเอง สามารถแสดงภาพพร้อมกับคุณสมบัติและเมธอดทั้งหมดที่รองรับได้ นอกจากนี้ยังแสดงประเภทที่สืบทอดมาจากประเภทนั้น รวมถึงประเภทอื่นๆ ที่ขยายสคีมาของประเภทนั้นด้วย อย่างไรก็ตาม แม้ว่าจะรวมอยู่ใน WinFS แต่ก็ถูกปล่อยออกมาเป็นเครื่องมือที่ไม่ได้รับการสนับสนุน[ 38 ]

โอปาเธอร์

WinFS Beta 1 ยังมีแอปพลิเคชันที่ไม่ได้รับการสนับสนุนชื่อOPather [ 39 ] ซึ่งมีอินเทอร์เฟซกราฟิกสำหรับการเขียน แบบสอบถาม Opathสามารถใช้งานได้โดยการเลือกประเภทวัตถุเป้าหมายและระบุพารามิเตอร์ของแบบสอบถาม นอกจากนี้ยังมี คุณสมบัติการเติมพารามิเตอร์แบบ Intellisense ด้วย จากนั้นสามารถใช้เพื่อทำงานด้านการแสดงภาพ เช่น การผูกผลลัพธ์ของแบบสอบถามกับ ตัวควบคุม DataGridสร้างมุมมองของข้อมูลใน WinFS เอง หรือเพียงแค่ดึงสตริงแบบสอบถามออกมา

โครงการ "ออเรนจ์"

ไมโครซอฟต์ได้เริ่มโครงการสร้างแอปพลิเคชันแสดงภาพข้อมูลสำหรับ WinFS โดยใช้ชื่อรหัสว่า"Project Orange"และคาดว่าจะสร้างขึ้นโดยใช้Windows Presentation Foundation [ 40 ] แอ ปพลิเคชัน นี้คาดว่าจะช่วยให้สามารถสำรวจรายการที่จัดเก็บใน WinFS stores และความสัมพันธ์ของข้อมูลจะเป็นส่วนสำคัญของโมเดลการนำทาง นอกจากนี้ยังคาดว่าจะช่วยให้ผู้ใช้สามารถจัดระเบียบ WinFS stores ในรูปแบบกราฟิกได้ด้วย ซึ่งเป็นการนำแนวคิดหลายอย่างที่แสดงในไฟล์ WMV วิดีโอแนวคิด IWish มา ใช้ อย่างไรก็ตาม เนื่องจากโครงการ WinFS ได้ยุติลง สถานะของโครงการนี้จึงไม่เป็นที่ทราบแน่ชัด

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=WinFS&oldid=1358974606 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ วินเอฟเอส

WinFS (ย่อมาจาก Windows Future Storage ) [ 1 ] เป็น ชื่อรหัส ของ โครงการระบบจัดเก็บและ จัดการ ข้อมูล ที่ถูกยกเลิก [ 2 ] ซึ่งใช้ ฐานข้อมูลเชิงสัมพันธ์ พัฒนาโดย Microsoft...

แรงจูงใจ

ระบบไฟล์ จำนวนมากที่พบใน ระบบปฏิบัติการ ทั่วไป รวมถึง ระบบไฟล์ NTFS ที่ใช้ใน Microsoft Windows เวอร์ชันใหม่ๆ จะจัดเก็บไฟล์และวัตถุอื่นๆ ใน รูปแบบของสตรีมไบต์ เท่านั้น และมีข้อมูลเกี่ยวกับข้อมูลที่จัดเก็บในไฟล์น้อยมากหรือไม่มีเลย...

ภาพรวม

WinFS รู้จักข้อมูลประเภทต่างๆ ได้โดยตรง เช่น รูปภาพ อีเมล เอกสาร เสียง วิดีโอ ปฏิทิน ราย ชื่อติดต่อ แทนที่จะปล่อย ให้ ข้อมูล เหล่านั้นเป็นเพียงสตรีมไบต์ดิบที่ไม่ได้วิเคราะห์ (เหมือนกับระบบไฟล์ส่วนใหญ่) ข้อมูลที่จัดเก็บ...

การพัฒนา

การพัฒนา WinFS เป็นส่วนขยายของฟีเจอร์ที่วางแผนไว้ตั้งแต่ช่วงต้นทศวรรษ 1990 โดยมีชื่อว่า Object File System ( OFS) ซึ่งเดิมทีตั้งใจจะรวมไว้เป็นส่วนหนึ่งของ Cairo OFS ควรจะมีคุณสมบัติการรวมข้อมูลที่มีประสิทธิภาพ [ 12 ] แต่โครงการ Cairo ถูกระงับไป และ OFS...