Skip to main content
Log in

Load Balancing in CORBA: A Survey of Concepts, Patterns, and Techniques

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

CORBA is an industrial standard for distributed object-oriented applications covering aspects such as heterogeneity and interoperability of products of different vendors. However, the CORBA standard does not define any methods for load balancing and there is a considerable confusion of terms describing associated load balancing techniques. Starting from the general platform- and language-independent CORBA object model, this paper presents a new hierarchical classification of possible load distribution methods for CORBA applications. The classification is a valuable starting point to identify the load balancing method that is appropriate for a given application. Furthermore, we show the relations to modern software design patterns and indicate the places in a CORBA application where load balancing components such as monitoring (obtaining load information), strategy (performing load distribution decisions), and control (executing the strategy decisions) may be integrated. Besides the discussion of the general object model as defined in the CORBA standard, we deal with concrete CORBA-compliant Object Request Brokers such as Orbix and VisiBroker. The presented techniques and examples are useful to systematically evaluate whether a given CORBA ORB can be used to implement a load balancing method as required by the application.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. P. Amaral, C. Jacquemot, P. Jensen, R. Lea, and A. Mirowski. Transparent object migration in COOL-2, Proceedings of Workshop on Dynamic Object Placement and Load-Balancing in Parallel and Distributed Systems, ECOOP'92. Utrecht, The Netherlands, 1992.

  2. R. Beccard and W. Ameling. From object-oriented programming to automatic load distribution, In Proceedings of CONPAR 90, Zurich, pp. 502–512, 1990.

  3. Wolfgang Becker. Dynamic balancing complex workload in workstation networks-challenge, concepts and experiences, In High-Performance Computing and Networking, LNCS 919, pp. 407–412. Springer, New York, 1995.

    Google Scholar 

  4. Gerald Brose. JacORB: implementation and design of a Java ORB, Proceedings of DAIS'97, FIP WG 6.1 International Working Conference on Distributed Applications and Interoperable Systems, Cottbus, Germany. Chapman & Hall, London, 1997. See also http: //www.inf.fu-berlin.de/~brose/ jacorbr/

    Google Scholar 

  5. Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern-Oriented Software Architecture A System of Patterns. Wiley, New York, 1996.

    Google Scholar 

  6. Jeremy Casas, Ravi Konuru, and Steve W. Otto, Adaptive load migration systems for PVM, Proceedings of Supercomputing'94, pp. 390–399, 1994.

  7. Thomas L. Casavant and Jon G. Kuhl. A taxonomy of scheduling in general-purpose distributed computing systems, IEEE Transactions on Software Engineering, 2(14): 141–154, 1988.

    Google Scholar 

  8. CORBAservices: common object services specification OMG (Object Management Group). Technical Report 95-3-31, 1995.

  9. Fred Douglis and John K. Ousterhout. Process migration in the Sprite operating system, In Proceedings of the 7th International Conference on Distributed Computing Systems, 1987.

  10. Derek L. Eager, Edward D. Lazowska, and John Zahorjan. Adaptive load sharing in homogeneous distributed systems, IEEE Transactions on Software Engineering, 12(5): 662–675, 1986.

    Google Scholar 

  11. Donald Ferguson, Yechiam Yemini, and Nikolaou Christos, Microeconomic algorithms for load balancing in distributed computer systems, In Proceedings of the 8th International Conference on Distributed Computing Systems, San Jose, CA, pp. 491–499, 1988.

  12. Domenico Ferrari. A study of load indices for load balancing schemes, In Workload Characterization of Computer Systems and Computer Networks, pp. 91–99, 1986.

  13. D. Ferrari and S. Zhou, An empirical investigation of load indices for load balancing applications, In 12th International Symposium on Computer Performance Modeling, Measurement and Evaluation, pp. 515–528, 1987.

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

    Google Scholar 

  15. A. Hac and T. J. Johnson. Sensitivity study of the load balancing algorithm in a distributed system, Journal of Parallel and Distributed Computing, 10: 85–89, 1990.

    Google Scholar 

  16. Hans-Ulrich Heiss and Michael Schmitz. Decentralized dynamic load balancing: the particles approach, Information Sciences, 84(1+2): 115–128, 1995.

    Google Scholar 

  17. Orbix + Isis Programmer's Guide, Isis Distributed Systems, Inc., and IONA Technologies, Ltd., 1995.

  18. L. V. Kale. Comparing the performance of two dynamic load distribution methods, In Proceedings of the 1988 International Conference on Parallel Processing, pp. 8–12, 1988.

  19. Joseph A. Kaplan and Michael L. Nelson. “A comparison of queueing, cluster and distributed computing systems. Technical Memorandum 109025 (Revision 1), NASA Langley Research Center, Hampton, VA, 1994.

    Google Scholar 

  20. Herrmann Kopetz and Paulo Verissimo, “Real time and dependability concepts”, In Sape J. Mullender, ed., Distributed Systems, Chap. 16, pp. 411–446. ACM Press, New York, 1993.

    Google Scholar 

  21. Orly Kremien and Jeff Kramer. Methodical analysis of adaptive load sharing algorithms, IEEE Transactions on Parallel and Distributed Systems, 6(3): 747–760, 1992.

    Google Scholar 

  22. Thomas Kunz. The influence of different workload descriptions on a heuristic load balancing scheme, IEEE Transactions on Software Engineering, 17(7): 725–730, 1991.

    Google Scholar 

  23. S. Maffeis. Adding group communication and fault-tolerance to CORBA, In Proceedings of the 1995 USENIX Conference on Object-Oriented Technologies, Monterey, CA, USA, 1995.

  24. S. Maffeis. The object group design pattern, In 2nd USENIX Conference on Object-Oriented Technologies and Systems COOTS, Toronto, Canada, 1996.

  25. http: //www.vsb.informatik.uni-frankfurt.de/~mico/

  26. OMG (Object Management Group). The common object request broker: architecture and specification, Revision 2.0, 1995.

  27. OMG RFP5 submission trading object service, OMG (Object Management Group), Document orbos/96-05-06, 1996.

  28. OMG (Object Management Group). ORB portability joint submission final, Technical Report orbos/97-05-15, 1997.

  29. See http: //www.ooc.com/ob/

  30. Orbix 2 Programming Guide, Version 2.2, IONA Technologies Ltd., October 1996.

  31. An Orbix load disperser, Orbix Journal Q3 1997, IONA Technologies Inc., pp. 12–13, 1997.

  32. See http: //www.iona.com/support/whitepapers/orbixotm/otm_wp.html

  33. Björn Schiemann and Lothar Borrmann. A new approach for load balancing in high performance decision support systems, Future Generation Computer Systems 12(5): 345–355, 1997.

    Google Scholar 

  34. B. Schiemann. Exploiting interface definition languages for load balancing, Journal on Information Sciences, Issue 1-2, pp. 221–231, 1997.

    Google Scholar 

  35. Douglas C. Schmidt and Steve Vinoski. Using the portable object adapter for transient and persistent CORBA objects. C++ Report, SIGS, vol. 10, no 4, April 1998.

  36. Douglas C. Schmidt, David L. Levine, and Chris Cleeland. Architectures and patterns for high-performance, real-Time CORBA object request brokers, In Marvin Zelkowitz, ed., Advances in Computers, Academic Press, New York, to appear. See also http: //cs.wustl.edu/~schmidt/ TAO.html

  37. Thomas Schnekenburger and Günther Rackl. Implementing dynamic load distribution strategies with Orbix, Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications(PDPTA '97), Las Vegas, NV, CSREA, 1997.

  38. Thomas Schnekenburger. The migration pattern, In Component Users Conference 1997, Munich, Germany, to appear in SIGS publications

  39. Thomas Schnekenburger and Georg Stellner, eds., Load Distribution for Parallel Applications. Teubner, 1997.

  40. Behrooz A. Shirazi, Ali R. Hurson, and Krishna M Kavi, eds., Scheduling and Load Balancing in Parallel and Distributed Systems, IEEE Computer Society Press, New York, 1995.

    Google Scholar 

  41. Distributed Computing in the Internet Age, Visigenic Software Inc., February 1997.

  42. Songnian Zhou. A trace-driven simulation study of dynamic load balancing, IEEE Transactions on Software Engineering, 14(9): 1327–1341, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Schnekenburger, T. Load Balancing in CORBA: A Survey of Concepts, Patterns, and Techniques. The Journal of Supercomputing 15, 141–161 (2000). https://doi.org/10.1023/A:1008151819268

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008151819268

Navigation