Skip to main content

Framework design for end-to-end optimization

  • Conference paper
  • First Online:
ECOOP’98 — Object-Oriented Programming (ECOOP 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1445))

Included in the following conference series:

  • 177 Accesses

Abstract

Framework optimizations capitalize on object dependencies, while framework flexibility and composability demand object independence. This paper shows how to balance these conflicting needs using new design techniques. These techniques embody the observation that common optimizations can be realized by reifying and tuning object interactions. Their application is illustrated for two complex frameworks: a virtual memory framework and a framework for distributed objects. A catalog of patterns that covers common optimizations is also presented.

Ashish Singhai is supported in part by the grant NSF-CDA-94-01124.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Mark B. Abbott and Larry L. Peterson. Increasing network throughput by integrating protocol layers. IEEE/ACM Transactions on Networking, 1(5):600–610, October 1993.

    Article  Google Scholar 

  2. Robert Allen. A Formal Approach to Software Architecture. PhD thesis, Department of Computer Science, Carnegie Mellon University, Pittsburgh, May 1997. CMU-CS-97-144.

    Google Scholar 

  3. Aart J. C. Bik and Harry A. G. Wijshoff. On automatic data structure selection and code generation for sparse computations. In Proceedings of the Workshop on Languages and Compilers for Parallel Computing (LCPC), volume 768 of Lecture Notes in Computer Science, pages 57–75. Springer Verlag, August 1993.

    Google Scholar 

  4. Roy Campbell, Nayeem Islam, Peter Madany, and David Raila. Experiences designing and implementing Choices: an object-oriented system in C++. Communications of the ACM, 36(9):117–126, September 1993.

    Article  Google Scholar 

  5. Zhigang Chen. Coding and transmission of digital video on the internet. Technical Report UIUCDCS-R-1997-2016, Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, Illinois, 1997.

    Google Scholar 

  6. D. Clark, V. Jocabson, J. Romkey, and M. Salwen. An analysis of TCP processing overhead. IEEE Communications Magazine, 27(6):23–29, Jun 1989.

    Article  Google Scholar 

  7. A. Dave, N. Islam, and R. H. Campbell. A low-latency scalable locking algorithm for shared memory multiprocessors. In Proceedings of the 6th Symposium on Parallel and Distributed Processing, pages 10–17. IEEE Computer Society Press, October 1994.

    Google Scholar 

  8. Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, and Gary Lindstrom. Flick: A flexible, optimizing IDL compiler. In ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), pages 44–56, June 1997.

    Google Scholar 

  9. Armando Fox, Steven D. Gribble, Eric A. Brewer, and Elan Amir. Adapting to network and client variability via on-demand dynamic distillation. In Proceedings of the 7th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 160–170. ACM, October 1996.

    Google Scholar 

  10. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1994.

    Google Scholar 

  11. A. Gokhale and D. C. Schmidt. Principles for optimizing corba internet inter-orb protocol performance. In Proceedings of the 31st Hawaii International Conference onf System Sciences, pages 375–386, January 1998. (to appear).

    Google Scholar 

  12. N. C. Hutchinson and Larry L. Peterson. The x-kernel: An architecture for implementing network protocols. IEEE Transactions on Software Engineering, 17(1):64–76, January 1991.

    Article  Google Scholar 

  13. IONA Technologies. The Orbix Architecture, November 1996. Available at http: //www.iona.com/Products/Orbix/Architecture/index.html.

    Google Scholar 

  14. N. Islam, A. Dave, and R. H. Campbell. Communication compilation for unreliable networks. In Proceedings of the 16th International Conference on Distributed Computing Systems, pages 188–195, May 1996.

    Google Scholar 

  15. Gregor Kiczales, John Lamping, Cristina Videira Lopes, Anurag Mendhekar, and Gail Murphy. Open implementation design guidelines. In Proceedings of the 19th International Conference on Software Engineering, pages 481–490, May 1997.

    Google Scholar 

  16. S. J. Leffler, M. K. McKusick, M. J. Karels, and J. S. Quaterman. The Design and Implementation of the 4.3 BSD UNIX Operating System. Addison Wesley, 1988.

    Google Scholar 

  17. C. L. Liu and J. W. Layland. Scheduling algorithms for multiprogramming in hard real-time environment. Journal of the ACM, 20(1):46–61, January 1973.

    Article  MATH  MathSciNet  Google Scholar 

  18. Cristina Videira Lopes and Karl Lieberherr. Abstracting process-to-function relations in concurrent object-oriented applications. In Proceedings of the 8th European Conference on Object-Oriented Programming (ECOOP), volume 821 of Lecture Notes in Computer Science, pages 81–99. Springer Verlag, July 1994.

    Google Scholar 

  19. Paul E. McKenney. Selecting locking primitives for parallel programming. Communications of the ACM, 39(10):75–82, October 1996.

    Article  Google Scholar 

  20. David Mosberger and Larry L. Peterson. Making paths explicit in the scout operating system. In 2nd Symposium on Operating Systems Design and Implementation (OSDI '96), pages 153–167. USENIX, October 1996.

    Google Scholar 

  21. Nathan Goodman Philip A. Bernstein, Vassos Hadzilacos. Concurrency Control and Recovery in Database Systems. Addison Wesley, 1987.

    Google Scholar 

  22. Calton Pu, Henry Massalin, and John Ioannidis. The synthesis kernel. Computing Systems, 1(1):11–32, Winter 1988.

    Google Scholar 

  23. Reflection'96, San Francisco, CA, April 1996.

    Google Scholar 

  24. J. H. Saltzer, D. P. Reed, and D. D. Clark. End-to-end arguments in system design. ACM Transactions on Computer Systems, 2(4):277–288, November 1984.

    Article  Google Scholar 

  25. Aamod Sane. Techniques for Developing Correct, Fast, and Robust Implementations of Distributed Protocols. PhD thesis, Department of Computer Science, University of Illinois, Urbana-Champaign, December 1997.

    Google Scholar 

  26. Aamod Sane and Roy Campbell. Composite messages: A structural pattern for communication among software components. In OOPSLA '95 Workshop on Design Patterns in Concurrent, Distributed, and Parallel Object-Oriented Systems, 1995.

    Google Scholar 

  27. Aamod Sane and Roy Campbell. Object-oriented state machines: Subclassing, composition, delegation, and genericity. In Proceedings of the OOPSLA, pages 17–32. ACM, October 1995.

    Google Scholar 

  28. Aamod Sane and Roy Campbell. Resource exchanger: A behavioral pattern for low overhead concurrent resource management. In Pattern Languages of Program Design. Addison Wesley, 1996.

    Google Scholar 

  29. Douglas C. Schmidt and Chris Cleeland. Applying patterns to develop extensible and maintainable orb middleware. Available at http://www.cs.wustl.edu/~schmidt/ORB-patterns.ps.gz.

    Google Scholar 

  30. Mohlalefi Sefika. Design conformance management of software systems: An architecture-oriented approach. PhD thesis, Department of Computer Science, University of Illinois, Urbana-Champaign, August 1996. UIUCDCS-R-96-1974.

    Google Scholar 

  31. Mohlalefi Sefika, Aamod Sane, and Roy H. Campbell. Architecture-oriented visualization. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), volume 31(10) of ACM SIG-PLAN Notices, pages 389–405, October 1996.

    Google Scholar 

  32. L. Sha, R. Rajkumar, and J. P. Lehoczky. Priority inheritance protocols: An approach to real-time synchronization. IEEE Transactions on Computers, 39(9):1175–1185, September 1990.

    Article  MathSciNet  Google Scholar 

  33. M. Shaw. Procedure calls are the assembly language of software interconnections: Connectors deserve first class. In D. Lamb, editor, Studies of Software Design, volume 1078 of Lecture Notes in Computer Science, pages 17–32, Baltimore, Md, May 1993. Springer Verlag.

    Google Scholar 

  34. Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L. Ross, David M. Young, and Gregory Zelesnik. Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering, 21(4):314–335, April 1995.

    Article  Google Scholar 

  35. Abraham Silberschatz and Peter B. Galvin. Operating System Concepts. Addison Wesley, 1997.

    Google Scholar 

  36. Ashish Singhai, Aamod Sane, and Roy Campbell. Reflective ORBs: Support for robust, time-critical distribution. In Proceedings of the ECOOP'97 Workshop on Reflective Real-Time Object-Oriented Programming and Systems, volume (to appear) of Lecture Notes in Computer Science. Springer Verlag, June 1997.

    Google Scholar 

  37. Ashish Singhai, Aamod Sane, and Roy Campbell. Quarterware for middleware. In Proceddings of the 18th International Conference on Distributed Computing Systems (ICDCS). IEEE, May 1998.

    Google Scholar 

  38. Brian C. Smith. Reflection and Semantics in A Procedural Language. PhD thesis, Massachusetts Institute of Technology, January 1982. MIT-LCS-272.

    Google Scholar 

  39. Habanero project, 1997. Available at: http://http://www.ncsa.uiuc.edu/SDG/Software/Habanero/.

    Google Scholar 

  40. Lim Swee. Adaptive Caching in a Distributed File System. PhD thesis, Department of Computer Science, University of Illinois, Urbana-Champaign, November 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eric Jul

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sane, A., Singhai, A., Campbell, R.H. (1998). Framework design for end-to-end optimization. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054090

Download citation

  • DOI: https://doi.org/10.1007/BFb0054090

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64737-9

  • Online ISBN: 978-3-540-69064-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics