h-ubu
Service-Orientation in
JavaScript
Clement Escoffier
Philippe Lalanda
Nicolas Rempulski
JavaScript coding
=> or explosions ?
var foo;
  alert(foo == null); // true
  alert(foo == undefined); // true
  alert(foo === null); // false
  alert(foo === ...
a = 1;
  (function(){
    b=2;
    alert(a);
  })(); // 1
  alert(b); //2 -> b is global
alert(1+"10"); // 110
alert(1+”1"+1); // 111
What would be
nice ?
Components
Interfaces
Required
Provided
Dependency
Injection
Events
Received
Sent
Would it be
enough ?
Traditional
Component model
Variability
Dynamic	
  
Bootstrap	
  
Packaging	
  
Platform-based variability	
  
Dynamic adaptability	
  
Dynamic adaptability	
  
X

 X
Do we need this
dynamism ?
Connectivity	
  
Device
features	
  
Sensors	
  
User actions	
  
Neighbors	
  
Failures	
  
Ok, but what is
h-ubu ?
h-ubu is a
Service-oriented
Component model
components
contracts
(i.e. interfaces)
dynamic services
1 - Publication
2 – Lookup,
Notifications,
Selection
3 - Binding
dynamic services
Registry
Programming
model	
  
Architectural
shift	
  
Issues	
  
var	
  provider	
  =	
  {	
  
	
  configure	
  :	
  function(hub,	
  conf)	
  {	
  	
  
	
   	
  hub.provideService({	
  
...
var	
  consumer	
  =	
  {	
  
	
  configure	
  :	
  function(hub,	
  conf)	
  {	
  	
  
	
   	
  hub.requireService({	
  
...
Easy
adoption	
  
Nb of
components	
  
Time	
  
JavaEE	
  
Mobile	
  
Mobile
Web	
  
Server	
  
Web
Desktop	
  
h bu
h#p://nanoko-­‐project.github.io/h-­‐ubu/snapshot/	
  
Thanks	
  
h-ubu - An industrial-strength service-oriented component model for JavaScript applications
h-ubu - An industrial-strength service-oriented component model for JavaScript applications
h-ubu - An industrial-strength service-oriented component model for JavaScript applications
h-ubu - An industrial-strength service-oriented component model for JavaScript applications
Upcoming SlideShare
Loading in...5
×

h-ubu - An industrial-strength service-oriented component model for JavaScript applications

920

Published on

In the last years, we developed web applications requiring a large amount of JavaScript code. These web applications present adaptation requirements. In addition to platform-centric adaptation, applications have to dynamically react to external events like connectivity disruptions. Building such applications is complex and we faced sharp maintainability challenges. This paper presents h-ubu, a service-oriented component framework for JavaScript allowing building adaptive applications. h-ubu is used in industrial web applications and mobile applications. h-ubu is available in open source, as part of the OW2 Nanoko project.

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

  • Be the first to like this

No Downloads
Views
Total Views
920
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

h-ubu - An industrial-strength service-oriented component model for JavaScript applications

  1. 1. h-ubu Service-Orientation in JavaScript Clement Escoffier Philippe Lalanda Nicolas Rempulski
  2. 2. JavaScript coding => or explosions ?
  3. 3. var foo;   alert(foo == null); // true   alert(foo == undefined); // true   alert(foo === null); // false   alert(foo === undefined); // true
  4. 4. a = 1;   (function(){     b=2;     alert(a);   })(); // 1   alert(b); //2 -> b is global
  5. 5. alert(1+"10"); // 110 alert(1+”1"+1); // 111
  6. 6. What would be nice ?
  7. 7. Components
  8. 8. Interfaces Required Provided
  9. 9. Dependency Injection
  10. 10. Events Received Sent
  11. 11. Would it be enough ?
  12. 12. Traditional Component model
  13. 13. Variability Dynamic   Bootstrap   Packaging  
  14. 14. Platform-based variability  
  15. 15. Dynamic adaptability  
  16. 16. Dynamic adaptability   X X
  17. 17. Do we need this dynamism ?
  18. 18. Connectivity   Device features   Sensors   User actions   Neighbors   Failures  
  19. 19. Ok, but what is h-ubu ?
  20. 20. h-ubu is a Service-oriented Component model
  21. 21. components
  22. 22. contracts (i.e. interfaces)
  23. 23. dynamic services
  24. 24. 1 - Publication 2 – Lookup, Notifications, Selection 3 - Binding dynamic services Registry
  25. 25. Programming model   Architectural shift   Issues  
  26. 26. var  provider  =  {    configure  :  function(hub,  conf)  {        hub.provideService({        component:  this,        contract:  myService      });    },    start  :  function()  {  },    stop  :  function()  {},    doSomething  :  function()  {  …  }   }   1 - Publication Registry 2 – Lookup, Notifications, Selection 3 - Binding
  27. 27. var  consumer  =  {    configure  :  function(hub,  conf)  {        hub.requireService({        component:  this,        contract:  myService,        field:  "svc"      });    },    //  …    work  :  function()  {      this.svc.doSomething();    }   }   1 - Publication Registry 2 – Lookup, Notifications, Selection 3 - Binding
  28. 28. Easy adoption  
  29. 29. Nb of components   Time  
  30. 30. JavaEE   Mobile   Mobile Web   Server   Web Desktop  
  31. 31. h bu h#p://nanoko-­‐project.github.io/h-­‐ubu/snapshot/   Thanks  
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×