service-driven content delivery:

Post on 30-Dec-2015

23 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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. Service Oriented Architecture. - PowerPoint PPT Presentation

TRANSCRIPT

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

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.

SOA Architecture diagram

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

Web services communication Path

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

Roles

Service provider Technically more challenging

Service Requestor Simple to implement

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

WDSL: Web Service Description Language

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

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)

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.

Web Service implementation methods

REST Representational State Transfer Easier, more common approach

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

infrastructure

Relevant APIs / Web Services

Amazon Web ServiceGoogle SearchGoogle Book Search Viewability APIOCLC APIsLocal ILS APIsFacebook

Rest-like Example: Google search

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

RSS as an example of REST

http://www.librarytechnology.org/rss

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

Example: Google API

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

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";

}

Mashups

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

Let’s Build a mashup using Web Services

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

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";

}

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;

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

Call the subroutine

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

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";}

Step 4. Stir, bake and serve

From Web Services to SOA

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

Breaking down the modules

Traditional ILS Cataloging Circulation Online Catalog Acquisitions Serials control Reporting

Modern approach: SOA

Service Oriented Architecture

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

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:

SOA model for business automation

Underlying data repositories Local or Global

Reusable business servicesComposite business applications

SOA for library workflow processes

Data Stores:

ReusableBusiness Services

CompositeApplications

Granulartasks:

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.

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

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

Comments Questions and Discussion

top related