3. 2
“a set of Java libraries that turn
Servlet-compliant containers and applications
into gCube resources, transparently.”
gCube Wiki
Monday, 14 October 13
10. 5
software we can discover
use without hardcoded knowledge
Monday, 14 October 13
11. 5
software we can discover
use without hardcoded knowledge
monitor and control
take actions when not operational
Monday, 14 October 13
12. 5
software we can discover
use without hardcoded knowledge
monitor and control
take actions when not operational
dedicate to user groups
change policies, assign roles
Monday, 14 October 13
18. 7
management tasks
compile and publish descriptions
track and change status
enforce policies
human solutions
not practical, often impossible
Monday, 14 October 13
19. 7
management tasks
compile and publish descriptions
track and change status
enforce policies
human solutions
not practical, often impossible
automated solutions
local enabling software, remotely controlled
Monday, 14 October 13
30. 10
can’t manage external software
not in gCube, not a SaR
can’t reuse gCube software
in gCube, in gCube only
Monday, 14 October 13
31. 10
can’t manage external software
not in gCube, not a SaR
little incentive to build SaR
can’t reuse gCube software
in gCube, in gCube only
: closed worlds have locks
Monday, 14 October 13
33. 11
one type of SaR
legacy JAX-RPC
no JAX-RS, JAX-WS, or other “hot” techs
Monday, 14 October 13
34. 11
one type of SaR
legacy JAX-RPC
no JAX-RS, JAX-WS, or other “hot” techs
for one container
Globus/Axis
no web containers, no app servers
Monday, 14 October 13
35. 11
one type of SaR
legacy JAX-RPC
no JAX-RS, JAX-WS, or other “hot” techs
for one container
Globus/Axis
no web containers, no app servers
little technical evolution for gCube
: closed worlds become stale
Monday, 14 October 13
41. 13
the visibility problem
top of the stack, in the middle of design
creates locks
can’t work without them
Monday, 14 October 13
42. 13
the visibility problem
top of the stack, in the middle of design
creates locks
can’t work without them
can’t easily replace them
locks rust over time
Monday, 14 October 13
47. 15
installs in any Servlet container
entirely specs-driven
Monday, 14 October 13
48. 15
installs in any Servlet container
entirely specs-driven
wakes up when apps do
considers only apps that carry a SaR “badge”
Monday, 14 October 13
50. 16
a “corolla” of manager components
injects logic in app/request lifecycles
Monday, 14 October 13
51. 16
a “corolla” of manager components
injects logic in app/request lifecycles
listening for remote instructions
extends application API
Monday, 14 October 13
52. 16
a “corolla” of manager components
injects logic in app/request lifecycles
listening for remote instructions
extends application API
if it runs at least one SaR, or until it does
keeps books for the container
Monday, 14 October 13
67. 18
SmartGears like FWS
overlapping sets of “microlibs”
common theme
quarantine legacy
dual roles
make resources vs. call resources
Monday, 14 October 13
68. 18
SmartGears like FWS
overlapping sets of “microlibs”
common theme
quarantine legacy
visible stack vs. invisible runtime
different nature
dual roles
make resources vs. call resources
Monday, 14 October 13
74. 20
a few demands.
Servlet 3
all the right hooks
container descriptor
$GHN_HOME/container.xml
Monday, 14 October 13
75. 20
a few demands.
Servlet 3
all the right hooks
container descriptor
$GHN_HOME/container.xml
application descriptor
WEB-INF/gcube-app.xml
Monday, 14 October 13
91. 26
shared deployment
shared container state
easy and lean app packaging
node consistency and upgrades
some advantages
outside and visible to all apps
Monday, 14 October 13
92. 26
shared deployment
shared container state
easy and lean app packaging
node consistency and upgrades
some advantages
version-clashes harder to handle
much caution
outside and visible to all apps
Monday, 14 October 13
97. 28
with container and app logs
no interference
the only externals
slf4j + logback
Monday, 14 October 13
98. 28
with container and app logs
no interference
the only externals
slf4j + logback
when apps make same choice
difficult cases
Monday, 14 October 13
99. 28
with container and app logs
no interference
the only externals
slf4j + logback
when apps make same choice
difficult cases
and yet we are ok.
Monday, 14 October 13
102. 29
servlets for remote management
API extensions
GET /
GET /profile
GET /configuration
GET /lifecycle
POST /lifecycle
GET /scopes
POST scopes
...<app-root>/gcube/resource...
Monday, 14 October 13
106. 31
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
107. 31
the fabric of gCube
gCube-aware apps
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
108. 31
the fabric of gCube
gCube-aware apps
inspect, subscribe, react
born to be resources
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
109. 31
the fabric of gCube
gCube-aware apps
inspect, subscribe, react
born to be resources
SmartGears must become visible.
from app to resource with a config file
gCube-agnostic apps
Monday, 14 October 13
115. 33
easy access to ApplicationContext
common-smartgears-app
Monday, 14 October 13
116. 33
easy access to ApplicationContext
common-smartgears-app
Servlet 3 @WebListener
adds startup listener to app
Monday, 14 October 13
117. 33
easy access to ApplicationContext
common-smartgears-app
Servlet 3 @WebListener
adds startup listener to app
a ContextProvider
injects context in a static factory
Monday, 14 October 13
118. 33
easy access to ApplicationContext
common-smartgears-app
ApplicationContext = ContextProvider.get()
Servlet 3 @WebListener
adds startup listener to app
a ContextProvider
injects context in a static factory
Monday, 14 October 13