SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Wakanda
                        A project dedicated to creating a
                       new end-to-end JavaScript platform




lundi 1 février 2010
4D
                         4D has been publishing business application
                       development tools for many years, with a focus on
                        simplicity, compatibility and integration, across
                                desktop, client-server and Web.




lundi 1 février 2010
We are a "small-large" company based in Paris, with a
                                   presence all over the world.



lundi 1 février 2010
Inner magic

                       It's what Wakanda means in the Sioux language.

                           We intend to bring our style of ease and
                         simplicity in development to your complex
                                business Internet applications.




lundi 1 février 2010
The Wakanda Team




lundi 1 février 2010
Why is JavaScript the best choice
                             for Wakanda today?

                             http://tr.im/javascript_rocks




lundi 1 février 2010
The Wakanda Project




lundi 1 février 2010
Studio
               - users & groups management
               - database / entity models design & administration
               - WYSIWYG editing
               - JSDoc / ScriptDoc (type-ahead, outline, publication)
               - source control
               - validators (JSLint, W3C, ...), ATAG conformance !?!
               - unit testing (TDD, TDR), client & server debugger
               - minifier, caching properties



lundi 1 février 2010
Web Admin
                       Solution, Applications, Servers, Services




lundi 1 février 2010
HTTP & JavaScript
                         Unit Testing Tool




                       HTTP test case editor in the Firebug console


lundi 1 février 2010
HTTP & JavaScript
                       Unit Testing Tool




                       Use the Bespin JavaScript editor to
                              customize test cases

lundi 1 février 2010
HTTP & JavaScript
                       Unit Testing Tool




       Test suite management - YUI test compatibility - JUnit support


lundi 1 février 2010
Remote JavaScript Debugging
                       CrossFire, v8 protocol compatibility !?!




                                 - debug the client from the studio
                                 - debug the server from web clients

                                 breakpoint, step by step, callstack,
                                 JavaScript expression evaluation


lundi 1 février 2010
JSON-RPC Client & Server
                                           A simple protocol

        Request by position
        --> {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1}
        <-- {"jsonrpc": "2.0", "result": 19, "id": 1}



        Request by params
        --> {"jsonrpc": "2.0", "method": "subtract", "params": {"subtrahend": 23, "minuend": 42}, "id": 3}
        <-- {"jsonrpc": "2.0", "result": 19, "id": 3}




lundi 1 février 2010
JSON-RPC Client & Server
                                   Simple function declaration,
                       request validity control from JSDoc or JSON-Schema
                  Server-Side

                  /**
                   * get the number of connexions on an application server
                   *
                   * @param {String} appName application name
                   * @return {Number}
                   **/

                  function countConnections(appName) {
                    return applications[appName].servers.http.connections();
                  }




lundi 1 février 2010
JSON-RPC Client & Server
                             Simple client binding declaration,


                  Client-Side

                  <meta name="WAF.config.rpc.namespace" content="customAdmin" />
                  <meta name="WAF.config.rpc.methods" content="countConnections" />

                  or

                  <link rel="WAF.config" href="/wafConfig.json" type="application/json" />




lundi 1 février 2010
JSON-RPC Client & Server
                           Simple and advanced method calls,
                         request sent only if parameters are valid

                  Client-Side

                  customAdmin. countConnections("killingApp");
                  customAdmin. countConnectionsAsync(showResult, "killingApp");


                  var infosHandlers = {
                     onsuccess: function (result) { /* ... */},
                     onerror: function (error) { /* ... */}
                  };

                  customAdmin. countConnectionsAsync(infosHandlers, "killingApp");




lundi 1 février 2010
JSON-RPC Client & Server
                                 Easy way to call external Web Services
                                  and to had client validity checking

                  Client-Side


                  WAF.rpc.call("otherMethod", paramA, paramB);
                  WAF.rpc.callAsync(methodHandlers, "otherMethod", paramA, paramB);
                  or
                  WAF.rpc.call(otherServerConfig, "otherMethod", paramA, paramB);
                  or
                  var rpcOut = new WAF.classes.Rpc(otherServerConfig);
                  rpcOut.callAsync(methodHandlers, "otherMethod", paramA, paramB);
                  rpcOut.getInterface("otherMethod", "rpcOut");
                  rpcOut.otherMethodAsync(methodHandlers, paramA, paramB);


