1 / 26

Web 2.0 Mashups Project Proposal UCLA CS130, Spring 2007

Explore the power of mashups to create a hybrid application that combines content from different sources. Learn about web services, service-oriented architecture, SOAP, and WSDL to build your own mashup.

dhook
Download Presentation

Web 2.0 Mashups Project Proposal UCLA CS130, Spring 2007

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. Web 2.0 MashupsProject ProposalUCLA CS130, Spring 2007 Alex Rodriguez SWG – Tivoli arodrigu@us.ibm.com Chris Montalvo GBScdmontal@us.ibm.com Martin Stenkilde SWG – Rationalmstenkil@us.ibm.com Gergana Markova SWG – Tivoligmarkova@us.ibm.com

  2. Mashup • A hybrid application that combines content from more than one source. • Very popular Web 2.0 idea • Mash-up (you can use a hyphen if you want)

  3. Why Mash? • Mashups are the next logical step in Service Oriented Architecture • The real power in Web services comes from combining • Web services are typically specialized, mashups are “situational” • Development without central authority

  4. Web 2.0 • Web 2.0: O’Reilly Media coined the term • Web 1.0 vs. 2.0 • One-to-many vs. many-to-many publishing • Application gets better as publishers make it better vs. application gets better the more people use it • No AJAX vs. AJAX

  5. What is a Web service? • W3C Web Services Architecture Group • “A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.”

  6. Service Oriented Architecture (SOA) • A style of application design focused on how services are described and organized to support dynamic, automated discovery and use. • Web services implement the service oriented architecture • SOA principles: • Reuse • Modularity • Composability • Interoperability

  7. Service Oriented Architecture Roles Service Registry Publish Advertise service Find Discover service Service Provider Service Requester Bind/Invoke Request service

  8. SOAP • A W3C Specification • An XML format, typically holds information for a Web service method call, or a response • Programming language independent • SOAP expanded: Services-Oriented Access Protocol • Used to be Simple Object Access Protocol

  9. WSDL • Web Services Description Language • A kind of IDL (Interface Definition Language) • An XML format to describe a Web service’s capabilities • Describes a service as a set of endpoints operating on messages

  10. XML/Java • XML Parsers • Parsers help with validation, well-formedness checking, building a DOM, notifying the application of errors • Two API Standards: DOM and SAX • Xerces2 • Data Binding APIs

  11. Axis • Apache Extensible Interaction System • A SOAP Engine • A JAX-RPC run-time system • Provides emitter tooling that generates Java classes from WSDL • Used to be IBM SOAP4J

  12. JAX-RPC • A Sun specification, was JSR 101 • Specifies Java APIs for XML-based Remote Procedure Call • Remote Procedure Call • A mechanism for clients to call procedures from a service over a network • Typically used in distributed client/server model • Other example of RPC mechanism: RMI

  13. A Very Simple Example • The Library Web service • Exposes one method: findTitleByAuthor • Uses Axis “instant deployment” with a JWS file • Generates a Web service client from the Library service WSDL

  14. Service Implementation - Library.jws import java.util.*; publicclass Library { private LibraryDatastore dataStore; public Library() { DatastoreFactory.getDS(); dataStore = DatastoreFactory.getLibraryDataStore(); } public Collection findTitleByAuthor(String author) { ... } }

  15. Axis Instant Deployment $tomcat_home/webapps/axis http://127.0.0.1:8080/axis/Library.jws?wsdl

  16. WSDL2Java Generates

  17. Service Client – LibraryClient.java import java.util.*; import org.library.*; publicclass LibraryClient { publicstaticvoid main(String[] args) { try { LibraryService libraryLocator = new LibraryServiceLocator(); Library library = libraryLocator.getLibrary(); Object[] titles = library.findTitleByAuthor(args[0]); for (Object title : titles) { System.out.println(title); } } catch (Exception e) { e.printStackTrace(); } } }

  18. Suggested Approach • Environment setup • Service discovery • Your Mashup Concept • Design / Storyboard • Component Level Design • Implementation • Test • Deployment (Go Live)

  19. Web service Providers

  20. Real Mashup Examples • http://www.allapis.com/Yahoo_Flickr_Weather_Maps.aspx • Allows users to search US cities/locations - provides users with information on the city requested • Weather Forecasts • Wikipedia geo Articles • Flickr photos • APIs used • Flickr • GeoNames • Yahoo Geocoding • Yahoo Maps

  21. Real Mashup Examples • www.corozalmapia.com • The site is not complete, however the concept is interesting • This specific site is a map of Corozal Town Belize (Central America). • Each attraction on the map is clickable • Once clicked the user can see pictures and video of each attraction • APIs used • Google AdSense • Google Maps • YouTube

  22. Skills Required • Java Programming, nothing fancy • Basic web service concepts: SOAP, WSDL • Basic web-application concepts: URLs, HTTP, JavaScript, server-side scripting (JSP, PHP, other) • Basic XML (syntax, parsing) • AJAX (would be nice) • CSS (optional)

  23. Gain Experience • J2EE • Web services • SOAP • Axis • JAX-RPC • XML • Web UI • AJAX

  24. Links and References (1) • Documentation / Specifications • developerWorks – SOA and Web services • http://www-128.ibm.com/developerworks/webservices/ • SOAP • http://www.w3.org/TR/soap/ • WSDL • http://www.w3.org/TR/wsdl • JAX-RPC • http://java.sun.com/webservices/jaxrpc/ • SOAP Engine • Axis • http://ws.apache.org/axis/ • Eclipse • http://www.eclipse.org/

  25. Links and References (2) • Web service Providers (WSDL) • Google Code • http://code.google.com/ • Yahoo Developer Network • http://developer.yahoo.com/ • Amazon ECS • http://www.amazon.com/exec/obidos/tg/browse/-/12738641 • Flickr Web services • http://www.flickr.com/services/api/ • YouTube API • http://www.youtube.com/dev • Microsoft Web services • http://www.momentumsi.com/MSWSDLHunt.html

  26. Questions • Questions?

More Related