• No se han encontrado resultados

The SaaS operator is responsible for the maintenance of the SaaS application and for keeping it up-to-date. For example, the underpinning platform or used libraries have to be upgraded, bugs have to be fixed, etc. These changes can be encapsulated into a single software component, but at the other end of the spectrum, they can also affect the complete architecture of the SaaS applica-tion and even conflict with the requirements of some tenants. Furthermore, as it is a key advantage of SaaS applications that updates are performed by the SaaS provider (and not by the tenants individually), SaaS applications are continuously updated to the newest version.

Similarly to Section 9, the SaaS operator has to verify the different con-figurations and correct them where necessary. Again there is the option to (temporarily) deploy multiple versions in case of conflicts.

We assume that the most common updates are related to bug fixes in and updates to the implementation of the software variants (e.g. performance im-provements or new libraries). In this case, updates are localized to single fea-tures or software variants, and thus have minimal impact. For example, a new version of the library for generating payslips is released. The third mapping in Listing 7 should then be updated to the UP PayslipGeneration-v2 variant.

Consequently, new software configurations are automatically generated for all feature configurations that contain the Payslip feature.

11 Conclusion

This report demonstrates how the SLE method was applied to develop and manage a customizable, multi-tenant SaaS application in an efficient way. We developed a prototype in collaboration with an industrial partner in the domain of online document processing, showing the feasibility and practical realizability of building an integrated service line. First, we presented some application arti-facts that illustrate how a service line is developed and deployed, as well as how tenants can configure it tailored to their specific requirements and preferences.

Further, we illustrated how evolution and maintenance of a service line can be addressed using our method. Finally, we proposed several auxiliary solutions to complement the generic SLE method in order to make it effective in practice.

These auxiliary elements are reusable and showcase how the imposed constraints can be addressed.

References

[1] Frederick Chong and Gianpaolo Carraro. Architecture Strategies for Catch-ing the Long Tail. Microsoft Corporation, http://msdn.microsoft.com/

en-us/library/aa479069.aspx, April 2006.

[2] Andreas Classen, Quentin Boucher, and Patrick Heymans. A text-based approach to feature modelling: Syntax and semantics of TVL. Science of Computer Programming, 76(12):1130–1143, 2011. Special Issue on Software Evolution, Adaptability and Variability.

[3] Paul Clements and Linda M. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2001.

[4] CUSTOMSS. CUSTOMization of Software Services in the cloud (iMinds ICON project). http://www.iminds.be/en/research/

overview-projects/p/detail/customss, 2011. [Last visited on November 20, 2013].

[5] Krzysztof Czarnecki, Michal Antkiewicz, and Chang Hwan Peter Kim.

Multi-level customization in application engineering. Commun. ACM, 49(12):60–65, Dec 2006.

[6] Linda DeMichiel. JSR 317: JavaT M Persistence 2.0. http://www.jcp.

org/en/jsr/detail?id=317, 2009. [Last visited on 20 November 2013].

[7] Tudor Dumitra¸s and Priya Narasimhan. Why do upgrades fail and what can we do about it? In JeanM. Bacon and BrianF. Cooper, editors, Middleware

’09: 10th ACM/IFIP/USENIX International Conference on Middleware, pages 349–372. Springer Berlin Heidelberg, 2009.

[8] A. Etien and C. Salinesi. Managing requirements in a co-evolution context.

In Proceedings of the 13th IEEE International Conference on Requirements Engineering , pages 125–134. IEEE, 2005.

[9] Martin Fowler. Inversion of Control Containers and the Dependency In-jection pattern. http://martinfowler.com/articles/inIn-jection.html, January 2004.

[10] Kristof Geebelen, Stefan Walraven, Eddy Truyen, Sam Michiels, Hendrik Moens, Filip De Turck, Bart Dhoedt, and Wouter Joosen. An open middle-ware for proactive QoS-amiddle-ware service composition in a multi-tenant SaaS environment. In ICOMP ’12: Proceedings of the 2012 International Con-ference on Internet Computing. CSREA Press, July 2012.

