Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Evolving systems and the link to service orientation

556 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Evolving systems and the link to service orientation

  1. 1. Evolving
systems
and
 the
link
to
service
 orienta4on What will I show? - A case of using semantic data - theory behind service orientation - And how to marry those Also, note that there will be some theory, some technology, some code ...and
the
search
for
a
shorter
4tleAngelo
van
der
Sijptangelo.vandersijpt@luminis.eu http://www.flickr.com/photos/artolog/313055444/
  2. 2. $ whoami• Angelo
van
der
Sijpt• Commi?er
with
Apache
ACE• SoAware
engineer
at
Luminis
 Technologies• angelo.vandersijpt@luminis.eu

• Buzzwords:
Java,
OSGi,
Agile
  3. 3. Adaptive Recommended Learning Tell about ARLs vision: “we cannot let students learn in this way,” in which ‘s tudents’ is interpreted broadly. The core pattern looks about the same for everyone; rambleARL about the axes of ‘institute- personal’ and ‘s chool-work’ ; the only differences are (mainly) in presentation. http://www.flickr.com/photos/shonk/57302289/
  4. 4. !"#$%&()##*()&)$ + ,,, + ,,, !"#$$%&!$()*"+,*! !"##$!"%"& !"#$%&()%*+",-."$ + ,,, + ,,, !"#$%&()("#&*&+)!,-
  5. 5. !"#$%&()("#&*&+)!,- !"#$%&$()"* !"#$%&%( )*+",-."/
  6. 6. !"#$%&%( )*+",-."/ !"#$%&($)$%*+,!"#$%#$ !"#$%&()#* )#+,-,. /#0-., !"#$%&(
  7. 7. !"#$%&()##*()&)$ + ,,, + ,,, -(.""&/-"012(342- ()##*()&)$ 52#-"6%&"012(342- + ,,, + ,,, 52#-"6%&&2%#6*675%8. 9"%&-2&2(3"6 !"#$%&%( )*+",-."/ !"#$%&($)$%*+, !"#$%#$ !"#$%&()#* )#+,-,. /#0-., !"#$%&(
  8. 8. !"#$%&()##*()&)$ + ,,, + ,,, -(.""&/-"012(342- ()##*()&)$ 52#-"6%&"012(342- + ,,, + ,,, 52#-"6%&&2%#6*675%8. 9"%&-2&2(3"6 !"#$%&%( )*+",-."/ !"#$%&($)$%*+, !"#$%#$ !"#$%&()#* )#+,-,. /#0-., !"#$%&(
  9. 9. !"#$%&()##*()&)$ + ,,, + ,,, -(.""&/-"012(342- ()##*()&)$ 52#-"6%&"012(342- + ,,, + ,,, 52#-"6%&&2%#6*675%8. 9"%&-2&2(3"6 !"#$%&%( )*+",-."/ !"#$%&($)$%*+, !"#$%#$ !"#$%&()#* )#+,-,. /#0-., !"#$%&(
  10. 10. !"#$%&()##*()&)$ + ,,, + ,,, -(.""&/-"012(342- ()##*()&)$ 52#-"6%&"012(342- + ,,, + ,,, 52#-"6%&&2%#6*675%8. 9"%&-2&2(3"6 !"#$%&%( )*+",-."/ !"#$%&($)$%*+, !"#$%#$ !"#$%&()#* )#+,-,. /#0-., !"#$%&(
  11. 11. http://www.flickr.com/photos/jeffsmallwood/233853485
  12. 12. http://www.flickr.com/photos/jeffsmallwood/233853485
  13. 13. !"&( #$% )*! http://www.flickr.com/photos/jeffsmallwood/233853485
  14. 14. !" &( #$% )*! !"#$%&"()*+ http://www.flickr.com/photos/jeffsmallwood/233853485
  15. 15. !"# !" &( #$% )*! !"#$%&"()*+ http://www.flickr.com/photos/jeffsmallwood/233853485
  16. 16. !"# !" #$ %& ( )" !" &( #$% )*! !"#$%&"()*+ http://www.flickr.com/photos/jeffsmallwood/233853485
  17. 17. !"# )* !" ( #$ %& %& ( #$ )"!" !" &( #$% )*! !"#$%& "()*+ http://www.flickr.com/photos/jeffsmallwood/233853485
  18. 18. !"#• “Where
is
this
student
compared
to
his
class?” )* !" ( #$ %& %& (• “What
learning
style
do
I
have?” #$ )" !" !" & #$% () *!• “Who
else
has
problems
with
this?” !"#$%& "()*+• “What
should
I
do
now?” http://www.flickr.com/photos/jeffsmallwood/233853485
  19. 19. The
profile
service Ramble a bit about profiling: building a picture of a user over time, by gathering data. We don’t know the questions we’re going to ask, and we don’t know the data we want to put in there. http://www.flickr.com/photos/crazyneighborlady/411869140/
  20. 20. • Pluggable• Evolvable Driven by code: we want code usage to be leading, supporting changes in• Driven
by
code underlying data
  21. 21. Query q = new Query() .select(person()) .where(person().firstName(literal("Roy")));RowSet<Row> rowSet = q.select(model);Person roy = rowSet.iterator().next().get(person());roy.lastName();roy.lastName("Trenneman");
  22. 22. !"#$!%&() 6,78%-59 :,&&2-,;,4 1.A(B:()-%B5 6@>6$ 1.*+,-./() 0-12%3%4%)5 1. 0 >? -1 6@>6$:()-%B5 25 2%3 -() %+*+,-./() <%.&2)= >78%-/3%
  23. 23. new Query().select(curriculum().label(), learningDimension(),learningDimension().label(), achievement(),learningdimension("sublearningdimension")) .where( curriculum() .hasTopConcept(learningDimension()) .label()), learningdimension("sublearningdimension") .broader(learningDimension()) learningDimension() .label(), p.has(education()), optional( Point out - a more involved example education() - better readable than Sparql .consistsOf(achievement()), - note how we extend the Person class here (we have defined a ‘p’ achievement() outside of this scope) .hasAchieved(learningdimension("sublearningdimension"))), filter("bound(" + achievement() + ")");
  24. 24. Service
Orienta4on Poll: what do you think of when I say “SOA”? Explain that SOA is not REST, not web services, but an architectural style in its own. Manifestations from large to small. http://www.flickr.com/photos/camknows/4712191684
  25. 25. http://www.flickr.com/photos/camknows/4712191684
  26. 26. “A
Service
Oriented
Architecture
is
comprised
of
independently
defined
components,
providing
services
through
agreed‐upon
interfaces.
Components
can
in
turn
have
dependencies
on
other
services.” http://www.flickr.com/photos/camknows/4712191684
  27. 27. “A
Service
Oriented
Architecture
is
comprised
of
independently
defined
components,
providing
services
through
agreed‐upon
interfaces.
Components
can
in
turn
have
dependencies
on
other
services.” http://www.flickr.com/photos/camknows/4712191684
  28. 28. “A
Service
Oriented
Architecture
is
comprised
of
independently
defined
components,
providing
services
through
agreed‐upon
interfaces.
Components
can
in
turn
have
dependencies
on
other
services.” http://www.flickr.com/photos/camknows/4712191684
  29. 29. “A
Service
Oriented
Architecture
is
comprised
of
independently
defined
components,
providing
services
through
agreed‐upon
interfaces.
Components
can
in
turn
have
dependencies
on
other
services.” http://www.flickr.com/photos/camknows/4712191684
  30. 30. “A
Service
Oriented
Architecture
is
comprised
of
independently
defined
components,
providing
services
through
agreed‐upon
interfaces.
Components
can
in
turn
have
dependencies
on
other
services.” http://www.flickr.com/photos/camknows/4712191684
  31. 31. Service
Orienta4on• Mo4va4on • Isola4on
&
decoupling • (Coping
with
or
causing)
 & dynamic
composi4on to ramble about: Something difference bet ween SOA and !"#$"#%• Vocabulary Ser vice Orientation • Service,
component,
 mandatory/op4onal
 dependency • Excluded• Rules • Discovery • Services
are
self‐contained • Orchestra4on • Interfaces
are
defined
 • Communica4on
 beforehand method
  32. 32. Services aren’t big The dependency treehttp://www.flickr.com/photos/artolog/313055444/
  33. 33. Services aren’t big The dependency treehttp://www.flickr.com/photos/artolog/313055444/
  34. 34. TODO think up the backstory here,how do we work in OSGi?TODO how do we work in Amdatu?Describe the notion of a ‘s ervicecomponent’.For services to work, we need todefine how they communicate.We can as well package that up.Look, we invented OSGi!; nowdescribe the layers.
  35. 35. TODO think up the backstory here,how do we work in OSGi?TODO how do we work in Amdatu?Describe the notion of a ‘s ervicecomponent’.For services to work, we need todefine how they communicate.We can as well package that up.Look, we invented OSGi!; nowdescribe the layers.
  36. 36. TODO think up the backstory here,how do we work in OSGi?TODO how do we work in Amdatu?Describe the notion of a ‘s ervicecomponent’.For services to work, we need todefine how they communicate.We can as well package that up.Look, we invented OSGi!; nowdescribe the layers.
  37. 37. TODO think up the backstory here, how do we work in OSGi? TODO how do we work in Amdatu? Describe the notion of a ‘s ervice component’.!"#$%&"( For services to work, we need to define how they communicate. We can as well package that up. Look, we invented OSGi!; now describe the layers.
  38. 38. TODO think up the backstory here, how do we work in OSGi? !"#$%&%$ TODO how do we work in Amdatu? Describe the notion of a ‘s ervice component’.!"#$%&"( For services to work, we need to define how they communicate. We can as well package that up. Look, we invented OSGi!; now describe the layers.
  39. 39. !"#$%& TODO think up the backstory here, how do we work in OSGi? !"#$%&%$ TODO how do we work in Amdatu? Describe the notion of a ‘s ervice component’.!"#$%&"( For services to work, we need to define how they communicate. We can as well package that up. Look, we invented OSGi!; now describe the layers.
  40. 40. !"#$%&" !"#$%& TODO think up the backstory here, how do we work in OSGi? !"#$%&%$ TODO how do we work in Amdatu? Describe the notion of a ‘s ervice component’.!"#$%&"( For services to work, we need to define how they communicate. We can as well package that up. Look, we invented OSGi!; now describe the layers.
  41. 41. More
on
OSGi So: we can put semantic data in here! • Defines
a
framework • Bundles
(components)
are
Java
jar
files • Contain
code,
metadata,
and
arbitrary
data Hall et al. C rea tin g M odu lar A ppl ica tio ns in J avaOSGi IN ACTION Richard S. Hall Karl Pauls Stuart McCulloch David Savage FOREWORD BY PETER KRIENS MANNING
  42. 42. More
on
OSGi So: we can put semantic data in here! • Defines
a
framework • Bundles
(components)
are
Java
jar
files • Contain
code,
metadata,
and
arbitrary
data Hall et al. C rea tin g M odu lar A ppl ica tio ns in J avaOSGi IN ACTION Richard S. Hall Karl Pauls Stuart McCulloch David Savage FOREWORD BY PETER KRIENS MANNING
  43. 43. SOA
and
data
  44. 44. • Code
centric• Data
never
dies,
but
code
can
go• Plugging
axioms
and
entailments
  45. 45. • Allows
(de‐)installa4on
of
components• Respects
the
service
dependency
tree• Tradeoffs • Transform
data,
or
pay
with
code
complexity
  46. 46. Versioning Semantic Versioning• Code:
we’re
ge[ng
there Technical Whitepaper Revision 1.0 May 6, 2010 • Major/minor/micro• Ontologies:
version
from
the
 start • Closed
system?
Place
addi4ons
in
 © 2010 OSGi Alliance All Rights Reserved. same
version • Open
system?
Bump
version
on
 Talk a bit about what every
change
(but
minimize
those) ‘backwards compatibility’ means
  47. 47. In
short• Code
and
data
can
learn
from
each
other• Evolve
code
and
data
together • Package
them
together• Consider
your
versioning
scheme • Do,
or
don’t,
worry
about
interchangeability
  48. 48. Evolving
systems
and
 the
link
to
service
 orienta4onAngelo
van
der
Sijptangelo.vandersijpt@luminis.eu http://www.flickr.com/photos/98469445@N00/327471676/

×