|
||||||||||||||||||
Rapid Protocol Stack Development Framework
by Vinaychandra A V S, Wipro Technologies
Girish Dandin, Wipro Technologies Bangalore, India Abstract : IP protocol suite market is competitive both in terms of cost and delivery. It is prone to the vagaries of the highly volatile telecom market and rapidly evolving technology standards. Increasingly, protocol stack development is subjected to constant requirements changes arising from evolving technical standards, changing customer needs and diverse deployment scenarios coupled with resource constraints. Rapid protocol stack development framework - a multi-pronged approach presented in this paper, comprising of reusable components, processes and tools, effectively addresses these challenges. Rapid protocol stack development framework can greatly reduce time to market for protocol stacks development by helping development teams concentrate on core protocol issues early in the development process. The proposed process gives enormous flexibility to the team in terms of prioritizing requirements and having a phased delivery schedule. A development team judiciously following the proposed approach can effectively deliver high quality protocol stacks faster. INTRODUCTION IP Protocol stacks market is highly competitive, cost and schedule sensitive and is highly vulnerable to the highly volatile telecom market and rapidly evolving technology standards. Consequently Protocol stack development is subject to requirements changes and resource constraints due to evolving technical standards, changing customer needs and deployment scenarios. In addition the quality expectations have gone up with increased security and reliability needs. This requires a highly flexible and “always available” development processes that can minimize cost of change in business plans and software design. A holistic Rapid development framework encompassing re-usable components, tools and recommended processes is proposed to address these issues. This framework, as depicted in Figure 1 is a result of authors’ experiences, observations and lessons learnt during communications software development for Telecom market at Broadband- Center of Excellence (CoE) at Wipro Technologies. Figure 1: Motivation and constituents of the proposed framework Overview The section on “Inside a protocol stack” discusses the most common functionalities of control plane protocols. The section on “Rapid protocol stack development Components” describes the various libraries and re-usable modules available or in development for each of the common functions. The integration of individual components to yield a functional protocol stack is discussed in the section titled “Integrated skeletal framework”. The section on “Rapid protocol development Process” describes a model which is a hybrid of Iterative development model and V process model. The section on “Rapid development Tools” describes the various tools available to speed up the development processes with increased quality. INSIDE A PROTOCOL STACK By definition protocol stacks are message processing software components. Basic functionality of a protocol stack can be viewed as a black box wherein:
Figure 2 depicts a typical protocol stack block diagram. Protocol stacks have the following interfaces:
As can be seen in Figure 2, there are common functionalities shared across protocols. Reusable components are proposed for each of the identified functions to support portability and reduce defects. Design criteria for the development of these components were a) Portability (Segregation of Platform independent and dependent code), b) Generic interface and c) simple intuitive design. Figure 2: Typical Protocol stack Functional Block diagram Reusable components for some of the commonly occurring functionalities of protocol stacks are listed in Table 1 below. Some additional reusable components are described below: Interface Management library This reusable library maintains the list of interfaces enabled on the target platform and manages these interfaces. It also maintains additional information for the other modules of the stack so as to avoid costly OS calls.
Message Capture Messages relevant to a protocol are captured through sockets. The message handler library developed to facilitate this functionality provides as an abstraction to the OS for any type of the socket like net link sockets, TCP and UDP. The advantage of such a portable library is that the protocol can be independent of the operating system idiosyncrasies of socket interfaces. Multi threading library Multi-threading architectures are fairly common in protocol stacks for processing multiple messages. Multi-threading introduces additional complexity through the need for thread management and inter-process process communication. A reusable library which provides thread management and inter-thread communication functionality with OS independent interfaces is proposed. This library can also enhance the scalability and configurability of the resultant protocol stacks through the capability to configure number of threads to be used in the application. Timer library In most of the protocol stacks, timer functionality is needed for periodic or onetime callback for state updates or keeping the sessions live etc. The Timer library provides coarse grained piggybacked sub-millisecond timers for efficient utilization of CPU resources at high load levels. Database storage This reusable library has multiple storage and search implementations like AVL Tree, Hash Tables, BTrees, etc which can be chosen to match the performance characteristics for target application. The interface to these varied implementation is standardized which enhances maintainability of the code. Integrated skeletal framework A bare-bones implementation of a protocol stack with the reusable components and sample glue code is depicted in Figure 3. A new development effort has to include only the glue code and the core processing modules as described in the figure in lighter colored boxes. With the help of the framework, the development team can concentrates only on the core protocol processing functionality saving time and reducing the development effort. Figure 3: Ready to use framework using Components Rapid IP development process Due to the various factors outlined in the beginning of this paper, protocol development processes have to be robust to handle the following demands:
The first Stage is the initial iteration in the development of the stack wherein the roadmap and the master RS is laid out. These documents along with the test plan are constantly updated in the further iterations (Nth stage) with the increments introduced those stages. The testing is cumulative wherein stage N testing would include a running the regression tests for the previous N-1 stages. Typically Stage I can be scheduled for 3 months and subsequent phases lasting 1 month to 2 months depending on the quantum of additional features incorporated in that stage. Table 2: Proposed Rapid protocol stack development Process One major source of savings in terms of time is in directly using the integrated skeletal framework as described in the previous section. The general strategy used is to delay decisions on core protocol issues to the end of the stage by which time there is considerable knowledge in the team to handle those issues. For example: message encode-decode module in a protocol stack can be designed implemented and tested before any other custom processing module is designed. This has the advantage of securing a bug free platform for enhancements in further stages. Benefits of the process:
It is a well-known fact that usage of tools has two fold benefits, in terms of reducing the cycle time and reducing defect injections the development cycle. Table 3 lists some tools used in different phases of the protocol stack development. The tools to be used can be are communicated to the team in advance during planning stage and the benefits documented. This helps in choosing the appropriate tool for the specific requirement at hand. The protocol development team can also maintain a detailed catalogue of tools with step and step instructions and example scenarios for tool usage. Table 3: Tools used in various phases of protocol stack development Summary This paper presents a collection of re-usable components, customizable libraries, tools for various phases of protocol development and testing along with a rapid development iterative process. This framework can greatly reduce time to market of protocol stacks by helping development teams to concentrate on core protocol issues early in the development process. The proposed process gives enormous flexibility to the team in terms of prioritizing requirements and having a phased delivery schedule. A development team judiciously following the proposed approach can effectively deliver high quality protocol stacks faster. About the Authors: Vinaychandra AVS is a Product Manager Telecom solutions at Wipro Technologies. Vinay holds a Bachelors degree in computer science from the University of Bombay, Mumbai and is currently pursuing MBA from Indian Institute of Management, Bangalore. His interest areas include design methodologies for reuse, software development processes and VPN technologies. Girish Dandin is a Project Manager at Wipro Technologies. Girish holds a Bachelors degree in Electronics and communication engineering from the Karnataka University, Dharwad. His main interest areas are software process improvement using tools and techniques. |
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |