4. Introduction
Motivation
...mrrr...
huh? mrrrr......
murr...
• Need language interpreter or “middleman” to
facilitate communication
‣ Middleman for humans............. Interpreter
‣ Middleware for applications........ PADRES
4
5. Introduction
Background
• PADRES
‣ Distributed
- Divide problem up for Brokers
‣ Publish/Subscribe
- Type of communication
‣ Middleware
- Facilitates communication between
software applications
5
8. Introduction
Communication network
What is the
temperature in
Application
Toronto?
Application
S Subscriber
Publisher
Publisher
Brokers
Application
Application
Publisher
Subscriber
8
9. Introduction
Communication network
Application
Application
S Subscriber
Publisher
Publisher
Brokers
Application
Application
Publisher
Subscriber
9
10. Introduction
Communication network
The temperature in Application
Application Toronto is -7
Subscriber
Publisher P
Publisher
S
Brokers
Application
Application
Publisher
Subscriber
10
11. Introduction
Communication network
Application
Application
Subscriber
Publisher P
Publisher
S
Brokers
Application
Application
Publisher
Subscriber
11
12. Introduction
Communication network
The temperature
in Toronto is -7 Application
Application
P Subscriber
Publisher
Publisher
S
Brokers
Application
Application
Publisher
Subscriber
12
14. Part 1: Making it Universal
Standard Formats
• Accept more standardized communication
protocols for information exchange
• XML: long-time standard
• JSON: simple, light-weight
• YAML: highly human-readable
14
15. Part 1: Making it Universal
Implementation
JavaCC Parsers and Message Creation
PADRES Message
JavaCC Parsers
S P A
XML Parser
Message JSON Parser US USC UA
YAML Parser CS
15
17. Part 2: Making it Faster
Currently
• PADRES uses Java RMI
Advantages
Handles threads, sockets
Garbage Collection
Serialization
• Overall not efficient!
17
18. Part 2: Making it Faster
Currently
• PADRES uses Java RMI
Advantages Disadvantages
Handles threads, sockets Strictly Java
Garbage Collection Security Issues
Serialization Overhead
• Overall not efficient!
18
19. Part 2: Making it Faster
Alternatives
• SOAP: uses HTTP as transport
• XML-RPC: same advantages, no support for
unicode characters
• CORBA: supports concurrency; security
and authentication
• RAW Sockets: no overhead, no 3rd party
libraries
19
20. Part 2: Making it Faster
Benchmarking
Alternatives
SOAP XML-RPC CORBA Raw Sockets
0.294
0.30
0.23
0.15
0.083
0.08
0.005
0
0.001
20 Courtesy of IBM DeveloperWorks Web Services
21. Part 2: Making it Faster
Sockets Implementation
• Lot of code
‣ Use NIO package
• Error Control
‣ Ensure it passes all test cases
• Concurrency
‣ PADRES provides framework
21
26. Progress Status & Summary
Project Status
• On Schedule.
Milestones Done?
PADRES Installation Yes
User-client Interface Yes
JavaCC Parsers & Message Creation Yes
Integrate & Test Parsers with Client API Yes
Broker-broker Communication In Progress
Verify & Validate Efficiency Improvement No
Stabilize and Release new version of PADRES No
26
27. Progress Status & Summary
Summary & Conclusion
• Expansion of user-client interface
‣ Parsers for XML, JSON, YAML
• Faster messaging technology
‣ Java NIO Sockets
• Project is on schedule
27