24 Managing Information Access to an EIS Using J2EE and Services Oriented Architecture
Performance
It is obvious that your architecture, when finally designed and implemented, must
perform fast. Consider that by introducing additional logical layers, or even
physical tiers, you have a very real possibility of impacting any service level
agreement (SLA). Be watchful for Yet Another Decoupling Layer (YADL), and be
mindful of the blame-game when performance suffers and response time SLAs
are not met.
Suggestion: Consider adding time stamps to your logical layers and physical
tiers. For example, if your EIS system service performs poorly, is the problem
caused by bad connection pooling with too many concurrent service requests,
or is the problem occurring on the WAN, perhaps within the request and
response handling in the interaction layer of the service end-point?
Alternately, maybe the problem is caused by a back-end system routine that is
running very slowly.
The ability to have this type of information available will greatly assist you
when you re-factor for performance or when you enter the inevitable
blame-game in a critical situation (critsit) meeting over poor performance. Try
to design and build this capability into your solution from the beginning. Do not
attempt to re-factor your EIS integration solution after construction.
You must at least have time stamps for:
???? The total time of the EIS system process
???? Total time spent in the service end-point interaction layer
???? Total time spent in the service end-point processing layer
The EIS service end-point processing layer is the EIS system process.
???? Total time spent in the EIS component
???? Total time to create a back-end request byte buffer
???? Total time to execute a J2C javax.resource.cci.Interaction
Usually you can view this time as the time spent in the network (LAN or
WAN) plus the execution time of the back-end transaction. If, for example,
the back-end systems team says that the back-end transaction execution
time was 500ms but this time indicates 3000ms, then you can assert that
the other 2500ms was either the network (likely) or the J2C connector (less
likely).
???? Total time to parse a back-end response byte buffer
If you have these time stamps available, you can focus on the layers or
components that are causing bad responses when you have these type of
issues with your back-end integration architecture.