B V Kumar, Director and Chief Architect, Cognizant
Technology Solutions
Architecting enterprise solutions for service orientation
is now a serious technical issue. Comprehending the enormity of the problem,
orienting (or reorienting) the application for services, choosing the right
technology for implementation, opting for the right tools and platform,
designing the right components for services delivery (or availing), configuring
optimally and deploying application for acceptable quality of service are some
of the important factors that lead to the success of enterprise solution. We
discuss all these and more in three parts in this article - evolution, services
and implementation.
Direct Hit! |
Applies To: .NET Developers |
Evolution
Initially, the mainframes provided 'Centralized Model' architecture to
manage business data and processes. The concept of software architecture started
to evolve when enterprises and other businesses started adopting small and
medium computers and networking them to share resources. The need for decoupling
of the systems and software applications in smaller networked environments
resulted in the emergence of the popular 'Client/Server' architecture. Many of
the architectures that evolved later were influenced by Clients and Servers. The
evolution of 'distributed' architectures may be considered as a sophisticated
extension of Client / Server architecture. Clearly, the Internet and World Wide
Web caused a shift in the nature and ways of business transactions taking place
today. These challenges and opportunities have caused the architecture to be
governed by non-functional requirements rather than that of functional
requirements of the enterprises. Some of the important non-functional
requirements that influence the architecture of modern day enterprise
applications include performance, reliability, availability, and security. The
requirement of service-orientation for the enterprises first emerged with the
advent of the Internet and World Wide Web.
The IT world has since witnessed numerous paradigm shifts,
as newer technologies such as XML and Java continuously impacted enterprise
solution requirements. The business of 'service delivery' started gaining
momentum among the enterprises and their collaborators. However, the IT
definition of the term 'service' kept on deviating with that of the business
definition, and this cohesion was crucial for the enterprises to remain
competitive in the dynamically changing market conditions. Evolution of business
oriented technologies such as Enterprise JavaBeans (EJB, JPA etc), as a part of
J2EE technologies, on the one hand and the emergence of core constituents of web
services such as SOAP, WSDL and UDDI, on the other, provided the opportunity to
draft service definitions in alignment with the business requirements.
Services and Service Orientation
Services and Services composition and delivering / availing the same, making
it work as a part of the business process are the most important aspects of the
services orientation challenge.
Services and Services Composition - The SOAP way
SOAP is a web service extension of eXtensible Markup Language (XML). XML is
a very simple but very powerful protocol that promises many advantages to the
enterprise processes for delivering service (or exchange information). SOAP
efficiently piggybacks on Hypertext Transfer Protocol (HTTP), and, as a result,
this protocol can help enterprises in exchange information on the Internet.
Enormous success of SOAP is attributed to its simplicity elegant structure to
envelope and carry the information. The SOAP message is designed to carry
textual (plain text) as well as binary information. While the textual
information can be enclosed in the body part of the SOAP message, the
non-textual information may be carried as it's MIME attachment.
Services Definition and Description - The WSDL way
Web Services Description Language (WSDL) is an important part of the
services definition part of SOA. WSDL, an extension of the XML provides an
excellent combination of tags, include a complete description of a service (or a
set of services). The description of WSDL includes all related information
required for any application, including 'service name', number and types of
'parameters' required for invoking the service, 'return type', 'location' of the
server application etc is most important details of the description of the
service.
Services Brokering - The UDDI way
Registries and repositories represent the information database about the
business and its services in an XML format. These registries essentially store
the information about all the businesses and industries participating in an
effort to publish all relevant information about the nature of business and the
types of services as per popular taxonomies. Universal Description, Discover
and Integration (UDDI) specification is the XML flavour that help in allowing
organizations to store the business and services information in a specified
classification format. UDDI Registries allow the businesses to store most up to
date information on the business. They essentially act as electronic 'white
pages', 'yellow pages' or 'green pages' . The registries may be private or
public in nature.
Business Process and Wiring the Services - The BPEL Way
Business process represents the work flow of a set of services in any
enterprise. As the volume and activities of the enterprise increases, the
dependencies on the business process and work flow of any enterprise increases.
Automating the business process and work flow in such organizations provides
tremendous advantages to them. Enterprises offering / availing the services in
such scenarios have started feeling the compulsion of orienting (or reorienting)
their services to the needs of newly emerging discipline in the global
enterprise business scenario. Emerging standards such as WS-Business Process
Execution Language (or WS-BPEL) for the process orchestration in the intranet
scenarios and WS-Choreography Definition Language (or WS-CDL) in the
collaborative scenarios over the internet, holds a lot of promise for these
enterprises in implementation of the SOA.
SOA Implementation Technologies and Strategies
Web services route of implementing SOA has many crucial advantages over any
other implementation strategies. There are two predominant solutions that help
in web services implementation of SOA in the present day context -Microsoft's
.NET technologies and and Sun Microsystems's Java Enterprise Edition
technologies.
Microsoft's .NET Technologies
The .NET product suite from Microsoft enables enterprises to build
enterprise-class web SOAs. The .NET product suite is largely a rewrite of
Windows DNA,11 which constitutes Microsoft's previous platform constituents for
developing enterprise applications. The new .NET Framework replaces these
technologies and includes the web services layer.
Java Enterprise Edition Technologies
The Java 2 Platform, Enterprise Edition (J2EE) is a progression of the Java
environment to the server side of the application software paradigm. J2EE,
unlike Microsoft's .NET, could be termed a defacto industry standard and has
resulted in a large industry initiative called the Java Community Process (JCP).
The participants of this community include the 'who's who' in the IT and related
industries IBM, Oracle, Nokia, Erricson, and so on. The spirit of Java as well
as the other related technologies, such as J2EE, was to free the customers from
the dependency of products and tools from vendors. In this work, we will focus
on the Java EE driven SOA implementation technologies and strategies.
The enterprise Java platform has evolved from the
industry's need for a a secure, reliable, highly available and scalable platform
for development and deployment of enterprise applications. The main focus of the
new Java EE platform is the ease of development and to increase developer
productivity with the goal of attracting even more developers to the platform as
well as broadening the use of technologies within the platform. As a part of
this evolution many other related technologies evolved to meet the growing needs
of the java enterprise applications. These technologies are Web Tier
Technologies, Business Tier Technologies, Web Services Supporting
Technologies, and Integration and Enterprise Services Bus.