Geo Tag A Geographic Tagging Tool For Extending

  • Slides: 17
Download presentation
Geo. Tag – A Geographic Tagging Tool For Extending Flickr Photo Service Presented by:

Geo. Tag – A Geographic Tagging Tool For Extending Flickr Photo Service Presented by: Lichun Zhu, Dohan Kim Course: 60 -569 Instructor: Dr. Jianguo Lu University of Windsor Winter 2007 April 3, 2007 1

Outline n n n Introduction – Webservice for Web 2. 0 System Hierarchy How

Outline n n n Introduction – Webservice for Web 2. 0 System Hierarchy How to use our system- Demo Summary Q&A April 3, 2007 2

Introduction n n Web 2. 0 (http: //en. wikipedia. org/wiki/Web_2) Trend for the next

Introduction n n Web 2. 0 (http: //en. wikipedia. org/wiki/Web_2) Trend for the next generation Web technology. Uses a set of Web-based services—such as social networking sites, wikis, communication tools, and blogs to enable online collaboration and information sharing among users. Converts web applications into a platform. Use common APIs and data sharing interfaces such as RSS feed to construct ones own application and integrate data from different content providers. Generalized Webservices for Web 2. 0 n Service: n n Out =F(In) ? Webservice: WSDL/SOAP, XML-RPC, Representational State Transfer, XMLHttp. Request April 3, 2007 3

Evolution of Web 2. 0 April 3, 2007 4

Evolution of Web 2. 0 April 3, 2007 4

Our Project n n What does our project do ? To combine Flickr, Google

Our Project n n What does our project do ? To combine Flickr, Google Map and other webservice providers (weather service) together and provide Geographic related tagging service for online personal photo management. Major functionality of our system include: n n n User authentication: authenticate user by checking ones Api-key and secret code; Photo management: upload/delete photos, query/update photo information, add geographic tag to a photo (latitude, longitude and accuracy); Photoset (album) management: add/delete photosets, move photo from one photoset to another; View geotags: view photo as geographic marks in a global satellite map, also display weather of the day as additional information (only applies if location is in US). Export geotags: Export geographic landmarks that combine photo information to a Google Earth KML document that can be viewed in Google Earth. April 3, 2007 5

System Architecture April 3, 2007 6

System Architecture April 3, 2007 6

Services we used n Flickr REST services n n ZK components with Google Map

Services we used n Flickr REST services n n ZK components with Google Map wrapper n n Ajax-based Web User Interface, pure Java Weather Web Service (WSDL) n n n http: //www. flickr. com/services/api Authentication, photo/photoset management, geodata management, Photo upload etc Related service provider: Zoto XML-RPC provider (upgrading) http: //www. webservicex. net/Weather. Forecast. asmx? wsdl operation: get. Weather. By. Zip. Code Self-defined Web Service (WSDL) – Geolocation Mapping n n n http: //kent 1. galab. uwindsor. ca: 8088/gqlserver/services/Geo. Data. S ervice? wsdl Operations: get. Geomapping. By. Lat. Lng, update. Geomapping Reason: hard to find a good Geolocation-postcode mapping service April 3, 2007 7

Comparation of SOAP/XMPRPC/REST 1. SOAP: Request --> POST /gqlserver/services/Sys. Soap. Service HTTP/1. 1 SOAPAction:

Comparation of SOAP/XMPRPC/REST 1. SOAP: Request --> POST /gqlserver/services/Sys. Soap. Service HTTP/1. 1 SOAPAction: "urn: soap. Sysinf. DBUnit-Isoap. Sysinfo. DM#get. Sys. Info" Content-Type: text/xml … <? xml version="1. 0"? > <SOAP-ENV: Envelope xmlns: SOAP-ENV="http: //schemas. xmlsoap. org/soap/envelope/" xmlns: xsd="http: //www. w 3. org/2001/XMLSchema" xmlns: xsi="http: //www. w 3. org/2001/XMLSchemainstance" xmlns: SOAP-ENC="http: //schemas. xmlsoap. org/soap/encoding/"> <SOAP-ENV: Body SOAP-ENV: encoding. Style="http: //schemas. xmlsoap. org/soap/encoding/"> <NS 1: get. Sys. Info xmlns: NS 1="urn: soap. Sysinf. DBUnit-Isoap. Sysinfo. DM"> <Sys. ID xsi: type="xsd: int">2</Sys. ID> <group xsi: type="xsd: string">local</group> <Oper. ID xsi: type="xsd: string">zlc</Oper. ID> <Operpass xsi: type="xsd: string">9999</Operpass> </NS 1: get. Sys. Info> </SOAP-ENV: Body> </SOAP-ENV: Envelope> April 3, 2007 8

Comparation of SOAP/XMPRPC/REST 1. SOAP: Response --> HTTP/1. 1 200 OK Server: Apache-Coyote/1. 1

Comparation of SOAP/XMPRPC/REST 1. SOAP: Response --> HTTP/1. 1 200 OK Server: Apache-Coyote/1. 1 Content-Type: text/xml; charset=utf-8 Transfer-Encoding: chunked Date: Mon, 12 Feb 2007 23: 00: 08 GMT 439 <? xml version="1. 0" encoding="UTF-8"? > <soapenv: Envelope xmlns: soapenv="http: //schemas. xmlsoap. org/soap/envelope/" xmlns: xsd="http: //www. w 3. org/2001/XMLSchema" xmlns: xsi="http: //www. w 3. org/2001/XMLSchema-instance"> <soapenv: Body> <ns 1: get. Sys. Info. Response soapenv: encoding. Style="http: //schemas. xmlsoap. org/soap/encoding/" xmlns: ns 1="urn: soap. Sysinf. DBUnit-Isoap. Sysinfo. DM"> <return href="#id 0"/> <Op. Bank. No xsi: type="soapenc: string" xmlns: soapenc="http: //schemas. xmlsoap. org/soap/encoding/">11000</Op. Bank. No> … </ns 1: get. Sys. Info. Response> … </soapenv: Body> </soapenv: Envelope> 0 April 3, 2007 9

Comparation of SOAP/XMPRPC/REST 2. XMP-RPC: Request --> POST /RPC 2/ HTTP/1. 0 Host: localhost:

Comparation of SOAP/XMPRPC/REST 2. XMP-RPC: Request --> POST /RPC 2/ HTTP/1. 0 Host: localhost: 8088 User-Agent: xmlrpclib. py/1. 0. 1 (by www. pythonware. com) Content-Type: text/xml Content-Length: 275 <? xml version='1. 0'? > <method. Call> <method. Name>category. get_tree</method. Name> <params> <param> <value> <array> <data> <value><string>azz 1</string></value> <value><string>00 d 03 d 8 d 12675 cd 579 e 78 b 356990 fc 5 c</string></value> </data> </array> </value> </params> </method. Call> April 3, 2007 10

Comparation of SOAP/XMPRPC/REST 2. XML-RPC: Response --> HTTP/1. 0 200 OK Date: Mon, 12

Comparation of SOAP/XMPRPC/REST 2. XML-RPC: Response --> HTTP/1. 0 200 OK Date: Mon, 12 Feb 2007 23: 01: 15 GMT Content-Length: 33671 Content-Type: text/xml Server: Twisted. Web/2. 0. 0 <? xml version='1. 0'? > <method. Response> <params> <param> <value><array> <data><value><struct> <member> <name>username</name><value><string>azz 1</string></value></member>. . . </struct></value></data> </array></value> </params> </method. Response> April 3, 2007 11

Comparation of SOAP/XMPRPC/REST 2. XML-RPC: Response --> HTTP/1. 0 200 OK Date: Mon, 12

Comparation of SOAP/XMPRPC/REST 2. XML-RPC: Response --> HTTP/1. 0 200 OK Date: Mon, 12 Feb 2007 23: 01: 15 GMT Content-Length: 33671 Content-Type: text/xml Server: Twisted. Web/2. 0. 0 <? xml version='1. 0'? > <method. Response> <params> <param> <value><array> <data><value><struct> <member> <name>username</name><value><string>azz 1</string></value></member>. . . </struct></value></data> </array></value> </params> </method. Response> April 3, 2007 12

Comparation of SOAP/XMPRPC/REST 3. Flickr REST: Request --> HTTP GET/POST/PUT/DELETE http: //api. flickr. com/services/rest/?

Comparation of SOAP/XMPRPC/REST 3. Flickr REST: Request --> HTTP GET/POST/PUT/DELETE http: //api. flickr. com/services/rest/? method=flickr. photosets. get. List&api_key=xxxxx&user_id=xxxx&auth_token= 2341320 -fa 8 f 28 b 05 de 61 aeb&api_sig=ca 62082295 a 0 f 3690 e 692605335 bc 16 c Response <? xml version="1. 0" encoding="utf-8" ? > <rsp stat="ok"> <photosets cancreate="0"> <photoset id="72157600026791886" primary="427864000" secret="24 b 7424 e 7 f" server="177" farm="1" photos="11"> <title>Home</title> <description>Field trip and family reunion in China in 2007</description> </photoset> <photoset id="72157600017416410" primary="427867923" secret="faa 3135375" server="150" farm="1" photos="3"> <title>Windsor</title> <description>living in Windsor</description> </photosets> </rsp> April 3, 2007 13

Demo Entry point: http: //kent 1. galab. uwindsor. ca: 8088/geotag April 3, 2007 14

Demo Entry point: http: //kent 1. galab. uwindsor. ca: 8088/geotag April 3, 2007 14

n Summary What we have learned n n n Problems Solved n n n

n Summary What we have learned n n n Problems Solved n n n Exploring Flickr authentication model and photo access permission bugfix Serialization/Deserialization problem when using complex datatypes in newly created webservices in Axis Future work n n n Using ZK Ajax package to develop web user interface Experiencing different styles of webservices: SOAP/WSDL, REST, XML-RPC Using Flickr REST API and Google Map API to geo-tag personal photos Using Eclipse WTP and Axis to create/deploy new webservices and generate webservice client stubs Performance improvement Integrating more Web 2. 0 services such as Zoto Related work n A web reverse engineering tool that uses OWL ontology to construct FSM model. April 3, 2007 15

References 1. 2. 3. 4. 5. 6. 7. 8. 9. Web 2. 0 wiki,

References 1. 2. 3. 4. 5. 6. 7. 8. 9. Web 2. 0 wiki, available at: http: //en. wikipedia. org/wiki/Web_2. AJAX technology, available at: http: //en. wikipedia. org/wiki/AJAX. Representational State Transfer, available at: http: //en. wikipedia. org/wiki/REST. XML-RPC Homepage, available at: http: //www. xmlrpc. com/. Flickr wervice API website, available at: http: //www. flickr. com/services/api. Google Map API website, available at: http: //www. google. com/apis/maps. ZK open source project, available at: http: //www. zkoss. org/. Hibernate website, available at: http: //www. hibernate. org/ Lichun Zhu, The Exploration and application of Hibernate, A Object. Relational Persistence Solution, 60 -520 Tool Report, 2006, available at: http: //cs. uwindsor. ca/~zhu 19/60520 -Hibernate. doc April 3, 2007 16

Q&A Thank You April 3, 2007 17

Q&A Thank You April 3, 2007 17