Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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