Slides from presentation at GraphConnect London 19/11/2013 about performing an impact analysis using Neo4J graph database in the domain of web service integration.
8. What are (Web) Services?
•
Services
– Encapsulate
• Business logic
• Data logic
– Encourage code reuse
– Are integration building blocks
•
Business logic
Data logic
Service Parts
– Implementation
– Interface
– Contract
19/11/2013
Archimiddle
8
10. The functional SOA Graph
The “soft stuff”
Who uses what, when and how?
19/11/2013
Archimiddle
10
11. The functional SOA Graph
Actor
Business process
:ACTS_IN
:PLAYS_ROLE
User
:CONTAINS_ACTIVITY
Business activity
:USES_SERVICE
:USES_SERVICE
Service Usage Agreement
:OBEYS
Service Level Agreement
:DEFINES_SLA
:USES_SERVICE
Service
:HAS_IMPL
:HAS_CONTRACT
:HAS_ITF
Contract
Implementation
:DEFINES_ITF
:SUPPORTS_ITF
Interface
19/11/2013
Archimiddle
11
12. The functional SOA Graph
Building the functional graph requires
custom user interface to maintain the
soft entity relations
Service repository functionality
19/11/2013
Archimiddle
12
13. The technical SOA Graph
The “hard stuff”
The technical contract
19/11/2013
Archimiddle
13
14. The technical SOA Graph
Interface
:IS_DESCRIBED_BY
XML Group
:USES_ELMS
WSDL
:NAMES
XML Element
:DEFINES_OPS
Namespace
XML Schema
:REQUESTS
19/11/2013
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
:RECEIVES
:USES
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
14
15. The technical SOA Graph
Building the technical graph requires an
automated tool
Service repository functionality
19/11/2013
Archimiddle
15
18. Impact of change
Interface
CHANGE!
:IS_DESCRIBED_BY
XML Group
:USES_ELMS
WSDL
:NAMES
XML Element
:DEFINES_OPS
Namespace
XML Schema
:REQUESTS
19/11/2013
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
:RECEIVES
:USES
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
18
19. Impact of change
Interface
:IS_DESCRIBED_BY
XML Group
:USES_ELMS
WSDL
:NAMES
XML Element
:DEFINES_OPS
Namespace
XML Schema
:REQUESTS
19/11/2013
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
:RECEIVES
:USES
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
19
20. Impact of change
Interface
:IS_DESCRIBED_BY
XML Group
:USES_ELMS
WSDL
:NAMES
XML Element
:DEFINES_OPS
Namespace
XML Schema
:REQUESTS
19/11/2013
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
:RECEIVES
:USES
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
20
21. Impact of change
Interface
:IS_DESCRIBED_BY
XML Group
:USES_ELMS
WSDL
:NAMES
XML Element
:DEFINES_OPS
Namespace
XML Schema
:REQUESTS
19/11/2013
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
:RECEIVES
:USES
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
21
22. Impact of change
Interface
:IS_DESCRIBED_BY
XML Group
:USES_ELMS
WSDL
:NAMES
XML Element
:DEFINES_OPS
Namespace
XML Schema
:REQUESTS
19/11/2013
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
:RECEIVES
:USES
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
22
23. Impact of change
Interface
:IS_DESCRIBED_BY
XML Group
:USES_ELMS
WSDL
:NAMES
XML Element
:DEFINES_OPS
Namespace
XML Schema
:REQUESTS
19/11/2013
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
:RECEIVES
:USES
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
23
24. Impact of a small change
Interface
:IS_DESCRIBED_BY
WSDL
Impact
can be large
XML Element
Namespace
:USES
:DECLARES_ELEMENT
:DEFINES
:USES_ELM
XML Type
:NAMES
Operation
XML Schema
:REQUESTS
19/11/2013
:USES_ELMS
:NAMES
:DEFINES_OPS
:RECEIVES
XML Group
Message
:DECLARES_TYPE
:IS_DEFINED_BY
Archimiddle
24
26. Meteorite version 1.0
Build the technical graph
•
Read the technical contract
– WSDL
– XML schema
•
•
•
Parse it
Build the graph
Store the graph
Perform impact analysis
•
•
•
•
Pick a point of change
Traverse the graph “upward”
Build the “impact graph”
Make it available off-line
– In embedded Neo4J
19/11/2013
Archimiddle
26
27. Meteorite version 1.0
https://meteorite.archimiddle.com/
Test set:
http://www.archimiddle.com/wp-content/uploads/2013/08/meteorite-test.rar
Step-by-step guide:
http://ignazw.blogspot.be/2013/08/meteorite-test-set.html
Collection of WSDL and
XML schema files
19/11/2013
Archimiddle
27
28. Meteorite Practical Usage
•
Logon
– Google or LinkedIn account
•
Upload data
– Zip and rar supported
•
Search the node you want to analyse
– Go down the tree or use the search box
•
Start the impact analysis
– View or download the results
• Visual graph
• Textual path data
19/11/2013
Archimiddle
28
37. Final words
A Graph DB is excellent for performing impact
analysis of events on highly connected
systems
Events can be anything: a change, a failure,
an addition, …
Thousands of use cases exist
19/11/2013
Archimiddle
37