tasks.
• Consider deploying high availability requiring
modules, such as Web applications, entirely on
the cloud. Use Web application PaaS offers such
as Google App Engine, Heroku or CloudBees for
such modules, as they scale (semi-)automatically.
With respect to data models, it is important to:
• Note that with simple No-SQL storage service of-
ferings, join operators in queries are sometimes
not supported. Thus, the data model should sup-
port a convenient handling of join-like queries in
program code.
• Consider using No-SQL databases on-premises
for achieving similar scalability on local infras-
tructure as well.
• Design the logic of the application to be agnos-
tic about a particular database software. Avoid
writing queries which are specific to a certain
database product or software in the source code.
Use ORMs or abstraction layers to achieve this
task.
Finally, for secure and authentication communica-
tion, it is important to:
• Restrict access to data by using open standards
and claims-based authentication. Use open stan-
dards such as OpenID and OAuth to achieve this.
• Consider using service bus technology for con-
necting cloud and on-premises infrastructure.
Cloud computing, after the initial hype, has reached
the first steps with many big industrial players ac-
tively looking for cloud solutions. Portability of ap-
plications between provider and private clouds is a
very important issue for them, and we expect to see
many new solutions and ideas in this field in the
coming months. The presented trends and recom-
mendations show that this desired flexibility can be
achieved for some cases with patterns and program-
ming paradigms. Also, the available technology of-
fered by the major vendors in the cloud computing
business confirms this possibility and provides API
and frameworks for a distributed application setup.
REFERENCES
10gen Inc. (2009). Mongodb - scalable, high-performance,
open source, document-oriented database. Available
from http://www.mongodb.org/.
Amazon.com Inc. (2009). Amazon virtual private cloud
(amazon vpc). http://aws.amazon.com/vpc/.
Ambler, S. W. (2002). O/r mapping in detail.
http://www.agiledata.org/essays/mappingObjects.html.
Apache Software Foundation (2008). Couchdb project.
http://couchdb.apache.org/.
Apache Software Foundation (2010). Cassandra project.
http://cassandra.apache.org/.
Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz,
R. H., Konwinski, A., Lee, G., Patterson, D. A.,
Rabkin, A., and Zaharia, M. (2009). Above the
clouds: A berkeley view of cloud computing. Tech-
nical report, University of California at Berkeley.
Brown, K. (2009). A developer’s guide to access control in
windows azure platform appfabric. White paper, Mi-
crosoft and Pluralsight. Available online (35 pages).
Chappell, D. (2009). Introducing windows azure. White
paper, Microsoft and Chappell Associates. Available
online (25 pages).
DataNucleus (2008). Datanucleus project.
http://www.datanucleus.org.
Dean, J. and Ghemawat, S. (2008). MapReduce: simplified
data processing on large clusters. Communications of
the ACM, 51(1):107–113.
Fernandez, E. B. (2004). Two patterns for web services
security. In Proceedings of the Int. Symposium on Web
Services and Applications, Las Vegas.
Fielding, R. T. (2000). REST: Architectural Styles and
the Design of Network-based Software Architectures.
Doctoral dissertation, University of California, Irvine.
Gartner Inc. (2010). Gartner top
10 strategic technologies 2010.
http://www.gartner.com/it/page.jsp?id=1210613.
Gilbert, S. and Lynch, N. (2002). Brewer’s conjecture and
the feasibility of consistent available partition-tolerant
web services. In In ACM SIGACT News.
Google Inc (2003). Memcache. http://memcached.org/.
Google Inc (2008). Google app engine - run
your web apps on google’s infrastructure.
http://code.google.com/appengine/.
Heroku Inc. (2010). Heroku : Ruby cloud platform as a
service. http://heroku.com/.
ISO/IEC (1996). ITU.TS Recommendation X.902 —
ISO/IEC 10746-1: Open Distributed Processing Ref-
erence Model - Part 1: Overview.
Johnson, S. C. and Ritchie, D. M. (1978). Portability of c
programs and the unix system. Bell System Tech J,
57:2021–2048.
Mooney, J. D. (1997). Bringing portability to the software
process.
Musser, J. (2010). Programmable web: Keeping you up
to date with apis, mashups and the web as platform.
http://www.programmableweb.com/.
OASIS Consortium (2002). Saml — security assertion
markup language. http://saml.xml.org/.
OAuth Core Workgroup (2009). Oauth core 1.0.
http://oauth.net/core/1.0/.
Schmidt, D. C., Stal, M., Rohnert, H., and Buschmann, F.
(2000). Pattern-Oriented Software Architecture, Vol-
ume 2: Patterns for Concurrent and Networked Ob-
jects. Wiley, Chichester, UK.
CLOSER 2011 - International Conference on Cloud Computing and Services Science
492