RIA cooking SOA: Emerging Face
of Internet Technology
Prof. Arup Maity
President & CEO, Blastasia
Inc.
No, RIA is not the girl next door, it
is the name of the new emerging technology that we will be building
and using more and more over the next 5 years. RIA stands for
Rich Internet Application, basically in short for providing
rich user experience ala greatdesktop application over the internet
without the need to install anything on the client machine.
And SOA is not the beans we are talking
of which produces oil to meat substitute, but short for Service
Oriented Architecture, in short of designing software applications,
more so the logic end of the application into several loosely
related (coupled) stand alone units that perform specific service
on request. My favorite childhood game of Lego is what comes
to my mind while thinking of SOA, like with same set of 110
parts of ‘lego' you can create a car or a plane or a house etc;
whatever put together makes sense and also not all 110 are used
always. Of course, the lego example is over simplified version,
but I can not help imagine it the same way. SOA is promised
to be the logical solution to flexibility and cost reduction
from re-use of codes for today's corporations.
So how does both relate together, how
is RIA involved in the cooking of SOA? Well, the nature of both
RIA and SOA makes it logical partner, SOA as a loosely coupled
component of the application system, rarely have a front end,
and RIA's capability to be independent of the Mid and back end
makes it logical choice, not that we cant build it with HTML
front end, but 100% HTML front end has its own inherent shortcomings
to make it not the ideal choice for corporate applications.
Let us now try to explore some of the
promises of both the technology in little more details, after
all we business people have to have a benefit of using it, we
do not just want to jump in because it is new. Sometimes ago
in one of our R&D brainstorming meetings I along with the
team listed down a set of issues that today's internet applications
have and when we came across RIA, it seems to be the answer
to most of them. Let me list down the possibilities from using
RIA:
- Rich UI: have you ever wished that
your hotmail or yahoo mail was as easy to use as Outlook;
well RIA is the answer to those wishes. Now with RIA you do
not have to wait for the list of address to load while you
are trying to find the name of the friend while on the phone,
it's a click away like in your outlook.
- Zero Touch Install: basically the
idea is, nothing has to be installed on the user PC for it
to have the Rich UI. Imagine that, your hard disk does not
get filled up, your memory does not need to be updated every
year and the problem of application installation error etc
all gone.
- Reduce need for IT support: Though
not eliminated, RIA promised to reduce the dependence on the
onsite IT support. As the application is not installed on
the user PC, there is nothing related to the application that
can go wrong on individual PC, everything can be managed remotely,
new version getting to be available without any effort on
the user end. So no more long wait for the download of patches
and installing them. For a large organization this can result
in substantial savings.
- Supports Disconnected Use: Think of
Outlook mail application again, you can check your mail online
or offline, you can write new mails outside the office and
when you connect to the internet the synchronization happens.
RIA promises this possibility with other enterprise applications
also, on the Laptop, on the PDA, several applications can
reside while on disconnected mode and allow the users to continue
their work even offline, once in the network, everything gets
updated. But even I am still waiting to see a successful implementation
of this feature.
- Platform Independence , well short
of: as its still an emerging technology, not all form of it
does support this feature, but ideally RIA applications are
suppose to be independent of the client operating system.
So anyone in the organization using any type of PC can use
corporate applications without worrying about if it will run.
All the above are the features and possibilities
of RIA, but please do not forget RIA is the front end of the
application, there is still the Database at the backend and
processing of the data to the business logic at the middle end
to provide meaningful inputs to the front end of the application.
There comes the concept of SOA. Not that you need SOA to make
a RIA, but it is the other way around where using a RIA can
make using SOA easy in the organization.
SOA a powerful concept as it is nothing
totally new. It has existed over years, just that the use of
it has not been much or at all in the recent web technology
based systems. Then the question is why do we need to use it,
what are the benefits of using this SOA? Let us try to list
down the promises of using SOA successfully in an organization:
- Reuse: the key benefit is the ability
to reuse the service build for one application over several
other future applications that requires the same service.
It is not just cutting and pasting the same code as some might
think, but more like just pointing the data to be processed
by that service and come back without even touching the running
service in a server in the organization.
- Efficiency: The efficiency of building
and modifying an application to respond to the business need
can improve tremendously with reuse of services. We can possibly
build a new application with reusing several of the existing
services of multiple applications and just building the front
end and Database.
- Loose Technology Coupling: The interesting
part of this feature is that we can have several services
build on different technology running in different servers
and a new application can be made by combining them. The key
feature of the architecture is the ability of using services
build on different languages, so .net, java and perl all can
provide services to build a single application. XML is the
language that manages the exchange of information between
different services and to provide the output to RIA. XML is
technology independent and can interact over several platforms
and technology as long as the protocol is followed.
- Application Integration Ease: Provided
the applications we are trying to integrate are following
SOA, integration can become much easier than how it is now.
- Division of responsibility: with effective
adaptation of SOA for the enterprise, the responsibilities
can be made more clear-cut, there will be one group who focuses
on building the services as and when required. Another group
is the ‘consumer' of the services, basically this group focuses
on the business more and focuses in using the services to
create optimal business systems. Reuse/continuation of use
of Legacy Application: so in SOA we are not only talking about
reuse of services build for SOA but also possibility of using
the existing legacy applications in the organization that
still serves the requirement. So we do not need to junk the
old applications just because we are using any new technology,
this can end up saving millions and plenty of headache. Through
a technique called wrapping legacy systems can be made to
un seamlessly with new services as part of the system.
Ultimately the above two technology by
itself and through the combination can bring better return on
investment from technology and make applications more user-friendly
and adoptive to business needs. More and more the focus can
be to the deliver of requirement as per the need of business
rather then adapting to what technology can provide. It is towards
business to win back some of the power over technology through
the use of technology.