Externalizing Java Server Concurrency with CAL

  • Authors:
  • Charles Zhang;Hans-Arno Jacobsen

  • Affiliations:
  • Department of Computer Science and Engineering, The Hong Kong University of Science and Technology,;Department of Electrical and Computer Engineering and Department of Computer Science, University of Toronto,

  • Venue:
  • ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

One of the most important design decisions about a server program is regarding its concurrency mechanisms. However, good concurrency models for general-purpose server programs are increasingly difficult to conceive as the runtime conditions are hard to predict. In this work, we advocate that the concurrency code is to be decoupled from server programs. To enable such separation, we propose and evaluate CAL, -- the Concurrency Aspect Library. CALprovides uniform concurrency programming abstractions and mediates the intrinsic differences among concurrency models. Through CAL, a server program is not tied to any particular concurrency model and framework. CALcan be configured without modifications to use concurrency frameworks of fundamentally different natures. The concurrency code based on CALis simpler and looks closer to the design. Leveraging the customizability of CAL, we show that a commercial middleware server, refactored to use CAL, outperforms its original version by as much as 10 times.