Winfs

1,255 views

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,255
On SlideShare
0
From Embeds
0
Number of Embeds
47
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Winfs

    1. 1. WinFS New Storage Subsystem In Longhorn John Keefauver Manager .NET Business Development Ajilon Consulting
    2. 2. Agenda <ul><li>User and developer benefits of WinFS </li></ul><ul><li>What is WinFS? </li></ul><ul><li>WinFS Technology </li></ul><ul><ul><li>Data model </li></ul></ul><ul><ul><li>Schemas </li></ul></ul><ul><ul><li>APIs </li></ul></ul><ul><ul><li>Synchronization </li></ul></ul><ul><ul><li>InfoAgent </li></ul></ul><ul><ul><li>Filesystem </li></ul></ul><ul><li>Extending WinFS </li></ul><ul><li>WinFS implications </li></ul>
    3. 3. Key Points Integrated storage <ul><li>Digital-born data </li></ul><ul><ul><li>Business processes generating more digital data </li></ul></ul><ul><ul><li>Personal Memories, e.g. Digital photography and video </li></ul></ul><ul><li>Search </li></ul><ul><ul><li>Knowledge workers spending hours daily searching for information </li></ul></ul><ul><ul><li>Industry awaits next leap in productivity </li></ul></ul><ul><li>Fortunately, technology supports these trends </li></ul><ul><ul><li>70%/year individual disk capacity growth over last decade </li></ul></ul><ul><ul><li>Longhorn will have WinFS </li></ul></ul>
    4. 4. User Benefits <ul><li>Find </li></ul><ul><ul><li>Data is easily found </li></ul></ul><ul><ul><li>Information is organized in the way people think about it </li></ul></ul><ul><ul><li>There is an integrated view of information </li></ul></ul><ul><li>Relate </li></ul><ul><ul><li>Discovery of data is easy </li></ul></ul><ul><ul><li>Data is smarter and related together </li></ul></ul><ul><li>Act </li></ul><ul><ul><li>Data flow is controllable </li></ul></ul><ul><ul><li>Preferences for how information is handled </li></ul></ul><ul><ul><li>Work anywhere, anytime, anyplace </li></ul></ul>
    5. 5. WinFS Developer Benefits <ul><li>New filesystem capabilities </li></ul><ul><ul><li>Current applications continue to work on Longhorn, and benefit from new capabilities </li></ul></ul><ul><ul><li>Metadata and relationships on most file formats </li></ul></ul><ul><ul><li>Metadata handlers for custom file formats </li></ul></ul><ul><li>New Windows primitives </li></ul><ul><ul><li>New things in the OS to integrate with </li></ul></ul><ul><ul><li>Extensible to include additional data </li></ul></ul><ul><li>New data subsystem capabilities </li></ul><ul><ul><li>Smart connected applications </li></ul></ul><ul><ul><li>Data Sharing </li></ul></ul><ul><ul><li>Branded data to other applications and the Shell </li></ul></ul>
    6. 6. WinFS Is <ul><li>All end-user data lives in Longhorn </li></ul><ul><li>New user experience in Longhorn Shell </li></ul><ul><li>A trustworthy place to store data </li></ul><ul><li>Data model built on relational database technology </li></ul><ul><li>Filesystem capabilities built on NTFS </li></ul><ul><li>Everyday Information - domain-specific schemas </li></ul><ul><li>Services that make data active </li></ul>
    7. 7. WinFS Is Not <ul><li>Abandoning legacy applications </li></ul><ul><li>Forcing the world to rewrite everything </li></ul><ul><li>Complete yet! </li></ul><ul><ul><li>Fundamental model complete for Beta1 </li></ul></ul><ul><ul><li>Platform and User Experience complete in Beta2 </li></ul></ul><ul><li>Just a database </li></ul>
    8. 8. WinFS Overview <ul><li>Complete Data SubSystem </li></ul><ul><ul><li>Object, Relational, and XML </li></ul></ul><ul><li>Schema Framework </li></ul><ul><ul><li>Extensible “everyday info” schemas </li></ul></ul><ul><ul><li>ISV-built schemas </li></ul></ul><ul><li>Data store and Model </li></ul><ul><ul><li>Items </li></ul></ul><ul><ul><li>Relationships </li></ul></ul><ul><ul><li>Extensions </li></ul></ul><ul><li>Data Services </li></ul><ul><ul><li>Synchronization </li></ul></ul><ul><ul><li>InfoAgent </li></ul></ul><ul><ul><li>Filesystem Services </li></ul></ul><ul><li>NTFS </li></ul><ul><ul><li>NTFS Semantics for Filestreams </li></ul></ul><ul><ul><li>Backwards Compatible with Win32 </li></ul></ul>Communication Avalon WinFS Indigo Windows Forms ASP.NET ObjectSpaces DataSet SQL XML Providers Framework Services Schemas Data Model ADO.NET Connectivity Synchronization (WinFS, Win32..) InfoAgent (PreferenceRules..) FileSystem Services (MetaDataHandlers..) Calendar Media Document … Items Relationships Extensions Communications Manager (Port) Messaging Services Transport Channels (IPC, HTTP, TCP…) Channels (Datagram, Reliable, Peer, …) Policy Engine Message Encoder Channel Security Queuing Eventing Routing Transaction Desktop Services Desktop Window Manager Presentation Object Manager Desktop Composition Engine Animation and Composition Media Services Hardware Rendering Media Processing Capture and Sourcing Software Rendering and Sinks Adaptive UI Engine Page/Site Composition Personalization and Profiling Services Membership and Security Services Designer Services Controls Interop Engine Controls Windows Forms Application Services People Group Collaboration People and Groups Collaboration History Real-Time Activities Signaling Federation System Services Transactions Storage Protocols Network Services Kernel Mode Base Class Libraries Memory Manager Hosting Layer Code Execution Loader Security Serialization Lightweight Transactions Transaction Coordinator Kernel Transaction Manager Logging Service Kernel Hardware Abstraction Layer Process Manager Security Reference Monitor LPC Facility Memory Manager Power Manager Config Manager Plug and Play Transacted NTFS Cache Manager Universal Data Format Filter Engine TCP, UDP IPV4, IPV6 IPSEC QOS HTTP Listener Internet Connection Firewall Demand Activation and Protocol Health PNRP Native WiFi SIP TCP Listener UDP Listener IPC Listener Network Class Library GDI/GDI+ Window Manager Global Audio Engine Direct 3D Graphics Graphics drivers DDI Input Manager Audio Drivers DirectX Graphics Mini port Redirectors SCSI/FC 802.3 802.11 .. Device Drivers Management Services (Event Logs, Tracing, Probes, Auto Update, Admin) IO Manager Application Deployment Engine (Click-Once) Identity & Security System FAT 16/32 Filter Manager Distributed File System Virtual Shadow Copy Service File Replication Service Virtual Disk Service Models Service Object T/SQL XML Document UI Media CLR Presentation Data Communication Base Operating System Services Avalon WinFS Indigo
    9. 9. WinFS Data Model <ul><li>Items </li></ul><ul><ul><li>The new atomic unit of data </li></ul></ul><ul><ul><ul><li>Items have subsumed Files </li></ul></ul></ul><ul><ul><ul><li>Copy, put in Folders, etc. </li></ul></ul></ul><ul><ul><li>A group of simple and complex types that represent data </li></ul></ul><ul><ul><ul><li>Defined in a schema, arranged in types </li></ul></ul></ul><ul><ul><li>Structured or semi-structured </li></ul></ul><ul><ul><li>Persisted </li></ul></ul><ul><li>Relationships </li></ul><ul><ul><li>Explicitly relate Items together </li></ul></ul><ul><ul><ul><li>E.g.; Author binds Document to Contact </li></ul></ul></ul><ul><ul><li>Schema can model complex items </li></ul></ul><ul><ul><li>Containment, reference, embedding, categories, etc. </li></ul></ul><ul><li>Extensions </li></ul><ul><ul><li>Provide ability to add new data to existing Item types </li></ul></ul>Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects Framework Models
    10. 10. Data Model Goals <ul><li>Mechanism to schematically model complex items </li></ul><ul><ul><li>Documents, pictures, people, video, sound, etc. </li></ul></ul><ul><ul><li>Provide mechanism to implement complex item behavior </li></ul></ul><ul><ul><li>Embedding links to model compound items </li></ul></ul><ul><ul><ul><li>OLE Document Files </li></ul></ul></ul><ul><ul><ul><li>Mail messages and attachments </li></ul></ul></ul><ul><li>Provide organizational facilities for items </li></ul><ul><ul><li>Relationships as first class entities to relate items </li></ul></ul><ul><ul><li>Queries as way to retrieve and classify items </li></ul></ul><ul><ul><li>Folders as a mechanism for explicitly organize items </li></ul></ul>
    11. 11. WinFS Schemas <ul><li>Windows Everyday Information </li></ul><ul><ul><li>Documents, Messages, Annotations, Notes </li></ul></ul><ul><ul><li>Media, Audio, Video, Images </li></ul></ul><ul><ul><li>Events, Appointments, Locations, UserTask </li></ul></ul><ul><li>Windows System </li></ul><ul><ul><li>SystemTasks, Config, Programs </li></ul></ul><ul><ul><li>Explorer, Help, Security </li></ul></ul><ul><li>New Schemas </li></ul><ul><ul><li>Developers can define own data shape comprised of </li></ul></ul><ul><ul><ul><li>Scalars </li></ul></ul></ul><ul><ul><ul><li>Complex Types </li></ul></ul></ul><ul><ul><ul><li>XML </li></ul></ul></ul><ul><ul><ul><li>Binary/Filestream </li></ul></ul></ul>Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects Framework Models
    12. 12. WinFS APIs <ul><li>Objects </li></ul><ul><ul><li>VB, C#, etc. strongly typed classes </li></ul></ul><ul><ul><li>The way to program to WinFS </li></ul></ul><ul><ul><li>Lots of WinFS helper functions </li></ul></ul><ul><ul><li>System.Search </li></ul></ul><ul><li>T/SQL </li></ul><ul><ul><li>ADO.NET </li></ul></ul><ul><ul><li>Standard relational language for complex queries </li></ul></ul><ul><ul><li>Enables view integration with other data sources </li></ul></ul><ul><ul><li>Read only </li></ul></ul><ul><li>XML </li></ul><ul><ul><li>WinFS Items can be serialized into XML </li></ul></ul><ul><ul><li>Enables data interop </li></ul></ul>Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects Framework Models
    13. 13. API Examples <ul><li>VB Managed API </li></ul><ul><ul><li>Dim personItem As Person </li></ul></ul><ul><ul><li>For Each personItem In Person.FindAll(context, “PersonalNames.Surname=’Smith’) </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><ul><li>Next </li></ul></ul><ul><li>T-SQL </li></ul><ul><ul><li>select p._Item from [System.Storage.Contacts.Store].[Person] p </li></ul></ul><ul><ul><li>where exists (select * from unnest (p.PersonalNames) n </li></ul></ul><ul><ul><li>where n.Surname=‘Smith') </li></ul></ul>
    14. 14. WinFS Services Filesystem <ul><li>“ File-backed” Items </li></ul><ul><ul><li>Items with traditional filestream parts within </li></ul></ul><ul><ul><li>Uses real NTFS streams and file handles </li></ul></ul><ul><ul><li>Any file can be imported into WinFS as a File-back Item </li></ul></ul><ul><li>WinFS is backwards compatible with Win32 </li></ul>Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects Framework Models
    15. 15. Longhorn And Filesystems <ul><li>Files can live solely in an NTFS volume </li></ul><ul><ul><li>Available for boot </li></ul></ul><ul><ul><ul><li>E.g., C:Windows is in NTFS </li></ul></ul></ul><ul><ul><li>Volume can be mounted on down level machine </li></ul></ul><ul><ul><ul><li>E.g., Firewire drive on both XP and Longhorn </li></ul></ul></ul><ul><li>Items can live solely in WinFS </li></ul><ul><ul><li>File-backed Items </li></ul></ul><ul><ul><ul><li>Accessible through standard Win32 APIs </li></ul></ul></ul><ul><ul><ul><li>Metadata Handlers get data in and out of file streams </li></ul></ul></ul><ul><ul><li>User data moved into WinFS </li></ul></ul><ul><ul><ul><li>I.e., C:Documents and Settings </li></ul></ul></ul><ul><ul><li>Has Import/Export utilities </li></ul></ul>
    16. 16. WinFS Services Operations <ul><li>Security Config </li></ul><ul><li>Manageability </li></ul><ul><li>Backup/Restore </li></ul><ul><li>App install </li></ul><ul><ul><li>Schemas, classes, replication adaptors, preference rules, etc. </li></ul></ul><ul><ul><li>Versioning </li></ul></ul><ul><li>Snapshot/TimeWarp </li></ul><ul><li>Anti Virus </li></ul><ul><li>Quota </li></ul><ul><li>Admin Tools </li></ul><ul><li>Import/Export </li></ul>Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects Framework Models
    17. 17. WinFS Services Synchronization <ul><li>Synchronize one WinFS with another </li></ul><ul><ul><li>Keep My Contacts and My Files in sync across my home machines </li></ul></ul><ul><ul><li>Peer to Peer sharing </li></ul></ul><ul><li>Synchronize WinFS with other data sources </li></ul><ul><ul><li>Keep My Contacts in sync with online email contacts, enterprise CRM, etc. </li></ul></ul>Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects Framework Models
    18. 18. Synchronization Overview <ul><li>Approach </li></ul><ul><ul><li>Multi-master replication </li></ul></ul><ul><ul><ul><li>Replicas make changes independently </li></ul></ul></ul><ul><ul><li>Net-change synchronization </li></ul></ul><ul><ul><ul><li>Looking at cumulative changes, not logs </li></ul></ul></ul><ul><ul><li>A set of common services for all data sources and all schemas </li></ul></ul><ul><ul><ul><li>Change tracking, change enumeration, conflict handling, etc. </li></ul></ul></ul><ul><li>Extending </li></ul><ul><ul><li>Schema design </li></ul></ul><ul><ul><ul><li>Granularity of change units is declared in the WinFS schemas </li></ul></ul></ul><ul><ul><li>Custom conflict resolution handlers </li></ul></ul><ul><ul><ul><li>Extend the system conflict policies with code </li></ul></ul></ul><ul><ul><li>Synchronization Adaptors </li></ul></ul><ul><ul><ul><li>Outside datasources for one way or bidirectional synchronization </li></ul></ul></ul>
    19. 19. WinFS Services InfoAgent <ul><li>Users want to control how their PCs behave </li></ul><ul><ul><li>It’s called a personal computer after all </li></ul></ul><ul><ul><li>Every aspect of the system can be personalized </li></ul></ul><ul><li>InfoAgent enables rich, flexible customization </li></ul><ul><ul><li>“ When I receive a high priority email from a customer, show me a popup message if I’m at my desk, otherwise forward it to my cell phone” </li></ul></ul><ul><ul><li>“ When I download new photos from my camera, relates them to the events on my calendar” </li></ul></ul>Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects Framework Models
    20. 20. Notifications And InfoAgent <ul><li>‘ Active Data’ – Subscribe to WinFS changes </li></ul><ul><li>Item change subscriptions </li></ul><ul><li>Item Domain containment/query subscriptions </li></ul><ul><li>InfoAgent Integration </li></ul><ul><li>Inclusive set of events, contexts, and actions </li></ul><ul><li>Preferences stored as WinFS items </li></ul><ul><li>Unified management of notification rules </li></ul>Actions Preferences Events Contexts
    21. 21. WinFS Extensibility Points Core WinFS Items Relationships Extensions Filesystem Srvcs (Handlers, …) Operations Data Model NTFS Relational Engine Services People Documents … InfoAgent (Rules, …) Synchronization (WinFS, …) Schemas XML APIs T/SQL Objects 1 2 3 4 5 Extend and Relate Windows types Build your own Types Build Metadata handlers for custom file formats Build Synchronization adaptors and custom resolution handlers Build on InfoAgent 6 Integration with Longhorn Shell 1 2 3 4 5 6 Framework Models
    22. 22. WinFS What does this mean? <ul><li>The new way to think about data </li></ul><ul><ul><li>Being a Data Geek not required! </li></ul></ul><ul><li>Exposes data in a way that makes a user’s data more useful to them </li></ul><ul><li>New managed APIs for new entities in Windows, and for new data </li></ul><ul><li>An storage subsystem layer enabling you to do more and do it quickly and easily </li></ul><ul><li>A significant leap forward that’s 100% backwards compatible </li></ul>

    ×