EJB Architecture  «Prev  Next»

Distributed Systems Fundamentals

  1. Requires the services of a remote object: client
  2. A common mechanism for decoupling the user of a service with the provider of that service: proxy pattern
  3. Provides an interface to the client that matches the interface of the remote object: stub
  4. The common term for the system services required by a remote object: plumbing
  5. Converts the message from a client from the wire format into a method invocation of the remote object: skeleton
  6. The process of turning a method call into a wire format that can be sent over a network: marshalling
  7. A replaceable piece of software that has an interface and a realization of the interface: component

Distributed Systems

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
  1. object technology
  2. distribution technology
  3. 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.