lundi 1 février 2010
End-to-End JavaScript

                       SquirrelFish Extreme (Nitro)



            64 bits - multi-thread - lightweight - extensible - the fastest ?




lundi 1 février 2010
CommonJS
                                      Modules/1.0
                         «4D is implementing this in Wakanda»
                       http://wiki.commonjs.org/wiki/Modules/1.0




lundi 1 février 2010
HTTP Incoming Request JS APIs



               JSGI (0.2)
                   Jack
               Persevere
                  Jaxer
                  v8cgi
                EJscript
                 node.js
               Wakanda *    http://wiki.commonjs.org/wiki/JSGI
                                  http://tr.im/http_ssjs_api
lundi 1 février 2010
Native REST & JavaScript
                       NoSQL Data store Engine



lundi 1 février 2010
Core data store engine

                                   Entity Model support

                         64 bits - Unicode - multi-thread - multi-process




                       Improved database engine

lundi 1 février 2010
Core data store engine

                                         Entity Model support

                            JavaScript API                 REST HTTP API




                       Lowest level JavaScript and HTTP binding

lundi 1 février 2010
Easy way to design the Business interface




lundi 1 février 2010
Core data store engine

                                          Entity Model support

                             JavaScript API                 REST HTTP API


                  var emps = db.employee.all();
                  function hello(emp) {
                     return ‘hello ’ + emp.name;
                  }
                  hello(emps.first());


                       Access to the Business interface layer from JavaScript

lundi 1 février 2010
Core data store engine

                                      Entity Model support

                         JavaScript API                 REST HTTP API



                  db.employees.find("name = alex").drop();

                  function getWorkLocation(employee) {
                    return employee.company.address;
                  }




lundi 1 février 2010
Core data store engine

                                           Entity Model support

                              JavaScript API                 REST HTTP API



                  GET /rest/employee(5)
                  GET /rest/employee/name?$query=salary < 50000
                  DELETE /rest/employee("Tom Cat")
                  * JSON or XML layout


                       Access to the business interface layer from
                                HTTP trough a REST API
lundi 1 février 2010
JSON View of an entity set




lundi 1 février 2010
XML View of an entity set




lundi 1 février 2010
Direct HTML interface




              • Unlimited number of entities in the datatable
              • Automatic Forms with unlimited property hierarchy
              • Very responsive filters, server side ordering
              • Possibility to add, remove, and update the entities
lundi 1 février 2010
WAF adapters




lundi 1 février 2010
lundi 1 février 2010
Upcoming?




          Yours...?


lundi 1 février 2010
Summary
                  - Powerful Server Side JavaScript engine
                  - Native Business Logic abstraction
                  - No SQL generation
                  - direct JavaScript interface
                  - direct REST interface
                  - Open Platform
                  - Streamlined development process




lundi 1 février 2010
Get Involved
                       Developer preview: 1st quarter 2010
                              http://www.wakandasoftware.com
                                      @wakandasoftware

                  @amorgaut
                  @amorgaut/wakanda

                  @amorgaut/javascript-gurus
                  @amorgaut/accessibility

                  http://wiki.commonjs.com
                  http://tr.im/wtframework




lundi 1 février 2010

Más contenido relacionado

La actualidad más candente

BedCon 2013 - Java Persistenz-Frameworks für MongoDB
BedCon 2013 - Java Persistenz-Frameworks für MongoDBBedCon 2013 - Java Persistenz-Frameworks für MongoDB
BedCon 2013 - Java Persistenz-Frameworks für MongoDB
Tobias Trelle
 

La actualidad más candente (20)

Spring 3.1: a Walking Tour
Spring 3.1: a Walking TourSpring 3.1: a Walking Tour
Spring 3.1: a Walking Tour
 
Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0
 
11-DWR-and-JQuery
11-DWR-and-JQuery11-DWR-and-JQuery
11-DWR-and-JQuery
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
 
Java EE 7 for Real Enterprise Systems
Java EE 7 for Real Enterprise SystemsJava EE 7 for Real Enterprise Systems
Java EE 7 for Real Enterprise Systems
 
