![Page 1: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/1.jpg)
sCrawlerSOA Dependency Tracker
Sandeep PhukanOracle SSI
Prestige Tech Park, Bangalore, India
![Page 2: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/2.jpg)
Agenda
• What is Dependency• Computational Graphs for Dependency• Designtime Vs Runtime• Oracle SOA Gaps• sCrawler Abilities• Crawling Algorithm• Demo• References• Questions And Answers
![Page 3: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/3.jpg)
What is Dependency
• Dependency is a relationship between one entity to another
• In SOA Context, dependency means– Which endpoints are referred to by a BPEL or ESB Service
– Which types of Adapters are referred to by BPEL or ESB Service
– Which external services / Abstract WSDLs are referred by BPEL or ESB Service
– Given a change to a particular Service, which other services might be impacted immediately, etc
![Page 4: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/4.jpg)
Computational Graphs for Dependency
• Graphs can be directed or undirected– ESB Request Response BPEL (bi-directional)– ESB One Way BPEL (unidirectional)
• Multi Graphs allow more than a single relationship to be modeled– InboundAdapter to ESB one to Many– BPEL to ESB Many to One
• Cyclic Relationships can be identified– ESB1 BPEL1BPEL2…… ESB1
![Page 5: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/5.jpg)
Designtime Vs Runtime
Runtime
ChangeTime
DesignTime
![Page 6: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/6.jpg)
Oracle SOA Gaps
• There is no graphical means to track Designtime dependencies end to end– InboundAdapter ESB BPEL ESB OutboundAdapter
• Time Consuming Tasks – Track manually via Enterprise Manager– Heavy on XML– Refer to JDeveloper Source Code– Requires good understanding of Oracle SOA Internals
• Difficult to do quick Impact Analysis
![Page 7: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/7.jpg)
Visibility Use Case
![Page 8: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/8.jpg)
Visibility Use Case (contd)
![Page 9: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/9.jpg)
Visibility Use Case (contd)
![Page 10: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/10.jpg)
sCrawler Abilities
• Provides a graphical end to end view of SOA Designtime Artifacts– ESB Services– BPEL Processes– Inbound and Outbound Adapters– Abstract WSDLS– External Services– Message Exchange Patterns
• No understanding of Oracle SOA required
• Zero configuration, Completely Automatic– Only input is URL of a SOA Artifact– Runs as a Standalone Application
![Page 11: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/11.jpg)
sCrawler Abilities (contd)• Scalable
– Thread Pools, Thread Safe, Deterministic response time – 263 Artifacts,166 Relationships, 101 Integration Scenarios crawled in 22
secs at an average of 72 ms per artifact on Oracle Application Server running on a single 2.2Ghz CPU using 8 worker threads
• Complete separation of concern: sCrawler Graph Vs Visualization
• Can be plugged with any XML based graphics Rendering Engine– sCrawler Flex via BlazeDS– sCrawler SVG via Batik– sCrawler Microsoft Documents via Apache POI
![Page 12: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/12.jpg)
sCrawler Abilities (contd)
• Quick and Effective Impact Analysis– Finding bottlenecks (Fan Out, Fan In)– Finding Impacted Services or Processes
• Graph can be extended for– Discovering Paths for Parallel Deployment– Automatic endpoint testing via Stubs– Endpoint monitoring for an Integration Scenario– Development Effort Estimation
![Page 13: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/13.jpg)
sCrawler Abilities (contd)Worker Threads Average Time Per Artifact(ms) Total Generation Time(secs)
1 110 32
4 85 25
10 80 23
20 72 21
![Page 14: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/14.jpg)
sCrawler Abilities (contd)
Graphical Abstractions
![Page 15: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/15.jpg)
sCrawler Abilities (contd)
Message Exchange Patterns
![Page 16: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/16.jpg)
sCrawler Abilities (contd)
Cyclic Views
![Page 17: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/17.jpg)
sCrawler Abilities (contd)
Graphical Impact Analysis
![Page 18: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/18.jpg)
sCrawler Abilities (contd)
Ease of Use
![Page 19: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/19.jpg)
sCrawler Abilities (contd)
Pluggable Front end
![Page 20: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/20.jpg)
Crawling Algorithm
Process
Process
Process
Process
Process
Iterative Recursive Algorithm: Simple Approach• If runtime of process is NULL, return graph• Else, add parent Node to graph and find list of
immediate children• If list is NULL, return graph• Else, for each child in children, add child Node to
graph and link [parent,child]• Call Step 1 with child runtime O(nlogN)
![Page 21: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/21.jpg)
Demo
![Page 22: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/22.jpg)
References
1. http://code.google.com/p/scrawler/
2. http://www.oracle.com/technology/pub/articles/scrawler_sandeep_phukan.html
3. http://blogs.oracle.com/SoaRanch/sCrawler%20Paper.pdf
4. http://blogs.oracle.com/SoaRanch/2008/12/soa_process_dependency_trackin.html
![Page 23: SCrawler SOA Dependency Tracker Sandeep Phukan Oracle SSI Prestige Tech Park, Bangalore, India sandeep.phukan@oracle.com](https://reader036.vdocument.in/reader036/viewer/2022062518/56649f275503460f94c3f6c7/html5/thumbnails/23.jpg)
Questions & Answers