Groke

893 views
776 views

Published on

The Groke server experiment

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
893
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Groke

  1. 1. REST Inspired Code Partitioning with a JavaScript Middleware Janne Kuuskeri, Tommi Mikkonen Tampere University of TechnologyMonday, April 11, 2011
  2. 2. Motivation Web pages are now web applications Web application are too complex to build How to make it easier?Monday, April 11, 2011
  3. 3. Current State Browser Server Controller View Model JavaScript, CSS, HTML, JSP, Kid, Ajax, XML, JSON eRuby Java, Python, RubyMonday, April 11, 2011
  4. 4. Problems Applications are fragmented over many different technologies Responsibilities are difficult to assign Traditional software engineering principles are difficult to applyMonday, April 11, 2011
  5. 5. How to Make It Easier? One language to rule them all Fat client Automatic and more importantly dynamic code partitioningMonday, April 11, 2011
  6. 6. Groke Internet Web Application Web Application Groke Client Groke Server Browser Web ServerMonday, April 11, 2011
  7. 7. Implementation Groke Client Groke Server JavaScript CommonJS Ajax Narwhal JSGI Jack MiddlewareMonday, April 11, 2011
  8. 8. Implementation Groke Server Expose interface in terms of resources Modules : /groke/module/[module] Functions : /groke/module/[module]/[function] Constructors : /groke/ctor/[module]/[function] Objects : /groke/obj/[obj-id]/[property] Anonymous functions : /groke/func/[func-id]Monday, April 11, 2011
  9. 9. DemoMonday, April 11, 2011
  10. 10. REST? Functions as resources RESTful interface is data (resource) driven Parameters are always POSTed to resources The platform cannot have any understanding about the semantics of the resources (possibly functions) it exposesMonday, April 11, 2011
  11. 11. Future Work Make Groke symmetric by utilizing Comet or WebSockets Make client side wrapper cacheable Garbage collectionMonday, April 11, 2011
  12. 12. Questions? http://github.com/wuher/grokeMonday, April 11, 2011

×