Download Service Oriented Architecture

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Copyright in architecture in the United States wikipedia , lookup

Transcript
Service Oriented
Architecture
An Introduction
Copyright © 2013-2017 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-2017 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-2017 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-2017 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-2017 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
originals
Copyright © 2013-2017 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-2017 Curt Hill
History V
• 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-2017 Curt Hill
Channels
• A channel is the mode by which
business processes 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-2017 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 elsewhere
Copyright © 2013-2017 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
– The FAX was handled by the call center
Copyright © 2013-2017 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
data
Copyright © 2013-2017 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-2017 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-2017 Curt Hill
Application
Channel
Process
Application
Product Verification
Order
Stock in DB
Generate shipping
Call
center
Customer lookup
Sales
PaymentValidation
Support
Product Verification
Stock in DB
Customer lookup
Copyright © 2013-2017 Curt Hill
Service
Channel
Process
Service
Product Verification
Web
interface
Voice
recognition
Order
Stock in DB
Sales
Generate shipping
Customer lookup
Support
Call
center
PaymentValidation
Copyright © 2013-2017 Curt Hill
Commentary
• 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
Copyright © 2013-2017 Curt Hill
Issues
• 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
Copyright © 2013-2017 Curt Hill
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-2017 Curt Hill
Out with the Old?
• There is a tremendous amount of
legacy code in existance
– Social Security Commission has 60
million lines of 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 components
Copyright © 2013-2017 Curt Hill
SaaS
• Software as a Service
– There is another presentation on this
• 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
establishedCopyright
code
base
© 2013-2017 Curt Hill
Architecture
• Service approach greatly benefits
from an EA analysis
– Some would say it is impossible without
• A thorough analysis of processes
and their sub-components is initially
needed
– Find which components are most
needed
– What type of interface is required to
satisfy all related service requests
• Service architecture will resemble
business process architecture
Copyright © 2013-2017 Curt Hill
Finally
• This is the future in an Internet
dominated business environment
• This is just scratching the surface
– Probably sufficient for this course
Copyright © 2013-2017 Curt Hill