al., 2009) or business communications (Rising,
2004). Regarding software architecture and runtime
infrastructure, patterns have been defined for object
oriented programming (Gamma et al., 1995) and
messaging-based application integrations (Hohpe,
Wolf, 2004). Furthermore, different pattern
catalogues capture good practices for user
interaction with information (Tidwell, 1998),
(Yahoo, 2011). These patterns have also been
considered during the identification of cloud
computing patterns. Many of them were transformed
or applied to the area of cloud computing.
Capturing design decisions in order to focus and
verify the design process of systems is also
discussed in (Zimmermann et al., 2009), where a
formal model is presented for capturing and reusing
architectural decision knowledge. Furthermore, in
(Harrison et al., 2007), the authors present a pattern-
based approach for architectural decisions. Both
approaches are conceptually close to this work, but
discuss service-oriented and software systems and as
such they are not directly applicable to Cloud-native
applications. Further investigation on how they can
be reused for this purpose is however in our future
goals.
7 CONCLUSIONS
While the CAP theorem has serious implications for
the design of distributed systems (and therefore also
of Cloud-native applications) there are few works
discussing how to design for particular CAP
properties. For this purpose, in this work we
presented an approach for incorporating these
properties into the design of Cloud-native
applications. More specifically, we introduced a
CAP-oriented design methodology which connects
design decisions with existing Cloud solutions and
provides the means to estimate the CAP properties
of an application. This methodology was then
realized by using Cloud patterns in order to capture
the design decisions and a set of annotations on the
various *aaS solutions that realize these patterns. A
visualization approach was also presented that
allows for better perception of the estimated CAP
properties and their impact on the application
design. Finally, the proposed approach was validated
by means of a case study scenario.
In the future we plan to complete the annotation
of the Cloud Pattern Catalog presented in (Fehling et
al., 2011a) so that we can empirically validate our
approach using different scenarios. As part of this
effort, we also plan to extend the *aaS solutions
annotation procedure to as large as possible group of
Cloud experts and offer tooling support for our
methodology as an application in the Cloud. In
addition we also plan to investigate different
possible approaches in combining the CAP
annotations, using for example weighted sums and
other statistical methods. Finally we also intend to
extend the methodology discussed in the previous
for purposes other than CAP estimation, for example
cost estimates and greenness of the application.
ACKNOWLEDGEMENTS
The research leading to these results has partially
received funding from the 4CaaSt project
(http://www.4caast.eu/) from the European Union’s
Seventh Framework Programme (FP7/2007-2013)
under grant agreement no. 258862. This paper
expresses the opinions of the authors and not
necessarily those of the European Commission. The
European Commission is not liable for any use that
may be made of the information contained in this
paper.
REFERENCES
Alexander , C., Ishikawa, S., Silverstein, M., Jacobson,
M., Fijksdal-King, I., 1977. A pattern language:
towns, buildings, construction. Oxford University
Press.
Brewer, E. A., 2000. Towards robust distributed systems.
PODC Keynote.
Chee, Y., Zhou, N., Meng, F. J., Bagheri, S., Zhong, P.,
2011. A Pattern-Based Approach to Cloud
Transformation. Proceedings of the IEEE
International Conference on Cloud Computing
(CLOUD).
Erl, T., Kurtagic, A., Wilhelmsen, H., 2010. Designing
Services for Windows Azure. MSDN Magazine.
http://msdn.microsoft.com/en-us/magazine/ee335719.aspx
Fehling, C., Konrad, R., Leymann, F., Mietzner, R., Pauly,
M., Schumm, D., 2011c. Flexible Process-based
Applications in Hybrid Clouds. Proceedings of the
2011 IEEE International Conference on Cloud
Computing (CLOUD).
Fehling, C., Leymann, F., Retter, R., Schumm, D.,
Schupeck, W., 2011a. An Architectural Pattern
Language of Cloud-based Applications. Proceedings
of the 18th Conference on Pattern Languages of
Programs (PLoP).
Fehling, C., Leymann, F., Retter, R., Schumm, D.,
Schupeck, W., 2011b. A Collection of Patterns for
Cloud Types, Cloud Service Models, and Cloud-based
Application Architectures. Technical Report
DESIGNINGFORCAP-TheEffectofDesignDecisionsontheCAPPropertiesofCloud-nativeApplications
373