BedCon 2013 - Java Persistenz-Frameworks für MongoDB
BedCon 2013 - Java Persistenz-Frameworks für MongoDBBedCon 2013 - Java Persistenz-Frameworks für MongoDB
BedCon 2013 - Java Persistenz-Frameworks für MongoDB
 
Java EE 7 - Overview and Status
Java EE 7  - Overview and StatusJava EE 7  - Overview and Status
Java EE 7 - Overview and Status
 
Java Web Programming [6/9] : MVC
Java Web Programming [6/9] : MVCJava Web Programming [6/9] : MVC
Java Web Programming [6/9] : MVC
 
50 features of Java EE 7 in 50 minutes at Geecon 2014
50 features of Java EE 7 in 50 minutes at Geecon 201450 features of Java EE 7 in 50 minutes at Geecon 2014
50 features of Java EE 7 in 50 minutes at Geecon 2014
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 
Java Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP BasicJava Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP Basic
 
Rapid API development examples for Impress Application Server / Node.js (jsfw...
Rapid API development examples for Impress Application Server / Node.js (jsfw...Rapid API development examples for Impress Application Server / Node.js (jsfw...
Rapid API development examples for Impress Application Server / Node.js (jsfw...
 
Mvc15 (1)
Mvc15 (1)Mvc15 (1)
Mvc15 (1)
 
Java Persistence Frameworks for MongoDB
Java Persistence Frameworks for MongoDBJava Persistence Frameworks for MongoDB
Java Persistence Frameworks for MongoDB
 
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
VisualWeb - Building a NodeJS Server Meshwork and Full-Javascript Stack Frame...
 
What's new in JMS 2.0 - OTN Bangalore 2013
What's new in JMS 2.0 - OTN Bangalore 2013What's new in JMS 2.0 - OTN Bangalore 2013
What's new in JMS 2.0 - OTN Bangalore 2013
 
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
 
Java questions with answers
Java questions with answersJava questions with answers
Java questions with answers
 
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet AdvancedJava Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet Advanced
 
Getting Started with Java EE 7
Getting Started with Java EE 7Getting Started with Java EE 7
Getting Started with Java EE 7
 

Destacado

Managing gang of chaotic developers is complex at Agile Tour Riga 2012
Managing gang of chaotic developers is complex at Agile Tour Riga 2012Managing gang of chaotic developers is complex at Agile Tour Riga 2012
Managing gang of chaotic developers is complex at Agile Tour Riga 2012
Piotr Burdylo
 
A Scalable I/O Manager for GHC
A Scalable I/O Manager for GHCA Scalable I/O Manager for GHC
A Scalable I/O Manager for GHC
Johan Tibell
 
There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...
There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...
There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...
thegdb
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
David Padbury
 

Destacado (20)

Let's Get to the Rapids
Let's Get to the RapidsLet's Get to the Rapids
Let's Get to the Rapids
 
Managing gang of chaotic developers is complex at Agile Tour Riga 2012
Managing gang of chaotic developers is complex at Agile Tour Riga 2012Managing gang of chaotic developers is complex at Agile Tour Riga 2012
Managing gang of chaotic developers is complex at Agile Tour Riga 2012
 
Shooting the Rapids
Shooting the RapidsShooting the Rapids
Shooting the Rapids
 
Parallel-Ready Java Code: Managing Mutation in an Imperative Language
Parallel-Ready Java Code: Managing Mutation in an Imperative LanguageParallel-Ready Java Code: Managing Mutation in an Imperative Language
Parallel-Ready Java Code: Managing Mutation in an Imperative Language
 
A Scalable I/O Manager for GHC
A Scalable I/O Manager for GHCA Scalable I/O Manager for GHC
A Scalable I/O Manager for GHC
 
Présentation Kivy (et projets associés) à Pycon-fr 2013
Présentation Kivy (et projets associés) à Pycon-fr 2013Présentation Kivy (et projets associés) à Pycon-fr 2013
Présentation Kivy (et projets associés) à Pycon-fr 2013
 
O'Reilly ETech Conference: Laszlo RIA
O'Reilly ETech Conference: Laszlo RIAO'Reilly ETech Conference: Laszlo RIA
O'Reilly ETech Conference: Laszlo RIA
 
Agile Management 2013 - Nie tylko it
Agile Management 2013 - Nie tylko itAgile Management 2013 - Nie tylko it
Agile Management 2013 - Nie tylko it
 
Laszlo PyCon 2005
Laszlo PyCon 2005Laszlo PyCon 2005
Laszlo PyCon 2005
 
There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...
There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...
There's a Monster in My Closet: Architecture of a MongoDB-powered Event Proce...
 
Vert.x - JDD 2013 (English)
Vert.x - JDD 2013 (English)Vert.x - JDD 2013 (English)
Vert.x - JDD 2013 (English)
 
Metasepi team meeting #6: "Snatch-driven development"
Metasepi team meeting #6: "Snatch-driven development"Metasepi team meeting #6: "Snatch-driven development"
Metasepi team meeting #6: "Snatch-driven development"
 
erlang at hover.in , Devcamp Blr 09
erlang at hover.in , Devcamp Blr 09erlang at hover.in , Devcamp Blr 09
erlang at hover.in , Devcamp Blr 09
 
Monadologie
MonadologieMonadologie
Monadologie
 
Federated CDNs: What every service provider should know
Federated CDNs: What every service provider should knowFederated CDNs: What every service provider should know
Federated CDNs: What every service provider should know
 
Mendeley presentation
Mendeley presentationMendeley presentation
Mendeley presentation
 
Jensimmons html5live-responsivedesign
Jensimmons html5live-responsivedesignJensimmons html5live-responsivedesign
Jensimmons html5live-responsivedesign
 
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
Good and Wicked Fairies, and the Tragedy of the Commons: Understanding the Pe...
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Masters Defense 2013
Masters Defense 2013Masters Defense 2013
Masters Defense 2013
 

Similar a Wakanda: a new end-to-end JavaScript platform - JSConf Berlin 2009

Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
Programming SharePoint 2010 with Visual Studio 2010
Programming SharePoint 2010 with Visual Studio 2010Programming SharePoint 2010 with Visual Studio 2010
Programming SharePoint 2010 with Visual Studio 2010
Quang Nguyễn Bá
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
Hamed Hatami
 
Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead
Nitesh Dasari
 
Open End To End Js Stack
Open End To End Js StackOpen End To End Js Stack
Open End To End Js Stack
Skills Matter
 

Similar a Wakanda: a new end-to-end JavaScript platform - JSConf Berlin 2009 (20)

Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech Day
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
 
Simple REST with Dropwizard
Simple REST with DropwizardSimple REST with Dropwizard
Simple REST with Dropwizard
 
End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013
 
Programming SharePoint 2010 with Visual Studio 2010
Programming SharePoint 2010 with Visual Studio 2010Programming SharePoint 2010 with Visual Studio 2010
Programming SharePoint 2010 with Visual Studio 2010
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Application Security Workshop
Application Security Workshop Application Security Workshop
Application Security Workshop
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
 
Open in the Cloud Java &amp; Windows Azure
Open in the Cloud Java &amp; Windows AzureOpen in the Cloud Java &amp; Windows Azure
Open in the Cloud Java &amp; Windows Azure
 
Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead Nitesh_Sr._Java_developer_Lead
Nitesh_Sr._Java_developer_Lead
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11g
 
World of javascript
World of javascriptWorld of javascript
World of javascript
 
Synchronizing Core Data With Rails
Synchronizing Core Data With RailsSynchronizing Core Data With Rails
Synchronizing Core Data With Rails
 
Node.js 1, 2, 3
Node.js 1, 2, 3Node.js 1, 2, 3
Node.js 1, 2, 3
 
Open End To End Js Stack
Open End To End Js StackOpen End To End Js Stack
Open End To End Js Stack
 

Más de Alexandre Morgaut

HTML5 in automotive - web2day 2014
HTML5 in automotive  - web2day 2014HTML5 in automotive  - web2day 2014
HTML5 in automotive - web2day 2014
Alexandre Morgaut
 
JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)
Alexandre Morgaut
 
Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)
Alexandre Morgaut
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) Europe
Alexandre Morgaut
 
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) EuropeWakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Alexandre Morgaut
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut
 
