My first computer: The Apple ][ It wanted to be programmed.

Slides:



Advertisements
Similar presentations
Chapter 10: Designing Databases
Advertisements

TouchDevelop: Productive Scripting on and for Mobile Devices and Web Services Thomas Ball Sebastian Burckhardt, Peli de Halleux, Michał Moskal, Nikolai.
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
Michael Pizzo Software Architect Data Programmability Microsoft Corporation.
Introduction to Databases
Active Directory: Final Solution to Enterprise System Integration
ExtJS 4.0 JavaScript MVC Framework. Who ExtJS is provided by Sencha ( o Sencha Touch o GWT o CSS Animator o IO (Cloud Data Management)
Physical Database Monitoring and Tuning the Operational System.
G Robert Grimm New York University Bayou: A Weakly Connected Replicated Storage System.
Windows Azure for scalable compute and storage SQL Azure for relational storage for the cloud AppFabric infrastructure to connect the cloud.
Module 14: Scalability and High Availability. Overview Key high availability features available in Oracle and SQL Server Key scalability features available.
Discover, Master, InfluenceSlide 1 SQL Server Compact Edition and the Entity Framework Rob Sanders Readify.
Introduction To Databases IDIA 618 Fall 2014 Bridget M. Blodgett.
Object Oriented Databases by Adam Stevenson. Object Databases Became commercially popular in mid 1990’s Became commercially popular in mid 1990’s You.
Tips for working with disconnected web mapping apps Andy Gup, Javier Abadia.
Database Design Table design Index design Query design Transaction design Capacity Size limits Partitioning (shard) Latency Redundancy Replica overhead.
Databases From A to Boyce Codd. What is a database? It depends on your point of view. For Manovich, a database is a means of structuring information in.
RTCWEB Signaling Matthew Kaufman. Scope Web Server Browser.
Javascript: More features B. Ramamurthy 7/4/2014B. Ramamurthy, CSE651C1.
1 Introduction to Database Systems. 2 Database and Database System / A database is a shared collection of logically related data designed to meet the.
DAT602 Database Application Development Lecture 12 C/S Model Database Application.
M1G Introduction to Database Development 6. Building Applications.
Physical Database Design Chapter 6. Physical Design and implementation 1.Translate global logical data model for target DBMS  1.1Design base relations.
Databases From A to Boyce Codd. What is a database? It depends on your point of view. For Manovich, a database is a means of structuring information in.
CIS 451: ASP.NET Objects Dr. Ralph D. Westfall January, 2009.
Unified solution Easy to configure, manage, and monitor Reuse existing investments SAN/DAS environments Allow using HA hardware resources Fast seamless.
Massively Distributed Database Systems - Distributed DBS Spring 2014 Ki-Joune Li Pusan National University.
- Internal and Confidential - Mobile Solutions for the Enterprise OneBridge Mobile Agent Training.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Developer TECH REFRESH 15 Junho 2015 #pttechrefres h Understand your end-users and your app with Application Insights.
The Replica Location Service The Globus Project™ And The DataGrid Project Copyright (c) 2002 University of Chicago and The University of Southern California.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
JAVASCRIPT WITH A VIEW Jordan Knight Solution Architect Xamling SESSION CODE: WEB305 (c) 2011 Microsoft. All rights reserved.
EnsemBlue: Integrating Distributed Storage and Consumer Electronics Daniel Peek and Jason Flinn University of Michigan.
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
Microsoft FrontPage 2003 Illustrated Complete Integrating a Database with a Web Site.
Louisa Lambregts, Louisa Lambregts
 AJAX – Asynchronous JavaScript and XML  Ajax is used to develop fast dynamic web applications  Allows web pages to be updated asynchronously by transferring.
Presentation.
Cevgroup.org C utting E dge V isionaries. cevgroup.org TODAY’s TALK 1) Internet Of Things (IoT) 2) Wi-Fi Controlled Robots 3) Augmented Reality.
Database technology Introduction ER Modeling Database objects (intro) SQL.
DATABASE REPLICATION DISTRIBUTED DATABASE. O VERVIEW Replication : process of copying and maintaining database object, in multiple database that make.
The business logic engine for Microsoft IIS Speaker T.M. Arnett.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Microsoft Partner Conference Integrated Innovation Don Kerr Partner Technology Specialist.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Entity Framework Database Connection with ASP Notes from started/getting-started-with-ef-using-mvc/creating-an-
Exploring Networked Data and Data Stores Lesson 3.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Basics Components of Web Design & Development Basics, Components, Design and Development.
1 Section 1 - Introduction to SQL u SQL is an abbreviation for Structured Query Language. u It is generally pronounced “Sequel” u SQL is a unified language.
111 State Management Beginning ASP.NET in C# and VB Chapter 4 Pages
Phonegap Bridge – Storage CIS 136 Building Mobile Apps 1.
Mobile Application Solution
A little more App Inventor and Mind the GAP!
GO! with Microsoft Office 2016
GO! with Microsoft Access 2016
Mobile Application Solution
Databases A brief introduction….
Arrested by the CAP Handling Data in Distributed Systems
Relational Database Model
INFO/CSE 100, Spring 2006 Fluency in Information Technology
Technical Capabilities
Replica Placement Model: We consider objects (and don’t worry whether they contain just data or code, or both) Distinguish different processes: A process.
Storing and Processing Sensor Networks Data in Public Clouds
Understanding Core Database Concepts
Running C# in the browser
Presentation transcript:

