You are on page 1of 3

Agnostic Services

Agnostic services are not aware of the context in which they are being called, nor are
they aware of how the service is implemented, which platform, technology etc.
An Agnostic service is generic in nature / it is independent of context. A Service something
that is generalized so that it is interoperable among various systems. An autonomous
service which is self-contained.
Non-agnostic services can have one or more forms of coupling or context (ie. process
functional context).Agnostic services have more reuse potential than non-agnostic
services.

An example of the difference can be identified by discussing a "PrintInvoice" service


capability.

This is a service capability which can be described as the logic exposed to print an invoice.
When trying to classify the service it is pretty obvious that this is a non-agnostic service, as it
has capabilities to print invoices and nothing else.

When applying the principles of service design, we should give a service a defined logical
(functional) boundary, which defines the context in which the service operates.

When redesigning the implementation of this service, we could split the service into two
services:
 Print
 Invoice

These are two agnostic services: print service capabilities are bothered with the capability to
print "stuff" and Invoice service capabilities deal with invoice related "stuff".
But due to this separation, it lost the capability to print invoices. To resolve this problem a
third service which combines the two services in one service capability which can deal with
the mechanics of printing invoices is created. It results in the following service-inventory:
As you can see the agnostic services are being composed by the non-agnostic PrintInvoice
service. This allows for the invoice and the print service to be used for other purposes, of
which have depicted a few potential examples below:

The agnostic services can be reused. If this separation of concerns would not have been
applied, instead of ie.reusing the print functionality, for the printletter functionality, the
printing part would have been redeveloped and tailored for the printing of letters. This would
have created some unnecessary/redundant/duplicate logic.

 Agnostic services implement logic that is common to multiple business problems.


Separating agnostic logic into discrete services facilitates service reuse and
composability.
 Principles of Agnostic services are reuse, service composability.
 Agnostic services should explicitly declare that they are agnostic. This makes it
clear to future designers and builders which services are designed to be reused.
Example of Agnostic Services:
Consider various functions of financial banking such as account management, life
insurance, lending or loan management, wealth management, and so on. Each service
might need to share the abilities of other services, rather having them as duplicated rather
then reused.

MCQ:
1. What are the principles of Agnostic services [c]

A.service reuse b.service composability c.All the above d.none

2.An Agnostic service is [a]

a.independent of context b.based on context c.dependent d.none of the above

You might also like