CS514: Intermediate Course in Operating SystemsToday: A two-part lectureHow do Web Services really work?DiscoveryExample of a repositoryRoles?Discovery and namingClient talks to eStuff.comA glimpse inside eStuff.comDiscovery in eStuff.comCORBA approachCORBA is object orientedWill Web Services “help” with naming and discovery?But Web Services won’t…ChallengeWhy this is a challengeHow we do it nowWhy this isn’t good enoughContent Routing Principle (a.k.a. Content Distribution Network)Slide 20Slide 21Two basic types of CDN: cached and pushedCached CDNSlide 24Slide 25Slide 26Pushed CDNSlide 28CDN benefitsCDN costs and limitationsCDN example: AkamaiAkamai caching services ARL: Akamai Resource LocatorARL: Akamai Resource LocatorSlide 34Slide 35ARL Control PartARL Host PartSlide 38Akamai EdgesuiteSharper Image and EdgesuiteSlide 41What may be happening…Akamai isn’t the only storyOther content routing mechanismsSlide 45Slide 46How well do CDNs work?Slide 48Reduced latency can improve TCP performanceLets look at a studyMethodologyResponse Time Results (II) Including DNS Lookup TimeSlide 53CDNs out-performed non-CDNsEffectiveness of DNS load balancingSlide 56DNS load balancing not very effectiveOther findings of studyUltimately a frustrating studyAnother studyHistorical trend: Clear improvementPerformance breakdownEffect of CDN: Positive (but again, we don’t know why)Most web sites not using CDN (4-1)To wrap things upBack to web servicesAside: Why do this?Layered NamingResearch challengesHomework (not to hand in)CS514: Intermediate Course in Operating SystemsProfessor Ken BirmanVivek Vishnumurthy: TAToday: A two-part lecturePart I: Some details on Web ServicesMostly “syntactic”We’ll cover this fast because it’s easyPart II: Content distributionHere look at a larger-scale problem typical of the modern web (not specific to WS)Topic relates to how images are served up by big, high-volume web sitesHow do Web Services really work?Today:WSDL: The Web Services Description LanguageUDDI: The Universal Description, Discovery and Integration standardRoles for brokers in Web Services systemsChallenges associated with naming, discovery and translation in large systemsDiscoveryThis is the problem of finding the “right” serviceIn our example, we saw one way to do it – with a URLWeb Services community favors what they call a URN: Uniform Resource NameBut the more general approach is to use an intermediary: a discovery serviceName Type Publisher Toolkit Language OSWeb Services Performance and Load TesterApplication LisaWu N/A Cross-PlatformTemperature Service Client Application vinuk Glue Java Cross-PlatformWeather Buddy Application rdmgh724890 MS .NET C# WindowsDreamFactory Client Application billappleton DreamFactory Javascript Cross-PlatformTemperature Perl Client Example Source gfinke13 Perl Cross-PlatformApache SOAP sample source Example Source xmethods.net Apache SOAP Java Cross-PlatformASS 4 Example Source TVG SOAPLite N/A Cross-PlatformPocketSOAP demo Example Source simonfell PocketSOAP C++ Windowseasysoap temperature Example Source a00 EasySoap++ C++ WindowsWeather Service Client with MS- Visual BasicExample Source oglimmer MS SOAP Visual Basic WindowsTemperatureClient Example Source jgalyan MS .NET C# WindowsExample of a repositoryRoles?UDDI is used to write down the information that became a “row” in the repository (“I have a temperature service…”)WSDL documents the interfaces and data types used by the serviceBut this isn’t the whole story…Discovery and namingThe topic raises some tough questionsMany settings, like the big data centers run by large corporations, have rather standard structure. Can we automate discovery?How to debug if applications might sometimes bind to the wrong service?Delegation and migration are very trickyShould a system automatically launch services on demand?WebServiceWebServiceWebServicesClient talks to eStuff.comOne big issue: we’re oversimplifyingWe think of remote method invocation and Web Services as a simple chain:ClientsystemSoap RPCSOAProuterA glimpse inside eStuff.comPub-sub combined with point-to-pointcommunication technologies like TCPLBserviceLBserviceLBserviceLBserviceLBserviceLBservice“front-end applications”Discovery in eStuff.comData centers are increasingly commonAnd they raise hard questions!How can a data center in California control decisions a client is making in Ithaca?Services are clustered. How should client request be “routed” to the right memberOnce you start talking to a server it may cache data for you. How can you be sure to get the right one next time?CORBA approachCORBA had what are calledWays to export specialized client stubsThe client stub could include server provided decision logic, like “which data center to connect with”Gives data center a form of remote controlFactory services: manufacture certain kinds of objects as neededEffect was that “discovery” can also be a “service creation” activityCORBA is object orientedSeems obvious… and it is. CORBA is centered around the notion of an objectObjects can be passive (data)… active (programs)… persistent (data that gets saved)… volatile (state only while running)In CORBA the application that manages the object is inseparable from the objectAnd the stub on the client side is part of the applicationThe request per-se is an action by the object on itself and could even exploit various special protocolsWe can’t do this in Web ServicesWill Web Services “help” with naming and discovery?Web Services tells us howOne client can…… find one server and… bind to that server and… send a request that will make sense… and make sense of the responseSo sure, WS will helpBut Web Services won’t…Allow the data center to control decisions the client makesAssist us in implementing naming and discovery in scalable cluster-style servicesHow to load balance? How to replicate data? What precisely happens if a node crashes or one is launched while the service is up?Help with dynamics. For example, best server for a given client can be a function of load but also affinity, recent tasks, etcChallengeWeb Services are expected to parallel existing web site architecturesSo to understand how load balancing could work in a web services system, start by
View Full Document