Developing highly complex distributed systems: a software engineering perspective

  • Marco Autili
  • Paola Inverardi
  • Patrizio Pelliccione
  • Massimo Tivoli
Open Access
SI: FOME - The Future of Middleware


What is a highly complex distributed system in the future era? What are the needs that may drive the development of such systems? And what is their life cycle? Is there any new challenge for Software Engineering (SE)? In this paper, we try to provide a partial answer to the above questions by characterizing few application domains that we consider of raising interest in the next years. Our thesis is that there is a need to rethink the whole software process for such systems. The traditional boundaries between static and dynamic activities disappear and development support mingles with run time support thus invading the middleware territory.


Future Internet Service-oriented computing Service-oriented middleware Cloud computing Middleware-based software process 


  1. 1.
    Azeez A, Perera S, Gamage D, Linton R, Siriwardana P, Leelaratne D, Weerawarana S, Fremantle P (2010) Multi-tenant SOA middleware for cloud computing. In: Proceedings of CLOUD’2010, pp 458–465Google Scholar
  2. 2.
    Baldauf M, Dustdar S, Rosenberg F (2007) A survey on context-aware systems. Int J Ad Hoc Ubiquitous Comput 2(4):263–277CrossRefGoogle Scholar
  3. 3.
    Baresi L, Ghezzi C (2010) The disappearing boundary between development-time and run-time. In: Proceedings of FoSER’10. ACM, New York, pp 17–22Google Scholar
  4. 4.
    Bencomo N, Blair GS (2009) Using architecture models to support the generation and operation of component-based adaptive systems. In: Software engineering for self-adaptive systems, pp 183–200CrossRefGoogle Scholar
  5. 5.
    Blair GS, Coulson G, Andersen A, Blair L, Clarke M, Costa F, Duran-Limon H, Fitzpatrick T, Johnston L, Moreira R, Parlavantzas N, Saikoski K (2001) The design and implementation of open ORB 2. IEEE Distrib Syst Online 2:2001Google Scholar
  6. 6.
    Blair G, Bencomo N, France RB (2009) Models@run.time. Computer 42:22–27. Scholar
  7. 7.
    Bucchiarone A, Pelliccione P, Vattani C, Runge O (2009) Self-Repairing systems modeling and verification using AGG. In: WICSA/ECSA’09, pp 181–190Google Scholar
  8. 8.
    Caporuscio M, Marco AD, Inverardi P (2007) Model-based system reconfiguration for dynamic performance management. J Syst Softw 80(4)Google Scholar
  9. 9.
    Caporuscio M, Raverdy PG, Issarny V (2011) UbiSOAP: a service oriented middleware for ubiquitous networking. IEEE Trans Serv Comput 99Google Scholar
  10. 10.
    Capra L, Emmerich W, Mascolo C (2003) Carisma: context-aware reflective middleware system for mobile applications. IEEE Trans Softw Eng 29:929–945CrossRefGoogle Scholar
  11. 11.
    Cardellini V, Casalicchio E, Grassi V, Lo Presti F, Mirandola R (2009) Qos-driven runtime adaptation of service oriented architectures. In: ESEC/FSE ’09. ACM, New YorkGoogle Scholar
  12. 12.
    wen Cheng S, cheng Huang A, Garlan D, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable infrastructure. IEEE Comput 37:46–54CrossRefGoogle Scholar
  13. 13.
    Cheng BHC, de Lemos R, Giese H, Inverardi P, Magee J (eds) (2009) Software engineering for self-adaptive systems (outcome of a Dagstuhl Seminar). LNCS, vol 5525. Springer, BerlinGoogle Scholar
  14. 14.
    Cirne W, Brasileiro F, Andrade N, Costa L, Andrade A, Novaes R, Mowbray M (2006) Labs of the world, unite!!! J Grid Comput 4Google Scholar
  15. 15.
    Cowan C, Black A, Krasic C, Pu C, Walpole J, Consel C, Volanschi E (1996) Specialization classes: an object framework for specialization. In: Proceedings of IWOOOS’96, Seattle, WashingtonGoogle Scholar
  16. 16.
    Epifani I, Ghezzi C, Mirandola R, Tamburrelli G (2009) Model evolution by run-time parameter adaptation. In: Proceedings of the 31st ICSE, pp 111–121Google Scholar
  17. 17.
    Eramo R, Malavolta I, Muccini H, Pelliccione P, Pierantonio A (2011) A model-driven approach to automate the propagation of changes among Architecture Description Languages. Softw Syst ModelGoogle Scholar
  18. 18.
    Gamma E, Helm R, Johnson R, Vlissides JM (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, ReadingGoogle Scholar
  19. 19.
    Garlan D, Cheng SW, Huang AC, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10):46–54CrossRefGoogle Scholar
  20. 20.
    Henricksen K, Indulska J (2005) Developing context-aware pervasive computing applications: models and approach. Pervasive Mob Comput 2:2005Google Scholar
  21. 21.
    Hirschfeld R, Costanza P, Nierstrasz O (2008) Context-oriented programming. J Object Technol 7(3):125–151CrossRefGoogle Scholar
  22. 22.
    yi Hong J, ho Suh E, Kim SJ (2009) Context-aware systems: a literature review and classification. Expert Syst Appl 36(4):8509–8522CrossRefGoogle Scholar
  23. 23.
    Inverardi P (2007) Software of the future is the future of software. In: Trustworthy global computing. LNCS, vol 4661, pp 69–85CrossRefGoogle Scholar
  24. 24.
    Inverardi P, Tivoli M (2009) Software engineering. In: The future of software: adaptation and dependability. Springer, Berlin, pp 1–31Google Scholar
  25. 25.
    Issarny V, Caporuscio M, Georgantas N (2007) A perspective on the future of middleware-based software engineering. In: Future of software engineeringGoogle Scholar
  26. 26.
    Issarny V, Georgantas N, Hachem S, Zarras A, Vassiliadist P, Autili M, Gerosa M, Hamida A (2011) Service-oriented middleware for the future Internet: state of the art and research directions. J Internet Serv Appl 2:23–45CrossRefGoogle Scholar
  27. 27.
    Keays R, Rakotonirainy A (2003) Context-oriented programming. In: Proceedings of MobiDe’03. ACM, New YorkGoogle Scholar
  28. 28.
    Kochan S (2003) Programming in Objective-C. Sams, IndianapolisGoogle Scholar
  29. 29.
    Liu H, Parashar M, Member S (2005) Accord: a programming framework for autonomic applications. IEEE Trans Syst Man Cybern 36:341–352CrossRefGoogle Scholar
  30. 30.
    Peper C, Schneider D (2008) Component engineering for adaptive ad-hoc systems. In: SEAMS’08. ACM, New YorkGoogle Scholar
  31. 31.
    Piec M (2011) Platform-as-a-service private cloud with oracle fusion middleware. Last ac: 28 Oct, 2011
  32. 32.
    Rouvoy R, Barone P, Ding Y, Eliassen F, Hallsteinsen SO, Lorenzo J, Mamelli A, Scholz U (2009) Music: middleware support for self-adaptation in ubiquitous and service-oriented environments. In: Software engineering for self-adaptive systems, pp 164–182CrossRefGoogle Scholar
  33. 33.
    da Silva e Silva FJ, Kon F, Goldman A, Finger M, de Camargo RY, Filho FC, Costa FM (2010) Application execution management on the InteGrade opportunistic grid middleware. J Parallel Distrib Comput 70Google Scholar
  34. 34.
    Tanter É, Gybels K, Denker M, Bergel A (2006) Context-aware aspects. In: Software composition. LNCS, vol 4089, pp 227–242CrossRefGoogle Scholar
  35. 35.
    Villazón A, Binder W, Ansaloni D, Moret P (2009) Advanced runtime adaptation for java. In: Proceedings of GPCE’09. ACM, New York, pp 85–94Google Scholar
  36. 36.
    Villazón A, Binder W, Ansaloni D, Moret P (2009) Hotwave: creating adaptive tools with dynamic aspect-oriented programming in java. In: Proceedings of GPCE’09. ACM, New York, pp 95–98Google Scholar
  37. 37.
    Volanschi EN, Consel C, Muller G, Cowan C (1997) Declarative specialization of object-oriented programs. In: OOPSLA, pp 286–300CrossRefGoogle Scholar
  38. 38.
    Zhang Q, Cheng L, Boutaba R (2010) Cloud computing: state of the art and research challenges. J Int Serv Appl 1(1)Google Scholar

Copyright information

© The Brazilian Computer Society 2011

Authors and Affiliations

  • Marco Autili
    • 1
  • Paola Inverardi
    • 1
  • Patrizio Pelliccione
    • 1
  • Massimo Tivoli
    • 1
  1. 1.Università degli Studi di L’AquilaL’AquilaItaly

Personalised recommendations