[11] Fatih Gey, Stefan Walraven, Dimitri Landuyt, and Wouter Joosen. Build-ing a customizable Business-Process-as-a-Service application with current state-of-practice. In Walter Binder, Eric Bodden, and Welf L¨owe, editors, SC ’13: 12th International Conference on Software Composition, pages 113–127. Springer Berlin / Heidelberg, 2013. doi: 10.1007/978-3-642-39614-4 8.

[12] Google, Inc. Google App Engine. http://code.google.com/appengine/.

[Last visited on 20 November 2013].

[13] Chang Jie Guo, Wei Sun, Ying Huang, Zhi Hu Wang, and Bo Gao. A framework for native multi-tenancy application development and man-agement. In CEC/EEE ’07: 9th IEEE International Conference on E-Commerce Technology and 4th IEEE International Conference on Enter-prise Computing, E-Commerce, and E-Services, pages 551–558, July 2007.

doi: 10.1109/CEC-EEE.2007.4.

[14] Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak, and A. Spencer Peterson. Feature-Oriented Domain Analysis (FODA) Feasibil-ity Study. Technical Report 21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA, 1990.

[15] Kyo C. Kang, Jaejoon Lee, and Patrick Donohoe. Feature-Oriented Product Line Engineering. IEEE Software, 19(4):58–65, 2002. doi:

10.1109/MS.2002.1020288.

[16] C. Kastner, T. Thum, G. Saake, J. Feigenspan, T. Leich, F. Wielgorz, and S. Apel. FeatureIDE: A tool framework for feature-oriented software de-velopment. In ICSE ’09: 31st IEEE International Conference on Software Engineering, pages 611–614, May 2009. doi: 10.1109/ICSE.2009.5070568.

[17] Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Program-ming. In ECOOP ’97 - Object-Oriented Programming, pages 220–242.

Springer Berlin Heidelberg, 1997. doi: 10.1007/BFb0053381.

[18] P. B. Kruchten. The 4+1 View Model of architecture. IEEE Software, 12(6):42–50, 1995. doi: 10.1109/52.469759.

[19] B. Nuseibeh. Weaving together requirements and architectures. Computer, 34(3):115–119, 2001. doi: 10.1109/2.910904.

[20] Terence Parr and Kathleen Fisher. LL(*): the foundation of the ANTLR parser generator. In PLDI ’11: Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation, pages 425–436, New York, NY, USA, 2011. ACM. doi: 10.1145/1993498.1993548.

[21] K. Pohl, G. B¨ockle, and F. Van Der Linden. Software Product Line En-gineering: Foundations, Principles, and Techniques. Springer-Verlag New York Inc, 2005.

[22] Clemens Szyperski. Component Software - Beyond Object-Oriented Pro-gramming. Addison-Wesley / ACM Press, Boston, MA, USA, Second edi-tion, 2002.

[23] Stefan Walraven, Bert Lagaisse, Eddy Truyen, and Wouter Joosen. Policy-driven customization of cross-organizational features in distributed ser-vice systems. Software: Practice & Experience, 43(10):1145–1163, October 2013. doi: 10.1002/spe.1128.

[24] Stefan Walraven, Eddy Truyen, and Wouter Joosen. A middleware layer for flexible and cost-efficient multi-tenant applications. In Middleware

’11: Proceedings of the 12th ACM/IFIP/USENIX International Confer-ence on Middleware, pages 370–389. Springer Berlin / Heidelberg, 2011.

doi: 10.1007/978-3-642-25821-3 19.

[25] Stefan Walraven, Eddy Truyen, and Wouter Joosen. Comparing PaaS of-ferings in light of SaaS development. Computing, pages 1–56, 2013. doi:

10.1007/s00607-013-0346-9.

[26] Stefan Walraven, Dimitri Van Landuyt, Eddy Truyen, Koen Handekyn, and Wouter Joosen. Efficient customization of multi-tenant Software-as-a-Service applications with service lines. J. Syst. Software, 2014. doi:

10.1016/j.jss.2014.01.021.

A Feature-to-software-composition Mapping