Post on 31-Mar-2015
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 1
Mailing@devspace.com
Real World Web ServicesReal World Web Services(was Applied Web Services)(was Applied Web Services)
Christian GrossChristian Gross
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 2
Introduction: Christian GrossIntroduction: Christian Gross Trainer, Consultant, MentorTrainer, Consultant, Mentor
Open / Shared Source / Binary technologiesOpen / Shared Source / Binary technologiesTechnologies (Web Services, Apache / XML, Java, C+Technologies (Web Services, Apache / XML, Java, C++, .NET)+, .NET)
WebsiteWebsitehttp://www.devspace.comhttp://www.devspace.com
Author: Author: Applied Software Engineering Using Apache Jakarta Applied Software Engineering Using Apache Jakarta CommonsCommons
““Open Source for the Windows Administrator”Open Source for the Windows Administrator”Upcoming “(Re)Learning OOP using .NET Patterns”Upcoming “(Re)Learning OOP using .NET Patterns”Upcoming “AJAX/REST Patterns and Best Practices”Upcoming “AJAX/REST Patterns and Best Practices”
Contact: mailing@devspace.comContact: mailing@devspace.com
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 3
Why Rename Of Session?Why Rename Of Session? A funny thing happened…A funny thing happened…
I was late with this tutorial, and I thought I had everything I was late with this tutorial, and I thought I had everything ironed outironed outHA!HA!
Web Services has changed in its implementationWeb Services has changed in its implementationOriginally this tutorial was about using SOAP, and WSDL to Originally this tutorial was about using SOAP, and WSDL to interact with EBay, Google, and Amazoninteract with EBay, Google, and Amazon
But the big players EBay, Google, and Amazon have But the big players EBay, Google, and Amazon have changed tackchanged tackSome of it was already happening, but now the ball is rolling!Some of it was already happening, but now the ball is rolling!
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 4
AgendaAgenda Outline of what Applied Web Services meansOutline of what Applied Web Services means Defining and illustrating what EBay, Google, and Defining and illustrating what EBay, Google, and
Amazon are doingAmazon are doing Code walk through during entire tutorialCode walk through during entire tutorial
mailing@devspace.commailing@devspace.com
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 5
What Is Applied Web Services?What Is Applied Web Services? Applied Web Services is when two computers Applied Web Services is when two computers
communicate to exchange data that only the communicate to exchange data that only the computers are interested incomputers are interested inSounds like Theory of Web Services?Sounds like Theory of Web Services?
Difference is that the computers are made to work Difference is that the computers are made to work together in a heterogeneous environmenttogether in a heterogeneous environmentMany pieces of Web Services is based on unknown theory Many pieces of Web Services is based on unknown theory that may or may not work, as people are churning out the that may or may not work, as people are churning out the specificationsspecifications
Many internal web service applications are based on the same Many internal web service applications are based on the same platform platform Kind of ironic, no? Sort of like buying a fleet of Mercedes and getting Kind of ironic, no? Sort of like buying a fleet of Mercedes and getting them repaired at a Ford dealership. Misguided “just in case” thinkingthem repaired at a Ford dealership. Misguided “just in case” thinking
Even though interoperability is an issue, I wonder if it is not a Even though interoperability is an issue, I wonder if it is not a red herring argumentred herring argument
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 6
Applied Web ServicesApplied Web Services The big dream of web services is to have a meta-data The big dream of web services is to have a meta-data
with appropriate specifications results in two computers with appropriate specifications results in two computers being able to transfer databeing able to transfer dataWrong idea, and will never happen!Wrong idea, and will never happen!
Better idea is to apply web services with specific Better idea is to apply web services with specific domain knowledge, with specific protocolsdomain knowledge, with specific protocols
Challenge (you will get one of my books your choice):Challenge (you will get one of my books your choice):Easy: What is a six-packEasy: What is a six-packMedium: What is a two by four?Medium: What is a two by four?Hard: What is a two-four?Hard: What is a two-four?
The problem is that people like to optimize and use The problem is that people like to optimize and use path of least resistance!path of least resistance!
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 7
How Does It Affect You?How Does It Affect You? Most of the time your web services will be fully under Most of the time your web services will be fully under
your control your control Internal, sub-contractor, etcInternal, sub-contractor, etc
But for EBay, Google, and Amazon and other But for EBay, Google, and Amazon and other corporations you are not in controlcorporations you are not in controlThink of it as computing across the InternetThink of it as computing across the InternetYOU MUST BE CONNECTED ALWAYS! Not optional and YOU MUST BE CONNECTED ALWAYS! Not optional and introduces a new paradigmintroduces a new paradigm
Involves using Web Services as a consumer and not Involves using Web Services as a consumer and not service providerservice providerOf course you can offer your own Web Service (eg create a Of course you can offer your own Web Service (eg create a service that combines the best Entertainment System)service that combines the best Entertainment System)
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 8
Different ProtocolsDifferent Protocols
Consumer Provider
ATOM
RSS
REST
SOAP
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 9
RSSRSS Rich Site Summary (RSS) is a XML based web Rich Site Summary (RSS) is a XML based web
syndication mechanism used by newsites, and weblogssyndication mechanism used by newsites, and weblogs There are three versions 0.91 (Rich Site Summary), There are three versions 0.91 (Rich Site Summary),
(RDF Site Summary) 0.9/1.0, and 2.0 (Really Simple (RDF Site Summary) 0.9/1.0, and 2.0 (Really Simple Syndication)Syndication)
Allows a website to syndicate informationAllows a website to syndicate informationCan be used for personal diary, version updates, news itemsCan be used for personal diary, version updates, news items
Used to inform clients of things that are happeningUsed to inform clients of things that are happening Common software utility is called an aggregator that Common software utility is called an aggregator that
combines the streams and presents a new streamcombines the streams and presents a new stream RSS 2.0 allows extensions for additional functionalityRSS 2.0 allows extensions for additional functionality
Microsoft using it for ordered updatesMicrosoft using it for ordered updates
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 10
RSS FormatRSS Format<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/"> <channel> <title>Blogger Jacks</title> <link>http://www.devspace.com</link> <description>News and Politics for the Software Industry</description> <dc:language>en-us</dc:language> <dc:creator>Christian Gross</dc:creator> <dc:date>2005-06-21T11:24:09+02:00</dc:date> <admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" /> <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate> <docs>http://www.devspace.com/tech/rss</docs> <generator>Weblog Editor 2.0</generator> <managingEditor>editor@example.com</managingEditor> <webMaster>webmaster@example.com</webMaster> <item> <link>http://www.devspace.com/archives/2005/06/22T09_30_00.html</link> <title>Backward Thinking and Forward Thinking</title> <dc:date>2005-06-22T09:30:00+02:00</dc:date> <dc:creator>Christian Gross</dc:creator> <description><![CDATA[Some text]]></description> <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate> <guid>http://www.devspace.com/ archives/2005/06/22T09_30_00.html</guid> </item> </channel></rss>
Channel Description
Item Description
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 11
ATOMATOM Controversial because it is meant to replace RSS as it Controversial because it is meant to replace RSS as it
does the same thing as RSSdoes the same thing as RSS Meant to keep things simple when you need to retrieve, Meant to keep things simple when you need to retrieve,
update, and modify streamsupdate, and modify streamsRSS is only the viewing, not the updatingRSS is only the viewing, not the updating
ATOM is based on XML, and only one protocol HTTPATOM is based on XML, and only one protocol HTTPIncludes Syndication, Publishing, and Auto-DiscoveryIncludes Syndication, Publishing, and Auto-Discovery
Can be used to create “resources” and reference Can be used to create “resources” and reference informationinformation
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 12
ATOM Feed ATOM Feed (http://en.wikipedia.org/wiki/Atom_(http://en.wikipedia.org/wiki/Atom_%28standard%29)%28standard%29)
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 13
REST == Representational State TransferREST == Representational State Transfer REST is an architectural style, not a standardREST is an architectural style, not a standard
"Representational State Transfer is intended to evoke an "Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: a image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the network of web pages (a virtual state-machine), where the user progresses through an application by selecting links user progresses through an application by selecting links (state transitions), resulting in the next page (representing the (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and next state of the application) being transferred to the user and rendered for their use." - Dr. Roy T. Fieldingrendered for their use." - Dr. Roy T. Fielding
REST emphasizesREST emphasizesScalability of component interactionsScalability of component interactionsGenerality of interfacesGenerality of interfacesIndependent deployment of componentsIndependent deployment of componentsSupport for intermediariesSupport for intermediaries
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 14
Key Principles of REST - Peter DraytonKey Principles of REST - Peter Drayton "Identification of resources""Identification of resources"
Resources are anything that can be namedResources are anything that can be namedNaming authority assigns an identifier to a resourceNaming authority assigns an identifier to a resource
"Manipulation of resources through representations""Manipulation of resources through representations"Representations capture current/intended state of resourcesRepresentations capture current/intended state of resourcesRepresentations are transferred between componentsRepresentations are transferred between componentsRepresentations often contain links to related resourcesRepresentations often contain links to related resources
"Self-descriptive messages""Self-descriptive messages"Resource identifiers, representation data formats, control dataResource identifiers, representation data formats, control data
"Hypermedia as the engine of application state""Hypermedia as the engine of application state"Servers are stateless, messages are independentServers are stateless, messages are independentClients maintain state (representations) & traverse links Clients maintain state (representations) & traverse links
Induces scalability, generality, evolvability, extensiblityInduces scalability, generality, evolvability, extensiblity
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 15
REST Process View - REST Process View - Roy T. FieldingRoy T. Fielding
$
$
$
$
$
$
$
$
Layered Client-ServerLayered Client-Server Uniform Interface (like Pipe and Filter)Uniform Interface (like Pipe and Filter) Stateless, Cacheable CommunicationStateless, Cacheable Communication Optional Code-on-DemandOptional Code-on-Demand
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 16
SOAPSOAP Initially used for RPC (Remote Procedure Call)Initially used for RPC (Remote Procedure Call) Has undergone quite a few revisions in a very short Has undergone quite a few revisions in a very short
period of time (0.9, 1.0, 1.1, 1.2)period of time (0.9, 1.0, 1.1, 1.2) Part of the XML Protocol working groupPart of the XML Protocol working group Based on the concept of an envelope encapsulating a Based on the concept of an envelope encapsulating a
documentdocumentLike snail mail, envelope and letter withinLike snail mail, envelope and letter within
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 17
SOAP TheorySOAP Theory Specification is 1.2 that is split into four documentsSpecification is 1.2 that is split into four documents
Part 0: Primer, which is easy to read and understandPart 0: Primer, which is easy to read and understandPart 1: Messaging Framework, which provides the basics of Part 1: Messaging Framework, which provides the basics of the SOAP message structure. Not so easy to read.the SOAP message structure. Not so easy to read.
Part 2: Adjuncts, defines a number of “extensions” to the Part 2: Adjuncts, defines a number of “extensions” to the SOAP protocol. When read must understand Part 1.SOAP protocol. When read must understand Part 1.
Specification Assertions and Test Collection, used to define Specification Assertions and Test Collection, used to define the test conditions to validate a client or server the test conditions to validate a client or server implementation. Generally only useful for authors of SOAP implementation. Generally only useful for authors of SOAP implementationsimplementations
For end user programming purposes Part 0 is the only For end user programming purposes Part 0 is the only specification that interesting enough to be readspecification that interesting enough to be read
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 18
SOAP Theory 1.2: MessageSOAP Theory 1.2: Message Make an HTTP Request (SOAP in payload)Make an HTTP Request (SOAP in payload)
HTTP is an example of a SOAP BindingHTTP is an example of a SOAP Binding Binding and Message are now two separate aspects of the SOAP Binding and Message are now two separate aspects of the SOAP
specificationspecification
POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml Content-Length: nnnn SOAPMethodName: Some-Namespace-URI#GetLastTradePrice
<SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1"> <SOAP:Body>
<m:GetLastTradePrice xmlns:m="Some-Namespace"> <symbol>DIS</symbol>
</m:GetLastTradePrice> </SOAP:Body>
</SOAP:Envelope>
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 19
WSDL Theory: IntroductionWSDL Theory: Introduction Web Services Description Language (WSDL)Web Services Description Language (WSDL) A way of describing your web serviceA way of describing your web service
May or MAY NOT be SOAP basedMay or MAY NOT be SOAP based Extensions include SOAP or HTTPExtensions include SOAP or HTTP
Can be anything including a proprietary protocolCan be anything including a proprietary protocol
Messages
Operation
Interface
Service interface(Abstract definition)
Binding
Service
Endpoint
Service implementation(Concrete definition)
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 20
WSDL The Good and The BadWSDL The Good and The Bad WSDL 1.1 != WSDL 2.0WSDL 1.1 != WSDL 2.0
Major changes and there is no compatibilityMajor changes and there is no compatibility
Rich Salz has a major beef Rich Salz has a major beef ((http://http://webserviceswebservices.xml.com/pub/a/.xml.com/pub/a/wsws/2004/11/17//2004/11/17/salzsalz.html.html))His point is both valid and overblownHis point is both valid and overblown
Moves back into the COM, IDL, CORBA way of specifying an Moves back into the COM, IDL, CORBA way of specifying an interfaceinterfaceDifference is that everything is expressed using XMLDifference is that everything is expressed using XML
The problem that WSDL has its requirement to “describe the The problem that WSDL has its requirement to “describe the world”world”Requires to be very loose and open ended thus making it hard to be 100% Requires to be very loose and open ended thus making it hard to be 100% specific.specific.
What about the future? WSDL needs to address the future and whatever it What about the future? WSDL needs to address the future and whatever it encompassesencompasses
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 21
What Do You Need To Know?What Do You Need To Know? Good question, since there are too many choicesGood question, since there are too many choices You need to know that you should not lock yourself into You need to know that you should not lock yourself into
a single protocola single protocol Understand your Web Services platformUnderstand your Web Services platform
Amazon, Google, and EBay have extensive (mostly) help on Amazon, Google, and EBay have extensive (mostly) help on how to get going with the API’s.how to get going with the API’s.
Know that the Web Service is not yours! Know that the Web Service is not yours! This means you cannot simply resell, call, manipulate or do This means you cannot simply resell, call, manipulate or do what you wantwhat you want
There are rules of conduct defined by the Web Service There are rules of conduct defined by the Web Service providerproviderIf you don’t agree with them TOUGH BANANAS! If you don’t agree with them TOUGH BANANAS!
The data is not yours and you may not use it as yoursThe data is not yours and you may not use it as yoursIn other words no permanent caches or caches in generalIn other words no permanent caches or caches in general
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 22
Three Major Web Service PlatformsThree Major Web Service Platforms Amazon: Buying of “things”Amazon: Buying of “things”
New Web Services to send messages and search websitesNew Web Services to send messages and search websites
EBay: Buying and selling of “things” in an auction EBay: Buying and selling of “things” in an auction scenarioscenarioComprehensive platform to do many thingsComprehensive platform to do many things
Google: Doing many “things”Google: Doing many “things” There are others, but they are beyond the scope of this There are others, but they are beyond the scope of this
talktalk
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 23
What Can You Do?What Can You Do? Buying, selling, and searching of products using EBay Buying, selling, and searching of products using EBay
SDKSDK Buying of products using Amazon SDKBuying of products using Amazon SDK Searching of the Internet using Google and Amazon Searching of the Internet using Google and Amazon
SDKSDK Simple Queuing Services using Amazon SDKSimple Queuing Services using Amazon SDK Atom / Blogger API using Blogger SDK (Google Atom / Blogger API using Blogger SDK (Google
company)company) MAP API for downloading and searchingMAP API for downloading and searching
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 24
EBay SDKEBay SDK Developer information is available at Developer information is available at
http://developer.ebay.com http://developer.ebay.com Two main developer issuesTwo main developer issues
Application creationApplication creationCertificationCertification
You can easily develop an application in different languages and You can easily develop an application in different languages and environmentsenvironmentsSupported SOAP, Raw XML, and moving towards REST (60 API’s approx)Supported SOAP, Raw XML, and moving towards REST (60 API’s approx)Multiple languages, Java, .NET, PHP, Perl, Python, etcMultiple languages, Java, .NET, PHP, Perl, Python, etc
Data is being moved to UTF-8 for simpler international Data is being moved to UTF-8 for simpler international consumptionconsumption
Need a web service toolkit that supports https (SSL)Need a web service toolkit that supports https (SSL) If keys are lost there are issues with respect to hackers doing If keys are lost there are issues with respect to hackers doing
things on you behalfthings on you behalf
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 25
EBay SDK (cont.)EBay SDK (cont.) All initial development is carried out in a SandboxAll initial development is carried out in a Sandbox
Is a mirror of the EBay America websiteIs a mirror of the EBay America websiteThe is American only meaning anybody can use it, but the The is American only meaning anybody can use it, but the data is presented using American notationsdata is presented using American notations
Can use fake data, and processing will be real, but is not Can use fake data, and processing will be real, but is not actually carried outactually carried out
There are two sets of keys sandbox and production There are two sets of keys sandbox and production keyskeys
Production keys are only given out when your Production keys are only given out when your application is certifiedapplication is certified
Are constantly monitored for which API’s are used and Are constantly monitored for which API’s are used and whenwhen
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 26
EBay CertificationEBay Certification All applications must be certified before they can be All applications must be certified before they can be
used in productionused in productionProduction keys are given when application is certifiedProduction keys are given when application is certified
Certification requires filling out a formula and Certification requires filling out a formula and answering some questionsanswering some questionsGenerally a 5-7 business day processGenerally a 5-7 business day process
Certification means:Certification means:Having used EBay in the sandbox (active monitoring)Having used EBay in the sandbox (active monitoring)Specifying and having to update which API’s can be usedSpecifying and having to update which API’s can be usedUsed by EBay to assess future hardware requirementsUsed by EBay to assess future hardware requirementsImplementing the EBay guidelines, eg not storing data locally Implementing the EBay guidelines, eg not storing data locally or indicating where the data came fromor indicating where the data came from
Not yet implemented “charge on behalf”Not yet implemented “charge on behalf”
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 27
Amazon SDKAmazon SDK Developer reference is found at:Developer reference is found at:
Surf to Surf to http://www.http://www.amazonamazon.com.comClick on “See More Stores” linkClick on “See More Stores” linkClick on “Web Services” linkClick on “Web Services” link
A developer key is requiredA developer key is required Supported is both REST and SOAPSupported is both REST and SOAP Language and platform support is not an issue Language and platform support is not an issue
because all API’s are supported regardless of because all API’s are supported regardless of technologytechnologyPlatform or language must be able to understand HTTP, and Platform or language must be able to understand HTTP, and XMLXML
Free platform, no certification, but limits on usageFree platform, no certification, but limits on usage Can get paid using affiliate serviceCan get paid using affiliate service
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 28
Amazon SDK (cont.)Amazon SDK (cont.) Amazon has three main servicesAmazon has three main services
Amazon store: Used to browse and search for productsAmazon store: Used to browse and search for productsAmazon Alexa Service: A search engine used to search for Amazon Alexa Service: A search engine used to search for informationinformation
Amazon Simple Queuing Services: Used to send queued Amazon Simple Queuing Services: Used to send queued packets, essentially an “email” service without the emailpackets, essentially an “email” service without the email
Amazon was one of the first to implement REST, and Amazon was one of the first to implement REST, and offers both (SOAP, and REST)offers both (SOAP, and REST)Geared towards using XSLTGeared towards using XSLT
Amazon provides additional tools such as:Amazon provides additional tools such as:XML Scratch Pad: A tool used to create Amazon requests in XML Scratch Pad: A tool used to create Amazon requests in XML without having to code the XML yourselfXML without having to code the XML yourself
XPath XSLT Tool: A tool based on the Amazon Web Services XPath XSLT Tool: A tool based on the Amazon Web Services used to generate XPath and XSLT documentsused to generate XPath and XSLT documentsXSLT is often used in conjunction with REST and is very popularXSLT is often used in conjunction with REST and is very popular
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 29
Amazon StoreAmazon Store Searches the Amazon storeSearches the Amazon store
Can specify a local store (US, DE, FR, CA, JP, UK)Can specify a local store (US, DE, FR, CA, JP, UK)Can search Amazon zShopsCan search Amazon zShops
Can perform minimal, or extensive searchesCan perform minimal, or extensive searchesMinimal as an example retrieves product information and costMinimal as an example retrieves product information and costExtensive searches include comments, image references, etcExtensive searches include comments, image references, etc
Can implement a remote shopping cartCan implement a remote shopping cartCheck out must be performed by Amazon.comCheck out must be performed by Amazon.com
Can search wishlists of other peopleCan search wishlists of other people Ability to perform multiple actions in one requestAbility to perform multiple actions in one request
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 30
Amazon Alexa SearchAmazon Alexa Search Can execute a search using the Can execute a search using the http://www.alexa.comhttp://www.alexa.com
search enginesearch engine There are multiple ways to search:There are multiple ways to search:
Regular search like a Google searchRegular search like a Google searchCategory search: Alexa has a set of categories that can be Category search: Alexa has a set of categories that can be used to narrow down the searchused to narrow down the search
Web map, and URL info makes it possible to retrieve the Web map, and URL info makes it possible to retrieve the information regarding a specific URL, such as reference count, information regarding a specific URL, such as reference count, and popularityand popularity
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 31
Amazon Simple QueuingAmazon Simple Queuing An odd service, but makes it possible to queue An odd service, but makes it possible to queue
information in a data store on the Internetinformation in a data store on the InternetNo idea what the intent isNo idea what the intent is
Used for distributed applications that would like to Used for distributed applications that would like to share informationshare information
Has a limitation in that queue elements can only be Has a limitation in that queue elements can only be 4KB4KB
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 32
Google API’sGoogle API’s Google has gone from a single API for its search Google has gone from a single API for its search
engine to a repository or things that you can doengine to a repository or things that you can do Developer information found at the URLDeveloper information found at the URL
http://code.http://code.googlegoogle.com.com All of this is still in beta form and requires registrationAll of this is still in beta form and requires registration You cannot make commercial usage of any API’s You cannot make commercial usage of any API’s
unless you get written permission from Googleunless you get written permission from Google
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 33
Google SearchGoogle Search A developer token is requiredA developer token is required Can only be used for personal non-commercial Can only be used for personal non-commercial
purposespurposesFor anything else you must write to Google and askFor anything else you must write to Google and ask
Only a SOAP interface and can be used by anything Only a SOAP interface and can be used by anything that can process a WSDL filethat can process a WSDL file
Is considered a beta service at the time for trial Is considered a beta service at the time for trial purposespurposes
Is used to search the Internet, perform spelling, etcIs used to search the Internet, perform spelling, etc
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 34
Google AdWordsGoogle AdWords Used to manage AdWord accountsUsed to manage AdWord accounts Can be used to manage keywords dependent on your Can be used to manage keywords dependent on your
applications, or databasesapplications, or databases Only a SOAP interface, but a WSDL file is providedOnly a SOAP interface, but a WSDL file is provided
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 35
ATOM FeedsATOM Feeds Blogger is a company purchased by Google and used Blogger is a company purchased by Google and used
to manage blogsto manage blogsNeed to use the ATOM API to add, delete and manipulate Need to use the ATOM API to add, delete and manipulate entries in a blogentries in a blog
GMail is a new web based mailing system like Yahoo GMail is a new web based mailing system like Yahoo mailmailIs used to read new emails only, and not manipulate themIs used to read new emails only, and not manipulate them
Google Groups does not have an ATOM feed, but you Google Groups does not have an ATOM feed, but you can use RSScan use RSS
All of these information feeds can be used by you for All of these information feeds can be used by you for aggregation purposesaggregation purposes
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 36
Maps and Google EarthMaps and Google Earth Maps, and Google Earth are two new products that Maps, and Google Earth are two new products that
make it possible to research our earthmake it possible to research our earth Google Earth is a locally installed application, but it can Google Earth is a locally installed application, but it can
be enhanced by using KML (Keyhole Markup be enhanced by using KML (Keyhole Markup Language)Language)KML is used to define points, lines, and images in the Google KML is used to define points, lines, and images in the Google Earth clientEarth client
Maps is a web based application that can be enhanced Maps is a web based application that can be enhanced by interleaving user information with maps informationby interleaving user information with maps informationIs intended to be used client side in a JavaScript, but is not Is intended to be used client side in a JavaScript, but is not necessarynecessary
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 37
In ConclusionIn Conclusion The future is the NET and major companies are The future is the NET and major companies are
making major investmentsmaking major investments Instead of a single protocol there are multiple protocols Instead of a single protocol there are multiple protocols
like ATOM, RSS, SOAP, WSDL, and REST like ATOM, RSS, SOAP, WSDL, and REST The data and service is not yours, you are a client and The data and service is not yours, you are a client and
subject to the terms of the web service providersubject to the terms of the web service provider It is a good way to provide pre-packaged functionalityIt is a good way to provide pre-packaged functionality There are other publicly available web services at the There are other publicly available web services at the
URL URL http://www.http://www.xmethodsxmethods.net.net
Copyright © 2005, Christian GrossCopyright © 2005, Christian Gross www.devspace.comwww.devspace.com 38