1 / 25

Modeling RESTful Data Services: Present and Future

Modeling RESTful Data Services: Present and Future. Pablo Castro Software Architect Microsoft Corporation. Agenda. On data services for the web Modeling data services Structure Security Behavior What’s next… Short- and long-term plans. Scenarios for Data Services.

rubaina
Download Presentation

Modeling RESTful Data Services: Present and Future

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modeling RESTful Data Services: Present and Future Pablo Castro Software Architect Microsoft Corporation

  2. Agenda • On data services for the web • Modeling data services • Structure • Security • Behavior • What’s next… • Short- and long-term plans

  3. Scenarios for Data Services

  4. REST-ish Service Interfaces

  5. What does the service look like? Service structure

  6. Service Structure • Flexible interface != database interface • Model as appropriate for a service interface • Application-level concepts • Latency, payload size considerations • Consider optimistic concurrency requirements • Server-side schema versus service schema • Access rights control service level schema • Hidden, read-only, non-queryable, POST-only sets • Maintain full capability for server-side code

  7. Who can access the service? Authentication

  8. Authentication • Consider your target scenario • AJAX/Silverlight applications • “Forms” authentication works well • Login in HTML forms or within Silverlight • Wide-open RESTful service interface • Standard schemes much more important • Basic + SSL often does it • Digest, certificates provide more robust options • “Integrated” is great for corporate networks

  9. Who can do what with the service? Access Control

  10. Access Control • Use query and change interceptors • Policies that apply regardless of access path • Query path composition-based, highly efficient • Role-based access control • For actions • Row-level security • For entities

  11. Behaviors in a resource-centric interface? State-based behavior

  12. Behavior on State Transitions • Custom methods break the uniform interface • Still possible if needed: “Service operations” • Consider WCF/SOAP service if it’s all methods • Behavior attached to state transitions • ProcessSalesOrder()  Order.Status=“Ready” • Change interceptors to detect transitions • Perform secondary side-effects • Kick-off workflows • …

  13. What's next… Short and long term plans

  14. announcing ADO.NET Data Services v1.5, CTP 1

  15. ADO.NET Data Services v1.5 • Focused on service capabilities • Row count – everybody asked for this :) • Feed customization • BLOBs with streaming interface for media • Data-binding for the .NET and Silverlight • Server-driven paging • “Fancy” providers with full flexibility • Installs without overwriting 1.0 runtime • CTP1 available now, RTM around this fall

  16. ASP.NET AJAX and Data Services • New version of ASP.NET AJAX coming • Preview 4 available in codeplexnow • Built-in support for Data Services • Great templates and data binding features • It all works together 

  17. SQL Data Services • SDS  full relational store in the cloud • Use existing applications and know-how • Use existing database APIs • Host in Azure or access over the Internet Use Data Services for a REST interface over SDS Azure Client/ Browser SDS Web App Azure Client/ Server/ Browser SDS

  18. .NET RIA Services • Asks for Data Services programming model • Server: Better business logic framework • Client: Better UI and validation integration • Integrate with “Domain Service” classes • .NET RIA Services use Data Services for queries, updates and data exchange • Author Data Services using .NET RIA Services

  19. .NET RIA Services public class CatalogService : DataService<Catalog> { // initialization, interceptors, etc. } public class Catalog : LinqToEntitiesDomainService<BikesEntities> { public IQueryable<Product> GetProducts() { return Context.Products .Where(p => p.Status == "Active"); } public void UpdateProduct(Product current, Product original) { // ... } } Data Service exposes domain through RESTful interface Domain Service encapsulates business logic

  20. "Astoria Offline" • Sync-enabled service interfaces • End-to-end solution for building offline applications • Client and server libraries, Visual Studio integration, etc. • Standard disclaimer: early exploration, just thoughts for now :)

  21. Summary • You can build fully functional RESTful services with ADO.NET Data Services • Behaviors, access control, etc. can be modeled using a resource-centric interface • We are extending data services to provide more base functionality • Future focus on better business logic programming model and sync/offline

  22. Resources • Data Services Team Blog • http://blogs.msdn.com/astoriateam • ADO.NET Data Services page @ MSDN • http://msdn.microsoft.com/data • ADO.NET Data Services forums • http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataservices/threads/

  23. Please Complete an Evaluation FormYour feedback is important! • Evaluation forms can be found on each chair • Temp Staff at the back of the room have additional evaluation form copies

  24. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related