RestGate - Enterprise Integration Server MSE PROJECT Phase II Report 1
Scope Review 2
Original Scope 3
Original Scope Subscribed Senders Request - Reply Polling Senders Content Based Router P2P Channel Message Filter Publish - Subscribe Channel Splitter Validated Structure Channel Aggregator Guaranteed Channel Message Processor Dead Letter Channel Published Message Queue Message Expiration Published Message List Message Sequence Receiver Subscription 3
Original Scope Subscribed Senders Request - Reply Polling Senders Content Based Router P2P Channel Message Filter Publish - Subscribe Channel Splitter Validated Structure Channel Aggregator Guaranteed Channel Message Processor Dead Letter Channel Published Message Queue Message Expiration Published Message List Message Sequence Receiver Subscription 4
New Scope Polling Senders Content Based Router P2P Channel Message Filter Publish - Subscribe Message Processor Channel Published Guaranteed Message Queue Channel Published Message Message List Expiration 5
New Scope* Polling Senders Content Based Router P2P Channel Message Filter Publish - Subscribe Message Processor Channel Published Guaranteed Message Queue Channel Published Message Message List Expiration *All Marked in Red have been Implemented. 6
Architectural Model 7
Use Case Views 8
Use Case Views 8
Use Case Views 8
Use Case Views 8
Message State Diagram 9
Overall Data Flow 10
11
Architectural Layers 12
13
Channel Types Guaranteed Channels Implemented with Delayed Jobs. Uses a Database as process queue. Fast Channels Implemented with Starling. Uses a MemCache as process queue.
15
Class Diagrams 16
17
17
17
17
17
17
17
17
17
Configuration Script 18
Quality and Testing 19
Code Statistics +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 88 | 68 | 3 | 6 | 2 | 9 | | Helpers | 5 | 4 | 0 | 0 | 0 | 0 | | Models | 91 | 74 | 2 | 15 | 7 | 2 | | Libraries | 326 | 272 | 5 | 49 | 9 | 3 | | Integration tests | 0 | 0 | 0 | 0 | 0 | 0 | | Unit tests | 4 | 3 | 1 | 0 | 0 | 0 | | Model specs | 241 | 200 | 0 | 3 | 0 | 64 | | View specs | 34 | 28 | 0 | 1 | 0 | 26 | | Controller specs | 140 | 113 | 0 | 3 | 0 | 35 | | Helper specs | 11 | 7 | 0 | 0 | 0 | 0 | | Library specs | 537 | 435 | 3 | 10 | 3 | 41 | | Routing specs | 63 | 49 | 0 | 0 | 0 | 0 | | Integration specs | 4 | 3 | 0 | 0 | 0 | 0 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 1544 | 1256 | 14 | 87 | 6 | 12 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 418 Test LOC: 838 Code to Test Ratio: 1:2.0
RSpec Statistics 126 Tests written so far. Full code coverage. 836 Lines of Test Code. Code to Test Ratio 1:2
Performance Testing Four different levels of message complexity Small - Integer - 3 Bytes Normal - Strings - 250 Bytes Large - Long Strings - 2.5 KB Huge - Long Strings - 25.5 KB
Testing Configuration 3 to 7 BEOCAT Nodes Types of Tests: 1 Sender - 1 Receiver 3 Senders - 1 Receiver 3 Senders - 3 Receivers
Testing Configuration RestGate Server Running in Separated Node. 1 WebServer Instance 7 Worker Processes Running Tests were performed with both Guaranteed and Fast Channels
Guaranteed vs Fast Guaranteed Channel Fast Channel 4,000 3,000 2,000 1,000 0 Small Normal Large Huge 25
Guaranteed Channel Bottleneck
Testing Observations Fast channels perform around 10% faster than guaranteed channels. Most messages are delivered in around 1 second. The sender spends at most 150 ms to make a delivery request.
Testing Observations Messages with non string fields are slower to process. Memory usage was around 2 GBs of RAM At most 7 processors were ever active for more than 1 minute.
Testing Observations Guaranteed channels start slowing down in a linear manner as message size and congestion increases. Fast channels exhibited a stable behavior on all test cases.
Questions?
Recommend
More recommend