IBM blue-and-black template with image

Download Report

Transcript IBM blue-and-black template with image

Web 2.0 Mashups
Project Proposal
UCLA CS130, Spring 2007
Alex Rodriguez
Chris Montalvo
Martin Stenkilde
Gergana Markova
SWG – Tivoli
GBS
SWG – Rational
SWG – Tivoli
[email protected]
[email protected]
[email protected]
[email protected]
© 2002 IBM Corporation
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)
2
© 2007 IBM Corporation
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
3
© 2007 IBM Corporation
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
4
© 2007 IBM Corporation
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.”
5
© 2007 IBM Corporation
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
6
© 2007 IBM Corporation
Service Oriented Architecture Roles
Find
Service
Registry
Publish
Advertise service
Discover service
Service
Provider
Service
Requester
Bind/Invoke
Request service
7
© 2007 IBM Corporation
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
8
© 2007 IBM Corporation
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
9
© 2007 IBM Corporation
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
10
© 2007 IBM Corporation
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
11
© 2007 IBM Corporation
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
12
© 2007 IBM Corporation
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
13
© 2007 IBM Corporation
Service Implementation - Library.jws
import java.util.*;
public class Library {
private LibraryDatastore dataStore;
public Library() {
DatastoreFactory.getDS();
dataStore = DatastoreFactory.getLibraryDataStore();
}
public Collection findTitleByAuthor(String author) {
...
}
}
14
© 2007 IBM Corporation
Axis Instant Deployment
$tomcat_home/webapps/axis
http://127.0.0.1:8080/axis/Library.jws?wsdl
15
© 2007 IBM Corporation
WSDL2Java Generates
16
© 2007 IBM Corporation
Service Client – LibraryClient.java
import java.util.*;
import org.library.*;
public class LibraryClient {
public static void 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();
}
}
}
17
© 2007 IBM Corporation
Suggested Approach
 Environment setup
 Service discovery
 Your Mashup Concept
 Design / Storyboard
 Component Level Design
 Implementation
 Test
 Deployment (Go Live)
18
© 2007 IBM Corporation
Web service Providers
19
© 2007 IBM Corporation
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
20
© 2007 IBM Corporation
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
21
© 2007 IBM Corporation
Skills Required
 Java Programming, nothing fancy
 Basic web service concepts: SOAP, WSDL
 Basic web-application concepts: URLs, HTTP, JavaScript, serverside scripting (JSP, PHP, other)
 Basic XML (syntax, parsing)
 AJAX (would be nice)
 CSS (optional)
22
© 2007 IBM Corporation
Gain Experience
 J2EE
 Web services
 SOAP
 Axis
 JAX-RPC
 XML
 Web UI
 AJAX
23
© 2007 IBM Corporation
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/
24
© 2007 IBM Corporation
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
25
© 2007 IBM Corporation
Questions
 Questions?
26
© 2007 IBM Corporation