Evolving systems and the link to service orientation
-
Upload
angelo-van-der-sijpt -
Category
Technology
-
view
1.807 -
download
0
description
Transcript of Evolving systems and the link to service orientation
Evolving systems and the link to service
orienta4on
...and the search for a shorter .tle
Angelo van der Sijpt
[email protected]://www.flickr.com/photos/artolog/313055444/
$ whoami
• Angelo van der Sijpt
• Commi:er with Apache ACE
• So=ware engineer at Luminis Technologies
• Buzzwords: Java, OSGi, Agile
ARL
http://www.flickr.com/photos/shonk/57302289/
Formal'curriculum• ...• ...• ...• ...
curriculumschool's'objec+ves
personal)learning)path
personal)objec-ves
personal)learning)path
Learning(objec-ves
Goal%selec)on
Learning(objec-ves
Object'selec*on
Executable*learningdesign
Content
Execu&on
Formal'curriculum• ...• ...• ...• ...
school's'objec3vescurriculum
personal'learning'path
Goal'selec3on
personal'objec3ves
Learning(objec-ves
Object'selec*on
Executable*learningdesign
Content
Execu&on
Restric(veeduc.profileEduc.&domain
ARL
Explora(ve
http://www.flickr.com/photos/jeffsmallwood/233853485
• “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?”
The profile service
http://www.flickr.com/photos/crazyneighborlady/411869140/
• Pluggable
• Evolvable
• Driven by code
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");
PIM:Person
Educa/on
Achievement
Subject9Curriculum
LearingObjec/ve
hasEduca/on con
sistOf
SKOS:
hasTopConcept
hasAchieved
SKOS:Concept
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( education() .consistsOf(achievement()), achievement() .hasAchieved(learningdimension("sublearningdimension"))), filter("bound(" + achievement() + ")");
http://www.flickr.com/photos/camknows/4712191684
Service Orienta4on
“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
• Mo.va.on
• Isola.on & decoupling
• (Coping with or causing) dynamic composi.on
• Vocabulary
• Service, component, mandatory/op.onal dependency
• Rules
• Services are self-‐contained
• Interfaces are defined beforehand
• Excluded
• Discovery
• Orchestra.on
• Communica.on method
binding
AB
Service Orienta4on
http://www.flickr.com/photos/artolog/313055444/
Service
Module
Lifecycle
Framework
• Defines a framework
• Bundles (components) are Java jar files
• Contain code, metadata, and arbitrary data
More on OSGi
Hallet al.
OSGi IN ACTION
M A N N I N G
M ANN I N G
Richard S. HallKarl Pauls
Stuart McCullochDavid Savage
FOREWORD BY PETER KRIENS
Creating Modular Applications in Java
SOA and data
• Code centric
• Data never dies, but code can go
• Plugging axioms and entailments
• Allows (de-‐)installa.on of components
• Respects the service dependency tree
• Tradeoffs
• Transform data, or pay with code complexity
Versioning
• Code: we’re ge[ng there
• Major/minor/micro
• Ontologies: version from the start
• Closed system? Place addi.ons in same version
• Open system? Bump version on every change (but minimize those)
© 2010 OSGi Alliance
All Rights Reserved.
Semantic Versioning Technical Whitepaper
Revision 1.0May 6, 2010
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
Evolving systems and the link to service
orienta4on
Angelo van der Sijpt
http://www.flickr.com/photos/98469445@N00/327471676/