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

Slides:



Advertisements
Similar presentations
Behzad Samin 0 An End-to-End Overview of a RESTful Web Service.
Advertisements

Attie Naude 14 May 2013 Windows Azure Mobile Services.
WEB & MOBILE CLOUD APP With Bootstrap, Backbone, Pusher, AWS, Slim Gabriele Mittica –
Distributed components
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Fundamentals, Design, and Implementation, 9/e Chapter 14 JDBC, Java Server Pages, and MySQL.
IS 360 Course Introduction. Slide 2 What you will Learn (1) The role of Web servers and clients How to create HTML, XHTML, and HTML 5 pages suitable for.
Multiple Tiers in Action
AN INTRODUCTION TO CLOUD COMPUTING Web, as a Platform…
Presented by Sujit Tilak. Evolution of Client/Server Architecture Clients & Server on different computer systems Local Area Network for Server and Client.
Engineering the Cloud Andrew McCombs March 10th, 2011.
Part or all of this lesson was adapted from the University of Washington’s “Web Design & Development I” Course materials.
Google App Engine and Java Application: Clustering Internet search results for a person Aleksandar Kartelj Faculty of Mathematics,
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
Value in the Clouds. Centralized (utility), distributed, cloud Now cloud 00’s web 90’s client server 70’s & 80’s mini computer 60’s mainframe Now cloud.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
BIT:Mobile platform Ссылка на документацию.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
© 2012 Autodesk Implementing Cloud-Based Productivity Solutions with the AutoCAD® ObjectARX® API Ravi Krishnaswamy Senior Software Architect.
Designing Web Applications Thaddeus Diamond CPSC 112.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Concepts Telerik Software Academy Telerik School Academy.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
Web application architecture1 Based on Jim Conallen: Web Applications with UML.
API Crash Course CWU Startup Club. OUTLINE What is an API? Why are API’s useful? What is HTTP? JSON? XML? What is a RESTful API? How do we consume an.
1 Alternative view on Internet Computing Web 1.0 –Web 1.0 is first generation, Web Information based. Driven by Information provider. Web 2.0 Ajax enabled.
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
Paperless Timesheet Management Project Anant Pednekar.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
Lecture IV: REST Web Service with Google App Engine CS 4593 Cloud-Oriented Big Data and Software Engineering.
Web Technologies Lecture 13 Introduction to cloud computing.
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
Introduction to the World Wide Web & Internet CIS 101.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Fault – Tolerant Distributed Multimedia Streaming Web Application By Nirvan Sagar – Srishti Ganjoo – Syed Shahbaaz Safir
ASP – Web Programming Class  Ravi Anand. ASP – Active Server Pages What is ASP? - Microsoft Technology - Can Run using IIS/PWS/Others - Helps us create.
Agenda  What is Cloud Computing?  Milestone of Cloud Computing  Common Attributes of Cloud Computing  Cloud Service Layers  Cloud Implementation.
Post-relational databases What's wrong with web development? Dobrica Pavlinušić FOI, Razmjena Vještina, Varaždin,
The Holmes Platform and Applications
Platform as a Service (PaaS)
Unit 3 Virtualization.
11. Looking Ahead.
Platform as a Service (PaaS)
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Platform as a Service (PaaS)
5/21/2018 9:40 PM BRK3021 Learn about modern infrastructure roles in RDS: Next generation Windows desktop & app virtualization Clark Nicholson - Principal.
z/Ware 2.0 Technical Overview
Google App Engine Mandeep Singh (37926)
Cosc 5/4730 REST services.
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Web Technologies Basics
Post-relational databases What's wrong with web development?
IS 360 Course Introduction
Lecture 1: Multi-tier Architecture Overview
Google App Engine Ying Zou 01/24/2016.
Secure Web Programming
Building Serverless Enterprise Applications
Remedy Integration Strategy Leverage the power of the industry’s leading service management solution via open APIs February 2018.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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 phone main/phonebook/john/phone A flexible data layer

XRepository XModel XObject XFieldXValue main phonebook john phone 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

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

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

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

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