An Aspectual Feature Module Based Service Injection Design Pattern for Unstructured Peer-to-Peer Computing Systems

  • Vishnuvardhan MannavaEmail author
  • T. Ramesh
  • B. Naga Srinivas Repuri
Part of the Advances in Intelligent and Soft Computing book series (AINSC, volume 166)


Adaptability in software is the main fascinating concern for which today’s software architects are really interested in providing the autonomic computing. Different programming paradigms have been introduced for enhancing the dynamic behavior of the programs. Few among them are the Aspect oriented programming (AOP) and Feature oriented programming (FOP) with both of them having the ability to modularize the crosscutting concerns, where the former is dependent on aspects, advice and later one on the collaboration design and refinements. In this paper we will propose an Service Injection design pattern for Unstructured Peer-to-Peer networks, which is designed with Aspect-oriented design patterns .We propose this pattern which is an amalgamation of the Worker Object Pattern, Case-Based Reasoning Pattern and Reactor Pattern that can be used to design the Self-Adaptive Systems. Every peer node in the network provides services to many clients, so in order to handle each client request they must be executed in a separate thread which is the functionality provided by the Worker Object Aspect-Oriented Design Pattern. Then after a service request is accepted by a peer server, it will assign the task of serving the request to client with the help of Reactor Pattern. The reactor pattern handles service requests that are delivered concurrently to a peer server by one or more clients. Case-base reasoning pattern is used for composition of services that are provided at different peer servers with the help of JUDDI to serve clients complex service requests. We’ll study the amalgamation of the Feature-oriented and Aspect-oriented software development methodology and its usage in developing a design pattern for peer-to-peer networks. So with the help of Aspectual Feature Module technique, we can introduce a new service into the peer system without disturbing the current running code in the server at run-time. In the process of development we also use Java Aspect Components (JAC). A simple UML class diagram is depicted.


Autonomic system Design Patterns Aspect-Oriented Programming Design Pattern Feature-Oriented Programming (FOP) Aspect-Oriented Programming (AOP) JXTA Java Aspect Components (JAC) 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    JXTA Java Standard Edition v2.5: Programmers Guide, September 10(2007), 2002-2007 Sun Microsystems, Inc.Google Scholar
  2. 2.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)Google Scholar
  3. 3.
    Kuhlemann, Rosenmuller, M., Apel, S., Leich, T.: On the Duality of Aspect-Oriented and Feature-Oriented Design Patterns. In: Proceedings of the 6th Workshop on Aspects, Components, and Patterns for Infrastructure Software. ACM, New York (2007), doi:10.1145/1233901.1233906Google Scholar
  4. 4.
    Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 16–17 (2002), doi:10.1145/583854.582436Google Scholar
  5. 5.
    Tarr, P., Ossher, H., Harrison, W., Sutton, J.S.M.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: Proceedings of the International Conference on Software Engineering, ICSE, pp. 107–119 (1999), doi:10.1145/302405.302457Google Scholar
  6. 6.
    Laddad, R.: AspectJ in Action. In: Maning, 2nd edn., ch. 12 (2010) ISBN: 1933988053Google Scholar
  7. 7.
    Schmid, D.C.: Reactor: An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events. Addison-Wesley (1995)Google Scholar
  8. 8.
    Prasad Vasireddy, V.S., Mannava, V., Ramesh, T.: A Novel Autonomic Design Pattern for Invocation of Services. In: Wyld, D.C., Wozniak, M., Chaki, N., Meghanathan, N., Nagamalai, D. (eds.) CNSA 2011. CCIS, vol. 196, pp. 545–551. Springer, Heidelberg (2011)Google Scholar
  9. 9.
    Apel, S., Leich, T., Saake, G.: Aspectual Feature Modules. IEEE Transactions on Software Engineering 34(2) (2008), doi: 10.1109/TSE, 70770Google Scholar
  10. 10.
    Ramirez, A.J., Betty, H.C.: Cheng Design Patterns for Developing Dynamically Adaptive Systems. In: Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, ACM, New York (2010), doi:10.1145/1808984.1808990Google Scholar
  11. 11.
    Pree, W.: Design Patterns for Object-Oriented Software Development. Addison-Wesley, Reading (1994)Google Scholar
  12. 12.
    Lavender, R.G., Schmidt, D.C.: Active Object: an Object Behavioral Pattern for Concurrent Programming. In: Proceedings of the 2nd Annual Conference on the Pattern Languages of Programs, Monticello, Illinois, pp. 1–7 (September 1995) ISBN: 0-201-895277Google Scholar
  13. 13.
    Pawlak, R., Seinturier, L., Retaillé, J.-P.: Foundations of AOP for J2EE Development, ch. 8. Apress (2005) ISBN13: 978-1-59059-507-7Google Scholar

Copyright information

© Springer-Verlag GmbH Berlin Heidelberg 2012

Authors and Affiliations

  • Vishnuvardhan Mannava
    • 1
    Email author
  • T. Ramesh
    • 2
  • B. Naga Srinivas Repuri
    • 1
  1. 1.Department of Computer Science and EngineeringK L UniversityVaddeswaramIndia
  2. 2.Department of Computer Science and EngineeringNational Institute of TechnologyWarangalIndia

Personalised recommendations