SAME-TIME. As discussed in the previous section, dependencies of consumers on services, and
vice versa, can occur because of a business or technological need to deliver messages in a
sequential manner. This dependency can be even greater if a service or a consumer must halt
operations to wait for an expected response. We call this design effect a tightly coupled execution
condition because of the mutual reliance of services and consumers on each other.
A more efficient design approach would be to consider the same-time synchronization
method, by which a service distributes or receives messages in no particular order. In fact, this
routing mechanism does not even have to be sequential; a service can dispatch and obtain messages
at the same time. This method is known as an asynchronous implementation and is advocated by
service-oriented design best practices because of its loosely coupled characteristic advantages.
Indeed, the same-time service synchronization approach can contribute to a service??™s
performance, decoupling capabilities, and design flexibility. But what are the major drawbacks
of such a method? For one thing, lack of service dependency on peers is not always good.
How would a lack of coordination between the conversing entities be managed? And how will
distributed requests match returned results if the services maintain the bidirectional message
exchange method?
To resolve these challenges, consider employing an intermediary or an enterprise service
bus (ESB) that typically manages asynchronous implementation.
Pages:
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433