Distributed systems help programmers aggregate the resources of many networked computers to construct highly available and scalable services.
This class teaches the abstractions, design and implementation techniques that enable the building of fast, scalable, fault-tolerant distributed systems.
Topics include multithreading, network programming, consistency, fault tolerance, consensus, security, and several case studies of distributed systems.
Distributed object technology
Distributed object technology (DOT) is defined quite broadly for the purposes of this page
We consider it to include three technologies that have synergistically merged to provide something quite powerful,
something greater than the sum of their parts. Those three technologies, in order of their emergence, are
- object technology
- distribution technology
- Web technology
Object technology (OT) was introduced to the computing mainstream in the late 1970s by Adele Goldberg and Alan Kay with a language called Smalltalk [Goldberg 83]. In the objectoriented model, systems are viewed as cooperating objects that encapsulate structure and behavior and belong to hierarchically-constructed classes. In the last twenty years the benefits of object-oriented technology have been demonstrated. Object-orientation has changed the way today's systems are built and maintained.
Substantial experience and tooling exists for object- oriented analysis (OOA), object-oriented design (OOD), and object-oriented programming (OOP). The transition from more traditional structured approaches is not complete, nor has OT been fully exploited, especially in legacy systems that predate objects. But OT is maturing rapidly and is well-accepted as a technology that addresses complexity, improves maintainability, promotes reuse, and reduces life-cycle costs of software.