Software Engineering of Distributed SystemsPowerPoint PresentationCourse LogisticsOutlineDefinition of a Distributed SystemAlternative definition of a distributed systemImplied characteristics?Examples?Why is this hard?Software is hardSoftware is hard - 2Software is hard - 3Necessary DevelopmentsPurposes -- what problem is solved?Access and sharing remotelyTransparency TypesDegree of TransparencyOpennessGoals of OpennessFlexibility -- Policy and MechanismScability Challenges -- SizeScalability Challenges -- GeographicScalability Challenges -- AdministrativeScaling TechniquesDividing DNS name space into zonesSlide 26Hardware ConceptsShared Memory & Private MemoryBus-based & Switch-basedPerformance Impacts--bus, shared memoryPerformance impacts --Performance impacts - heterogeneous multicomputer systemsSoftware ConceptsWhen is a distributed system not a distributed system?Various middleware models (paradigms)Sample ParadigmsEach paradigm must address these issues:Software Engineering of Distributed SystemsSoftware Engineering of Distributed SystemsUniversity of ColoradoBoulderECEN5053bring up www.cdk4.net before starting Tegrity in classAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro2August 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro3Course LogisticsIntroductions http://webct.colorado.eduFormatCalendar – this year, Fall Break is merged into Thanksgiving week – no classes 11/20-11/24/2006Final Exam, Monday December 18, 1:30-4 p.m.Homework – see web siteContact information – [email protected] 303-492-8369 (CU office), ECEE 1B67Text web site: www.cdk4.net -- see key pts.August 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro4OutlineDefinitionsSoftware Engineering issuesPurposesDemands/challengesHardware conceptsSoftware conceptsAn example modelAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro5Definition of a Distributed SystemA distributed system is a collection of independent computers that appears to its users as a single coherent system. Andrew TanenbaumA distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages. Coulouris et al (your text)concurrency of components’ executionlack of a global clockindependent failures of componentsAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro6Alternative definition of a distributed system“You know you have one when the crash of a computer you’ve never heard of stops you from getting any work done.” Leslie LamportAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro7Implied characteristics?“appears to its users as a single coherent system” – what must be true for that to be true?August 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro8Examples?internetand what else?August 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro9Why is this hard?Hardware tends to smaller, faster, more reliable, cheaper, more predictable to develop and innovateConcurrent, networked, distributed software has grown larger, slower, more error-prone, very expensive and time-consuming to develop, validate, maintain, enhanceSome low-level sw optimizations are no longer needed thanks to new hardwareLifecycle cost continues to riseAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro10Software is hardInherent complexitiesfundamental domain challenges partial failure, distributed deadlock, end-to-end QoSAccidental complexitiesLimitations of software toolsLimitations of development techniquesnon-portable APIs, poor distributed debuggersDeliberate choices of developers who favor low-level languages and tools that don’t scale wellAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro11Software is hard - 2Inadequate methods and techniquesPopular software analysis methods and design techniques have focused largely on constructing single-process, single-threaded applicationsDevelopment of high-quality concurrent, networked, distributed systems with stringent QoS requirements are left to intuition and expertise of skilled sw architects and engineers.Hard to learn – trial & error, platform-specificAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro12Software is hard - 3Continuous re-invention and re-discovery“The software industry has a long history of recreating in compatible solutions to problems that are already solved.”Dozens of non-standard general-purpose and real-time o.s.’s managing the same hw resourcesDozens of incompatible o.s. encapsulation libraries providing slightly different APIs to implement essentially the same features and servicesStarting to shift to recognizing value of patterns but there are fewer available for concurrent, networked, & distributed systemsAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro13Necessary DevelopmentsTake an historical view1945 - 1985 Computers are large & expensiveMost organizations had only a fewlacked a way to connect themoperated independently from one anotherBy mid-80’s ... powerful microprocessors with power of a then-contemporary mainframeHigh speed networks!Result: Easy to combine large numbers of computers via a high-speed network.August 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro14Purposes -- what problem is solved?Easily connect users to remote resourcesShare resources with remote users in a controlled wayHide the fact that the resources are physically distributed over a network -- transparencyShould be an open systemOffers services by standard rules that describe the syntax and semantics of those servicesShould be scalablesize, geography, and administrationAugust 28, 2006 University of Colorado ECEN5053 SW Eng of Distributed Systems Week 1 Intro15Access and sharing remotelyWhy share? economyease of collaboration -- virtual organizationsease of info exchangecommerceConnectivity and sharing lead to security
View Full Document