6.1. Designing the Service

6.1.1. Separating Service Interface and Implementation

The service should be designed with the interface and implementation separated. The characteristics and benefits of this practice are

  • The interface between the caller and the callee is well defined

  • The interface is the only coupling point between the caller and the callee

  • Any change made to the implementation portion of the callee does not impact the caller. We know that software always evolves. This minimizes the impact by bug fixes or feature enhancements, and significantly contributes to the stability of the entire software system.

  • We can apply useful abstractions. For example, a file system service can offer its callers simple abstractions of reading, writing, ...

Get Programming Open Service Gateways with Java Embedded Server™ Technology now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.