Upload
yeo-harper
View
24
Download
0
Embed Size (px)
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
Citation preview
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&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