Skip to main content
Blog

Performance Testing Message Oriented Middleware (Part1)

By February 17, 2019December 16th, 2025No Comments4 min read

Introduction

Message oriented middle-ware is an implementation in which software or hardware infrastructure supports sending and receiving messages between homogeneous /heterogeneous distributed systems.

Typically in N-Tier architecture, a presentation tier communicates with the business layer which in turn communicate with database tier. At the presentation tier, customer-facing applications are made beautifully light weighed so that as rendering can be faster and seamless. These customer-facing thick or think client application shares/access information to/from middle-ware tier by publishing the messages through common formats which each of the connected homogeneous(Vendor1 EMS queue->Vendor1 Ems queue) or Heterogeneous(Vendor1 EMS queue->Vendor2 MQ queue->Vendor1 EMS queue) queues which are subscribed and processed by middleware business logic layer. Middle-ware messaging systems, in turn, accepts the inputs from publishers and implements heavily reusable orchestrated business logic to serve the application purposes.

Message Formats

In Message oriented orchestrated Architecture, the messages can flow in/out through different formats. The publisher may publish in one format, the subscriber may subscribe to the same format and use it as is or can subscribe to the message, convert into compatible format and process further. The subscriber can become again publisher and post the message in a particular format, Another subscriber can accept same or converted format and so on…

HygieneSHOP a Case Study

Let’s take a basic shopping system called “H ygieneSHOP” would be designed to have customer facing thin client (web-based)application functionality and also some thick client (standalone) application functionality areas that would be encompassing back office works. A thin web client application is ported onto a well capable multi/hyperthreaded Vendor Application servers(WebLogic/WebSphere/JBoss). Thick clients are a stand-alone vendor (java/.net) based thick client ported onto individual these systems would also be interacting and interchanging information through MOM( message-oriented middleware ) tier. Say HygieneSHOP is designed with below requirements

Customer Login functionality

As per basic design say customer facing thin client application would enable login functionality.As soon as the customer logs in or logs out application ,it evens out an text /pipe delimited messages stream 2015||03||17||xxx||yyy||..||nnn||… message on login. Point to be noted that application would post message in text- Pipe Delimited format

Customer Order functionality

As part of further product design customer are suppose to navigate and choose product/order. this type of functionality carries very sensitive information like credit card details, etc, hence message formats must be secure soon as Navigate the shopping system place order.Hence as per product specification , as soon as an order is placed , all the required information should be encapsulated and thus events out as binary/base 64bit encoded-encrypted messages stream TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGl” . Point to be noted that same application would post encrypted type of messages which base64bit encoded.

Agent Reporting Functionality

As a part of project requirement, an Agent facing(internal) thick client application would be designed. using the same an agent would log in to the system and would generate a report of purchase. an agent would choose the customer and click on a button Say “customer report” It events out XML messages delimited messages stream like

Customer Admin Khounish order report 10012p_110145 USD

Customer Navigation history: Using same thick client an agent can click in button called “Customer History”. once agent does so, standalone thick client events out JASON messages stream like

{“firstName”: “Khounish”, “lastName”: “dasgupta”, “isAlive”: true, “age”: 25, “height_cm”: 167.6, “address”: { “streetAddress”: “21999 xxx Street”, “city”: “timesquare”, “state”: “NY”, “postalCode”: “10021-3100” }, “phoneNumbers”: [ { “type”: “home”, “number”: “212 555-1234” }, { “type”: “office”, “number”: “646 555-4567” } ], “children”: [], “spouse”: null }