open library environment - service oriented architecture intro - jan 14 15 2009.v0.3

25
Service Oriented Architecture Open Library Environment project regional workshop January 14 2009 - Ottawa Presented by Stephen Anthony

Upload: stephen-anthony

Post on 18-Jun-2015

1.855 views

Category:

Technology


0 download

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

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

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

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

http://www.flickr.com/photos/rightoutloud/2421043521/

Page 5: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3

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

http://flickr.com/photos/82705724@N00/119490271/

Page 7: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3

http://flickr.com/photos/fdecomite/453104909

Page 8: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3

http://www.flickr.com/photos/festivefrog/2511300928/

Page 9: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3

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

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

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
Page 13: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3
Page 14: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3

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

“Integrated” Library

Page 16: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3

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

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

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

Sing

Page 20: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3
Page 21: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3
Page 22: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3
Page 23: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3
Page 24: Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 2009.V0.3

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