Abstract
In the context of cloud computing, one server is usually responsible to run multiple applications and a single application is spread across multiple servers. On the one hand, the applications need to be able to determine how the cloud environment should handle its execution, or even the execution of each one of its components. Yet, on the other hand, the applications should be decoupled from the middleware that executes them, enabling each one to evolve independently. Based on this scenario, it is possible to state that metadata-based frameworks are a suitable option for the interaction between the application and the services provided by the cloud, since it decouples the application from the environment and allows a transparent individual configuration of each class. The goal of this chapter is to describe the essence of metadata-based frameworks and how they can be applied to cloud computing. It brings several examples of cloud computing frameworks and describes some design practices for the framework structure, scenarios that are suitable for the metadata-based approach and best practices for metadata configuration. As a result, after reading this chapter, the reader should be able to understand the basic functioning of a metadata-based framework and why it is suitable for cloud applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Guerra, E., Souza, J., Fernandes, C.: A pattern language for metadata-based frameworks. In: Proceedings of the 16th Conference on Patterns Languages of Programs, Chicago, 28–30 August 2009
Guerra, E.: A conceptual model for metadata-based frameworks. Ph.D. thesis, Aeronautical Institute of Technology, São José dos Campos (2010)
Guerra, E., Fernandes, C., Silveira, F.: Architectural patterns for metadata-based frameworks usage. In: Proceedings of the 17th Conference on Pattern Languages of Programs, Reno, 16–18 October 2010
Fernandes, C., Guerra, E., Nakao, E., Ribeiro, D.: XML, annotations and database: a comparative study of metadata definition strategies for frameworks. In: XML: Aplicações e Tecnologias Associadas (XATA 2010), Vila do Conde, 19–20 May 2010
Zahariev, A.: Google app engine. In: Seminar on Internetworking, Espoo, 27 April 2009
Google: Objectify Framework. http://code.google.com/p/objectify-appengine/ (2012). Accessed 9 June 2012
Reelsen, A.: Play Framework Cookbook. Packt Publishing, Birmingham (2011)
Venbrabant, R.: Google Guice: Agile Lightweight Dependency Injection Framework. Apress, New York (2008)
Johnson, R., Foote, R.: Designing reusable classes. J. Object-Oriented Program 1(2), 22–35 (1988)
Jacobsen, E., Nowack, P.: Frameworks and patterns: architectural abstractions. In: Fayad, M., Schmidt, D., Johnson, R. (eds.) Building Application Frameworks: Object-Oriented Foundations of Frameworks Design. Wiley, New York (1999)
Fayad, M., Schmidt, D., Johnson, R.: Application frameworks. In: Fayad, M., Schmidt, D., Johnson, R. (eds.) Building Application Frameworks: Object-Oriented Foundations of Frameworks Design. Wiley, New York (1999)
Bosch, J., et al.: Framework problems and experiences. In: Fayad, M., Schmidt, D., Johnson, R. (eds.) Building Application Frameworks: Object-Oriented Foundations of Frameworks Design. Wiley, New York (1999)
Pree, W.: Design Patterns for Object-Oriented Software Development. Addison Wesley, Reading (1995)
Foote, B., Yoder, J.: Evolution, architecture, and metamorphosis (Chap. 13). In: Vlissides, J., Coplien, J., Kerth, N. (eds.) Pattern Languages of Program Design 2, pp. 295–314. Addison-Wesley Longman, Boston (1996)
Damyanov, I., Holmes, N.: Metadata driven code generation using.NET framework. In: International Conference on Computer Systems and Technologies, 5, 2004, Rousse. pp. 1–6 (2004)
Quinonez, J., Tschantz, M., Ernest, M.: Inference of reference immutability. In: 22nd European Conference on Object-Oriented Programming, 2008, Paphos. pp. 616–641 (2008)
Ernest, M.: Type annotations specification (JSR 308). http://types.cs.washington.edu/jsr308/specification/java-annotation-design.pdf (2011). Accessed 15 May 2012
Hel, J., Eichhorn, P., Zwitserloot, R., Grootjans, R., Spilker, R., Koning, S.: Project Lombok. http://projectlombok.org/ (2012). Accessed 15 May 2012
Fowler, M.: Using metadata. IEEE Softw. 19(6), 13–17 (2002)
Chen, N.: Convention over configuration. http://softwareengineering.vazexqi.com/files/pattern.html (2006). Accessed 15 May 2012
Java Community Process: JavaBeans(TM) specification 1.01 Final release. http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ (1996). Accessed 15 May 2012
Massol, V., Husted, T.: JUnit in Action. Manning, Greenwich (2003)
Ruby, S., et al.: Agile Web Development with Rails, 3rd edn. Pragmatic Bookshelf, Raleigh (2009)
Java Community Process: JSR 175: a metadata facility for the java programming language. http://www.jcp.org/en/jsr/detail?id=175 (2003). Accessed 15 May 2012
Miller, J.: Common Language Infrastructure Annotated Standard. Addison-Wesley, Boston (2003)
Schwarz, D.: Peeking inside the box: attribute-oriented programming with Java 1.5. http://missingmanuals.com/pub/a/onjava/2004/06/30/insidebox1.html (2004). Accessed 15 May 2012
Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
O’Brien, L.: Design patterns 15 years later: an interview with Erich Gamma, Richard Helm and Ralph Johnson. InformIT. http://www.informit.com/articles/article.aspx?p=1404056 (2009). Accessed 15 May 2012
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, Boston (2002)
Odersky, M. et al.: An overview of the Scala programming language. Technical report IC/2004/640. EPFL, Lausanne (2004)
Heroku: Heroku cloud application platform. http://www.heroku.com/ (2012). Accessed 9 June 2012
Java.net, Jersey API: http://jersey.java.net/ (2012). Accessed 9 June 2012
Freire, A., Silveira, P.: Vraptor – simple and quick web framework. In: Anais do 5o Workshop sobre Software Livre, Porto Alegre, pp. 39–42 (2004)
RedHat: Hibernate validator. http://www.hibernate.org/subprojects/validator.html (2012). Accessed 8 June 2012
Java Community Process: JSR 222: JavaTM Architecture for XML Binding (JAXB) 2.0. http://jcp.org/en/jsr/detail?id=222 (2009). Accessed 8 June 2012
Java Community Process: JSR 342: JavaTM Platform, Enterprise Edition 7 (Java EE 7) specification. http://jcp.org/en/jsr/detail?id=342 (2012). Accessed 8 June 2012
Fowler, M.: Inversion of control containers and the dependency injection pattern. http://www.martinfowler.com/articles/injection.html (2004). Accessed 8 June 2012
Walls, C., Breidenbach, R.: Spring in Action, 2nd edn. Manning, Greenwich (2007)
Java Community Process: JSR 318: Enterprise JavaBeansTM 3.1. http://jcp.org/en/jsr/detail?id=318 (2010). Accessed 8 June 2012
Java Community Process: JSR 317: JavaTM Persistence 2.0. http://jcp.org/en/jsr/detail?id=317 (2009). Accessed 8 June 2012
Spring Source: Spring projects – Spring data. http://www.springsource.org/spring-data (2012). Accessed 8 June 2012
Java Community Process: JSR 344: JavaServerTM Faces 2.2. http://jcp.org/en/jsr/detail?id=344 (2011). Accessed 8 June 2012
Esfinge: Esfinge Framework. http://esfinge.sf.net/ (2012). Accessed 15 May 2012
Yoder, J., Johnson, R.: The adaptive object-model architectural style. In: Proceedings of the IFIP 17th World Computer Congress – TC2 Stream/3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance, Montreal, 25–29 August 2002
Sourceforge, SwingBean: http://swingbean.sf.net/ (2012). Accessed 15 May 2012
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag London
About this chapter
Cite this chapter
Guerra, E.M., Oliveira, E. (2013). Metadata-Based Frameworks in the Context of Cloud Computing. In: Mahmood, Z. (eds) Cloud Computing. Computer Communications and Networks. Springer, London. https://doi.org/10.1007/978-1-4471-5107-4_1
Download citation
DOI: https://doi.org/10.1007/978-1-4471-5107-4_1
Published:
Publisher Name: Springer, London
Print ISBN: 978-1-4471-5106-7
Online ISBN: 978-1-4471-5107-4
eBook Packages: Computer ScienceComputer Science (R0)