wakanda: nosql for model-driven web applications - nosql matters 2012

57
Alexandre Morgaut Web Architect & Community Manager @amorgaut Wakanda NoSQL for Model-driven Web Applications

Upload: alexandre-morgaut

Post on 12-May-2015

5.220 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Alexandre MorgautWeb Architect & Community Manager @amorgaut

Wakanda

NoSQL for Model-driven

Web Applications

Page 2: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

wakanda.org

@wakandasoft

JSeverywhere.org

@JSeverywhere

Page 3: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Cross-platform development and deployment system for model-driven

web-based applications

Page 4: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Business Web Applications

Page 5: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Business Web Applications

Page 6: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Business Web Applications

IIS

SQL Server

C#C++

Silverlight

Visual

.NET

Page 7: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Business Web Applications

Tomcat

JSP

JUnit

Java Hibernate

Spring GWTOracle

Acegi

IIS

SQL Server

C#C++

Silverlight

Visual

.NET

Page 8: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Business Web Applications

PHP

Apache

Eclipse

Symfony

Varnish

MySQL

Zend

Aptana

Tomcat

JSP

JUnit

Java Hibernate

Spring GWTOracle

Acegi

IIS

SQL Server

C#C++

Silverlight

Visual

.NET

Page 9: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

ExtJS

HTTP

JSO

REST

ATOMSSL

Flex

Business Web Applications

PHP

Apache

Eclipse

Symfony

Varnish

MySQL

Zend

Aptana

Tomcat

JSP

JUnit

Java Hibernate

Spring GWTOracle

Acegi

IIS

SQL Server

C#C++

Silverlight

Visual

.NET

Page 10: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 11: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 12: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Cross-platform development and deployment system for model-driven

web-based applications

Page 13: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Cross-platform development and deployment system for model-driven

web-based applications

Model Based EngineeringModel Driven EngineeringModel Driven DevelopmentModel Driven Architecture

See also: Domain Driven Design

Page 14: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

many referenced nosql databases on http://nosql-database.org/

Page 15: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Alternative solutions to SQL

Schemaless

Non Relational?Scalability

Model-drivenSemantic

CAP TheoremConsistencyAvailability Partition tolerance

Graph

What for?

Why?

How?

BigData

Cloudeventual consistency

Page 16: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

NoSQL Families

Document Store

Key-value store

Graph

Object store

Column store

Page 17: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

NoSQL Families

Document Store

Key-value store

Graph

Object store

Column store

Page 18: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

NoSQL Families

Document Store

Key-value store

Graph

Object store

Column store

Page 19: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Cross-platform development and deployment system for model-driven

web-based applications

Page 20: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Cross-platform development and deployment system for model-driven

web-based applications

JavaScriptOne Language

Page 21: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 22: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

JavaScript Engines

SpiderMonkey3 JIT Compilers: TraceMonkey, JägerMonkey, IonMonkey

V8JIT Compiler : CrankShaft

webkit JavaScriptCore: JSCSquirrelFish Extreme: SFX aka Nitro

(JIT Compiler inside)

Trident: MSHTMLChakra

-> Classic JScript, Managed JScript, & JScript.NET

TamarinJIT Compiler : NanoJIT

-> ActionScript / “ECMAScript 4”

CarakanPreviously: Linear A, Linear B, Futhark

RhinoInterpreted or Compiled execution

CC++

C++Java

?

?C++

Nashorn?

Page 23: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Server-Side JavaScript

SpiderMonkey

V8

JavaScriptCore

Rhino

Trident / Chakra

Page 24: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Webkit JavaScriptCore

multi-threaded, preemptive, thread-safe, 64bits, strict mode

fast, well structured & documented, maintained by Apple

Page 25: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

wakanda

Page 26: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Wakanda

Wakanda Server(aka WakandaDB)

Page 27: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Application Framework

Wakanda Studio

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

AdministrationExtensions

REST/JSON

Page 28: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Application Framework

Wakanda Studio

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

AdministrationExtensions

REST/JSON

Page 29: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Application Framework

Wakanda Studio

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

AdministrationExtensions

REST/JSON

Page 30: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Application Framework

Wakanda Studio

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

AdministrationExtensions

REST/JSON

Page 31: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

WakandaDB

Wakanda Server(aka WakandaDB)

Your Development ToolsVisual Studio, XCode, NetBeans, Eclipse,

Cloud9, Orion, Sencha Architect+

Chrome Web Inspector

Your Server FrameworkJava, .NET, node.js PHP, Python, Ruby...

REST/JSON

Webkit debugger protocol 1.0

Your Web app Client FrameworkExtJS, Sencha Touch, Kendo UI, Backbone.js...

Your native app Client FrameworkiOS, Androïd, .NET...

Page 32: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Model & Data Classes

Page 33: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Relationship

Recursivity

Alias attributes

Page 34: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

many to many

Page 35: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 36: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 37: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 38: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 39: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 40: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 41: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 42: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 43: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Page 44: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

john = ds.Person.find(“firstName eq John”);

conferences = john.allConferences;

JohnJSConferences = conferences.filter(“title eq ‘@JavaScript@’”);

JSAttendeesJohnMet = JSConferences.allPeople;

Page 45: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Extend a Datastore Class

Page 46: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Calculated attributes

Page 47: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Datastore Class Methods

Page 48: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Security

Page 49: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Scope Validation

Page 50: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Users & Groups

Page 51: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Open Environment

Page 52: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Open Source

Wakanda Framework already on Github

Wakanda Server coming soon

Wakanda Studio later (still some proprietary library dependencies to remove)

Downloads accessible from:

the production channel (current release)

the stabilization channel (next release)

the development channel (nightly builds)

Page 54: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Webkit debugger Protocol 1.0

Page 55: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

CommonJS Modules 1.1.1

- test, assert, worker, console-partially: system

W3C / HTML5

- Storage, Worker, Blob, Timers, XMLHttpRequest, FileSystem- Upcoming: Web Socket, File

Node.js compatibility

- Buffer, Process, Events, Net, TLS, OS

Page 56: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

“Client & Server JavaScript APIs”

W3C Community Group

http://www.w3.org/community/jseverywhere

W3C Community & Business Groups

Workers ?

Page 57: Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012

Come with us at San Jose, CA on October 26th:

@JSeverywhere

http://JSeverywhere.org

Call to speaker ends on June, 30th!!!