service-driven content delivery: do more for your patrons through web services marshall breeding...

39
Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt University http://staffweb.library.vanderbilt.edu/breeding

Post on 19-Dec-2015

221 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Service-driven content delivery:

Do more for your patrons through Web services

Marshall BreedingDirector for Innovative Technology and ResearchVanderbilt Universityhttp://staffweb.library.vanderbilt.edu/breeding

Page 2: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Service Oriented Architecture

Increasingly becoming the preferred architecture and framework for Web programming and enterprise systemsA key supporting technology for Web 2.0Infrastructure for behind-the-scenes communication among applications.Data exchange, conversions, lookups, etc.Appropriate for portal integration, e-commerce, distributed applications.

Page 3: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

SOA Architecture diagram

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

Page 4: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Web services communication Path

Page 5: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

An XML oriented Architecture

All the components of SOA are expressed in XMLDefinition of a serviceDirectories of servicesMessages involved in the operation of the service

Page 6: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Roles

Service provider Technically more challenging

Service Requestor Simple to implement

Page 7: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Adoption of Web services

Widespread use in many industriesMainstream programming approachBasis for Microsoft .NET technologiesSOAP support available for all common Web programming environments Perl: SOAP::Lite

SOA Architecture Components

Page 8: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

WDSL: Web Service Description Language

The definition, expressed in XML, of how the Web service operates and the data structures involved

Page 9: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

SOAP: Simple Object Access Protocol

A transport and encapsulation protocolThe “envelope” that carries the messages involved in an XML Web serviceSimilar to RPC (Remote procedure calls)

Page 10: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Benefits of Web services

Easy way to add e-commerce capabilities to Web siteLeverage services offered by other providers for the benefit of your users.

Page 11: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Web Service implementation methods

REST Representational State Transfer Easier, more common approach

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

infrastructure

Page 12: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Relevant APIs / Web Services

Amazon Web ServiceGoogle SearchGoogle Book Search Viewability APIOCLC APIsLocal ILS APIsFacebook

Page 13: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Rest-like Example: Google search

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

Page 14: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

RSS as an example of REST

http://www.librarytechnology.org/rss

Page 15: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

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 16: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Example: Google API

http://api.google.com/GoogleSearch.wsdlhttp://www.google.com/apis/reference.htmlPerl example for implementing the Google Web services

Page 17: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Exampleprint "Top library automation sites according to Google";# if key is not provided, GoogleSearchService looks in $ENV{HOME},# or in the location of GoogleSearchService.pm for googlekey.txtmy $key = ‘your google API goes here';my $google = new GoogleSearch();my $return;

use GoogleSearch;my $search = 'Library Technology';$return = $google->doGoogleSearch(

query => $search,start => 0,maxResults => 10,restrict => 'xml',)->result();

foreach my $entry (@{$return->{'resultElements'}}) {print "";print "<a href=\" $entry->{URL}\">$entry->{title}\n";print "$entry->{snippet}\n";print "\n";

}

Page 18: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Mashups

A new resource based on content or services from multiple sourcesUsually created through Web servicesMany examples

Page 19: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Let’s Build a mashup using Web Services

Page 20: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt
Page 21: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt
Page 22: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt
Page 23: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

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 24: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Step 1. Launch map

Create button to launch a new window for the mapPass 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 25: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

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 26: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

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 27: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Call the subroutine

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

Page 28: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

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 29: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Step 4. Stir, bake and serve

Page 30: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

From Web Services to SOA

Building a new library technology infrastructure through a service-oriented architecture

Page 31: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Breaking down the modules

Traditional ILS Cataloging Circulation Online Catalog Acquisitions Serials control Reporting

Modern approach: SOA

Page 32: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Service Oriented Architecture

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

Page 33: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Legacy ILS + e-content modules

FederatedSearch

FederatedSearch

Circulation Acquisitions

Cataloging Serials

OpenURLLinking

OpenURLLinking

Electronic Resource

MgmtSystem

Electronic Resource

MgmtSystem

Staff Interfaces:

End User Interfaces:

Data Stores:

Functionalmodules:

Page 34: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

SOA model for business automation

Underlying data repositories Local or Global

Reusable business servicesComposite business applications

Page 35: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

SOA for library workflow processes

Data Stores:

ReusableBusiness Services

CompositeApplications

Granulartasks:

Page 36: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Comprehensive Resource Management

Broad conceptual approach that proposes a library automation environment that spans all types of content that comprise library collections.Traditional ILS vendors: Under development but no public announcementsOpen Source projects in early phasesProjection: 2-3 years until we begin see library automation systems that follow this approach. 3-5 years for wider adoption.

Page 37: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Open Library Environment (OLE) project

Andrew W. Mellon Foundation Research in Information Technology program

Duke University selected to lead projectCore Participants: Kansas University, Lehigh University, National Library of Australia, Library and Archives Canada, University of Pennsylvania, Marshall BreedingAdvisory Participants: University of Chicago, Wittier College, University of Maryland, ORBIS Cascade Alliance, Rutgers UniversityStatus: Project underway. Initial meeting, scope document, public webcast, working toward completion of system blueprint by July 2009.

http://oleproject.org

Page 38: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

A more in-depth version:

Library Technology Reports May / June 2006ALA TechSource“Web Services and the Service Oriented Architecture” By Marshall Breedinghttp://www.librarytechnology.org/ltg-displaytext.pl?RC=12055

Page 39: Service-driven content delivery: Do more for your patrons through Web services Marshall Breeding Director for Innovative Technology and Research Vanderbilt

Comments Questions and Discussion