AFIrM: An Adaptive Functional Middleware

Languages commonly used to implement adaptive middleware systems are object-oriented with reflective capability, what entails in performance overhead, exposure of internal structure and also limits the abstraction level. In this paper, we propose an adaptive middleware, namely AFIrM, developed in Haskell, a purely functional language whose features like algebraic data types, no reflection, and control of side effects, provide a new approach for developing this kind of system. The evaluation of the proposed middleware concentrated on measure the impact caused by the use of functional features on its execution. We intend that developers of Haskell applications use the proposed middleware as a solution to deal with distribution and adaptation issues, and also to show that purely functional programming can facilitate the development of adaptive middleware systems, and hence should be considered as an alternative to traditional approaches.

[1]  Uwe Zdun,et al.  Remoting patterns - foundations of enterprise, internet and realtime distributed object middleware , 2004, Wiley series in software design patterns.

[2]  Sultan S. Al-Qahtani,et al.  Comparing Selected Criteria of Programming Languages Java, PHP, C++, Perl, Haskell, AspectJ, Ruby, COBOL, Bash Scripts and Scheme Revision 1.0 - a Team CPLgroup COMP6411-S10 Term Report , 2010, ArXiv.

[3]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[4]  Paola Inverardi,et al.  Developing highly complex distributed systems: a software engineering perspective , 2012, Journal of Internet Services and Applications.

[5]  Gordon S. Blair,et al.  An Efficient Component Model for the Construction of Adaptive Middleware , 2001, Middleware.

[6]  Wouter Joosen,et al.  Adaptive and reflective middleware for the cloudification of simulation & optimization workflows , 2017, ARM@Middleware.

[7]  James Stanton,et al.  The remote monad design pattern , 2015, Haskell.

[8]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[9]  Nelson Souto Rosa,et al.  FIrM: Functional Middleware with Support to Multi-tenancy , 2015, 2015 IEEE 29th International Conference on Advanced Information Networking and Applications.

[10]  Nelson Souto Rosa,et al.  Using software architecture principles and lightweight formalisation to build adaptive middleware , 2017, ARM@Middleware.

[11]  Simon Marlow Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming , 2013 .

[12]  Roberto Bruni,et al.  A Conceptual Framework for Adaptation , 2012, FASE.

[13]  Niklas Widell,et al.  Performance of distributed information systems , 2002 .

[14]  Douglas C. Schmidt,et al.  Middleware for Distributed Systems , 2007, Wiley Encyclopedia of Computer Science and Engineering.

[15]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[16]  Geoffrey C. Fox,et al.  Status of Serverless Computing and Function-as-a-Service(FaaS) in Industry and Research , 2017, ArXiv.

[17]  Simon L. Peyton Jones,et al.  A history of Haskell: being lazy with class , 2007, HOPL.

[18]  Seyed Masoud Sadjadi,et al.  A Survey of Adaptive Middleware , 2003 .

[19]  Simon L. Peyton Jones,et al.  Towards Haskell in the cloud , 2012, Haskell '11.