Presentation is loading. Please wait.

Presentation is loading. Please wait.

Vision and Goals A flexible data layer for applications in Java, GWT and/or AppEngine. Persistence | Access Rights | Synchronisation over network | REST.

Similar presentations


Presentation on theme: "Vision and Goals A flexible data layer for applications in Java, GWT and/or AppEngine. Persistence | Access Rights | Synchronisation over network | REST."— Presentation transcript:

1 Vision and Goals A flexible data layer for applications in Java, GWT and/or AppEngine. Persistence | Access Rights | Synchronisation over network | REST | Versioning | Transactions | Event Listeners ydra.org X

2 Buzzwords Cloud REST Social schema less NoSQL XML RDF json Access Rights Management Google AppEngine

3 HTTP/network Web apps today Rich Client Web Server Database Data Access Object Business Object Data Transfer Object Browser-side Business Object

4 Web apps with Xydra: No data model conversions Rich Client Web Server Database Xydra model HTTP/network

5 Easy to use API Same data model runs in server (Java or AppEngine) and client (Java or GWT/Javascript)  No more data model conversions Domain-free model (NoSQL) Web 2.0 ready: REST web-API Ready for social apps: – Access rights management – Versioning Scalable (Cloud-size!) Ready for rich clients: – Sophisticated synchronisation of state Xydra Goals

6 Typical usage I: Server - Client Java Client I Xydra Used as an embedded NoSQL data base Xydra solves data serialisation, synchronisation, versioning, access rights, transactions, change event listener … AJAX or Java method calls Java Client II May this user see or write this data? What did this data look like in version 13? What happened on the server since I last sync‘ed? Tell me if this value changes Please execute these 5 changes in one atomic transaction HTTP/network

7 Google AppEngine Typical usage II: Cloud – Web server Web Server E.g. rendering data with templates Web Server E.g. rendering data with templates Xydra Used as an embedded NoSQL data base Xydra solves cloud persistence, synchronisation, versioning, access rights, transactions… Web Page Simple static web page Web Page Simple static web page HTML, CSS HTTP/network

8 Typical usage I: Webserver – Rich Client with AJAX Rich Client Written in GWT, compiled to JavaScript Rich Client Written in GWT, compiled to JavaScript Web Server Xydra Used as an embedded NoSQL data base AJAX: XML or JSON over HTTP Another users Rich Client Maybe working on the same data Another users Rich Client Maybe working on the same data Xydra solves data serialisation, synchronisation, versioning, access rights, … HTTP/network

9 Trends in Application Hosting Infrastructure: Less freedom  Less problems to solve Dedicated server in your basement Dedicated server in hosting center Shared server in hosting center Virtual server in hosting center Hosted Java Virtual Machine Hosted servlet container (Tomcat) PaaS: Google AppEngine Xydra (Also runs on non-cloud Java) Cloud of virtual servers: Amazon EC2, Microsoft Azure Cloud of virtual servers: Amazon EC2, Microsoft Azure Scale Cluster in your basement

10 XRepository XModel XObject XFieldXValue XFieldXValue XFieldXValue … XObject XFieldXValue XModel XObject XFieldXValue … … XID XBooleanListValue, XBooleanValue, XByteListValue, XCollectionValue, XDoubleListValue, XDoubleValue, XID, XIDListValue, XidOrVariable, XIDSetValue, XIDSortedSetValue, XIntegerListValue, XIntegerValue, XListValue, XLongListValue, XLongValue, XNumberListValue, XNumberValue, XSetValue, XStringListValue, XStringSetValue, XStringValue, XAddress main phonebook john phone123-456 main/phonebook/john/phone A flexible data layer

11 XRepository XModel XObject XFieldXValue main phonebook john phone123-456 Xydra and the Semantic Web Named Graph SubjectPropertyObject Semantic WebXydra URIXaddress (external references) / XID (internal references) BlankNode-- LanguageTaggedLiteral-- DatatypedLiteralXydra values (BooleanValue, LongValue, StringValue,..) PlainLiteralStringValue Xydra is well-suited to store and manage RDF data

12 XRepository XModel XObject XFieldXValue main john phone123-456 Xydra and XML 123-456 phonebook XID naming rules ensure strings can be used as valid XML element names Values are serialised in a self- describing and extensible form

13 XModel XChangeLog Syncable 2 Store 1 Syncable 1 XModel XChangeLog XModel XChangeLog 4 local events not yet committed 3 events in sync from store 2 local events not yet committed 4 events in sync from store 5 events in history Store has no knowledge who synced what Store 2 Advanced Synchronisation: One client with several persistent stores Synchronisation

14 Sync OK What can happen with an application command issues to the Async Store API? Error Handling SafeCommandFailed e.g. for a SafeCommand the revision numbers dont match expectations CommandFailed e.g. operation on deleted entity Forbidden i.e. actor has no permission to do this Timeout No response. Network down? Server gone? IllegalArgument The request from the client is ill-formed RuntimeError e.g. the database just crashed, AppEngine ran out of quota Access Network Client Error source Server

15 Xydra Async Store API Command/Event/Snapshot Group/Member/Access GaeStore Persistence on GAE data store  Parallel transaction management via ChangeEntites  Snapshots via memcache/data store  Custom access persistence on data store HTML5- Store (planned) Persistence via HTML5 or Google Gears or SQLite Memory- Store Persistence only in memory CsvFile- Store (planned) Persistence in CSV file(s) Implementations for different Platforms AppEngine (GAE) Browser/JavaScript (GWT) Desktop Java


Download ppt "Vision and Goals A flexible data layer for applications in Java, GWT and/or AppEngine. Persistence | Access Rights | Synchronisation over network | REST."

Similar presentations


Ads by Google