wakanda: nosql & ssjs for model-driven web applications - sourcedevcon 2012

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

Upload: alexandre-morgaut

Post on 12-May-2015

5.224 views

Category:

Technology


1 download

DESCRIPTION

Wakanda: NoSQL & SSJS for Model-driven Web Applications A session at SourceDevCon 2012 Developing a business web application is still a long process in 2012. Model-Driven Development is at the heart of: requirements design for the contractor and the product manager, productivity for the developer, consistency and security for the end-user evolution toward future applications The Wakanda platform – via its NoSQL object datastore WakandaDB – intends to let you create such model-driven applications. The presentation will explain and show how to create the application model, with its business and security rules, coded once, then made available everywhere without being bypassable. To add even more consistency, the same language is used everywhere: JavaScript. You'll enjoy the intuitive way to get data from the datastore via either the REST or the SSJS APIs. You’ll see how to use the defined Model directly in a native framework or the Sencha one.

TRANSCRIPT

Page 1: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Alexandre MorgautWeb Architect & Community Manager @amorgaut

Wakanda

NoSQL & SSJS for

Model-driven Web Applications

Page 2: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

wakanda.org

@wakandasoft

JSeverywhere.org

@JSeverywhere

Page 3: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Business Web Applications

Page 4: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Business Web Applications

Page 5: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Business Web Applications

IIS

SQL Server

C#C++

Silverlight

Visual

.NET

Page 6: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Business Web Applications

Tomcat

JSP

JUnit

Java Hibernate

Spring GWTOracle

Acegi

IIS

SQL Server

C#C++

Silverlight

Visual

.NET

Page 7: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 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 8: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

ExtJS

HTTP

JSON

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 9: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 10: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 11: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

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

Page 12: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Alternative solutions to SQL

Schemaless

Non Relational?Scalability

Model-drivenSemantic

CAP TheoremConsistencyAvailability Partition tolerance

Graph What for?

Why?

How?

BigData

Cloud

Page 13: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

NoSQL Families

Document Store

Key-value store

Graph

Object store

Column store

Page 14: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 15: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 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 16: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Server-Side JavaScript

SpiderMonkey

V8

JavaScriptCore

Rhino

Trident / Chakra

Page 17: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Cross-platform development and deployment system for model-driven

web-based applications

Page 18: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Cross-platform development and deployment system for model-driven

web-based applications

Page 19: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 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 20: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Cross-platform development and deployment system for model-driven

web-based applications

Page 21: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Cross-platform development and deployment system for model-driven

web-based applications

JavaScriptOne Language

Page 22: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

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

fast, well structured & documented, maintained by Apple

Page 23: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Page 24: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Studio

Wakanda Application Framework

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

Administration

REST/JSON

Page 25: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Studio

Wakanda Application Framework

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

Administration

REST/JSON

Page 26: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Studio

Wakanda Application Framework

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

Administration

REST/JSON

Page 27: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Studio

Wakanda Application Framework

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

Administration

REST/JSON

Page 28: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Studio

Wakanda Application Framework

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

Administration

REST/JSON

Extensions

Page 29: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Studio

Wakanda Application Framework

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

Administration

REST/JSON

Extensions

Page 30: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda

Wakanda Server(aka WakandaDB)

Your Development ToolsVisual Studio, XCode, NetBeans, Eclipse,

Cloud9, Orion, Sencha Architect

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

ExtJS, Sencha Touch, Kendo UI, Backbone.js...

REST/JSON

Webkit debugger protocol 1.0

Page 31: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda Server(aka WakandaDB)

Page 32: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Wakanda Server(aka WakandaDB)

• Data/HTTP Server

• JavaScript Environment

• NoSQL Object Datastore

Page 33: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Model & Data Classes

Page 34: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Relations

Page 35: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Recursivity

Page 36: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Alias attributes

Page 37: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

N/N Relation

Page 38: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 39: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 40: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 41: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 42: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 43: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 44: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 45: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 46: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Page 47: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

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

conferences = john.allConferences;

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

JSAttendeesJohnMet = JSConferences.allPeople;

Page 48: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Extend a Datastore Class

Page 49: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Calculated attributes

Page 50: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Datastore Class Methods

Page 51: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Security

Page 52: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Scope Validation

Page 53: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Users & Groups

Page 54: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Open Environment

Page 55: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Open Source

Wakanda Framework already on Github

Wakanda Server coming soon

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

Download accessible from:

the stabilization channel

the Nightly builds of the development channel

Page 57: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

Webkit debugger Protocol 1.0

Page 58: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 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 59: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

“Client & Server JavaScript APIs”

Proposed W3C Community Group

http://w3.org/community/

W3C Community & Business Groups

Workers ?

Page 60: Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012

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

@JSeverywhere

http://JSeverywhere.org

Call to speaker just started!!!