Distributed SystemsIntroductionTopicsEvolution of Internet ComputingBeyond Search Engines: Enabling Information Technology and Scientific ApplicationsTerminologiesProtocolServiceAPISDKInternetAdvances in Client-side programmingClient programmingClient/ServerAdvances in NetworkingInternetworkingCommunication NetworkClient/server IssuesIssues in networked systemsAdvances in MiddlewareCommunication MiddlewareRemote procedure call (RPC)Distributed ObjectsMiddleware (Eg. CORBA, Grid)Technical LayersWhat is a grid?What is a grid? (A formal definition)Beginnings of The GridMessage-oriented Middleware (MOM)Server-side AdvancesServer-side advances: Two-tier applicationsServer-side: Three-tier ApplicationsProgramming Model for Web-based applicationsComponents and Application ServersApplication Programming Model for Three-tier ApplicationsExpectations of a Distributed SystemIssues contd.Emerging Application ModelsLarge scale systemsAmazon.comAmazon (contd.)On to more fundamental conceptsSynchronyAsynchronous communicationInterface vs Payload SemanticsInterface SemanticsPayload SemanticsSlide 48Payload semantics is genericDocument-centric MessagesTight vs. Loose CouplingTight vs. Loose couplingChallengesTools to exploreSummaryBINA RAMAMURTHY01/14/19Copyright 2010 B. Ramamurthy1Distributed SystemsIntroduction01/14/19Copyright 2010 B. Ramamurthy2A distributed system is a network of autonomous computers cooperating to accomplish a task.Hardware and software components of a distributed system coordinate their activity by sharing resources such as data, computation, compute cycles, bandwidth and storage.Examples: Internet, intranet, grid and mobile computing systems.Topics01/14/19Copyright 2010 B. Ramamurthy3Some fundamental termsAdvances in Client-side technologies Communication networkMiddleware concept Server-side technologyApplication models (web, web2.0, web3.0)Evolution of Internet Computing01/14/194CSE507 Introduction 2008PublishInformInteractIntegrateTransactDiscover (intelligence)Automate (discovery)timescale??????SemanticdiscoveryParallelHPCwebdeep webBeyond Search Engines: Enabling Information Technology and Scientific Applications01/14/19CSE507 Introduction 20085Financial: Build PortfolioMedicine: plan treatmentEnvironment: Plan ForestationBiotech: drug discoverySimple Search (stateless)Complex multi-organizational applicationsTV/RemoteWireless deviceCopyright 2010 B. Ramamurthy01/14/196TerminologiesProtocol01/14/19Copyright 2010 B. Ramamurthy7Protocol is a set of rules that end points in a telecommunication system use when exchanging information.IP: Internet protocol defines an unreliable packet transfer protocol.TCP: Transmission Control Protocol builds on IP to define a reliable data delivery protocol.LDAP: Lightweight Directory Access Protocol builds on TCP to define a query-response protocol for querying the state of a remote database.HTTP: Hyper Text Transfer Protocol builds on TCP to facilitate hyper-text document exchange.Service01/14/19Copyright 2010 B. Ramamurthy8Service is a network-enabled entity that provides a specific capability.Service = Protocol + BehaviorA service definition permits many implementations.Examples: ability to move files, create processes, verify access rightsAn FTP server speaks File Transfer Protocol and supports remote read and write access to a collection of files.API01/14/19Copyright 2010 B. Ramamurthy9Application Program Interface (API) defines a standard interface for invoking a specified set of functionality.Examples: The Generic Security Service (GSS) API defines standard functions for verifying identity of communicating parties, encrypting messages and so forth.SDK01/14/19Copyright 2010 B. Ramamurthy10Software Development Kit (SDK) denotes a set of code designed to be linked with, and invoked from within, an application program to provide specified functionality. An SDK typically implements an API.Example: Different SDKs implement GSS-API using the Kerberos or PKI protocols, respectively.Internet01/14/19Copyright 2010 B. Ramamurthy11Internet is a very large distributed system.Interconnection of a collection of heterogeneous networks of computers.Protocols: IP, TCP, HTTPServices: world wide web (www), file transfers (ftp), email, etc.Copyright 2010 B. Ramamurthy01/14/1912Advances in Client-side programmingClient programming01/14/19Copyright 2010 B. Ramamurthy13Simple programs written as a single moduleSingle entry point typically in a “main” function Procedural, functional and object-orientedApplications, applets (web-based)More recently the focus is on rich content: Rich Internet Application (RIA)Adobe Flash, Adobe Flex, Microsoft Silverlight, AjaxModel-View-Controller (MVC) model for design and deployment flexibility. Ex: java swing, struts..Client/Server01/14/19Copyright 2010 B. Ramamurthy14Server: refers to a process on a networked computer that accepts requests from other (local or remote) processes to perform a service and responds appropriately.Client: requesting process in the above is referred to as the client.Request and response are in the form of messages.Request/response modelClient is said to invoke an operation on the server.Many distributed systems today are constructed out of interacting clients/servers.Issues: connectivity (speed and accessibility), addressing, namingCopyright 2010 B. Ramamurthy01/14/1915Advances in NetworkingInternetworking01/14/19Copyright 2010 B. Ramamurthy16Internet stackStandardizationIPV4, IPV6: Internet protocol version 4, 6Tremendous increase in network bandwidth: measured in bits per secondFrom few kilobits per second (56kb/s dial up lines to 1.5Mb/s T1 to 100Gb/s ethernet)What can you do with such fast delivery speed? Connect them up.. Networked application modelsCommunication Network01/14/19Page 17A communication middleware framework isolates the application developers from the details of the network protocol.Application ApplicationNetwork Protocol Stack Network Protocol StackCopyright 2010 B. RamamurthyClient/server Issues01/14/19Copyright 2010 B. Ramamurthy18Basic object-technology could not fulfill the promises such as reusability and interoperability fully in the context internet and enterprise level applications. Deployment was still a major problem and as a result portability and mobility were impaired.Issues in networked
View Full Document