wakanda: nosql & ssjs for model-driven web applications - sourcedevcon 2012
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
Alexandre MorgautWeb Architect & Community Manager @amorgaut
Wakanda
NoSQL & SSJS for
Model-driven Web Applications
wakanda.org
@wakandasoft
JSeverywhere.org
@JSeverywhere
Business Web Applications
Business Web Applications
Business Web Applications
IIS
SQL Server
C#C++
Silverlight
Visual
.NET
Business Web Applications
Tomcat
JSP
JUnit
Java Hibernate
Spring GWTOracle
Acegi
IIS
SQL Server
C#C++
Silverlight
Visual
.NET
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
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
many referenced nosql databases on http://nosql-database.org/
Alternative solutions to SQL
Schemaless
Non Relational?Scalability
Model-drivenSemantic
CAP TheoremConsistencyAvailability Partition tolerance
Graph What for?
Why?
How?
BigData
Cloud
NoSQL Families
Document Store
Key-value store
Graph
Object store
Column store
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?
Server-Side JavaScript
SpiderMonkey
V8
JavaScriptCore
Rhino
Trident / Chakra
Cross-platform development and deployment system for model-driven
web-based applications
Cross-platform development and deployment system for model-driven
web-based applications
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
Cross-platform development and deployment system for model-driven
web-based applications
Cross-platform development and deployment system for model-driven
web-based applications
JavaScriptOne Language
JavaScriptCoremulti-threaded, preemptive, thread-safe, 64bits, strict mode
fast, well structured & documented, maintained by Apple
Wakanda
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Studio
Wakanda Application Framework
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
Administration
REST/JSON
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Studio
Wakanda Application Framework
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
Administration
REST/JSON
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Studio
Wakanda Application Framework
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
Administration
REST/JSON
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Studio
Wakanda Application Framework
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
Administration
REST/JSON
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Studio
Wakanda Application Framework
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
Administration
REST/JSON
Extensions
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Studio
Wakanda Application Framework
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
Administration
REST/JSON
Extensions
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
Wakanda Server(aka WakandaDB)
Wakanda Server(aka WakandaDB)
• Data/HTTP Server
• JavaScript Environment
• NoSQL Object Datastore
Model & Data Classes
Relations
Recursivity
Alias attributes
N/N Relation
john = ds.Person.find(“firstName eq John”);
conferences = john.allConferences;
JohnJSConferences = conferences.filter(“title eq ‘@JavaScript@’”);
JSAttendeesJohnMet = JSConferences.allPeople;
Extend a Datastore Class
Calculated attributes
Datastore Class Methods
Security
Scope Validation
Users & Groups
Open Environment
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
Sencha
doc.wakanda.org/REST/REST.100-808498.html
https://github.com/revolunet/sencha-wakanda/
REST HTTP API
proxy by
Sencha ArchitectSencha Touch
ExtJS
Webkit debugger Protocol 1.0
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
“Client & Server JavaScript APIs”
Proposed W3C Community Group
http://w3.org/community/
W3C Community & Business Groups
Workers ?
Come with us at San Jose, CA on October 26th:
@JSeverywhere
http://JSeverywhere.org
Call to speaker just started!!!