Service Oriented Architecture
An Introduction
Copyright © 2013-2015 Curt Hill
Introduction• Service Oriented Architecture is an
evolution in the philosophy of IT design
• This is the result of changes in computers and communication
• We will consider some history to set the stage
Copyright © 2013-2015 Curt Hill
History I• Originally – the 1950s
– Mainframe computers with master file manipulation using assembly language
– Very little interaction between data from different programs
– Much of the data was on tape
• HLL and disks - 1960s– High level languages, eg. COBOL for
business– The beginning of real time processing
Copyright © 2013-2015 Curt Hill
History IIa• Minicomputers – late 1960s-1970s
– Prices came down– Physical sizes shrunk– Computing power increased
• Distribution problems– The mainframe still retains the original
data– The mini receives an extraction from
the mainframe– There is now a problem with redundant
and out of date data– Business logic also duplicated
Copyright © 2013-2015 Curt Hill
History IIb
• Multiple similar applications– Extract the data, possibly filtering or
modifying slightly– Create a new application that is
similar but slightly different than an existing application that runs on another machine
– Run the new application with the extracted data
– “Stovepipe” applications
Copyright © 2013-2015 Curt Hill
History IIIa• Personal computers – late 1970s –
1980s– Compared to minis and mainframes
these are free, yet powerful enough to be very useful
• Networking – 1980s– Make distribution of data and software
easy
• These two compound the redundant and out of date data problems– The mainframe still contains the
originalsCopyright © 2013-2015 Curt Hill
History IIIb• Networking and Desktop
computers gave birth to client-server computing– Now we can serve the data– The logic is still around in multiple
different form– Every important change to original
programs should be propagated to the derived ones
Copyright © 2013-2015 Curt Hill
History IV• Internet and WWW – 1990s to now
– Inexpensive PCs, fiber optic networking and a little government seed money produces the Internet
– The World Wide Web requires a new kind of server and the browser and now everyone wants in
• Security issues start to increase dramatically
Copyright © 2013-2015 Curt Hill
Service• A definition of a service:
an act or performance offered by one party to another. Although the process may be tied to a physical product, the performance is essentially intangible and does not normally result in ownership of any of the factors of production
• Service is independent of the one who uses it
• We are mostly interested in web services
Copyright © 2013-2015 Curt Hill
Notion of a Channel• A channel is the mode by which
business services are used by customers, suppliers and partners
• Most of these are familiar:– Sending a FAX– Calling an agent– Filling in a web form– Speaking to voice recognition software
• These connect people or machines to enterprise services
Copyright © 2013-2015 Curt Hill
Channels Again• The channels give access to the
services that the enterprise provides:– Ordering– Information requests– Warranty services
• In the olden days only a few services were available– Modern consumers and customers
demand alternatives– Enterprises that do not provide them
will send their customers elsewhereCopyright © 2013-2015 Curt Hill
Application Approach• The typical approach was to provide
an application that interfaced with each channel and service
• A call center agent may deal with several applications– Caller was unaware how difficult this
was– Agent had training for each
• Enterprises tried to combine channels onto applications– Eg. FAX handled by the call center
Copyright © 2013-2015 Curt Hill
Application Construction• A typical ordering application had
several pieces to it– Verification of product information– Determine number in stock– Organize shipping– Confirm customer identity– Validate payment information
• We may have a separate application for each channel– Duplication of logical components and
dataCopyright © 2013-2015 Curt Hill
The Problem• As the channels proliferate, so do
the applications• Maintaining these applications
requires more and more time• As the maintenance time (and
cost) increases the time to develop new applications decreases– The loss of flexibility diminishes the
enterprise’s ability to react to changes in the business environment
Copyright © 2013-2015 Curt Hill
Service Approach• Recall the previous list:
• Verification of product information• Determine number in stock• Organize shipping• …
• Make each of these a web service– Instead of many applications having a
product information component we now have a product information service
– All of the interfaces that need this communicate with this service
Copyright © 2013-2015 Curt Hill
Application Approach
Copyright © 2013-2015 Curt Hill
Channel Process Application
Call center
Order
Sales
Support
Product Verification
Stock in DB
Generate shipping
Customer lookup
PaymentValidation
Product Verification
Stock in DB
Customer lookup
Service Approach
Copyright © 2013-2015 Curt Hill
Channel Process Service
Web interface
Voice recognition
Call center
Order
Sales
Support
Product Verification
Stock in DB
Generate shipping
Customer lookup
PaymentValidation
Commentary
Copyright © 2013-2015 Curt Hill
• In the first approach we use similar code in two applications– The agent functions as the interface– The OO approach should be used– There is still considerable maintenance
overhead
• In the second approach we will use a web service– There is only one product maintenance
program– It communicates via SOAP or similar– One service may talk to another
Web Services• Reusable components available to
any web-accessible application– This could include applications that
drive a call center: CRM
• Any application (or service) may use
• What is required:– Know the service exists– Know the interface required
Copyright © 2013-2015 Curt Hill
Advantages
Copyright © 2013-2015 Curt Hill
• Service provider may be inside or outside the organization– As long as publicly available
• Service is not used until needed– Charges only accrue for use
• Services may be provided that mostly join together existing services
• Reduces size of application– Very nice for mobile
More Advantages
Copyright © 2013-2015 Curt Hill
• The web services are loosely coupled– Ideal for reuse
• Platform and language independent
• The ability to use other’s services speeds up the development– It may be replicated in-house if
needed
Issues
Copyright © 2013-2015 Curt Hill
• The service approach has not always been an option
• Even in the day of the Internet the response time might not have been sufficient
• Generally it is now suitable• Some of these will need local
database access• Others may be services at other sites
– Our site or another site
Exposure• Not every component needs to be
fully exposed• These services may only be
available to a front end application• This minimizes some types of
security issues– But not all
Copyright © 2013-2015 Curt Hill
SOA and OO• Object oriented has been the way
to go since the 1980s• Service oriented has a
fundamentally different appoach – A distributed approach that is
function, rather than object oriented
• Requires a different engineering approach
Copyright © 2013-2015 Curt Hill
Out with the Old?• There is a tremendous amount of
legacy code in existance– Social Security Commission alone has
60 million lines of COBOL code
• Are we to dump all of this?• Generally the costs are prohibitive• Two choices:
– Interface the legacy code, so that it functions in a more service-like way
– Piecewise replace componentsCopyright © 2013-2015 Curt Hill
SaaS• Software as a Service• Same approach as shown before• The service is on the cloud• The front end interface is typically a
browser with JavaScript• A charge mechanism may be
required• This becomes an attractive option
for startups that do not have the established code base
Copyright © 2013-2015 Curt Hill
Standards• Mostly covered in an additional
presentation• These include:
– SOAP for messaging– WSDL describes service– UDDI is a directory of services– WS-BPEL shows process
• In addition to the normal web standards, such as HTTP
Copyright © 2013-2015 Curt Hill
Finally• This is the future in an Internet
dominated business environment• This is just scratching the surface• More to come
Copyright © 2013-2015 Curt Hill
Top Related