Top Banner
SERVICE-DRIVEN CONTENT DELIVERY: Do more for your patrons through APIs and Web services arshall Breeding irector for Innovative Technology and Research anderbilt University ttp://www.librarytechnology.org Web Manager’s Academy Oct 24, 2010
54

Service-driven content delivery:

Jan 07, 2016

Download

Documents

raiden

Service-driven content delivery:. Marshall Breeding Director for Innovative Technology and Research Vanderbilt University http ://www.librarytechnology.org. Do more for your patrons through APIs and Web services. Oct 24, 2010. Web Manager’s Academy. General Issue. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Service-driven content delivery:

SERVICE-DRIVEN CONTENT DELIVERY:Do more for your patrons through APIs and Web services

Marshall BreedingDirector for Innovative Technology and ResearchVanderbilt Universityhttp://www.librarytechnology.org

Web Manager’s AcademyOct 24, 2010

Page 2: Service-driven content delivery:

General Issue

Library websites involve many different components that deliver some aspect of content or functionality

We need ways to let systems and components communicate with each other

Construct more unified interfaces of interrelated functionality rather than send users to many separate interfaces

Page 3: Service-driven content delivery:

Addressing the problem

Working toward a more cohesive and unified Web presence for the library

Need to be able to include content or services on a Web site from external sources

Web sites need to interact with other Web sites or applications

Role of the Web site to redistribute content from a variety of resources

Library applications need to distribute content and services to other consumers beyond its direct Web presence

Page 4: Service-driven content delivery:

Disjointed approach to information and service delivery

Silos Prevail Books: Library OPAC (ILS module) Articles: Aggregated content products, e-journal

collections OpenURL linking services E-journal finding aids (Often managed by link

resolver) Subject guides (e.g. Springshare LibGuides) Local digital collections

ETDs, photos, rich media collections Metasearch engines

All searched separately

Page 5: Service-driven content delivery:

Web site as menu of search options

Page 6: Service-driven content delivery:

Lack of unified Web presence User’s don’t understand the distinctions

libraries make Web site content Search interfaces based on content formats Non-library Web sites are much more

unified

Page 7: Service-driven content delivery:

Bringing it all together

Work toward a single unified presentation layer

Interacts with multiple back-end infrastructure components

Make use of API’s and other approaches to tie many systems together

Page 8: Service-driven content delivery:

APIs: Application Programming Interfaces

A general approach that allows access to data and functionality of a software application

Computer-to-computer communications Expose services without access to source

code Proprietary or open implementations

Page 9: Service-driven content delivery:

Application based onInternal Proprietary programming

Core Functionality / Business Logic

Public Interfac

e

Staff Interfac

e

ReportsModule

Delivered Interfaces

Core Software

Data stores

Page 10: Service-driven content delivery:

Application with abstract Database API

Core Functionality / Business Logic

Public Interfac

e

Staff Interfac

e

ReportsModule

Delivered Interfaces

Core Software

Data storesRDMS API

Page 11: Service-driven content delivery:

Application with abstract Database API

Core Functionality / Business Logic

Public Interfa

ce

Staff Interfa

ce

ReportsModule

Delivered Interfaces

Core Software

Data storesRDMS API

External applicatio

ns

Page 12: Service-driven content delivery:

Application with API abstraction layer

Core Functionality / Business Logic

Application Programming Interfaces

Public Interfac

e

Staff Interfac

e

ReportsModule

Delivered Interfaces

API abstraction layer

Core Software

Data storesRDMS API

Page 13: Service-driven content delivery:

Application API exposed to External Applications

Core Functionality / Business Logic

Application Programming Interfaces

Public Interfac

e

Staff Interfa

ce

Reports

ModuleDelivered Interfaces

API abstraction layer

Core Software

Data stores

RDMS API

External applicatio

ns

Page 14: Service-driven content delivery:

Application API exposed to External Applications

Core Functionality / Business Logic

Application Programming

Interfaces

Public Interfac

e

Staff Interfa

ce

Reports

ModuleDelivered

Interfaces use proprietary programming

Core Software

Data stores

RDMS API

External applications

Page 15: Service-driven content delivery:

Web Services

An API using Web infrastructure technologies

