Designing IA for AI - Information Architecture Conference 2024
Automated Abstraction of Flow of Control in a System of Distributed Software Components
1. 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
17. 17
Aquarium
class Test
def test_method
puts “Hello World!”
end
end
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
18. 18
Aquarium
class Test
def test_method
puts “Hello World!”
end
end
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
19. 19
Aquarium
class Test
def test_method
puts “Hello World!”
end
end
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
20. 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_method
end
21. 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_method
end
rewrite
22. 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_method
end