mark thompson. software systems are growing more complex many methodologies will reach their limit...
TRANSCRIPT
SERVICE-ORIENTED ARCHITECTUREMark Thompson
ABSTRACT
Software systems are growing more complex Many methodologies will reach their limit Developers need a simple and flexible way to
develop applications Service-Oriented Architecture is such a way
OUTLINE
Introduction Common Development Problems Terminology Service-Oriented Architecture Comparison with CBSE Advantages/Disadvantages Companies using SOA Conclusion
INTRODUCTION
Software systems are changing New technologies New functionality Telephone switches (100M LOC), OSes (1000s
devs) New software development methods
New tools New processes New architectures
INTRODUCTION
Space Invaders (1981) Atari 2600
INTRODUCTION
Crysis (2007) PC
COMMON DEVELOPMENT PROBLEMS
Complexity Redundant and non-reusable code Multiplicities of Interfaces
COMPLEXITY
Big expectations Competition New technology/hardware Need to keep things as simple as possible
Group code together Reuse code
REDUNDANT AND NON-REUSABLE CODE Code written in different languages Different applications with same functions Need to make code as reusable as possible
For all software, not each individual app Setup common interface for all languages
MULTIPLICITIES OF INTERFACES
“Integration problem” n(n-1) interfaces needed to integrate n apps 2(n) new interfaces to add an app
Ex: 4 apps need 12 interfaces
TERMINOLOGY
Service Governance Orchestration
SERVICE
A single repeatable task Three main parts:
Service implementation: code that performs the task
Elementary access details: the address of the service and the protocol to access it
Contract: description of the task, the interface, and a Quality of Service (QoS)
SERVICE (CONT.)
Interface Describes the exchanged data The format of the data How the service interacts
Does it report back when finished? Does it report back after a certain amount of time? Does it ever report back?
QoS: detailed description of interaction rules Ex: authorization
GOVERNANCE
The way corporations govern themselves Set of principles and practices Helps achieve corporation’s goal Sets up a chain of responsibility
GOVERNANCE (CONT.)
Optimal to start at the beginning Controls updates to processes and
technologies Helps keeps services consistent and
interoperable Most successful when employees, customers,
suppliers, and partners all participate
ORCHESTRATION
Combining services to make an app Best case scenario: little else is needed
SERVICE-ORIENTED ARCHITECTURE
Videohttp://www.infoworld.com/d/architecture/infoclipz-service-
oriented-architecture-soa-899
SERVICE-ORIENTED ARCHITECTURE
SERVICE-ORIENTED ARCHITECTURE
Overview SOA Principles XML
OVERVIEW
“[SOA is] an evolutionary approach to building information technology systems that is focused on solving business problems” [1]
“[SOA] is a way of organizing software so that companies can respond quickly to the changing requirements of the marketplace” [6]
OVERVIEW (CONT.)
Create a collection of services Each service is a small, independent project Can be new or extracted from existing apps
Orchestrate services to develop applications
SOA PRINCIPLES
Standardized Service Contracts Loose Coupling Service Abstraction Service Reusability Service Autonomy Service Statelessness Service Discoverability Service Composability
STANDARDIZED SERVICE CONTRACTS Contracts designed to specification Consider optimization and granularity Make services consistent, reliable, and
governable Allow for different languages, OSes
LOOSE COUPLING
Each service should be standalone One service can use another, but only
through the standard interface Allows interchanging a new service for old Allows internal changes to a service
SERVICE ABSTRACTION
Hides the low level details Easier to understand a service Easier to use a service Promotes loose coupling
SERVICE REUSABILITY
Develop services with reuse in mind Shortens application development time Less testing required Easier to maintain
SERVICE AUTONOMY
Some control over environment and resources
Otherwise, may not be able to complete task Increases the reliability and predictability May require a level of isolation
SERVICE STATELESSNESS
Remain as stateless as possible Affects a services availability and scalability May be necessary to maintain a state
May be repeatedly called to complete a task May need to maintain a “conversation”
May offset state managing responsibilities
SERVICE DISCOVERABILITY
Prevents rewriting services Promotes reuse of services One way is to have a service registry
Contains all of the services Contains the service contracts Private or public
SERVICE COMPOSABILITY
Describes how services work together Also known as orchestration Break large problem into smaller tasks
Services can complete the smaller tasks If they can’t work together, they need to be
modified
XML
Common way to interface, but not required Convenient way to have self-describing data Is a string of text with “tags” to describe data
Ex: Sample XML
COMPARISON WITH CBSE
Both use “building blocks” CBSE more strict, SOA is more flexible CBSE has models such as DCOM, CORBA, EJB SOA has no requirement for internal structure
Both have loose coupling CBSE has it, but SOA is even “looser” SOA is platform-independent, language-
independent SOA is networked-based
ADVANTAGES
Quicker development times Simplified development Reduced redundancy, increased reuse Reduced testing times More flexible and agile Easier maintenance
DISADVANTAGES
No guarantee for advantages More time spent on architecture Need to develop many services
Writing from scratch or extracting can take time Managing communications between services
and debugging them is very complex Possible security problems Performance issues
COMPANIES USING SOA (AS OF 2006) Ebay
Over 2 petabytes of data Over 6 million lines of code Credits SOA for interoperability between C++ and
Java IBM
Has over 70 services Reduced application inventory from 16,000 to
4,000
COMPANIES USING SOA (CONT.)
Hewlett-Packard $70 million in savings Credits SOA for consolidation and reuse Saw $1 million in immediate savings
Amazon Over 60 million customers and 1 million partners Outgrew their old architecture
Other well known companies include: Wachovia Bank, Harley Davidson, Ameriprise Financial, Citigroup, OnStar, and DreamWorks animation
CONCLUSION
Services reduce the amount of redundancy Using services make the development
process quicker and more agile SOA prepares a corporation for the future
REFERENCES [1] Carter, S. (2007). The New Language of Business. Indianapolis: IBM Press.
[2] Channabasavaiah, K., & Holley, K., & Tuggle, E. (2003, December 16). Migrating to a Service-Oriented Architecture. Retrieved February 17, 2010, from IBM website: http://www.ibm.com/developerworks/library/ws-migratesoa/
[3] Erl, T. (n.d.). SOA Principles: An Introduction to the Service-Oriented Paradigm. Retrieved February 17, 2010, from SOA Principles website: http://www.soaprinciples.com/
[4] Kanagwa, Benjamin, and Ezra K. Mugisa. "A Comparison of Service Oriented Architecture with Other Advances in Software Architectures." Web. 25 Apr. 2010. <http://cit.mak.ac.ug/iccir/downloads/SREC_07/Benjamin%20Kanagwa%20and%20Ezra%20K.%20Mugisa_07.pdf>.
[5] Lawler, J., & Howell-Barber, H. (2008). Service-Oriented Architecture. Boca Raton: Auerbach Publications.
[6] Margolis, B. (2007). SOA for the Business Developer: Concepts, Bpel, and Sca. City: MC Press.
[7] McKendrick, J. (2006, December 17). Ten Companies Where SOA Made a Difference in 2006. Retrieved March 15, 2010, from ZDNet website: http://blogs.zdnet.com/service-oriented/?p=781
QUESTIONS?