1 / 39

Service-driven content delivery:

Learn about Service-Oriented Architecture, XML components, SOAP protocol, and benefits of Web services for superior content delivery to patrons. Explore REST and SOAP methods, APIs like Amazon and Google, with examples for incorporating Google services. Discover mashups for innovative service offerings.

fpatrick
Download Presentation

Service-driven content delivery:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

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

  3. http://www.w3.org/TR/2002/WD-ws-arch-20021114/ SOA Architecture diagram

  4. Web services communication Path

  5. 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

  6. Roles • Service provider • Technically more challenging • Service Requestor • Simple to implement

  7. Adoption of Web services • Widespread use in many industries • Mainstream programming approach • Basis for Microsoft .NET technologies • SOAP support available for all common Web programming environments • Perl: SOAP::Lite • SOA Architecture Components

  8. WDSL: Web Service Description Language • The definition, expressed in XML, of how the Web service operates and the data structures involved

  9. SOAP: Simple Object Access Protocol • A transport and encapsulation protocol • The “envelope” that carries the messages involved in an XML Web service • Similar to RPC (Remote procedure calls)

  10. 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.

  11. Web Service implementation methods • REST • Representational State Transfer • Easier, more common approach • SOAP • Used in more complex environments • Requires more set-up and infrastructure

  12. Relevant APIs / Web Services • Amazon Web Service • Google Search • Google Book Search Viewability API • OCLC APIs • Local ILS APIs • Facebook

  13. Rest-like Example: Google search http://www.google.com/search? q=marshall+breeding& hl=en& safe=off

  14. RSS as an example of REST • http://www.librarytechnology.org/rss

  15. 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

  16. Example: Google API • http://api.google.com/GoogleSearch.wsdl • http://www.google.com/apis/reference.html • Perl example for implementing the Google Web services

  17. Example print"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();foreachmy $entry (@{$return->{'resultElements'}}) {print "";print "<a href=\" $entry->{URL}\">$entry->{title}\n";print "$entry->{snippet}\n";print "\n";}

  18. Mashups • A new resource based on content or services from multiple sources • Usually created through Web services • Many examples

  19. Let’s Build a mashup using Web Services

  20. 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

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

  22. 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;

  23. Step 3. Invoke Google MAP API Use pre-established API key Fetch the correct map specifying size and location Place the marker on the map Label the marker Create and populate info window

  24. Call the subroutine &MapScript("$lat","$long","$fields{'libphoto'}");

  25. Invoke the subroutine sub 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"; }

  26. Step 4. Stir, bake and serve

  27. From Web Services to SOA Building a new library technology infrastructure through a service-oriented architecture

  28. Breaking down the modules • Traditional ILS • Cataloging • Circulation • Online Catalog • Acquisitions • Serials control • Reporting • Modern approach: SOA

  29. Service Oriented Architecture http://www.sun.com/products/soa/benefits.jsp

  30. Legacy ILS + e-content modules End User Interfaces: Federated Search OpenURL Linking Electronic Resource Mgmt System Circulation Acquisitions Functional modules: Cataloging Serials Data Stores: Staff Interfaces:

  31. SOA model for business automation • Underlying data repositories • Local or Global • Reusable business services • Composite business applications

  32. SOA for library workflow processes Composite Applications Reusable Business Services Granular tasks: Data Stores:

  33. 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 announcements • Open Source projects in early phases • Projection: 2-3 years until we begin see library automation systems that follow this approach. 3-5 years for wider adoption.

  34. Open Library Environment (OLE) project • Andrew W. Mellon Foundation • Research in Information Technology program • Duke University selected to lead project • Core Participants: Kansas University, Lehigh University, National Library of Australia, Library and Archives Canada, University of Pennsylvania, Marshall Breeding • Advisory Participants: University of Chicago, Wittier College, University of Maryland, ORBIS Cascade Alliance, Rutgers University • Status: Project underway. Initial meeting, scope document, public webcast, working toward completion of system blueprint by July 2009. http://oleproject.org

  35. 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

  36. Comments Questions and Discussion

More Related