State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012
Alexandre Morgaut
 
Etat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS GeneveEtat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS Geneve
Alexandre Morgaut
 
NantesJS premier meetup - Welcome
NantesJS premier meetup - WelcomeNantesJS premier meetup - Welcome
NantesJS premier meetup - Welcome
Alexandre Morgaut
 

Más de Alexandre Morgaut (20)

Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017
 
angular-wakanda ngParis meetup 15 at 42
angular-wakanda ngParis meetup 15 at 42angular-wakanda ngParis meetup 15 at 42
angular-wakanda ngParis meetup 15 at 42
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
 
HTML5 in automotive - web2day 2014
HTML5 in automotive  - web2day 2014HTML5 in automotive  - web2day 2014
HTML5 in automotive - web2day 2014
 
JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)
 
Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)
 
From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with Wakanda
 
NoSQL and JavaScript: a love story
NoSQL and JavaScript: a love storyNoSQL and JavaScript: a love story
NoSQL and JavaScript: a love story
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) Europe
 
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) EuropeWakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012
 
End-to-end W3C APIs
End-to-end W3C APIsEnd-to-end W3C APIs
End-to-end W3C APIs
 
NoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love StoryNoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love Story
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
 
State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012
 
Etat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS GeneveEtat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS Geneve
 
NantesJS premier meetup - Welcome
NantesJS premier meetup - WelcomeNantesJS premier meetup - Welcome
NantesJS premier meetup - Welcome
 