My first computer: The Apple ][ It wanted to be programmed

Bigger is better. Multiplatform means more. Make it a webapp!

What’s a web app?.j s What do we have?

It’s immediate (just refresh the page) It’s popular (just bing around for answers) It’s fast (CSS animations, rendering speed) It’s simple (e.g., list viewer is just a ) It’s resilient (doesn’t crash on errors) HTML5 & CSS3 instead of XAML

It’s immediate (just refresh the page) It’s popular (just bing around for answers) It’s reasonably fast (with modern JITs) It’s not simple (e.g., 20 ways of doing OO) It’s not resilient (a typo makes it crash) Now to that JavaScript thing....js

Standard Model: Shared Data on Server Database Programmer communicates with server Each query is a server roundtrip Programmer exposed to Slow connection (unpleasant experience) Connection errors, disconnected operation (app stops working) Atomicity errors (cannot update multiple entities simultaneously) App Code Data API

Revisions Model: Replica on Device Database Local Replica Sync API App Code Data API Separation of Data API from Sync API. Much simpler to write apps that provide good experience Predictable latency (access to local storage) Works when disconnected Support for atomic updates (a kind of transaction)

Target: Non-enterprise Apps Need simple solution for average app programmers Most apps can benefit from structured offline storage User settings, navigation context, collaborative apps, social features in apps Best target: small DBs that fit on device For example, index of your MP3 collection Not necessarily all actual MP3 files

Data Model: Cloud Types Primitive cloud types Cloud Integers (get, set, add) Cloud Strings (get, set, set-if-empty) Structured cloud types Cloud Tables (cf. relational tables with implicit primary key) Cloud Arrays (cf. key-value stores) Cloud Sets (cf. observed-remove sets by Shapiro et al.)

fork copies state join merges state Cloud types define automatic conflict resolution at joins Diagrams are flexible, permit Fully asynchronous communication disconnected operation fork join Global State is a Revision Diagram

Example: Birdwatching Let’s build an app for a birdwatchers Let’s first try something simple: count the number of bald eagles we have all seen. var eagles : cloud integer;

Don’t use Set() to increment code on device 1code on device 2 eagles.Set(1) storage eagles.Set(1) eagles.Get() -> 1 var eagles : cloud integer; Set() operations do not commute. Last writer wins.

code on device 1code on device 2 eagles.Add(1) storage eagles.Add(1) eagles.Get() -> 2 var eagles : cloud integer; Use Add() to increment

Next step: different birds Want to count not just eagles, but all kinds of birds Can use a cloud array for this (similar to key-value store, with values having cloud types) var birds: cloud array [ name: string ] { count : cloud integer }

Direct access to entries code on device 1code on device 2 birds[“jay”].count.Add(5) storage birds[“jay”].count.Add(1) birds[“gull”].count.Add(2) birds[“jay”].count.Get() -> 6 var birds: cloud array [name: string] {count : cloud integer} No initialization necessary Conceptually, all (infinite) entries already exist -> avoid create-if-not-exist antipattern

What we have today Research Detailed mechanics of how track updates and consistently applying them to replicas, for a bunch of “cloud types”: integers, strings, tables, key-value stores TouchDevelop implementation all of the cloud types directly integrated into language & IDE windows phone client azure service based on table/blob storage