26
The Horizontal Internet The Horizontal Internet CS241, Internet Services CS241, Internet Services © 1999-2001 Armando Fox © 1999-2001 Armando Fox [email protected] [email protected]

The Horizontal Internet CS241, Internet Services © 1999-2001 Armando Fox [email protected]

  • 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

Today’s Travel Photo: Where Am Today’s Travel Photo: Where Am I?I?