View
216
Download
1
Embed Size (px)
Citation preview
The Horizontal InternetThe Horizontal Internet
CS241, Internet ServicesCS241, Internet Services© 1999-2001 Armando Fox© 1999-2001 Armando Fox
[email protected]@cs.stanford.edu
OutlineOutline
The horizontal InternetThe horizontal Internet
Internet service composition (intro)Internet service composition (intro)
Implications for software structure (intro)Implications for software structure (intro)
A few words about the ProjectA few words about the Project
Early Internet Services: “Vertical”Early Internet Services: “Vertical”
TWA reservations, CIRRUS banking networkTWA reservations, CIRRUS banking network Proprietary, closed systems (Tandem NonStop Proprietary, closed systems (Tandem NonStop
hardware)hardware)
America Online (pre-Web)America Online (pre-Web) PC and Mac proprietary client S/WPC and Mac proprietary client S/W
Proprietary mainframe-based back endProprietary mainframe-based back end
Modem banks connect directly to terminal Modem banks connect directly to terminal concentratorsconcentrators
Early WWW Portals: “Diagonal”Early WWW Portals: “Diagonal”
Commodity protocols & software...Commodity protocols & software... HTTP, TCP/IP, SSL, off-the-shelf client (Navigator, HTTP, TCP/IP, SSL, off-the-shelf client (Navigator,
MSIE)MSIE)
Farms of off-the-shelf serversFarms of off-the-shelf servers
……augmented with proprietary “secret sauce”augmented with proprietary “secret sauce” Web-based email (Hotmail, Yahoo, …)Web-based email (Hotmail, Yahoo, …)
Industrial-scale homebuilt email servers (EarthLink)Industrial-scale homebuilt email servers (EarthLink)
Search engine portals (AltaVista, Infoseek, Lycos...)Search engine portals (AltaVista, Infoseek, Lycos...)
Customizable news (My Yahoo, Netcenter…)Customizable news (My Yahoo, Netcenter…)
AOL is now a Web portal + world’s largest ISPAOL is now a Web portal + world’s largest ISP
Portal Evolution (1)Portal Evolution (1)
All operations at server siteAll operations at server site Infrastructure vendor (e.g. Cisco) sells directly to Infrastructure vendor (e.g. Cisco) sells directly to
destination sites (e.g. Yahoo.com)destination sites (e.g. Yahoo.com)
Client requests go to destination site operations Client requests go to destination site operations centercenter
PortalCo
InfraCo
ContentContentAdvertisementsAdvertisementsSearchSearchUser profilesUser profilesMobile-friendly pagesMobile-friendly pages
Portal Evolution (2)Portal Evolution (2)
Operations migrate to “server farms” (e.g. Operations migrate to “server farms” (e.g. Exodus)Exodus) Infrastructure vendors sell primarily to IDC’sInfrastructure vendors sell primarily to IDC’s
All client traffic and peering handled via IDCAll client traffic and peering handled via IDC
Peering relationships between IDC’s (not operators)Peering relationships between IDC’s (not operators)PortalCo
InfraCo
ContentContentAdvertisementsAdvertisementsSearchSearchUser profilesUser profilesMobile-friendly pagesMobile-friendly pages
Data Center
Administration,Administration,site updatessite updates
InfraCo
Data Center
InfraCo
Data Center
Portal Evolution (3)Portal Evolution (3)
Services Services migrate to hosted application migrate to hosted application providersproviders Typically paid per use or similar meteringTypically paid per use or similar metering
Client doesn’t visit arms merchants directly (still sees Client doesn’t visit arms merchants directly (still sees portal’s brand)portal’s brand)
PortalCo
InfraCo
ContentContentUser profilesUser profilesMobile-friendly pagesMobile-friendly pagesData
Center
InfraCo
Data Center
InfraCo
Data Center
SearchCo
Some portal Some portal services outsourced services outsourced to “arms merchants”to “arms merchants”
AdTargetCo
Portal Evolution (4)Portal Evolution (4)
““Arms merchants” provide individual services Arms merchants” provide individual services to destination sites/brandsto destination sites/brands Inktomi Traffic Server, Cisco Hosted Apps Initiative, Inktomi Traffic Server, Cisco Hosted Apps Initiative,
othersothers
PortalCo
InfraCo
ContentContentUser profilesUser profilesMobile-friendly pagesMobile-friendly pagesData
Center
InfraCo
Data Center
InfraCo
Data Center
AdTargetCo
SearchCo
AppDevCo
AppDevCo
Development Development platform for variousplatform for various
servicesservices
The Arms Merchants ModelThe Arms Merchants ModelWhatWhat
SearchSearchEmailEmailCalendarCalendarCache/mirrorCache/mirrorShopShopAdsAdsThin accessThin access““Sensitive” Sensitive”
infoinfoNotify on Notify on
updateupdateEmail CRMEmail CRM
Hosted ServiceHosted Service
InktomiCriticalPathWhen.com (AOL acq)Sandpiper/InktomiInktomiDoubleClickProxiNet (Puma acq)VerticalOneNetMind (Puma acq)General Interactive
Sell Iron (or S/W)Sell Iron (or S/W)
Excite, InfoseekSoftware.com, NetAppNetscape Server
Network Appliance, CiscoNetGravityUnwired Planet??????
Infrastructure Vendor
The Food ChainThe Food Chain
Who’s at each level?Who’s at each level?
Physical Plant
Arms Infrastructure
Arms
Aggregators/BrandsValue-Added Svcs
Advantages of Large Hosted Advantages of Large Hosted ServicesServices
Amortization of infrastructure costs (at IDC’s)Amortization of infrastructure costs (at IDC’s) Physical plant, physical security & human monitoringPhysical plant, physical security & human monitoring
Network connectivityNetwork connectivity
Scale of 100’s of nodes requires Scale of 100’s of nodes requires serious serious infrastructureinfrastructure
Large scale can increase service sophisticationLarge scale can increase service sophistication Inktomi search DB over 2x competitors’Inktomi search DB over 2x competitors’
Doubleclick ad selection uses large DB, cross-site history, Doubleclick ad selection uses large DB, cross-site history, compute-intensive selection algorithmcompute-intensive selection algorithm
Tracking usage/buying/etc. patterns of specific user Tracking usage/buying/etc. patterns of specific user populations (mobile users, leisure travelers, etc.) populations (mobile users, leisure travelers, etc.)
Direct-to-consumer wholesale-style e-commerce (Paul Direct-to-consumer wholesale-style e-commerce (Paul Allen, Mercata) aggregates buying power of many Allen, Mercata) aggregates buying power of many individualsindividuals
Disadvantages...Disadvantages...
““In a society where knowledge is power, In a society where knowledge is power, centralized knowledge is centralized power” centralized knowledge is centralized power” --Richard Sobel, HLS Fellow, Berkman Center for Internet & --Richard Sobel, HLS Fellow, Berkman Center for Internet & SocietySociety
Do you want your user profile, portfolio balances, Do you want your user profile, portfolio balances, etc. stored at one place or many? (VerticalOne)etc. stored at one place or many? (VerticalOne)
Business model highly dependent on Business model highly dependent on partnerspartners Billing models being adopted slowly (pay per use, Billing models being adopted slowly (pay per use,
subscription, …)subscription, …)
Shift of responsibility: HSP may have Shift of responsibility: HSP may have operationsoperations responsibility (wearing a pager vs. not)responsibility (wearing a pager vs. not)
Other Arms To Be Marketed?Other Arms To Be Marketed?
Geographic/location services: maps, directions, Geographic/location services: maps, directions, POI’sPOI’s Today: MapQuest, MapBlast, Yahoo Maps...Today: MapQuest, MapBlast, Yahoo Maps...
Tomorrow: “Powered by”Tomorrow: “Powered by”
Extension to other platformsExtension to other platforms Today: Yahoo to your pager, Fidelity Instant Broker, …Today: Yahoo to your pager, Fidelity Instant Broker, …
Tomorrow: “Powered by”Tomorrow: “Powered by”
User profilesUser profiles
OthersOthers Directories (yellow/white pages, mail/news, encyclopediae)Directories (yellow/white pages, mail/news, encyclopediae)
Highly customized news feedsHighly customized news feeds
Toward Service CompositionToward Service Composition
Services from building blocksServices from building blocks Can think of a particular destination Web site as Can think of a particular destination Web site as
providing one or more autonomous “building block”providing one or more autonomous “building block”
MapQuest: given a pair of addresses, return MapQuest: given a pair of addresses, return directions and mapdirections and map
Amazon: given keywords, return listing and price info Amazon: given keywords, return listing and price info for matching booksfor matching books
IMDB: given movie title or other keywords, return IMDB: given movie title or other keywords, return movie reviews and production infomovie reviews and production info
Can we create new Internet services simply by Can we create new Internet services simply by composing these, without writing (much) new composing these, without writing (much) new code?code?
Programming Via Service Programming Via Service CompositionComposition
Remote invocation of several services in real timeRemote invocation of several services in real time Example: “Find the most highly reviewed James Bond Example: “Find the most highly reviewed James Bond
movie and locate the best price for it”movie and locate the best price for it”
ObservationsObservations Typically services aren’t designed to be composed, and Typically services aren’t designed to be composed, and
may have do quite different tasksmay have do quite different tasks
““Compositor” only does remote invocation--not mobile Compositor” only does remote invocation--not mobile codecode
Potential for good fault isolationPotential for good fault isolation
Potential for high availability through redundancyPotential for high availability through redundancy
Can compose “meta-services” into higher-level onesCan compose “meta-services” into higher-level ones
management/heterogeneity issues in dealing with a management/heterogeneity issues in dealing with a collection of autonomous servicescollection of autonomous services
Why Compose Web Services?Why Compose Web Services?
Highly available building blocksHighly available building blocks We’ve learned to make heavily-used destination sites H/AWe’ve learned to make heavily-used destination sites H/A
Autonomous servicesAutonomous services Fault isolation through loose couplingFault isolation through loose coupling
““Self-sufficient”Self-sufficient”
We don’t own or control them--so no control over their We don’t own or control them--so no control over their interfaces--but...interfaces--but...
Universally deployed open protocolsUniversally deployed open protocols Self-describing servicesSelf-describing services
No compile or link step needed for client (no issue of stale No compile or link step needed for client (no issue of stale interface stubs)interface stubs)
No mobile code: just “submit-and-scrape” invocationNo mobile code: just “submit-and-scrape” invocation
Related WorkRelated Work
XML-RPCXML-RPC
SOAPSOAP
Idea: provide structural, programmatic-like Idea: provide structural, programmatic-like interfaces to Web servicesinterfaces to Web services
Today: “fake” RPC using HTTP and HTMLToday: “fake” RPC using HTTP and HTML
What aspects of it are “fake”?What aspects of it are “fake”?
Composition Using Strong TypesComposition Using Strong Types
How do you know when it’s “safe” to compose A and How do you know when it’s “safe” to compose A and B?B? Output semantics of A match input semantics of BOutput semantics of A match input semantics of B
Example: A maps keywords to movie titles and reviews; B Example: A maps keywords to movie titles and reviews; B maps movie titles to prices at online vendorsmaps movie titles to prices at online vendors
The main problem is The main problem is semantic mappingsemantic mapping of of argumentsarguments In most systems to date, this requires In most systems to date, this requires human level human level
knowledgeknowledge
If system is purpose-built for composition, semantic If system is purpose-built for composition, semantic mapping can be explicitly coded into service interfacesmapping can be explicitly coded into service interfaces
Otherwise, we can “wrap” each service with a shell that Otherwise, we can “wrap” each service with a shell that codes semantic mapping of that servicecodes semantic mapping of that service
Example: IMDB and NetflixExample: IMDB and Netflix
A non-earth-shaking example...A non-earth-shaking example...
Consider services M and NConsider services M and N M is IMDB: movie title --> critics’ reviews ranked by ratingM is IMDB: movie title --> critics’ reviews ranked by rating
N is Netflix: movie title --> vendors ranked by priceN is Netflix: movie title --> vendors ranked by price
Example composition: (M,N) is “Identify highest-reviewed Example composition: (M,N) is “Identify highest-reviewed James Bond film, and find the best price”James Bond film, and find the best price”
Common mundane problem…Common mundane problem… M’s movie title includes a year: M’s movie title includes a year: Tomorrow Never Dies Tomorrow Never Dies
(1998)(1998)
N’s doesn’t…must munge M’s movie title to feed to NN’s doesn’t…must munge M’s movie title to feed to N
Problem: where to capture this transformation?Problem: where to capture this transformation?
Composition and Appliance Composition and Appliance ComputingComputing
How can you exploit service composition for…How can you exploit service composition for…
A TiVo box?A TiVo box?
Digital photography?Digital photography?
Portable MP3 players?Portable MP3 players?
Home-control applications? Home-control applications?
etc.etc.
It will be a It will be a featurefeature for your project to leverage for your project to leverage thisthis
Composition ChallengesComposition Challenges
EconomicsEconomics How is billing done? (Subscription? Per-use? How is billing done? (Subscription? Per-use?
Transaction-based? Subsidy?)Transaction-based? Subsidy?)
Is there incentive to provide user choice?Is there incentive to provide user choice?
Technical challengesTechnical challenges Type system and semanticsType system and semantics
Runtime system and error handlingRuntime system and error handling
You’ll hear more about these in future classesYou’ll hear more about these in future classes
Internet EvolutionInternet Evolution
S
SS
S
SS
C
C
C C
Clients and servers (today)Clients and servers (today)
Internet EvolutionInternet Evolution
S
SS
S
SS
C
C
C C
Clients, servers, and caches (to reduce client Clients, servers, and caches (to reduce client latency and backhaul congestion)latency and backhaul congestion)
$
$
$
Internet EvolutionInternet Evolution
S
SS
S
SS
C
C
C C
Add proxies and service compositors to provide Add proxies and service compositors to provide various kinds of intelligent information deliveryvarious kinds of intelligent information delivery
$
$
$
P
PP
CS
A few words about the projectA few words about the project
Appliance computing (1/24) & composition (2/12)Appliance computing (1/24) & composition (2/12) We will provide software infrastructure for both of theseWe will provide software infrastructure for both of these
You can build either an application or more You can build either an application or more infrastructure (with a “toy” app to demonstrate it)infrastructure (with a “toy” app to demonstrate it) It is a It is a featurefeature to leverage existing Web services via to leverage existing Web services via
compositioncomposition
We have a (limited) hardware and software budgetWe have a (limited) hardware and software budget
General project processGeneral project process Pre-proposal (~1 page) posted on Web: 1/31Pre-proposal (~1 page) posted on Web: 1/31
Revised proposal forms basis for project & discussions with Revised proposal forms basis for project & discussions with Advisors starting 2/5Advisors starting 2/5
No other explicit checkpoint/design review till end of qtrNo other explicit checkpoint/design review till end of qtr