Dojo Web Builder                                                          Building Dojo in the Cloudhttp://www.flickr.com/p...
Me.@thomasj
Who uses the Dojobuilder for their app?
So... why do we need a    “Web Builder”?
Existing Dojo Build• Learning curve too steep for many users• Toolset may put some some users, i.e.  commands lines and sh...
Why does this matter?
“Dojo is slow....”
http://www.flickr.com/photos/mrhayata/107290472/
http://www.flickr.com/photos/88933162@N00/5190194408/
Dojo Web Builder
build.dojotoolkit.org•   Launched in April 2011•   Served nearly 3000    builds of Dojo!•   Hosted on EC2
github.com/dojo/dwb
Time for a demo!
How does it work?
Architecture                  XHRWeb Application           REST API     Asynchronous                                      ...
Architecture                  XHRWeb Application             REST API               Asynchronous                          ...
GET /packages{    "packages":       [          {            "link":"http://your.dojotoolkit.org/api/packages/dojo",       ...
GET /packages/dojo{    "versions":       [          {             "link":"http://build.dojotoolkit.org/api/packages/dojo/1...
GET /packages/dojo/1.6.1{    "description":"Dojo Toolkit, release 1.6.1",    "name":"Dojo Toolkit",    "modules":       [ ...
Architecture                  XHRWeb Application                REST API      Asynchronous                                ...
POST /build{    "packages":[       {          "name":"dojo",          "version":"1.6.1"       }    ],    "layers":[       ...
HTTP 202 Accepted{    "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/    HtHlqBVzBAztHRKMlClyYPzBofk_"}
GET /build/status{     "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/     HtHlqBVzBAztHRKMlClyYPzBofk_...
GET /build/status{     "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/     HtHlqBVzBAztHRKMlClyYPzBofk_...
http://www.flickr.com/photos/decade_null/142235888/
LOGS       http://www.flickr.com/photos/decade_null/142235888/
Statistics!              http://www.flickr.com/photos/gasi/348050339/
Builds Per Month                       Build Requests800600400200  0        May     June          July      August   Sept ...
Most Popular Modules      Module Name               Builds Contained             dijit.Dialog             30.80%         d...
Auto Analysis           Analysis Type2,0001,5001,000 500   0        Remote URL         Local File   Profile    Total Auto-...
Auto Analysis           Analysis Type                Localhost2,0001,5001,000 500   0        Remote URL         Local File...
What’s next?
• Full AMD support (build & auto-analysis)
• Full AMD support (build & auto-analysis)• Dojo Foundation Package Repository
• Full AMD support (build & auto-analysis)• Dojo Foundation Package Repository• Build process purely client-side?
Thank you for listening!     http://build.dojotoolkit.org     http://github.com/dojo/dwb
Building Dojo in the Cloud
Building Dojo in the Cloud
Upcoming SlideShare
Loading in …5
×

Building Dojo in the Cloud

3,408 views

Published on

My talk from the 2011 Dojo Conference, Washington, D.C.
http://dojoconf.com/

Published in: Technology, Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,408
On SlideShare
0
From Embeds
0
Number of Embeds
1,420
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Building Dojo in the Cloud

    1. 1. Dojo Web Builder Building Dojo in the Cloudhttp://www.flickr.com/photos/turtlemom_nancy/2046347762/ James Thomas
    2. 2. Me.@thomasj
    3. 3. Who uses the Dojobuilder for their app?
    4. 4. So... why do we need a “Web Builder”?
    5. 5. Existing Dojo Build• Learning curve too steep for many users• Toolset may put some some users, i.e. commands lines and shell scripts• Users from simpler toolkits aren’t used to “building” JavaScript components
    6. 6. Why does this matter?
    7. 7. “Dojo is slow....”
    8. 8. http://www.flickr.com/photos/mrhayata/107290472/
    9. 9. http://www.flickr.com/photos/88933162@N00/5190194408/
    10. 10. Dojo Web Builder
    11. 11. build.dojotoolkit.org• Launched in April 2011• Served nearly 3000 builds of Dojo!• Hosted on EC2
    12. 12. github.com/dojo/dwb
    13. 13. Time for a demo!
    14. 14. How does it work?
    15. 15. Architecture XHRWeb Application REST API Asynchronous Builder JSON (Java) (JavaScript) Dojo 1.5 Jetty Rhino JAX-RS Dojo Build
    16. 16. Architecture XHRWeb Application REST API Asynchronous Builder JSON (Java) (JavaScript) Retrieve all packages available....
    17. 17. GET /packages{ "packages": [ { "link":"http://your.dojotoolkit.org/api/packages/dojo", "name":"dojo" } ], [ { "link":"http://build.dojotoolkit.org/api/packages/dwb", "name":"dwb" } ]}
    18. 18. GET /packages/dojo{ "versions": [ { "link":"http://build.dojotoolkit.org/api/packages/dojo/1.4.3", "name":"1.4.3" }, { "link":"http://build.dojotoolkit.org/api/packages/dojo/1.5.1", "name":"1.5.1" }, { "link":"http://build.dojotoolkit.org/api/packages/dojo/1.6.1", "name":"1.6.1" } ]}
    19. 19. GET /packages/dojo/1.6.1{ "description":"Dojo Toolkit, release 1.6.1", "name":"Dojo Toolkit", "modules": [ ["dijit.Calendar","A simple GUI for choosing a date in the context of a monthly calendar. "], ["dijit.CheckedMenuItem","A checkbox-like menu item for toggling on and off "], ["dijit.ColorPalette","A keyboard accessible color-picking widget "], ["dijit.Declaration","The Declaration widget allows a developer to declare new widget classes directly from a snippet of markup. "], ....... ]}
    20. 20. Architecture XHRWeb Application REST API Asynchronous Builder JSON (Java) (JavaScript) Submit a build...
    21. 21. POST /build{ "packages":[ { "name":"dojo", "version":"1.6.1" } ], "layers":[ { "name":"dojo.js", "modules":[ {"name":"dijit.Calendar", "package":"dojo"}, {"name":"dijit.Dialog", "package":"dojo"}, {"name":"dijit.Menu","package":"dojo"} ] } ], "optimise":"shrinksafe", "cdn":"none", "themes":"claro", "cssOptimise":"comments"}
    22. 22. HTTP 202 Accepted{ "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/ HtHlqBVzBAztHRKMlClyYPzBofk_"}
    23. 23. GET /build/status{ "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/ HtHlqBVzBAztHRKMlClyYPzBofk_"}{ "logs": "Beginning build process...” "state": "BUILDING"}
    24. 24. GET /build/status{ "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/ HtHlqBVzBAztHRKMlClyYPzBofk_"}{ "logs":"Beginning build process...” Local build selected. Loading build scripts... done Found custom module package, set up build.... Custom user package analysis... done Creating layer profiles.... Discovered layer, dojo.js Creating layer contents from profile... .... Build process completed successfully!", "state" : "COMPLETED", "result": "http://build.dojotoolkit.org/api/build/ HtHlqBVzBAztHRKMlClyYPzBofk_"}
    25. 25. http://www.flickr.com/photos/decade_null/142235888/
    26. 26. LOGS http://www.flickr.com/photos/decade_null/142235888/
    27. 27. Statistics! http://www.flickr.com/photos/gasi/348050339/
    28. 28. Builds Per Month Build Requests800600400200 0 May June July August Sept Total Builds Since Launch - 2740*
    29. 29. Most Popular Modules Module Name Builds Contained dijit.Dialog 30.80% dijit.form.Button 30.58% dijit.layout.ContentPane 26.57% dijit.form.Form 23.80% dojo.parser 22.85% dojo.data.ItemFileReadStore 22.85% dijit.Calendar 22.55% dijit.form.FilteringSelect 22.26% dijit.form.ComboBox 22.08% dijit.layout.TabContainer 22.01%
    30. 30. Auto Analysis Analysis Type2,0001,5001,000 500 0 Remote URL Local File Profile Total Auto-Analyse Requests - 2180
    31. 31. Auto Analysis Analysis Type Localhost2,0001,5001,000 500 0 Remote URL Local File Profile Total Auto-Analyse Requests - 2180
    32. 32. What’s next?
    33. 33. • Full AMD support (build & auto-analysis)
    34. 34. • Full AMD support (build & auto-analysis)• Dojo Foundation Package Repository
    35. 35. • Full AMD support (build & auto-analysis)• Dojo Foundation Package Repository• Build process purely client-side?
    36. 36. Thank you for listening! http://build.dojotoolkit.org http://github.com/dojo/dwb

    ×