Último

Último (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Wakanda: a new end-to-end JavaScript platform - JSConf Berlin 2009

  • 1. Wakanda A project dedicated to creating a new end-to-end JavaScript platform lundi 1 février 2010
  • 2. 4D 4D has been publishing business application development tools for many years, with a focus on simplicity, compatibility and integration, across desktop, client-server and Web. lundi 1 février 2010
  • 3. We are a "small-large" company based in Paris, with a presence all over the world. lundi 1 février 2010
  • 4. Inner magic It's what Wakanda means in the Sioux language. We intend to bring our style of ease and simplicity in development to your complex business Internet applications. lundi 1 février 2010
  • 5. The Wakanda Team lundi 1 février 2010
  • 6. Why is JavaScript the best choice for Wakanda today? http://tr.im/javascript_rocks lundi 1 février 2010
  • 7. The Wakanda Project lundi 1 février 2010
  • 8. Studio - users & groups management - database / entity models design & administration - WYSIWYG editing - JSDoc / ScriptDoc (type-ahead, outline, publication) - source control - validators (JSLint, W3C, ...), ATAG conformance !?! - unit testing (TDD, TDR), client & server debugger - minifier, caching properties lundi 1 février 2010
  • 9. Web Admin Solution, Applications, Servers, Services lundi 1 février 2010
  • 10. HTTP & JavaScript Unit Testing Tool HTTP test case editor in the Firebug console lundi 1 février 2010
  • 11. HTTP & JavaScript Unit Testing Tool Use the Bespin JavaScript editor to customize test cases lundi 1 février 2010
  • 12. HTTP & JavaScript Unit Testing Tool Test suite management - YUI test compatibility - JUnit support lundi 1 février 2010
  • 13. Remote JavaScript Debugging CrossFire, v8 protocol compatibility !?! - debug the client from the studio - debug the server from web clients breakpoint, step by step, callstack, JavaScript expression evaluation lundi 1 février 2010
  • 14. JSON-RPC Client & Server A simple protocol Request by position --> {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1} <-- {"jsonrpc": "2.0", "result": 19, "id": 1} Request by params --> {"jsonrpc": "2.0", "method": "subtract", "params": {"subtrahend": 23, "minuend": 42}, "id": 3} <-- {"jsonrpc": "2.0", "result": 19, "id": 3} lundi 1 février 2010
  • 15. JSON-RPC Client & Server Simple function declaration, request validity control from JSDoc or JSON-Schema Server-Side /** * get the number of connexions on an application server * * @param {String} appName application name * @return {Number} **/ function countConnections(appName) { return applications[appName].servers.http.connections(); } lundi 1 février 2010
  • 16. JSON-RPC Client & Server Simple client binding declaration, Client-Side <meta name="WAF.config.rpc.namespace" content="customAdmin" /> <meta name="WAF.config.rpc.methods" content="countConnections" /> or <link rel="WAF.config" href="/wafConfig.json" type="application/json" /> lundi 1 février 2010
  • 17. JSON-RPC Client & Server Simple and advanced method calls, request sent only if parameters are valid Client-Side customAdmin. countConnections("killingApp"); customAdmin. countConnectionsAsync(showResult, "killingApp"); var infosHandlers = { onsuccess: function (result) { /* ... */}, onerror: function (error) { /* ... */} }; customAdmin. countConnectionsAsync(infosHandlers, "killingApp"); lundi 1 février 2010
  • 18. JSON-RPC Client & Server Easy way to call external Web Services and to had client validity checking Client-Side WAF.rpc.call("otherMethod", paramA, paramB); WAF.rpc.callAsync(methodHandlers, "otherMethod", paramA, paramB); or WAF.rpc.call(otherServerConfig, "otherMethod", paramA, paramB); or var rpcOut = new WAF.classes.Rpc(otherServerConfig); rpcOut.callAsync(methodHandlers, "otherMethod", paramA, paramB); rpcOut.getInterface("otherMethod", "rpcOut"); rpcOut.otherMethodAsync(methodHandlers, paramA, paramB); lundi 1 février 2010
  • 19. End-to-End JavaScript SquirrelFish Extreme (Nitro) 64 bits - multi-thread - lightweight - extensible - the fastest ? lundi 1 février 2010
  • 20. CommonJS Modules/1.0 «4D is implementing this in Wakanda» http://wiki.commonjs.org/wiki/Modules/1.0 lundi 1 février 2010
  • 21. HTTP Incoming Request JS APIs JSGI (0.2) Jack Persevere Jaxer v8cgi EJscript node.js Wakanda * http://wiki.commonjs.org/wiki/JSGI http://tr.im/http_ssjs_api lundi 1 février 2010
  • 22. Native REST & JavaScript NoSQL Data store Engine lundi 1 février 2010
  • 23. Core data store engine Entity Model support 64 bits - Unicode - multi-thread - multi-process Improved database engine lundi 1 février 2010
  • 24. Core data store engine Entity Model support JavaScript API REST HTTP API Lowest level JavaScript and HTTP binding lundi 1 février 2010
  • 25. Easy way to design the Business interface lundi 1 février 2010
  • 26. Core data store engine Entity Model support JavaScript API REST HTTP API var emps = db.employee.all(); function hello(emp) { return ‘hello ’ + emp.name; } hello(emps.first()); Access to the Business interface layer from JavaScript lundi 1 février 2010
  • 27. Core data store engine Entity Model support JavaScript API REST HTTP API db.employees.find("name = alex").drop(); function getWorkLocation(employee) { return employee.company.address; } lundi 1 février 2010
  • 28. Core data store engine Entity Model support JavaScript API REST HTTP API GET /rest/employee(5) GET /rest/employee/name?$query=salary < 50000 DELETE /rest/employee("Tom Cat") * JSON or XML layout Access to the business interface layer from HTTP trough a REST API lundi 1 février 2010
  • 29. JSON View of an entity set lundi 1 février 2010
  • 30. XML View of an entity set lundi 1 février 2010
  • 31. Direct HTML interface • Unlimited number of entities in the datatable • Automatic Forms with unlimited property hierarchy • Very responsive filters, server side ordering • Possibility to add, remove, and update the entities lundi 1 février 2010
  • 32. WAF adapters lundi 1 février 2010
  • 34. Upcoming? Yours...? lundi 1 février 2010
  • 35. Summary - Powerful Server Side JavaScript engine - Native Business Logic abstraction - No SQL generation - direct JavaScript interface - direct REST interface - Open Platform - Streamlined development process lundi 1 février 2010
  • 36. Get Involved Developer preview: 1st quarter 2010 http://www.wakandasoftware.com @wakandasoftware @amorgaut @amorgaut/wakanda @amorgaut/javascript-gurus @amorgaut/accessibility http://wiki.commonjs.com http://tr.im/wtframework lundi 1 février 2010