Trends in Distributed Object Computing

Douglas C. Schmidt
d.schmidt@vanderbilt.edu
Electrical and Computer Engineering Department
University of California, Irvine, 92697

This invited editorial appeared in the Parallel and Distributed Computing Practices journal, edited by Maria Cobb and Kevine Shaw, Vol. 3, No. 1, March 2000.


Limitations with Current Practice

During the past decade advances in VLSI technology and fiber-optics have increased computer processing power by 3-4 orders of magnitude and network link speeds by 6-7 orders of magnitude. Assuming that these trends continue, by the end of this decade there will be billions of interactive and embedded computing and communication devices throughout the world running at clock speeds approaching ~100 Gigahertz, LAN link speeds running at ~100 Gigabits/second, and wireless link speeds running at ~100 Megabits/second. These powerful computers and networks will be available largely at commodity prices, built mostly with robust commercial off-the-shelf (COTS) components, and will inter-operate over an increasingly convergent and pervasive Internet infrastructure.

To maximize the benefit from these advances in hardware technology, the quality and productivity of technologies for developing distributed middleware and application software must also increase. Historically, hardware has tended to become smaller, faster, and more reliable. It has also become cheaper and more predictable to develop and innovate, as evidenced by Moore's Law. In contrast, however, distributed software has often grown larger, slower, and more error-prone. It has also become very expensive and time-consuming to develop, validate, maintain, and enhance.

Although hardware improvements have alleviated the need for some low-level software optimizations, the lifecycle cost [Boehm:88] and effort required to develop software--particularly mission-critical distributed and embedded real-time applications--continues to rise. The disparity between the rapid rate of hardware advances versus the slower software progress stems from a number of factors, including:


Solution Approach: Distributed Object Computing

Obviously, no single silver bullet [Brooks:87] can slay all the demons plaguing distributed software. Over the past decade, however, it has become clear that distributed object computing (DOC) can help to alleviate many inherent and accidental software complexities. DOC represents the confluence of two major areas of software technology:

Thus, DOC is the discipline that uses OO techniques to distribute reusable services and applications efficiently, flexibly, and robustly over multiple, often heterogeneous, computing and networking elements.

At the heart of contemporary distributed object computing is DOC middleware. DOC middleware is object-oriented software that resides between applications and the underlying operating systems, protocol stacks, and hardware to enable or simplify how these components are connected and interoperate, as shown in the following figure:

In general, DOC middleware can be decomposed into the following layers:

In general, these layers of DOC middleware provide the following benefits: (1) they shield software developers from low-level, tedious, and error-prone details, such as socket-level programming [Schmidt:94k], (2) they provides a consistent set of higher-level abstractions [QuO:97] for developing distributed systems, (3) they amortize software lifecycle costs by leveraging previous development expertise and capturing implementations of key patterns [Vlissides:94] in reusable frameworks, rather than building them entirely from scratch for each use-case.


Emerging Trends in Distributed Object Computing R&D

The following trends are shaping the evolution of software development techniques for applications and middleware based on distributed object computing technologies:


Concluding Remarks

Advances in distributed object computing (DOC) technology have occurred at a time when deregulation and global competition are motivating an increase in software productivity and quality. Distributed computing is perceived as a way to meet QoS requirements for dependability and scalability, and to control costs via open systems. Likewise, OO design and programming are widely touted as a means to reduce software cost and improving software quality through reuse, extensibility, and modularity. As a result, there has been a surge of interest in DOC technology in the trade press and in many organizations.

Unfortunately, the level of high quality R&D focus concerning DOC technologies has not kept pace with the level of interest. Since DOC is a combination of two fields, academic journals and conferences concerned with either field have only recently embraced the merger, which has yielded relatively few forums for technical discussion of the combined disciples. Consequently, DOC technology has been ``sold'' far more than it has been studied systematically. This special issue Parallel and Distributed Computing Practices is intended to rectify this imbalance by examining the technical benefits and the challenges provided by DOC technology.


References

[Boehm:88] B. W. Boehm, ``A Spiral Model of Software Development and Enhancement,'' IEEE Computer, vol. 21, pp. 61--72, May 1988.

[Brooks:87] F. P. Brooks, ``No Silver Bullet: Essence and Accidents of Software Engineering,'' IEEE Computer, vol. 20, pp. 10--19, Apr. 1987.

[Lindholm:97] T. Lindholm and F. Yellin, The Java Virtual Machine Specification. Addison-Wesley, 1997.

[Schmidt:94k] D. C. Schmidt and T. Suda, ``An Object-Oriented Framework for Dynamically Configuring Extensible Distributed Communication Systems,'' IEE/BCS Distributed Systems Engineering Journal (Special Issue on Configurable Distributed Systems), vol. 2, pp. 280--293, December 1994.

[Corba:99] Object Management Group, The Common Object Request Broker: Architecture and Specification, 2.3 ed., June 1999.

[Box:97] D. Box, Essential COM. Addison-Wesley, Reading, MA, 1997.

[Waldo:96] A. Wollrath, R. Riggs, and J. Waldo, ``A Distributed Object Model for the Java System,'' USENIX Computing Systems, vol. 9, November/December 1996.

[CorbaComponents:99f] BEA Systems, et al., CORBA Component Model Joint Revised Submission. Object Management Group, OMG Document orbos/99-07-01 ed., July 1999.

[QuO:97] J. A. Zinky, D. E. Bakken, and R. Schantz, ``Architectural Support for Quality of Service for CORBA Objects,'' Theory and Practice of Object Systems, vol. 3, no. 1, 1997.

[Vlissides:94] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1995.

[Schmidt:00a] D. C. Schmidt, M. Stal, H. Rohnert, and F. Buschmann, Pattern-Oriented Software Architecture: Patterns for Concurrency and Distributed Objects, Volume 2. New York, NY: Wiley & Sons, 2000.

[Lea:99] D. Lea, Concurrent Java: Design Principles and Patterns, Second Edition. Reading, MA: Addison-Wesley, 1999.

[Schmidt:99h] I. Pyarali, C. O'Ryan, D. C. Schmidt, N. Wang, V. Kachroo, and A. Gokhale, ``Using Principle Patterns to Optimize Real-time ORBs,'' Concurrency Magazine, vol. 8, no. 1, 2000.

[Kon:00] F. Kon, M. Roman, P. Liu, J. Mao, T. Yamane, L. Magalhaes, and R. Campbell, ``Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB,'' in Proceedings of the Middleware 2000 Conference, ACM/IFIP, Apr. 2000.