open library environment - service oriented architecture intro - jan 14 15 2009.v0.3
DESCRIPTION
A talk I gave on Jan 14, 2009 at Library and Archives Canada for the Open Library Environment project Canadian regional workshop. It's a novice and quick introduction to SOA, our practices at CISTI, tips/hints and a few examples just to get our feet wet.TRANSCRIPT
![Page 1: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/1.jpg)
Service Oriented Architecture
Open Library Environment project regional workshop
January 14 2009 - Ottawa
Presented by Stephen Anthony
![Page 2: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/2.jpg)
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.
![Page 3: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/3.jpg)
SOA Advantages
• Flexibility
• Reduced development and maintenance costs
• Interoperability
• Business-alignment
![Page 4: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/4.jpg)
http://www.flickr.com/photos/rightoutloud/2421043521/
![Page 5: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/5.jpg)
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.
![Page 6: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/6.jpg)
http://flickr.com/photos/82705724@N00/119490271/
![Page 7: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/7.jpg)
http://flickr.com/photos/fdecomite/453104909
![Page 8: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/8.jpg)
http://www.flickr.com/photos/festivefrog/2511300928/
![Page 9: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/9.jpg)
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?
![Page 10: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/10.jpg)
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.
![Page 11: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/11.jpg)
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”.
![Page 12: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/12.jpg)
![Page 13: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/13.jpg)
![Page 14: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/14.jpg)
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.
![Page 15: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/15.jpg)
“Integrated” Library
![Page 16: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/16.jpg)
SOA as Legos™
Store Metadata Produce ReportsAcquire Material
Manage Serials Identify Patrons Catalogue Materials
Discover Documents
Manage Circulation
Staff Module
![Page 17: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/17.jpg)
Store Metadata Produce ReportsAcquire Material
Manage Serials Identify Patrons Catalogue Materials
Discover Documents
Manage Circulation
Staff Module
![Page 18: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/18.jpg)
Store Metadata Produce ReportsAcquire Material
Manage Serials Identify Patrons Catalogue Materials
Discover Documents
Manage Circulation
Staff Module
![Page 19: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/19.jpg)
Sing
![Page 20: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/20.jpg)
![Page 21: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/21.jpg)
![Page 22: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/22.jpg)
![Page 23: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/23.jpg)
![Page 24: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/24.jpg)
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.
![Page 25: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3](https://reader035.vdocuments.net/reader035/viewer/2022070319/5582f7b7d8b42a21168b4e36/html5/thumbnails/25.jpg)