wakanda: nosql for model-driven web applications - nosql matters 2012
TRANSCRIPT
Alexandre MorgautWeb Architect & Community Manager @amorgaut
Wakanda
NoSQL for Model-driven
Web Applications
wakanda.org
@wakandasoft
JSeverywhere.org
@JSeverywhere
Cross-platform development and deployment system for model-driven
web-based applications
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
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
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
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
Cloudeventual consistency
NoSQL Families
Document Store
Key-value store
Graph
Object store
Column store
NoSQL Families
Document Store
Key-value store
Graph
Object store
Column store
NoSQL Families
Document Store
Key-value store
Graph
Object store
Column store
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
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
Webkit JavaScriptCore
multi-threaded, preemptive, thread-safe, 64bits, strict mode
fast, well structured & documented, maintained by Apple
wakanda
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Application Framework
Wakanda Studio
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
AdministrationExtensions
REST/JSON
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Application Framework
Wakanda Studio
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
AdministrationExtensions
REST/JSON
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Application Framework
Wakanda Studio
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
AdministrationExtensions
REST/JSON
Wakanda
Wakanda Server(aka WakandaDB)
Wakanda Application Framework
Wakanda Studio
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
AdministrationExtensions
REST/JSON
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...
Model & Data Classes
Relationship
Recursivity
Alias attributes
many to many
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)
Downloads accessible from:
the production channel (current release)
the stabilization channel (next release)
the development channel (nightly builds)
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”
W3C Community Group
http://www.w3.org/community/jseverywhere
W3C Community & Business Groups
Workers ?
Come with us at San Jose, CA on October 26th:
@JSeverywhere
http://JSeverywhere.org
Call to speaker ends on June, 30th!!!