Runtime Model based Approach to Using Hybrid PaaS
Services
Yizhou Wang
1,2
, Aipeng Li
1,2
, Xing Chen
1,2,+
, Ying Zhang
3,4
, Gang Huang
3,4
1 College of Mathematics and Computer Science, Fuzhou University, Fuzhou 350108, China
2 Fujian Provincial Key Laboratory of Networking Computing and Intelligent Information Processing
3 Key Laboratory of High Confidence Software Technologies (Ministry of Education)
4 School of Electronics Engineering and Computer Science, Peking University, Beijing, 100871, China
+ E-mail: chenxing@fzu.edu.cn
ABSTRACT
Cloud computing has emerged as a new paradigm for services
delivering over the Internet. In this growing market, PaaS
(Platform-as-a-Service) cloud has been an important model
allowing a simple and flexible deployment of applications,
without the need for dedicated networks, servers, storage and
other services. Many PaaS services have been provided in the past
few years and it is required to use hybrid PaaS services in order to
satisfy management requirements such as legacy system
integration and dynamic resource scaling. However, there are
various management interfaces and different management
mechanisms among PaaS clouds, which cause great difficulty and
high complexity to application deployment in a hybrid cloud. In
this paper, we present a runtime model based approach to using
hybrid PaaS services. First, the manageability of PaaS services is
abstracted as runtime models that are automatically connected
with the corresponding systems. Second, we provide a unified
model of PaaS services, according to the domain knowledge of
current PaaS clouds. Third, the synchronization between the
unified model and runtime models is ensured through model
transformation. Thus, administrators are able to use hybrid PaaS
services in a unified manner and management logic can be also
carried out by executing programs on the unified model, which
decreases the difficulty and complexity of hybrid cloud
management.
Keywords
PaaS Service, Hybrid Cloud Management, Models at Runtime.
1. INTRODUCTION
With the development of cloud computing, many PaaS(Platform
as a Service) services and products have been provided in the past
few years, including public cloud services like Google App
Engine [1], and open source PaaS products like Cloud Foundry
[2]. These PaaS clouds can support different types of applications
such as Java and PHP, and provide some extended services such
as database and mail. In order to satisfy management requirements
such as cross-domain resource provision, legacy system
integration and dynamic resource scaling, it is required to use
hybrid PaaS services in some scenarios. However, there are
various management interfaces and different management
mechanisms among PaaS clouds, which may cause great difficulty
and high complexity to application deployment in a hybrid cloud.
This obstacle can be broken into two parts.
On one hand, there are various management interfaces among
PaaS services. Their method names, input parameters and
execution effects are different from each other, which increases
the complexity of using hybrid PaaS services.
On the other hand, each of PaaS services has its own management
mechanism. There are differences in resource classification,
organization and features among PaaS clouds. Administrators
have to be familiar with these management mechanisms which
increases the difficulty of application deployment in a hybrid
cloud.
Actually, using hybrid PaaS services is aimed to construct and
manage a hybrid PaaS cloud through invoking management
interfaces provided by different PaaS clouds. For instance,
administrators deploy the application on both a private PaaS cloud
based on Cloud Foundry and Baidu App Engine [3]; in order to
satisfy the requirement of dynamic resource scaling, they need to
develop management programs to ensure that extra resources will
be automatically added when the application load is high.
However, these management programs can cause high
programming efforts and costs. Administrators first have to be
familiar with the APIs provided by PaaS clouds and then build
programs upon them, which is not easy due to diversity of PaaS
services. In these management programs, proper APIs have to be
chosen for use and different types of APIs must be interoperable
with each other. Such tedious work is not the core of the
management logic compared with the analyzing and planning
related codes, but it has to be done to make the whole
management program run effectively. During this procedure, the
underlying APIs as well as the collected low-level data can
sometimes exhaust and frustrate developers. Furthermore, as the
programs are built on code that directly connects to PaaS services,
they are not easy to reuse.
Software architecture acts as a bridge between requirements and
implementations [4]. It describes the overall structure of a
software system with a collection of managed elements and can be
used to reduce the complexity and cost resulting from the
difficulties faced by understanding large-scale complex software
systems [5]. Modeling the system architecture is a natural
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. Copyrights for
components of this work owned by others than ACM must be honored.
Abstracting with credit is permitted. To copy otherwise, or republish, to
post on servers or to redistribute to lists, requires prior specific permission
and/or a fee. Request permissions from Permissions@acm.org.
Internetware '16, September 18 2016, Beijing, China
© 2016 ACM. ISBN 978-1-4503-4829-4/16/09…$15.00
DOI: http://dx.doi.org/10.1145/2993717.2993719