End-to-end W3C APIs - tpac 2012
Upcoming SlideShare
Loading in...5

End-to-end W3C APIs - tpac 2012



- Web Worker context compared to SSJS context ...

- Web Worker context compared to SSJS context
- Mixte Synchronous / Asynchronous APIs
- Making Existing Client-side JS APIs recommendations adaptable to the server context
- Defining W3C recommendation for Server-side JavaScript APIs?
- Remote debugging for Remote (Server) Workers
- Potential common package/module format support (CommonJS, AMD, ECMAScript 6)
- DOM Events, ProgressEvent, EventSource, Server Events (EventEmitter?), & Client Events
- Feedback on previous work at CommonJS and from some SSJS implementations
- Feedback on our experiences in the Wakanda implementation
- start the activity of the community group



Total Views
Views on SlideShare
Embed Views



3 Embeds 5

http://lanyrd.com 3
http://www.linkedin.com 1
https://www.linkedin.com 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NoDerivs LicenseCC Attribution-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

End-to-end W3C APIs - tpac 2012 End-to-end W3C APIs - tpac 2012 Presentation Transcript

  • End-to-endW3C APIs By Alexandre MorgautTPAC 2012 - Lyon, France
  • Agenda• The Web & JavaScript• W3C APIs• Server-Side JavaScript• Web Applications• Now & Tomorrow
  • The Web & JavaScript
  • REST• Representational State Transfer • Client-Server • Stateless, Cache, Uniform Interface • Layered System • Code on Demand: JavaScript• defined in 2000 by Roy Thomas Fielding
  • Web Standards
  • W3C• Created at the MIT in 1994• Led by Tim Berners-Lee and Dr. Jeffrey Jaffe• Joint agreement among three "Host Institutions" • MIT, ERCIM, Keio University• Working Groups • HTML, MathML, RDF, SVG, CSS, Audio, Device...
  • ECMA• European Computer Manufacturers Association• Standards • CD-ROM, ECMAScript, C#, Office Open XML File Formats• JavaScript • ECMA-262 aka ECMAScript aka ISO/IEC 16262 • TC39-TG1 managed by Mr. J. Neumann • E4X: ECMAScript for XML • ECMAScript Internationalization API • Test262 http://wiki.ecmascript.org
  • W3C on Server-Side ?
  • DOM• Java• JavaScript• .NET• PHP• python• ..;
  • Server-Side JavaScript
  • Standards• ECMAScript• CommonJS More than 60 SSJS implementations
  • Servers• Microsoft IIS• Persevere• Jaxer• node.js• Wakanda• RingoJS• SilkJS
  • NoSQL Databases• CouchDB• MongoDB• Riak• WakandaDB• ArangoDB• OrientDB
  • Web Application “1.0”
  • HTML5 APIs• XMLHttpRequest 2 • Web Cryptography• Blob • ImageData• File / FileSystem • Typed Arrays• Web SQL • Storage Quota• Web Storage • System Information• Web Workers • URL• Web Sockets • WebCL
  • WebCL“This section proposes mechanisms for transferring pixeldata between WebCL memory objects and HTML mediaelements. Server-side or Web Worker basedimplementations of WebCL will not berequired to support these features.” https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html#4
  • Web SQL“This document was on the W3C Recommendation trackbut specification work has stopped.The specificationreached an impasse: all interested implementorshave used the same SQL backend (Sqlite),but we need multiple independentimplementations to proceed along a standardisationpath.” http://www.w3.org/TR/webdatabase/
  • Async “and” Sync• XMLHttpRequest(method, url, async)• FileReaderSync()• requestFileSystemSync()• openDatabaseSync()• indexedDBSync.open()• localStorage.getItem()
  • IndexedDB“The synchronous database API methods provide ablocking access pattern to IndexedDB databases. Sincethey block the calling thread they are onlyavailable from workers.” http://www.w3.org/TR/IndexedDB/#sync-database
  • Web Workers• Dedicated or Shared• No Window, No Document• WorkerGlobal, WorkerUtils• WorkerNavigator, WorkerLocation• postMessage(), onmessage(), onerror()• importScripts()
  • Concept• Server JS contexts == Workers • multi-threaded -> Dedicated Workers • single threaded EventLoop -> Shared• Server JS contexts === Remote JS Workers
  • Now & Tomorrow
  • RingoJS• W3C • Web Worker• CommonJS • Modules • System, fs, binary, IO, Unit Test• Other: console
  • SilkJS• W3C • XMLHttpRequest• CommonJS • Modules
  • node.js• W3C via modules • XMLHttpRequest (node-xmlhttprequest) • Web Sockets (node-websocket-client) • DOM (node-o3-fastxml), IndexedDB (perstore)• CommonJS • Modules, Packages• Other: console
  • Wakanda• W3C • XMLHttpRequest, WindowTimer, • Web Storage, Web Worker, • File, FileSystem, Blob, ...• CommonJS • Modules, System, Unit Test• Other: console
  • Wakanda• Web Storage • sessionStorage, user.storage, storage• Web Workers • Worker, SharedWorker, SystemWorker
  • Wakanda• Server-side JS context • CommonJS (module.id, require, ...) • Worker (importScripts, WindowTimer, ...)
  • Summary• ECMAScript is already everywhere• Modules: CommonJS already standard, AMD, ECMAScript 6• Many W3C APIs already applicable server-side• Same APIs means • better learning curve • more shared libraries / modules • DRY -> shared Model work Offline
  • Client and Server JavaScript APIs W3C Community Grouphttp://www.w3.org/community/jseverywhere/ Let’s start!