Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3
-
Upload
stephen-anthony -
Category
Technology
-
view
1.857 -
download
0
description
Transcript of Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3
Service Oriented Architecture
Open Library Environment project regional workshop
January 14 2009 - Ottawa
Presented by Stephen Anthony
What is SOA?
• Service-oriented architecture (SOA) is a software architecture and methodology where functionality is grouped around business processes and are packaged as interoperable services.
• Software architecture defines components to use and how those components interact with each other.
• A Business process is the set of activities and related rules that are used to produce a product or service for a client. It includes all the tasks, data, people, process management activities required.
SOA Advantages
• Flexibility
• Reduced development and maintenance costs
• Interoperability
• Business-alignment
http://www.flickr.com/photos/rightoutloud/2421043521/
Loose Coupling
• Loose-coupling - Services should maintain a relationship that minimizes external dependencies
• Helps to ensure the reusability and composability of services – but also promotes good design practices – by only focusing on what the service needs (inputs) and what the services provides (output)
• Each service should do only one thing – and should do that one thing well.
• Black box: a mechanism with a known function and an unknown method.
http://flickr.com/photos/82705724@N00/119490271/
http://flickr.com/photos/fdecomite/453104909
http://www.flickr.com/photos/festivefrog/2511300928/
SOA Key Principles
• Reusability – Services are designed with the intention of promoting reuse (otherwise – don’t make it a service!)
• Loose-coupling - Services maintain a relationship that minimizes external dependencies – they should be black boxes – the internal workings and data are hidden from view.
• Composability - Collections of services can be coordinated and assembled to form composite services
• Statelessness – Services should not depend on the state of other components, systems or services.
• Abstraction – There can be many levels of services. Don’t make services do too little.
• Autonomy - Can the service stand on it’s own?
What SOA is not
• Web services – SOA is an architectural methodology– Web services are a set of technologies.
• Automatically interoperable – but improves the prospect of interoperability– particularly if the best practices and standards are followed
• A holy grail – SOA in itself will not resolve all issues and produce a fully
interoperable, sustainable, maintainable, reusable system. – but it helps.
SOA Tips
• Use Noun/Verb syntax when describing services.– “Pay Vendor”, “Find Document”, “Authorize Client”– Do something to something.
• Loose coupling/Black Box.– Black box: a mechanism with a known function and an
unknown method..– That means no giant “everything” databases– Everything done through the service – even database calls –
hence “service oriented”.
SOA Tips
• Be mindful not to copy bad legacy design.– Just making a bad system into a set of services will not improve
things... And it’s very likely to make things worse.
• Use abstraction– Thinking about lower-level or higher-level services is often
helpful when stuck.
• Don’t get too detailed too early.– Start at the highest level of abstraction and work down.
• Use as little documentation as possible– A few circles, boxes and lines with arrows can do wonders.– Saves time when you have to rework it all – and you will.
“Integrated” Library
SOA as Legos™
Store Metadata Produce ReportsAcquire Material
Manage Serials Identify Patrons Catalogue Materials
Discover Documents
Manage Circulation
Staff Module
Store Metadata Produce ReportsAcquire Material
Manage Serials Identify Patrons Catalogue Materials
Discover Documents
Manage Circulation
Staff Module
Store Metadata Produce ReportsAcquire Material
Manage Serials Identify Patrons Catalogue Materials
Discover Documents
Manage Circulation
Staff Module
Sing
Links and References
• My Blog: http://ea.typepad.com/
• Anthony, Stephen K. "Implementing Service Oriented Architecture at the Canada Institute for Scientific and Technical Information." The Serials Librarian, 55(01-02), pp. 235 - 253. DOI: 10.1080/03615260801970907
• Science Library Pad: http://scilib.typepad.com
• IT Architecture Toolkit by Jane Carbone
• Service Oriented Architecture For Dummies by Judith Hurwitz, et al.
• Wikipedia has a decent SOA overview listing lots of good principles in more detail.