Based on XML encoding of requests and responses

Not a Web-based service Operates behind the scenes Makes use of Web protocols

Computers need too agree on the details of the request and the response

Page 16: Service-driven content delivery:

Role of Web Services

Provides interoperability among diverse applications

Widespread use for interaction of information resources

Complex applications require information and services from multiple sources

Web services makes use of existing Web infrastructure rather than one-off proprietary protocols

XML + HTTP

Page 17: Service-driven content delivery:

Ideal for library applications

A key supporting technology for Web 2.0 Data exchange, conversions, lookups, etc. Appropriate for portal integration, e-

commerce, distributed applications. Basis for mash-ups – applications based

on content from multiple content resources

Page 18: Service-driven content delivery:

Your API / Web Services toolbox Scripting language

Ruby, PHP, Perl, Java Mid-level programming skills Knowledge of XML Documentation of source and target

applications Development environment

Page 19: Service-driven content delivery:

Display and Discovery

Enrich library content MARC record from ILS Book images from Amazon, Google Book

Search, Syntetics Table of contents Summary Ratings Tags – LibraryThing for Libraries ChiliFresh -- reviews

Page 20: Service-driven content delivery:

Service Oriented Architecture A broad framework that organizes

complex sets of Web services into larger applications

Increasingly becoming the preferred architecture and framework for Web programming and enterprise systems

Page 21: Service-driven content delivery:

SOA Architecture diagram

http://www.w3.org/TR/2002/WD-ws-arch-20021114/

Page 22: Service-driven content delivery:

Roles

Service provider Technically more challenging

Service Requestor Simple to implement

Page 23: Service-driven content delivery:

Web services communication Path

Page 24: Service-driven content delivery:

An XML oriented Architecture All the components of SOA are

expressed in XML Definition of a service Directories of services Messages involved in the operation of

the service

Page 25: Service-driven content delivery:

Adoption of Web services

Widespread use in all information and e-commerce arenas

Mainstream programming approach Use in library applications increasingly

common

Page 26: Service-driven content delivery:

FROM WEB SERVICES TO SOABuilding a new library technology infrastructure through a service-oriented architecture

Page 27: Service-driven content delivery:

Breaking down the modules

Traditional ILS Cataloging Circulation Online Catalog Acquisitions Serials control Reporting

Modern approach: SOA

Page 28: Service-driven content delivery:

Service Oriented Architecture

http://www.sun.com/products/soa/benefits.jsp

Page 29: Service-driven content delivery:

Legacy ILS + e-content modules

FederatedSearch

Circulation Acquisitions

Cataloging Serials

OpenURLLinking

Electronic Resource

MgmtSystem

Staff Interfaces:

End User Interfaces:

Data Stores:

Functionalmodules:

Page 30: Service-driven content delivery:

SOA model for business automation Underlying data repositories

Local or Global Reusable business services Composite business applications

Page 31: Service-driven content delivery:

SOA Framework from Kuali OLE

Page 32: Service-driven content delivery:

Benefits of Web services

Easy way to add e-commerce capabilities to Web site

Leverage services offered by other providers for the benefit of your users.

Page 33: Service-driven content delivery:

Web Service implementation methods REST

Representational State Transfer Easier, more common approach Most common approach in library

applications SOAP

Used in more complex environments Requires more set-up and infrastructure

Page 34: Service-driven content delivery:

Relevant APIs / Web Services Amazon Web Service Google Search Google Book Search API OCLC WorldCat APIs Local ILS APIs Facebook

Page 35: Service-driven content delivery:

Mashups

A new resource based on content or services from multiple sources

Usually created through Web services Typically involves use of a scripting

language JavaScript, Ruby, PHP, Perl, .NET Many Web sites have built-in tools for

creating mashups

Page 36: Service-driven content delivery:

What’s involved?

Some knowledge of scripting or programming languages

Application components with accessible and documented API’s

Interface design Data models Can get started with basic programming

and technical knowledge, but more can be accomplished with deeper expertise and resources.

Page 37: Service-driven content delivery:

Rest-like Example: Google search

http://www.google.com/search?q=marshall+breeding&hl=en&safe=off

Page 38: Service-driven content delivery:

RSS as an example of REST

