Designing and implementing Choices: an object-oriented system in C++
Communications of the ACM
Modern C++ design: generic programming and design patterns applied
Modern C++ design: generic programming and design patterns applied
Full TCP/IP for 8-bit architectures
Proceedings of the 1st international conference on Mobile systems, applications and services
The design and implementation of AspectC++
Knowledge-Based Systems
Aspect-aware operating system development
Proceedings of the tenth international conference on Aspect-oriented software development
Lean and efficient system software product lines: where aspects beat objects
Transactions on Aspect-Oriented Software Development II
CiAO/IP: a highly configurable aspect-oriented IP stack
Proceedings of the 10th international conference on Mobile systems, applications, and services
Hi-index | 0.00 |
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"