A design pattern for a software architecture includes a business services
layer comprising ApiService class, BusinessService class, Message class
and Field class. ApiService class accepts a request that includes request
parameters and utilizes corresponding instances of Message class and
Field class to translate the request to an input message. The instances
of Message and Field class contain the request parameters in
self-describing form, namely, field names and associated values. The
input message is forwarded to the appropriate subclass of BusinessService
class by ApiService class. The subclass of BusinessService class uses the
input message to retrieve data and generate an output message containing
the data. The output message is generated in self-describing form
utilizing Message class and Field class. ApiService class translates the
output message to a presentation format identified by the request.