Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1960518.1960524acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Upcall dispatcher aspects: combining modularity with efficiency in the CiAO IP stack

Published: 22 March 2011 Publication History

Abstract

Network protocol stacks are an important ingredient of today's infrastructure software. For instance, all state-of-theart operating systems for PCs and the server market come with a TCP/IP stack. The design of protocol stacks and their layered structure has been studied for decades. However, in practice, implementations often do not follow the clean textbook design consequently. This especially holds for the domain of embedded TCP/IP stacks where minimal resource consumption is crucial.
In this work we present an analysis that explains the reason for this dilemma. We have also developed a very simple solution that is based on common aspect-oriented programming language features: Upcall Dispatcher Aspects. In a case study this concept has been repeatedly applied as an AspectC++ idiom in the implementation of the CiAO TCP/IP stack, which we compared to several traditional implementations. Besides reecting a clean design at the implementation level, our protocol stack, which mainly targets the domain of resource-constrained embedded systems, even outperforms the other solutions with respect to resource consumption and various "-ilities"

References

[1]
A. Alexandrescu. Modern C++ design: generic programming and design patterns applied. Addison-Wesley Professional, 2001.
[2]
R.H. Campbell, N. Islam, D. Raila, and P. Madany. Designing and implementing Choices: an object-oriented system in C++. Communications of the ACM, 36(9):117--126, 1993.
[3]
Adrian Colyer, Awais Rashid, and Gordon Blair. On the separation of concerns in program families. Technical Report COMP-001-2004, Lancaster University, 2004.
[4]
A. Dunkels. Full TCP/IP for 8-bit architectures. In Proceedings of the 1st international conference on Mobile systems, applications and services, pages 85--98. ACM, 2003.
[5]
A.A. Fröhlich, W. Schröder-Preikschat, et al. High Performance Application-Oriented Operating Systems-the EPOS Approach. In In Proceedings of the 11th Symposium on Computer Architecture and High Performance Computing. Citeseer, 1999.
[6]
Daniel Lohmann, Wanja Hofer, Wolfgang Schröder-Preikschat, and Olaf Spinczyk. Aspect-aware operating system development. In 11th Int. Conf. on Aspect-Oriented Software Development (AOSD '11), Porto de Galinhas, Brasil, 2011. to appear.
[7]
Daniel Lohmann, Olaf Spinczyk, and Wolfgang Schröder-Preikschat. Lean and efficient system software product lines: Where aspects beat objects. In Awais Rashid and Mehmet Aksit, editors, Transactions on AOSD II, number 4242 in LNCS, pages 227--255. Springer, 2006.
[8]
Olaf Spinczyk and Daniel Lohmann. The design and implementation of AspectC++. Knowledge-Based Systems, Special Issue on Techniques to Produce Intelligent Secure Software, 20(7):636--651, 2007.
[9]
Gary R. Wright and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Addison-Wesley, 1994.

Cited By

View all
  • (2012)CiAO/IPProceedings of the 10th international conference on Mobile systems, applications, and services10.1145/2307636.2307676(435-448)Online publication date: 25-Jun-2012

Recommendations

Reviews

Andrew Robert Huber

The traditional tradeoff in implementing network protocol stacks is between modularity (layering the software like the network layers) and performance. The authors propose using aspect programming with upcalls as a way to achieve both. Streicher et al. first qualitatively analyze six different ways of layering protocol stacks: direct calls, three versions of indirect calls (jump table, hash table, and linked list), object oriented, and policy based. Those that perform well (direct and policy based) suffer in terms of modularity, generality, and qualities such as modifiability and comprehensibility. The others perform worse, but rate higher on the other criteria. The authors introduce and briefly explain an aspect-oriented idiom, called upcall dispatcher aspects, as a solution that provides modularity and performance. They used the CiAO operating system with three conventional transmission control protocol/Internet protocol (TCP/IP) stacks and an aspect-oriented stack to demonstrate that comparable performance was achieved. The authors assert, but do not show, that the memory usage was also competitive. The drawback is that a language that supports aspect programming is necessary (Aspect C++ was used), but such a language is not available with most real systems. And although the idiom may be "simple to comprehend for users of aspect-oriented programming languages," as asserted by the authors, it may not be for users who are unfamiliar with aspects. The paper is succinct and well written, and should appeal to those interested in aspect-oriented programming and communication stacks. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
MISS '11: Proceedings of the 1st workshop on Modularity in systems software
March 2011
34 pages
ISBN:9781450306478
DOI:10.1145/1960518
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 March 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CiAO
  2. TCP/IP
  3. aspect-aware design
  4. aspect-oriented programming (AOP)
  5. aspectC++
  6. network protocol stacks

Qualifiers

  • Research-article

Conference

AOSD'11

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2012)CiAO/IPProceedings of the 10th international conference on Mobile systems, applications, and services10.1145/2307636.2307676(435-448)Online publication date: 25-Jun-2012

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media