http://www.librarytechnology.org/rss

Page 39: Service-driven content delivery:

REST Example: SRU

http://law-library2.rutgers.edu/SRU/srucql.pl?query="New+Jersey"&startRecord=1&maximumRecords=10&collection=lawlib&version=1.1&operation=searchRetrieve&recordSchema=dc

Page 40: Service-driven content delivery:

LET’S BUILD A MASHUP USING WEB SERVICES

Page 41: Service-driven content delivery:
Page 42: Service-driven content delivery:
Page 43: Service-driven content delivery:
Page 44: Service-driven content delivery:

Recipe

Ingredients Information about the library from the local

database Name, photo, street address

Latitude and Longitude from an external Web service USGS Web service

Map, positioning and display services from Google

Page 45: Service-driven content delivery:

Step 1. Launch map

Create button to launch a new window for the map Pass Library name, address and photo location:sub ViewMap { local ($Library,$StreetAddress,$libphoto) = @_; print "<input type=\"button\"

value=\"view street map\" onclick=\"newWindow(

\'lwc-viewmap.pl$sessionstring&amp;address=$StreetAddress&library=$Library&libphoto=$libphoto\',\'window2\')\" $buttonstyle />\n";

}

Page 46: Service-driven content delivery:

Step 2. Turn address into Geocode data

my $d = get(http://rpc.geocoder.us/service/rest?address=$fields{'address'}

); $d =~ /geo:long>([^< ]*).*?geo:lat>([^< ]*)/is; $lat = $2;

Page 47: Service-driven content delivery:

Step 3. Invoke Google MAP API

Use pre-established API keyFetch the correct map specifying size and

locationPlace the marker on the mapLabel the markerCreate and populate info window

Page 48: Service-driven content delivery:

Call the subroutine

&MapScript("$lat","$long","$fields{'libphoto'}");

Page 49: Service-driven content delivery:

Invoke the subroutinesub MapScript {

local($lat,$long,$photo) = @_;

local $libphototext = "";

$libphototext = "+ \"<br /><img src=\\\"$imageserver//\" + libphoto + \".jpg\\\" height = \\\"100\\\">\"" if (length($photo) > 0);

print "<script type=\"text/javascript\">\n";

print " //<![CDATA[\n";

print "\n";

print " function createMarker(point, name, address, libphoto) {\n";

print " var marker = new GMarker(point);\n";

print " GEvent.addListener(marker, \"click\", function() {\n";

print " marker.openInfoWindowHtml(\"<strong>\" + name + \"</strong><br />\" + address $libphototext);\n";

print " });\n";

print " return marker;\n";

print " }\n";

print " function load() {\n";

print " if (GBrowserIsCompatible()) {\n";

print " var map = new GMap2(document.getElementById(\"map\"));\n";

print " map.setCenter(new GLatLng($lat, $long), 15);\n";

print " var point = new GLatLng($lat,$long);\n";

print " map.addOverlay(createMarker(point,\"$fields{'library'}\",\"$fields{'address'}\",\"$fields{'libphoto'}\"));\n";

print " }\n";

print " }\n";

print "\n";

print " //]]>\n";

print " </script>\n";

}

Page 50: Service-driven content delivery:

Step 4. Stir, bake and serve

Page 51: Service-driven content delivery:

More information

Library Technology Reports Nov / Dec 2009ALA TechSource“Opening up Library Systems through Web Services and SOA: Hype or Reality?”

By Marshall Breeding

http://www.librarytechnology.org/ltg-displaytext.pl?RC=14408

Page 52: Service-driven content delivery:

Opening up Library Systems through Web Services and SOA: Hype or Reality?

This report aims to assess the current slate of major

library automation systems in regard to their

ability to provide openness through APIs, Web services, and the

adoption of SOA.

Library Technology Reports Nov/Dec Issue 2009 by Marshall Breeding

Page 53: Service-driven content delivery:

A more in-depth version:

Library Technology Reports May / June 2006ALA TechSource

“Web Services and the Service Oriented Architecture” By Marshall Breeding

http://www.librarytechnology.org/ltg-displaytext.pl?RC=12055

Page 54: Service-driven content delivery:

COMMENTS QUESTIONS AND DISCUSSION