Resilient Distributed Datasets: A Fault-Tolerant Abstraction - Usenix
Automated Abstraction of Flow of Control in a System of Distributed Software Components
-
Upload
nimak -
Category
Technology
-
view
1.604 -
download
1
description
Transcript of Automated Abstraction of Flow of Control in a System of Distributed Software Components
![Page 1: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/1.jpg)
Automated Introspection of a Distributed Virtualization
Platforms for Performance Analysis and Documentation
Nima Kaviani, Michael Miximilien,
Ignacio Silva-Lepe, Isabelle Rouvellou
IBM Research – T.J. Watson Research Centre
University of British Columbia, Vancouver, Canada
![Page 2: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/2.jpg)
![Page 3: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/3.jpg)
Problem
Understanding Distributed Open-source Cloud Platforms
![Page 4: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/4.jpg)
Problem
![Page 5: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/5.jpg)
Problem
Track System Evolution
![Page 6: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/6.jpg)
Problem
Austin Bexar Cactus Diablo
Essex
Folsom
Grizzly
Havana
![Page 7: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/7.jpg)
Problem
Austin Bexar Cactus Diablo
Essex
Folsom
Grizzly
Havana
version 1.0
version 2.0
![Page 8: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/8.jpg)
Problem
Austin Bexar Cactus Diablo
Essex
Folsom
Grizzly
Havana
version 1.0
version 2.0Online Enterprise
![Page 9: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/9.jpg)
Problem
Software Resiliency & Testing
![Page 10: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/10.jpg)
![Page 11: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/11.jpg)
11
CloudFoundry 1.0
CF Client Eclipse Plugin MobilePC
Router
NATS
Mysql Redis Mongo
.....
.
NATS MSGHTTP MSG
DEA
UAA
He
alth
Ma
na
ge
r
Stager
CloudControllerCloud
Controller
Service Pool
Cache
BlobStore
![Page 12: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/12.jpg)
12
CloudFoundry 2.0
CF Client Eclipse Plugin MobilePC
GoRouter
NATS
Mysql Redis Mongo
.....
.
NATS MSGHTTP MSG
DEA
UAA
He
alth
Ma
na
ge
r
CloudControllerCloud
Controller
Service Pool
Cache
BlobStore
Connector
Ext. Services
Apps in warden
Build Packs Dir Server
![Page 13: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/13.jpg)
Code Introspection
capturing message exchanges
![Page 14: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/14.jpg)
Code Introspection
capturing message exchanges
Aquarium: Aspect-oriented programming for Ruby
point-cuts advicejoin-points
![Page 15: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/15.jpg)
15
Aquarium
class Test def test_method puts “Hello World!” endend
![Page 16: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/16.jpg)
16
Aquarium
class Test def test_method puts “Hello World!” endend
join-points
![Page 17: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/17.jpg)
17
Aquarium
class Test def test_method puts “Hello World!” endend
Aspect.new :around, :calls_to => “test_method”, :type_and_descendents => “Test”, :method_options[:public] do |jpt, obj, *args| puts “Pre-Aspect Execution.” result = jpt.proceed puts “Post-Aspect Execution.”end
join-points
![Page 18: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/18.jpg)
18
Aquarium
class Test def test_method puts “Hello World!” endend
Aspect.new :around, :calls_to => “test_method”, :type_and_descendents => “Test”, :method_options[:public] do |jpt, obj, *args| puts “Pre-Aspect Execution.” result = jpt.proceed puts “Post-Aspect Execution.”end
join-points
point-cuts
![Page 19: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/19.jpg)
19
Aquarium
class Test def test_method puts “Hello World!” endend
Aspect.new :around, :calls_to => “test_method”, :type_and_descendents => “Test”, :method_options[:public] do |jpt, obj, *args| puts “Pre-Aspect Execution.” result = jpt.proceed puts “Post-Aspect Execution.”end
join-points
point-cuts
advice
![Page 20: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/20.jpg)
20
Aquarium
class Test def test_method puts “Hello World!” end
alias_method :_aspect_saved_Test_test_method, :test_method
def test_method *args, &block_for_method
# advice chaining # advice invocation end
public :test_method private :_aspect_saved_Test_test_methodend
![Page 21: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/21.jpg)
21
Aquarium
class Test def test_method puts “Hello World!” end
alias_method :_aspect_saved_Test_test_method, :test_method
def test_method *args, &block_for_method
# advice chaining # advice invocation end
public :test_method private :_aspect_saved_Test_test_methodend
rewrite
![Page 22: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/22.jpg)
22
Aquarium
class Test def _aspect_saved_Test_test_method puts “Hello World!” end
def test_method *args, &block_for_method
# advice chaining # advice invocation # making a call to :_aspect_saved_Test_test_method end
public :test_method private :_aspect_saved_Test_test_methodend
![Page 23: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/23.jpg)
Code Inspection
AOP - drawback
![Page 24: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/24.jpg)
Code Inspection
AOP - drawback
Aspect.new :around, :calls_to => “test_method”, :type_and_descendents => “Test”, :method_options[:public] do |jpt, obj, *args| puts “Pre-Aspect Execution.” result = jpt.proceed puts “Post-Aspect Execution.”end
SignatureDependent
![Page 25: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/25.jpg)
Capturing NATS
![Page 26: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/26.jpg)
Capturing REST
REST Http Client
![Page 27: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/27.jpg)
27
CloudFoundry 2.0
CF Client Eclipse Plugin MobilePC
GoRouter
NATS
Mysql Redis Mongo
.....
.
NATS MSGHTTP MSG
DEA
UAA
He
alth
Ma
na
ge
r
CloudController
Service Pool
Cache
BlobStore
Connector
Ext. Services
Apps in warden
Build Packs Dir Server
PROFILER
PR
PR
PR PR
PR
PR
PR PR PR
PR
![Page 28: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/28.jpg)
28
CloudFoundry 2.0
CF Client Eclipse Plugin MobilePC
GoRouter
NATS
Mysql Redis Mongo
.....
.
NATS MSGHTTP MSG
DEA
UAA
He
alth
Ma
na
ge
r
CloudController
Service Pool
Cache
BlobStore
Connector
Ext. Services
Apps in warden
Build Packs Dir Server
PROFILER
PR
PR
PR PR
PR
PR
PR PR PR
PR
Analysis Server
![Page 29: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/29.jpg)
29
Analysis Server
MessageCorrelation
MessageType Resolution
MessageSource Resolution
MessageTarget Resolution
MessageCorrelation
MessageCorrelation
MessageFiltering
SequenceExec Extraction
SequenceExtraction
SequenceDiagram Docs
MessageTemplates
MessagePattern Changes
![Page 30: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/30.jpg)
Documentation Generation
Message Exchange Patterns
![Page 31: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/31.jpg)
31
Message Exchange PatternsChannel Name: dea.advertise
Content: Name Type
app_id_to_count Hash
available_memory FixNum
id String
prod FalseClass
stacks Array
Subscribers: Cloud_Controller
Publishers: DEA
![Page 32: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/32.jpg)
Documentation Generation
Message Exchange Sequences
![Page 33: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/33.jpg)
33
Message Exchange Sequences
Message Snapshots:
![Page 34: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/34.jpg)
34
Message Exchange Sequences
Message Snapshots:
![Page 35: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/35.jpg)
System Evolution
Message Pattern Changes
![Page 36: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/36.jpg)
36
Message Pattern ChangesChannel Name: dea.advertise
Content: Name Type
app_id_to_count Hash
available_memory FixNum
id String
prod NilClass FalseClass
runtimes stacks Array
Subscribers: Cloud_Controller
Publishers: DEA
![Page 37: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/37.jpg)
Evaluations
![Page 38: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/38.jpg)
Evaluations
releasing the documentation
to the CloudFoundry community
![Page 39: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/39.jpg)
39
Evaluation
5 days of active emailing / twitting people11 people responded
![Page 40: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/40.jpg)
40
Evaluation
![Page 41: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/41.jpg)
41
Evaluation
![Page 42: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/42.jpg)
42
Evaluation
![Page 43: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/43.jpg)
43
Evaluation
![Page 44: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/44.jpg)
44
Evaluation
![Page 45: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/45.jpg)
Challenges
![Page 46: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/46.jpg)
Challenges
signature-based AOP is restrictive
![Page 47: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/47.jpg)
Challenges
manual intervention is required
![Page 48: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/48.jpg)
Future Plans
![Page 49: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/49.jpg)
Future Plans
developing a DSL for instrumentation
![Page 50: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/50.jpg)
Future Plans
assessing generalizability
![Page 51: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/51.jpg)
Future Plans
software resiliency tests
![Page 52: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/52.jpg)
Future Plans
increased automation
![Page 53: Automated Abstraction of Flow of Control in a System of Distributed Software Components](https://reader033.fdocuments.us/reader033/viewer/2022061303/5492ca16ac7959482e8b46b2/html5/thumbnails/53.jpg)
Future Plans
code dependency analysis