Home Page - 2002-06-16

Defining an Information system in terms of services has become quite popular for
some time now. Be it EJB, CORBA services or off-late Web Services,
the fundamental idea behind them all is to split the requirements of a system as
services, having well-defined responsibilities. It is important to differentiate
between the technology and the underling architecture, as in this article we will
be concentrating more on the architecture, business and Software Engineering angle
rather than the core technology and the implementation aspect. We will also be
going through some of the generic guiding principles in engineering service
architectures.

...We would also require a stubborn and confident manager here who puts
preferred service architecture into action. Any kind of slackness in making a service
generic would make the organizational information system chaotic and inconsistent in
the long run. The role of the approval system will be to review the service request
in pure OO terms and keeping in mind the defined guiding principles of the
organization, irrespective of the technology used.

Then in C++ there was a shower of jargons: Class, Object, Virtual, Abstract,
Overloading, Friend, Inheritance, Encapsulation, Polymorphism, Template, etc.
Each jargons have individual meaning and functionality, but everything looked like
a nightmare to me! I used C++ more as a procedural language than as object
oriented. I did many graphics programs which were more interesting; and few samples
for each jargon, without knowing the real use of it.

...Interface at the first sight looked as strict Abstract class without any
implementation. But this was supposed to be a replacement for multiple inheritances.
When I dug out the real use of Interface it was amazing. The key feature of Interface
is it can be implemented by many classes (i.e. unlike abstract classes this
can be implemented by non-hierarchical classes), and one class can implement
many interfaces...