You are on page 1of 12

Future Generation Computer Systems 74 (2017) 337348

Contents lists available at ScienceDirect

Future Generation Computer Systems


journal homepage: www.elsevier.com/locate/fgcs

Robot Cloud: Bridging the power of robotics and cloud computing


Zhihui Du a, , Ligang He b , Yinong Chen c , Yu Xiao d , Peng Gao d , Tongzhou Wang d
a
Tsinghua National Laboratory for Information Science and Technology, Department of Computer Science and Technology, Tsinghua University, Beijing
100084, China
b
Department of Computer Science, University of Warwick, United Kingdom
c
School of Computing, Informatics & Decision Systems Eng, Arizona State University, Tempe AZ85287, USA
d
Beijing University of Posts and Telecommunications, Beijing, 100876, China

highlights
The architecture design of a robot cloud is presented.
The simulation results show the advantage of our proposed scheduling algorithm and one big robot center.
The prototype system implementation shows the proposed idea is feasible and more such on-site services will be available in the future.

article info abstract


Article history: Cloud computing is shaping the cyber world and evolves as a key computing and service platform for
Received 16 September 2015 sharing resources including platforms, software applications and everything in the form of services. This
Received in revised form is known X as a Service. Although it brings our age unparalleled computing ability and economic
31 December 2015
benefits, the application of cloud computing is still limited currently in the cyberspace due to the cloud
Accepted 11 January 2016
Available online 21 January 2016
services can only reside in cloud instead of our daily life environment. In fact, there are still a plethora of
physical position based on-site service demands that cloud computing could help little due to the cyber
Keywords:
limitation. In this paper, we aim to integrate the cyber world and the physical world by bringing up
Service-oriented architecture (SOA) the idea of Robot Cloud to bridge the power of robotics and cloud computing. To make it possible, we
Cloud computing design a novel Robot Cloud stack to support our idea and adopt the service-oriented architecture (SOA) to
Robotics make the functional modules in the Robot Cloud more flexible, extensible and reusable. Then we develop
Robot Cloud a prototype of Robot Cloud using the popular Google App Engine to demonstrate our design method.
Robot as a Service (RaaS) Finally, we conduct the simulation experiments with a robot show application scenario to evaluate our
scheduling policy and identify the effect of different request distributions and robot center solutions.
2016 Elsevier B.V. All rights reserved.

1. Introduction ables people to store and access personal files, such as music, pic-
tures, videos and bookmarks, to play games, and to use from any-
Computing has been viewed as resources by human beings and where the productivity applications deployed on remote servers
used as the medium to build the powerful and versatile cyber instead of physically carrying around a storage medium installed
world. To date, the vast majority of the applications in the com- with the applications.
puter technology are restricted to the interactions between human As the cyber world mainly focuses on virtual applications and
beings and cyberspace. The typical exemplar applications of such as the requests for application in the real world grow beyond the
interactions include the Internet and the cloud computing technol- cyber domain, the existing cloud computing technology started to
ogy. become insufficient to address the richness of the requests from
the reality.
Almost all users of the Internet are using a form of cloud com-
A robot is a mechanical intelligent agent which can perform
puting [1] although they may not realize it. Cloud computing en-
tasks on its own, or with guidance. In other words, robots are usu-
ally guided by computer and electronic programs. However, three
characteristics make robots to stand out as one of the best me-
Corresponding author. dia that are able to act as the bridge between the virtual (cyber)
E-mail address: duzh@tsinghua.edu.cn (Z. Du). world and reality. First, robots are of strong mobility. As robots are
http://dx.doi.org/10.1016/j.future.2016.01.002
0167-739X/ 2016 Elsevier B.V. All rights reserved.
338 Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348

essentially machines, they are not confined to one physical loca- 2.2. Cloud computing
tion but have the capability to move around in their surroundings.
Second, robots are perceivable. People endow robots the abilities of As consumers rely on service providers to supply all their data
perceiving and absorbing data in the environment, processing data, or computing resources, the computing industry shifts towards
and responding to various stimuli. The third character involves ac- providing Infrastructure as a Service (IaaS) [914], Platform as a
curacy and reliability. Robots can perform certain tasks for humans Service (PaaS) [4,1517], Software as a Service (SaaS) [1820], and
and complete the work more accurately and efficiently. even X as a Service (XaaS) where X can be any item [21].
Based on the merits of both robots and cloud computing tech- Cloud computing technologies give the IT professional opportu-
nologies, in this paper we merge robots and cloud computing tech- nities and challenges. All major computing companies participate
nologies and make the robot as one of the resources in the novel in cloud computing areas and many platforms emerge, including
computing system named Robot Cloud. Our intention is to create Amazon Elastic Compute Cloud (EC2) [22], Google App Engine [23],
synthetic systems which intensify the interaction between phys- Microsoft Azure [24], Sun network.com (Sun Grid) [25] and GRIDS
ical world and virtual world, making the best of both computa- Lab Aneka [26]. The emergence of cloud computing and the corre-
tion resources and robot resources to serve our human kind. In this sponding new products as well as that of the new business model
novel architecture, Service-Oriented Architecture (SOA) [2] plays makes it possible to use computing resources just like accessing
an important role since a loosely coupled framework cannot only utility services.
reuse existing assets easily, but also is conducive to the expansion From the bottom to the top, the cloud computing stack [27] built
and maintenance of the existing robot systems, achieve flexible re- on hardware is commonly recognized as IaaS, PaaS and SaaS.
sponse to customer requirement changes, maximize cost savings, Zhang et al. [28] has already presented a reusable and customiz-
and improve the efficiency of Robot Cloud. able cloud computing architecture called Cloud Computing Open
Unlike James Kuffners cloud-enabled robotics [3], the Robot Architecture (CCOA). It also depicts several principles for building
Cloud is a system meeting peoples need and owning the ability the Cloud Computing systems and applications as well as for adopt-
to interact with the physical world. Considering the attributes of ing the service-oriented architecture (SOA), that could make the
robots, it is not likely for Robot Cloud to share the same system
CCOA more flexible, extensible and reusable.
architecture as traditional cloud computing without any change.
The main contributions of the CCOA provides two insights that
We present the novel Robot Cloud architecture in Section 3, partly
we can use to develop our own work. First, it is recommend-
learning from the cloud computing architecture.
able to adopt the way of using a novel architecture to enable
The rest of the paper is organized as follows. Section 2 intro-
the infrastructure-level resource sharing as cloud offering. Thus,
duces related work that supports the design of our system. Sec-
robots in the Robot Cloud should also be shared as a cloud offer.
tion 3 proposes the overall design of the Robot Cloud architecture
Second, we can use the SOA construction method to separate busi-
that characterizes a Cloud framework containing robot resources.
ness design from infrastructure support.
Section 4 presents in detail the most important features of the
Mobile Cloud computing becomes a hot topic lately [29,30].
Robot Cloud architecture, i.e., how to achieve the Robot as a Service
Mobile Cloud and Robot Cloud share similarity to some extent since
(RaaS). The feasibility studies on the Robot Cloud are shown in Sec-
Robots typically interact with other services in the Cloud through
tion 5, where we develop a prototype using the popular Google App
wireless communication. But the difference between them is
Engine platform [4] to testify our idea. The first application of the
prominent. Mobile Cloud provides the rich computation and data
Robot Cloud that comes to our minds is the robot show, which
could be exemplified as a scenario of on-site service providing. We resources in the Cloud platform to mobile users. It works by, for
conduct the simulation to evaluate our scheduling algorithm, the example, offloading the workloads submitted to mobile devices to
effect of different request distributions and the advantage of one run on the Cloud platform. In Robot Cloud, however, the objective
large robot center, which is elaborated in Section 6. The conclusion is to integrate the robots into the Cloud platform. By doing so, robot
is presented in Section 7. services become a type of Cloud service and an integral part of the
Cloud platform. Therefore, their objectives, interaction principles
and implementation techniques are very different.
2. Related works

2.1. Service-Oriented Architecture 2.3. Cloud-enabled robotics

Service-Oriented Architecture (SOA) [2] is not a revolutionary Googles self-driving automobiles have shown that an un-
shift of paradigm. It evolves from the distributed object [5] and manned car equipped with the computer technology can travel
component architecture [6]. In an SOA environment, end users safely from city to city [31]. Also, there are a good number of re-
request an IT service (or an integrated collection of such services) searchers exploring the idea of using the robots based on the cloud
at the desired function, quality, and capacity level, and receive it computing infrastructure, aiming to access vast amount of process-
either at the time as it is requested or at a later time specified ing power and data. Professor James Kuffner at Carnegie Mellon
by the users. Service discovery, interoperability, and reliability are University has described the possibility of embracing the cloud in
important functionalities that need to be supported in SOA. robots. CPU-intensive tasks in robots can be offloaded from smaller
The key idea behind SOA is that different companies offer their and less power-consuming onboard computers to remote cloud
services in the form of modular and loosely coupled software servers [3]. A robot can improve its ability by integrating with
components, which exchange data among the companies over cloud-based services. An example of this is the cloud-enabled robot
HTTP (Hypertext Transfer Protocol) on the Internet with no human with the object recognizing function such as Google Goggles [32].
intervention. In other words, services can be replaced on the fly Imagine a robot finds an object that it never saw or used before, for
without the interruption of using the services. SOA has a number instance a box of cornflakes. The robot can be programmed to send
of outstanding characteristics, such as reusability, substitutability, an image of the box to the cloud. The object recognition algorithm
extensibility, scalability, customizability and composability. Using is run in the cloud and returns the robot the objects name, a 3-D
SOA, researchers have developed different robots, such as Robotic model, and the instructions of how to pour it. Other functions of
Swarm by Vlad M. Trifa et al. [7], security robots designed by a cloud-enabled robot include navigating environments [33] and
Arizona State University [8]. operating tools.
Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348 339

Professor Kuffner aims to develop the robots as an effective Cloud Computing). There are a large number of robot units in a RaaS
terminal which is able to offload most of its complex computa- system. All these robot units provide services to the consumers. A
tional and storage work to the cloud, rather than intensify the RaaS system also has complete functions of SOA, that is, as service
ability of the robots themselves. In the robotics level, robots are provider, as a service broker, and as a service client [38].
isolated, which means that there are little direct interactions be- A RaaS cloud unit is a service provider: Each unit hosts a repos-
tween robots. This is because in this architecture a cloud-enabled itory of preloaded services. A developer or a client can deploy new
robot depends on, therefore interacts with, the cloud rather than services into, or remove services from, a robot. The services can be
its peers. used by this robot and can also be shared with other robots.
J.P Laumond has pointed out the drawbacks of the cloud- A RaaS cloud contains a set of deployed applications: A devel-
enabled robotics in [34]. Achieving good real-time performance oper or client can compose a new application (functionality) based
depending on strong onboard processing ability would be a on the services available in and outside the unit.
forbidden territory for cloud robotics. For instance, controlling a A RaaS unit is a service broker: A client can look up the services
robots motioning which relies heavily on sensors and feedback and applications available in the units directory. A client can
will not benefit much from the cloud. Moreover, the cloud search and discover the applications and services deployed in the
robotics paradigm which severely relies on the networks may robot by browsing the directory. The services and applications can
weaken the robotics autonomy and reliability. It is possible that be organized in a hierarchy or classes to facilitate the discovery.
once the networks paralyze, all cloud robotics would become Fig. 1 illustrates the service layers and the hierarchy of ser-
brainless. vice registry and discovery. There are three types of elementary
However, different from professor J. Kuffners intention to make services, which are also called low-level service, including Ba-
robots lighter, cheaper and smarter, Robot Cloud aims to shape sic Hardware Services, Application Services and Common Ser-
the robots as a part of the cloud computing service which leads to vices (represented by different shapes at the low level services
the conception Robot as a Service elaborated in Section 4. On one layer in Fig. 1). These low-level can be composed to provide high
hand, in the Robot Cloud, service-oriented architecture does not level services (the second layer in Fig. 1). All services, no matter
have to be implemented over the Web. Thus, the standard interface high-level or low-level, are published through the service registry
can be simpler and faster. Services can also be migrated onto a and repository (the top component in Fig. 1).
local machine to reduce the communication cost [35]. Besides, the Basic Hardware Services: This type of services plays a role of
Robot Cloud is not the simple extension of the cloud computing basic hardware resources. The following are some exemplar basic
technologies or the robotics. It has the features of both cloud hardware services: a Core Processor Service runs as the core of the
computing and robotics as well as its own distinctive features of system, performs basic diagnosis and controls various services in
the Robot Cloud itself. Especially, on the robotics level, robots in order to finish specific tasks; a Sonar Sensor Service initializes the
Robot Cloud can contact each other rather than act as isolated units sonar sensor driver and calculates the distance of the sonar senor
that are only allowed to exchange data with the remote servers. As from an obstacle in front of it; a Touch Sensor Service generates
a result, the Robot Cloud will make the best use of most excellent an event when the touch sensor is touched or has encountered
existing scientific achievements in the realm of robotics. an obstacle; a Motor Driver Service keeps reading a managed
Usually, when we develop a new system, it is necessary to command pool and retrieves the command from the command list
develop the framework that is able to explain various architec- and executes it; a Compass Sensor Service keeps reading incoming
tural concepts and specification in the system. The purpose of
data from the corresponding port, calculates the compass value,
developing such a framework is to allow the improvement and
and turns around according to the compass value; a Video Camera
integration of development methodologies and tools and also to
Service pops up a window displaying a real-time video captured by
establish the credibility and confidence in investing the required
the camera mounted on the robot.
systems resources. However, the analytical results of the cur-
Application Services: Application services registered in the
rently accepted cloud stack and the architecture of cloud-enabled
service broker are mainly task-related services, such as Patrol
robotics indicate that these architectures cannot meet all the needs
Service (driving the robot to perform the patrolling and object
of the proposed Robot Cloud. Mismatches between original design
detection task autonomously), Intruder Detection Service (helping
and current usage will definitely hamper the application potential
the robot detect the presence of intruders), Bomb Detection Service
of Robot Clouds. Therefore, it is essential to design a new architec-
(assisting the robot to detect potential bombs in a dangerous
ture for the Robot Cloud.
environment), and so on.
Common Services: Common Services represent several classic
3. Robot as a service
algorithms and commonly used functions. For example, a maze
As SOA becomes more and more popular, this new architecture navigation algorithm is required by most mobile robots, and a
style has been applied to the development of robotics application. human face recognition algorithm is also used by various robotics
Chen applied the SOA concepts to develop re-composable embed- applications which need to recognize different people from their
ded systems and robotics applications, and implemented a proto- faces.
type of the system [36]. Researchers encapsulate the functions of Since the service broker provides a method for robotics appli-
every part of robot and the robotics applications as well-defined cation developers to retrieve existing usable services, developers
services. Programmers are then able to assemble new robotics ap- are able to reuse the appropriate components and combine them
plications using these services. In this way, the whole systems are according to the requirements, which greatly facilitates the appli-
loosely coupled, more flexible to adjust. More importantly, new ap- cation development.
plications can be developed more efficiently just by composing ev-
ery useful component and customizing them. 4. The robot cloud architecture
Chen et al. also implemented these ideas with an easy-to-
learn programming language, Visual Programming Language (VPL), 4.1. Target business model
successfully, and applied it to develop a high school computing
course [37]. A good understanding of the target business model greatly
The SOA-based robot architecture relies on extending cloud helps us design the architecture of the Robot Cloud. Generally,
computing to the field of roboticsRaaS (Robot as a Service in there are four parties in the target business model of Robot
340 Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348

Fig. 1. Illustration of service layers and service registry and repository.

The Perception/Interaction Layer is like the facial skin and the


five senses of the Robot Cloud, which is designed to perceive
the physical properties of the objects (such as the location,
surrounding environments, etc.) by various sensors (such as sonar
sensors, GPS, 2-D barcode, etc.), and to convert the information
to digital signals so that it can be transmitted over network
more conveniently. Moreover, the Perception/Interaction Layer
is responsible for the interaction between human and robots,
through interactive devices.
The Transport Layer is responsible for transmitting data re-
ceived from the Perception/Interaction Layer to the upper layer
mostly through wireless networks (such as WiFi, 3G networks,
Fig. 2. The target business model. etc.).
Both the Mapping Layer and the Processing Layer rely on com-
Cloud, which are Robot Cloud Service Provider, Cloud Computing puting and storing abilities. The former focuses on the tasks such as
/Robotics Provider, Value-added Service Provider, and also the robots scheduling and brings the great convenience to robot man-
Consumer. The relationship among all the roles can be illustrated agement. The later processes large quantities of tasks and the huge
by Fig. 2. amount of information that the Robot Cloud carries through the
The Robot Cloud is owned by the Robot Cloud Service Provider, cloud computing technologies.
Based on the Processing Layer, we build the Application Layer
who is responsible for the management, government, execution
which is formed by diverse application services (such as Robots
and maintenance of the Robot Cloud. Acting as a one stop shop in
Authentication and Access, Location service, etc.). As a result, the
front of the consumers, the Robot Cloud Service Provider receives
Robot Cloud can provide different clients with different applica-
consumers requests and provides the Robot-Cloud services to the
tions.
consumers. Cloud Computing Provider and Robotics Provider act as
Finally, the Business Layer acts like the manager of the Robot
the Infrastructure Provider in the Robot Cloud, who provides cloud
Cloud, whose functions include managing the applications, rele-
services primarily or various types of robotics. The Value-added
vant business models and other businesses. The business Layer
Service Provider offers services that existing cloud does not own.
manages not only the release of various applications and the charg-
ing for using them, but also the research on business models and
4.2. System architecture overview profit models, which benefit the long-term development of the
Robot Cloud. The reason why we build the Robot Cloud based on
Designing a novel architecture is a very complex project, which the service-oriented architecture is partly because of the require-
needs to consider many factors including reliability, scalability, ment of the business model.
modularity, interoperability, interface, QoS, etc.
Figs. 3 and 4 give the system architecture and topology 4.3. Robot Cloud Center
overview. As a whole, the architecture of Robot Cloud includes
three parties, which are the Robot Cloud Center, Cloud Robot Host 4.3.1. Robot Cloud Center architecture
and Service Robot, from top to bottom. Robot Cloud Center is the Robot Cloud Center is the core of the Robot Cloud which is
core of the Robot Cloud which is in charge of performing all the in charge of performing all the computing or storage intensive
computing or storage intensive tasks. A Robot Cloud Center con- tasks. It can be a data center built with a large number of
tains a number of Cloud Robot Hosts which are deployed in dif- devices in a specified physical location. Cloud computing is the
ferent physical environments that could be different geographical primary technology of the Robot Cloud Center. Employing the
places in a city. Robot Hosts meet the requirement of interacting cloud computing technology in the robotics is still challenging.
with the physical world in Robot Cloud. A Robot Host may con- Three objectives help address the challenges of defining an open
tain several Service Robots, which form the Perception/Interaction Robot Cloud Center architecture.
Layer of the Robot Cloud. (1) Articulating a reusable way of creating scalable and config-
From another perspective, the Robot Cloud is also a six-layer urable provisioning platform for Cloud Computing.
architecture system consisting of the Perception/Interaction Layer, (2) Proposing a set of common and shared services to build the
the Transport Layer, the Mapping Layer, the Processing Layer, the Robot Cloud services (or other Cloud offerings) for Cloud
Application Layer, and the Business Layer. customers in a unified approach.
Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348 341

Fig. 3. System architecture overview.

4.3.2. Robot Cloud Panels


People (i.e. customers, Robot Cloud provider, and also cloud
computing provider) access the Robot Cloud through three
separate Robot Cloud Panels. However, according to the life cycle
reference of SOA, the functions of all these Panels can be classified
into four categories, i.e., modeling, assembling, deploying, and
managing and analyzing the robotics applications.
1. Modeling: It enables the platform to gather and analyze user re-
quirements. The developers of robotics applications will design,
stimulate and optimize them according to user requirements
Fig. 4. System topology architecture.
recorded by the system.
2. Assembling: It is used to compose new robotics applications
using existing services published in the service broker. MRDS
(Microsoft Robotics Developer Studio) [39] is a windows-based
environment for developers to easily create robotics applica-
tions. Because MRDS with various useful toolkits provides pow-
erful functionalities, we have ported MRDS and its graphic
language, VPL (Visual Programming Language) into our model
and assembled the development phases of robotics applica-
tions.
3. Deploying: If robotics applications are deployed and invoked
on a Robot Cloud Panel, applications can be replaced and up-
dated without stopping the robots. However, it requires fre-
quent communication between the Robot Cloud Panel and
robots. As the result, it is difficult to guarantee the real-time re-
sponse. In our work, we implement a service auto-installer to
Fig. 5. The architecture of a Robot Cloud Center.
synchronize newly developed services or applications and tar-
get robots through wireless network.
4. Managing & Analyzing: this function is composed of four im-
(3) Maximizing the potential business value of a Robot Cloud
portant sub-components: scheduler (scheduling all requests re-
based on an extensible infrastructure and management sys- ceived by the robots), robot manager (adding new robots or
tem. This will attribute to the value added services of business substituting existing ones, managing the robot mapping, etc.),
cloud, through combining the power of SOA and cloud com- robot monitor (monitoring the robot status, service running sta-
puting. tus and analyzing the logs), and service broker manager (the
CRUD operation of the service broker).
Thus, we propose a reference model of the Robot Cloud Center,
which is shown in Fig. 5.
Here, we have to clarify three points: 4.3.3. Cloud Robot Host
First, the Robot Cloud Client Panel is the interface through A Cloud Robot Host is like a manager of a collection of Service
Robots. It can be deployed in a fixed physical place as a gathering
which the customers access the Robot Cloud and request the
station for Service Robots. The Cloud Robot Host is a party linking
services that satisfy their needs. In other words, the Robot Cloud
Robot Cloud Center and numerous Service Robots. It consists of
Client Panel is the interaction platform between the service
three parts (showed in Fig. 6): the Robot Host Core, the Robots
provider and the customers of a Robot Cloud. Technically, the
Maintenance Module, and the Robots Storing Module.
Robot Cloud Client Panel can be a front-end for web access.
Just as its name suggests, the Robot Host Core is the kernel of
Second, since most Cloud vendors do not work alone anymore, a Cloud Robot Host, which contains an authentication and access
they need to collaborate with their partners [28], it is helpful component, a graphical user interface (GUI) component, a moni-
to design a Cloud Computing Provider Panel to integrate the toring component, a communication module, the QoS module, the
management of the Robot Cloud. Safety module, the computation module, and also a Service Broker.
Third, even though X as a Service (XaaS) is not a strange concept The functionality of the authentication and access component
to IT professionals, the new concept of Robot as a Service (RaaS) is is to manage the Service Robots registration. It possesses the
discussed in detail in Section 3. methods to authenticate the Service Robot and grant a Service
342 Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348

Fig. 6. A robot host architecture. Fig. 7. A Service Robot architecture.

Robot the proper authority to use all other resources in the Robot
Host. The GUI component provides the manager of the Robot Host
a friendly interface to manipulate the system. The monitoring
module is related to the Robot Hosts polling function, through
which the Robot Host Core polls all its Service Robots and obtains
their status at certain time intervals. The monitoring module
can be inquired when deploying different scheduling methods to
minimize the overall cost of the Robot Cloud (further discussion
on the scheduling issue is conducted in Section 4.4.3). The module
can also be used to detect abnormal status. Once an abnormal
status is detected, a warning message will be sent to GUI, and
the information related to the abnormality will be saved in the Fig. 8. A Service Robot architecture (SOA view).

database.
We design a Service Broker in the Robot Host Core so as to
consists of two parts. One part performs certain physical actions.
avoid developing the application-specific components. Instead,
This function is implemented in the mechanical module, which
the requirements of the components are published in the Service
needs the assistance of other modules, such as position modules.
Broker. In other words, the Service Broker will provide a great
The other verifies who is authorized to issue the instructions. This
convenience to the service providers: the service providers can
function is implemented in the safety module.
develop the services and publish them in the broker, and the
We build Service Robots in the fashion complying with the
application developers then look up the services available in the
service-oriented architecture. This is the reason why these mod-
Cloud and incorporate the services into the application to be
ules can be easily added onto or removed from robots. In general,
developed.
the Service Robot architecture can be divided into two parts: WSDL
The Robots Maintenance Module maintains the Service Robot,
Interface and Infrastructure (see Fig. 8).
i.e., conducts the maintenance routine and the common trouble
The infrastructure of Robots in the Robot Cloud is composed
shooting. Also, this module recharges the Robots battery.
of the hardware devices of robot and the operating system, as
The Robots Storing module is like a robot warehouse. Once a
well as device drivers. There are heterogeneous robots in the robot
robot has entered into the Sleep or Ready state (these concepts
will be discussed in detail in Section 4.4.2), it will find its way to the cloud that provide different services, so they may have different
Storing Module and stay there. hardware devices and device drivers.
Service Robots must also interact with other parts of the sys-
tem or interact with other robots. We use web services as the com-
4.4. Service Robot
munication interface in our system. To make the system work, the
application server must be installed on the onboard computer of
4.4.1. Service Robot architecture
the robots, which is responsible for receiving requests and send-
Generally speaking, Service Robots in the Robot Cloud are ing responses. Robotics applications and web services that wrap
robotics provided by Robotics Providers, but are built with spe- hardware drivers (Basic hardware services) are deployed on the
cially designed architecture in order to integrate with the cloud server. Besides, a service directory of Robot Cloud unit is necessary
computing resources. Indeed, Service Robots play the most funda- to record all the services deployed on it.
mental role in the Robot Cloud system because they are the entities
which provide services for the end users. Service Robots need to
communicate with other parts of the system (i.e. the Robot Host), 4.4.2. Service Robot finite-state machine
and they are also required to interact with each other. Each of the Service Robots has a human user interface which can
As we have discussed in the previous section, Service Robots turn the robot into an autonomous mode or a manual controlled
form the Perception/Interaction Layer of the Robot Cloud. Service mode. Once a robot is initialized and put in the working order,
Robots are able to perceive information in the surrounding world it will run in the autonomous mode without the need of human
and also provide different services directly to customers. intervention. Fig. 9 shows all statuses of a Service Robot.
The physical architecture of a Service Robot is shown in Fig. 7. A We consider three states in the autonomous mode: Sleep, Ready
typical Service Robots components should include (but not limited and Busy. All states change dynamically in order to achieve rela-
to) a position module, a mechanical module, a communication tively low energy consumptions. When a robot is initialized, its de-
module, the computation module and battery. To improve the fault state is set to be Sleep, the most energy-saving state. There
service quality of the robotics, Providers may add other modules can be a number of Sleep Robots in a Robot Host. When the QoS is
onto the robot including Alert system, QoS module and Safety below a certain threshold, the state of a certain number of Sleep
mechanism. Note that the controlling function is not implemented Robots will translate it to Ready, which means that the robots are
in a single module in the architecture. The controlling function ready to load tasks. A Ready robot consumes more energy than A
Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348 343

Table 2
Final state of robots.
Rid RSid State

1 A 0
1 B 0
2 A 0
2 B 0
3 B 0

Table 3
Final state of robots.
Fig. 9. Service Robot finite-state machine.
Rid RSid State

Table 1 1 A 1
Robot variables and definitions. 1 B 1
2 A 1
Notations Meaning
2 B 1
Rno Request identity number 3 B 0
Sid Requested service identity number
Cpb The total capacity of robots that the users request needs
Rid Robot identity number When the Sid of a user request is A, we select the robot based on
RSid Robot provided service the following rule: the state of robot is 0 and the robot whose RSid
State Running state of robot is A. Consequently, the robots that can be selected must be in the
set {1, 2}. Namely, we can only assign the task to robots whose Rid
Sleep robot. When the QoS is above the threshold, some Ready is either 1 or 2. We change the states of robot 1 and 21, as shown
robots may fall back to the Sleep state. in Table 3.
Then, if a new request demands service B, the set of candidate
Only Ready or Busy robots can perform consumers re-
robots that can be selected is {3}. Therefore, the task will be
quests. An incoming customer request (i.e. a task) can put a
assigned to robot 3.
Ready robot into operation. The robot then becomes a Busy
We now consider how to distribute the tasks to certain robots
robot. Note that not every newly arriving task will change a
within the set of candidate robots. The task distribution aims to
Ready robot into a Busy one. A Busy robot can also take the (1) satisfy the users demands and (2) minimize the overall cost of
task that possesses a long deadline. If the deadline is long enough, the robot cloud.
a Busy robot may finish its current task first, and then perform Assume the number of robots available in Robot Cloud Center
the task with a relatively long deadline. is n. The capability of each robot is denoted by Ai (1 i n) and
the cost of each robot by Ci (1 i n). Xi (1 i n) denotes
4.4.3. Service Robots mapping and scheduling algorithm the final solution of robot selection. (Xi = 1) means that ith robot
As stated above, a Service Robot has various states. This raises is selected, while (Xi = 0) means that ith robot is not selected. The
the problems as to whether Robot Host should use a Busy Robot capability of a robot is expressed as a vector Ai = s1 s2 , . . . , sm
or another Ready Robot to perform a new task. When the re- (the total number of robot services that can be provided is m). If a
quirements in terms of both functionality and quality-of-service robot can provide service sj then the value of its element sj = 1.
(QoS) are satisfied, how to minimize the overall cost of the robots Otherwise sj = 0. We can remove, add or replace a particular
becomes more complex. In such cases, the scheduling strategies service on a robot dynamically, and therefore the value of Ai may
should be enacted by the Robot Host. There are a number of ex- vary over time. Cpb is also expressed as a vector similar as Ai and its
isting works which also investigate the task scheduling strategies value is set based on users requests for different kinds of services.
[40,41] and the service mapping problems [42]. However, their Cpb [j] = 1 means that the user needs the jth service. Otherwise
works are designed for generic tasks and services. In this section, Cpb [j] = 0 (1 j m). The optimal scheduling in the sense of
we propose a mapping and scheduling method targeted towards minimizing the cost can be formulated by
robot services. n

We design a mapping layer in our system to realize the task as- min Ci Xi
signment function of the system. Fig. 10 presents the specific map- i=1
ping mechanism from a high-level perspective. It is necessary to
n


point out that this mapping is not unalterable. It is a configuration s.t. S [j] Cpb [j] , 1 j m, S = Ai Xi , Xi {0, 1} . (1)
file in XML that can be dynamically modified by the robot man- i=1
ager in Robot Host, which means that we can manage the robots
Since the value of Xi is 0 or 1, the problem proposed above is
flexibly.
a classic integer linear programming problem. Finding a feasible
We apply the robot selecting and scheduling algorithms in the
solution to this problem is NP-hard and there are not known
mapping layer to achieve the overall robot management of the algorithms for solving the integer linear programming problem
Robot Cloud. with polynomial time. Therefore, we propose a heuristic algorithm,
Firstly, the robot selecting algorithm is built on the assumption LPS (Location-based Packing Scheduling), to schedule the tasks.
that the Robot Cloud Center has sufficient robot resources. The Algorithm 1 shows the details of the LPS algorithm. The algorithm
algorithm checks if the residual energy of robots is sufficient for tries to pack multiple requests and assign them together to one
completing the tasks to be assigned. robot. LPS at most check K Busy robots and one Ready robot. It will
The variables of user request can be abstracted as Table 1. assign the request to the robot with the lowest cost or reject the
A robot can provide multiple services, i.e., one Rid can be asso- request if the selected (K + 1) robots cannot satisfy the request
ciated with many RSids. The initial state of the robot is 0, i.e., the or the constraint. The time complexity of the LPS algorithm is
idle state. When the robot executes a service, its state is changed O(K + 1), where K + 1 is the number of the robots to be checked.
to1, which represents the running state. Because we only need to check a few robots, the algorithm can
Table 2 shows a case study that illustrates our model. process the requests with high performance.
344 Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348

Fig. 10. Robot objects and physical robots mapping.

Fig. 11. System architecture of the prototype system.

5. The cloud robot prototype

A robot is a good combination of the digital cyber world and the


real world. Most of the robots controlling programs are written in
object oriented languages such as Java and C++. The libraries that
most robot manufacturer used to program the robot actions are
Fig. 12. Inheritance-layered class diagram of the GAE robot extension.
similar. With these libraries, it is easy for the users to develop their
own controlling algorithms and make the robots perform desired
actions. provided by the Cloud platform. The extension provides the
We have implemented a prototype of the robot cloud based on developers the extra classes that can access the robots. The
the infrastructure and components described in previous sections. inheritance-layered class diagram is shown in Fig. 12. All classes
An Application Programming Interface (API) is implemented using in the extension are extended from the Robot class, in which some
the object oriented programming languages (detailed in the common functions, such as hiring or releasing a robot from the
subsections below) in the PaaS layer. The API describes a set of robots pool (a place where all robots park). Robots with special
robot actions provided by the Robot Cloud in the behavior level. functions can be extended from the top level classRobot or the
classes extended from it. In this way, the prototype offers the
methods to implement both basic function and special functions.
5.1. Accessing robots from the cloud programs
The robot cloud panels mentioned in Section 4.3.2 is imple-
mented as an application base on the Google App Engine and the
Although programming a robot is easy nowadays, the interop-
RaaS extension. Users can open the application in their Internet
erability is still poor compared to the highly developed software
browsers and send the requests to the robots.
industry. With the development of SOA (Service Oriented Archi-
tecture) and related technologies, the interoperability of software,
especially those based on Internet, have advanced to a very high 5.2. Controlling robots from the cloud server
level. For example, a program can now access another programs
data or functions through some common programs called middle- All the data generated by or related to the robots are stored
ware. The cloud computing technology has one of the many ways as persistent objects in the Google App Engine Platform. Robot
to implement a SOA software, which draws more and more atten- instances can share these data through the scheduling service to
tion in the industry Cloud service providers have also made a lot of cooperate and provide more excellent services.
efforts to improve the interoperability between the cloud comput- The Scheduling service is a standard SOA programming inter-
ing platform and the software running on top. A typical solution is face, which is implemented in Java and hosted by the Google App
to build up a library which makes it easy for the programmers to ac- Engine. The service contains two main functions: Upload the data
cess the platforms features. Software on the platform can also have submitted by the robots to the cloud storage and accept the re-
access to the public data (e.g. user information, contact, schedule quests committed by the applications. The Scheduling service is
etc.). tightly coupled with the Google App Engine. When new data ar-
The advantage of the Software industry in interoperability can rive from the working robots, it will be transformed immediately
be introduced to the robots, if we can merge the robots into into the instances of the corresponding data type and stored per-
the modern software architecture such as cloud computing. The sistently through the JDO (Java Data Object) interface provided by
robots can be regarded as another resource in the cloud computing the Google App Engine. The data in the cloud storage is clearly clas-
infrastructure, just like computing capacity and storage. A library sified so that both applications and working robots can access the
should also be developed to provide an entry to control all different data by certain search requests. On the other hand, when users sub-
types of robots, just as what cloud computing servers do to provide mit new requests to the system through the application, they will
the uniform entry for operating different types of computer. Such be placed in the command queue located in the cloud storage. The
library should be an extension to the PaaS layer as shown in Fig. 11. scheduling service then rearranges the commands and sends them
The extension takes the advantage of the Google App Engine to certain robots for execution. Since the robot resource is also lim-
(GAE), which stores and analyzes the data through the interface ited, the rearranging procedure is very important in optimizing the
Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348 345

Fig. 13. The full overview of the robot cloud prototype system.

allocation of robot resources, just as how the operation system ar- time point before which the show must end. The value of x, y, S
ranges the processes to make full use of the computing and storage and L can be set to follow certain probability distribution (here the
capacity. normal distribution is adopted).
The controlling system of each robot is implemented in an Intel We set the longest working (including traveling) time (denoted
Atom process based x86 embedded system. Since the robot system by Tmax ) for a robot to be 5400 s, which means that each robot must
shares the same architecture with the widely used PC platform, the meet the following constraint before recharging its battery.
system can get full support of the PC software and hardware. In
this prototype, a Microsoft Windows XP is installed in each robot (total service time) + (total moving time) Tmax . (2)
as the operation system and a WIFI adaptor is installed in the After that period, a robot must be recharged and maintained in
system to provide IEEE 802.11 g wireless Internet connection to the robot center. We must ensure a robot is in the robot center by
the system. Some motion control units (PhidgetMotorControl HC, its longest working time. After the maintenance stage, a robot can
Phidget, Calgary, Canada) are connected to the universal serial bus provide the service again.
(USB) to control the movement of the robots. A local controlling The utilization function of the robot center can be defined as
service is also implemented by the C# programming language. The follows.
API provided by the manufacturer of the USB motion controller
makes it possible for the local controlling service to control the Profit = (total service time) Price
robot programmatically. The service obtains the latest commands (total traveling time) TravelCost . (3)
by sending the HTTP requests periodically to the scheduling service
and receiving their commands in the XML format as the response,
in a similar way as what most SOA applications do. 6.2. Simulation results for one big robot cloud center
The full overview of the robot cloud prototype system is shown
in Fig. 13. Application developers can control the robot simply by In the experiments, we simulate a big robot cloud center which
invoking the methods provided by the RaaS Application Program- serves an area of 20 km by 14 km and the robot cloud center
ming Interface in the level of behavior instead of in the low level of is located at the coordinate of 10 km, 7 km. The four request
motion control. This makes it much easier for the robots to interact parameters expressed in the 4-tuple follow the following normal
with other robots or even with people. distribution. x N (1000, 2502 ), y N (700, 1802 ), S
N (600, 1502 ), L N (1200, 5002 ).
6. Simulation results First, we compare the performance of the LPS (Location-based
Packing Scheduling) algorithm with another nave scheduling
6.1. Simulation model and setup algorithm, the ES (Exclusive Scheduling) algorithm. The ES
algorithm is very simple. It just assign the request to one Ready
In this section we consider a simple scenario that a robot center robot in the robot cloud center so we do not present the detailed
can only provide one service, robot show, for a given physical algorithm description here.
area. The families or organizations (such as kindergartens) can Fig. 14(a) clearly shows that for the same amount of requests,
request the robot center at certain time to play the on-site robot the LPS algorithm needs fewer active robots than the ES algorithm.
show at any location of the given area. The customers will be This is because LPS packs multiple requests and assigns them
charged only based on the service time. The longer the show is, together to one robot (the different requests can share one robot)
more fee will be charged. while ES does not. It is to be expected that total traveling cost of ES
The customers request is formulated as a 4-tuple req = is greater than that of LPS, as shown in Fig. 14(b). The simulation
R, P , S , D, where R is the release time of the request; P is the results show that more profit can be gained by virtualizing one
location of the request, expressed as the coordinate x, y; S is the physical robot into multiple ones. In the following experiments,
requested service demand, i.e., how long the requested show lasts we will only present the results of the LPS algorithm since LPS is
in this case; D = R + S + L is the deadline of this request, i.e., the superior to ES.
346 Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348

Fig. 14. Simulation results of the LPS algorithm and the ES algorithm. (a) The number of active robots changes over time; (b) The total traveling cost changes over time.

Fig. 15. The impact of the deadline on scheduling results. (a) The impact of deadline changes on the number of active robots and the reject ratio; (b) the impact of deadline
changes on the gained profit of the robot cloud center.

We also conducted the experiments to evaluate the impact of the same and the number of active robots increases before service
the deadline distribution on scheduling results. The results are demands are less than some threshold values. This is because the
shown in Fig. 15. robot cloud center can wake up more sleeping robots to meet
Fig. 15(a) shows that when the requests have longer deadline the increasing service demand if the requests cannot be packed
(the consumers can tolerate longer waiting time), the number of together and assigned to the existing active robots. When the
active robots increases first and then decrease. The reject ratio service demand is too high (close to the maximum working time
decreases monotonously. This is because when the deadline of a Tmax of the robot), the system cannot schedule any more robot
given request is shorter, it is more likely that the robot cannot move to meet the requests. Consequently, the requests with very high
to the specified location to provide the service and therefore the service demand have to be rejected and there is no need more
request has to be rejected. In this case, we do not need a large robots to provide service. This is why the number of active robots
number of active robots to provide services. When the deadline dips when service demand increases further in Fig. 16(a).
of the request become longer, it is more likely that the robot Fig. 16(b) shows that the profit of the robot cloud center keeps
cloud center has enough time to send the robots over to serve increasing until the service demand becomes too high. This is
the requests. Therefore, the reject ratio decreases and more active because when service demand increases the robot cloud center
robots are needed. When the deadline of the request become even can gain profit by serving more requests. When service demand
longer, our LPS algorithm are able to pack more requests together increases further beyond the threshold, the profit decreases
and assign them to one instead of multiple robots. This is why because the requests with very high service demand have to be
the number of active robots decreases as the deadline increases rejected.
further in Fig. 15(a). The reject ratio continues to decrease because
even more requests can be served by the robot cloud center. 6.3. One big center or multiple smaller centers?
Fig. 15(b) shows that the profit of the robot cloud center increases
as the requests deadlines become larger. The increase in profit Given a service area and a total number of requests, a question
comes from two aspects: (1) more requests can be served, and arises as to whether we should build multiple smaller robot
(2) the traveling cost decreases when one robot is able to meet centers, each serving a smaller and separate area independently,
the deadlines of multiple requests and therefore serve multiple or build one big center to serve the entire area. We also conduct
requests. the experiments to investigate the difference between the two
Finally, we investigate how the service demand affects the solutions.
scheduling results. We assume the entire area is 20 km 20 km and it is divided
Fig. 16(a) shows that when we increase the service demand into three separate areas, each being served by three independent
of each request from low to high, the reject ratio remains almost robot centers: A, B and C. Three synthetic request traces are used
Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348 347

Fig. 16. Impact of service demand on scheduling results. (a) Impact on the number of active robots and the reject ratio. (b) Impact on the profit of the robot cloud center.

Fig. 17. The impact of the variance ( ) of request locations on scheduling results. (a) The impact on the number of active robots and the reject ratio. (b) The impact on the
profit of different solutions.

by these three centers, respectively. Each robot center can only more traveling cost, which causes the decrease in profit based on
schedule its own robots and cannot assign the requests to the Eq. (3).
robots managed by other robot centers. The above results indicate that in our scenario and scheduling
We also simulate the scenario where a single robot center is policy, the solution of building one big center (sharing all the
used to serve all requests from the three request Traces. We set robots) is much better than that of multiple smaller centers (each
the locations of three smaller robot centers to be (1000, 750), (750, sharing a subset of robots).
1250) and (1250, 1250), and the location of the single big center be
(1000, 1000). 7. Conclusion and future work
A greater means that the requests are distributed more
sparsely in the given area. Fig. 17(a) shows that the solution of We have developed a way of building a Robot Cloud in order
a single big center needs fewer active robots to serve all the to combine the cyber (virtual) world and the physical world. The
requests than the solution of three separate smaller centers. Since Robot Cloud has the great potential to serve the diverse and
one robot center cannot assign its requests to the robots in other large amount of location-based on-site demands, which cannot be
robot centers, the multi-center solution needs more robots to serve handled by the existing cloud systems.
The prototype implemented in this work and the simulation
the same amount of requests. At the same time, the single-center
results show that (1) the virtualization of robot resources is
solution has lower reject ratio compared with the multi-center
feasible, (2) the virtualization can improve the profit of the robot
solution. For both solutions, greater always leads to more active
center, and (3) one large robot center is better than multiple
robots and higher reject ratio because the robot center cannot
independent small centers.
schedule a robot to meet the service demand by the given time.
There are still some open issues for robot cloud research. First, in
However, there is an exception for the single-center solution:
order to reduce the total cost of robot cloud, we need a clever strat-
when increases from 250 to 300, the number of active robots egy to select the position of the robot center. A promising solution
decreases. A possible explanation is as follows. When more robots could take into account the distribution of requests and the trav-
are providing service at different locations of a given area, it is more eling cost, and maintaining cost of different positions to build the
likely that more requests fall into such proximity of a robot that all optimization model. Second, How to design flexible collaboration
these requests can be served by the robot, which give the system mechanism to fully utilize the robot resources to tackle more chal-
the chance of packing these requests and assign them to the active lenging tasks? For example, a robot game may need many robots
robot. to work together as a team. Finally, the implementation and de-
Fig. 17(b) shows that the single-center solution have much ployment of robot services may need to be tailored or adapted in
more profit than the multi-center solution. However, the absolute different application domains in order to achieve the optimal per-
profit decreases under both solutions as the value of increases. formance. It is critical to investigate the conditions and factors that
This is because given the same total requests, greater leads to have biggest impact on the performance of Robot Cloud.
348 Z. Du et al. / Future Generation Computer Systems 74 (2017) 337348

Unmanned aerial vehicles, which have been employed to pro- [28] L. Zhang, Q. Zhou, CCOA: Cloud computing open architecture, in: Proceedings
vide different services at specific locations for people, can be re- of the 2009 IEEE International Conference on Web Services, Los Angeles, CA,
July 06July 10, pp. 607616.
garded as a special kind of robot. Ubers ice cream is a good
[29] B. Gao, L. He, L. Liu, K. Li, S. Jarvis, From mobiles to clouds: Developing
example of this kind of application. We expect to see more of such energy-aware offloading strategies for workflows, in: The 13th IEEE/ACM
applications in the future. International Conference on Grid Computing, Grid, 2012.
[30] B. Gao, L. He, C. Chen, Modelling the bandwidth allocation problem in
mobile service-oriented networks, in: The 18th ACM International Conference
Acknowledgments
on Modeling, Analysis and Simulation of Wireless and Mobile Systems,
MSWiM15, Cancun, Mexico, November 26, 2015.
This research is supported in part by National Natural Science [31] J. Markoff, Google cars drive themselves, in Traffic, New York Times,
Foundation of China (Nos. 61440057, 61272087, 61363019 and October 10, 2010. http://www.nytimes.com/2010/10/10/science/10google.
61073008), Beijing Natural Science Foundation (Nos. 4082016 html?pagewanted=1.
and 4122039), the Sci-Tech Interdisciplinary Innovation and [32] Google Goggles. http://en.wikipedia.org/wiki/Google_Goggles.
Cooperation Team Program of the Chinese Academy of Sciences, [33] R. Arumugam, V. Enti, L. Bingbing, et al. DAvinCi: A cloud computing
framework for Service Robots, in: Proceedings of 2010 IEEE International
the Specialized Research Fund for State Key Laboratories. Conference on Robotics and Automation, Anchorage, AK, USA, May, pp.
30843089.
References [34] E. Guizzo, Robots with their heads in the clouds, IEEE Spectr. (2011).
[35] W. Hao, T. Gao, I. Yen, Y. Chen, R. Paul, An infrastructure for web services
[1] Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, migration for real-time applications, in: 2nd IEEE International Symposium on
Andy Konwinski, Gunho Lee, et al., A view of cloud computing, Commun. ACM Service-Oriented System Engineering, Shanghai, 2006, pp. 4148.
53 (4) (2010) 5058. [36] Y. Chen, Service-oriented computing in recomposable embedded systems, in:
[2] Thomas Erl, Service-oriented Architecture: Concepts, Technology, and Design, Joint IARP/IEEERAS/EURON/IFIP 10.4 Workshop on Dependability in Robotics
Pearson Education India, 2005. and Autonomous Systems, Tucson, AZ, February 1519, 2006.
[3] J. Kuffner, Cloud enabled humanoid robots, Humanoids 2010 Workshop
Talks, http://i61www.ira.uka.de/users/asfour/Workshop-Humanoids2010/ [37] Yinong Chen, Xiaoying Bai, On robotics applications in service-oriented
talks/James-Kuffner-Humanoids2010.pdfWorkshop-Humanoids2010/talks/ architecture, in: The 28th International Conference on Distributed Computing
James-Kuffner-Humanoids2010.pdf. Systems Workshops.
[4] Google Inc. Google apps engine. http://www.google.com/apps. [38] Yinong Chen, Zhihui Du, Marcos Garca-Acosta, Robot as a service in cloud
[5] K. Ostrowski, K. Birman, D. Dolev, J. Ahnn, Programming with live distributed computing, in: 2010 Fifth IEEE International Symposium on Service Oriented
objects, in: J. Vitek (Ed.), Proceedings of the 22nd European Conference on System Engineering, SOSE, IEEE, 2010, pp. 151158.
Object-Oriented Programming, Paphos, Cyprus, July 0711, 2008, in: Lecture [39] MRDS. http://en.wikipedia.org/wiki/Microsoft_Robotics_Developer_Studio.
Notes in Computer Science, vol. 5142, Springer-Verlag, Berlin, Heidelberg,
[40] B. Simion, C. Leordeanu, F. Pop, V. Cristea, A hybrid algorithm for scheduling
2008, pp. 463489. http://portal.acm.org/citation.cfm?id=1428508.1428536.
workflow applications in grid environments, in: Proceedings of International
[6] Rob Armstrong, Dennis Gannon, Al Geist, Katarzyna Keahey, Scott Kohn,
Conferences CoopIS, DOA, ODBASE, GADA, and IS, Portugal, 2007, pp.
Lois McInnes, Steve Parker, Brent Smolinski, Toward a common component
13311348, http://dx.doi.org/10.1007/978-3-540-76843-2_15.
architecture for high-performance scientific computing, in: The Eighth
International Symposium on High Performance Distributed Computing, 1999, [41] M. Vasilea, F. Popa, R. Tutueanua, V. Cristeaa, J. Koodziejb, Resource-aware
Proceedings, IEEE, 1999, pp. 115124. hybrid scheduling algorithm in heterogeneous distributed computing, Future
[7] Vlad M. Trifa, Christopher M. Cianci, Dominique Guinard, Dynamic control of Gener. Comput. Syst. 51 (2015) 6171. http://dx.doi.org/10.1016/j.future.
a robotic swarm using a serviced-oriented architecture, in: The Proceedings of 2014.11.019.
the 13th International Symposium on Artificial Life and Robotics, AROB 2008, [42] L. He, D. Zou, Z. Zhang, C. Chen, H. Jin, S.A. Jarvis, Developing resource
Beppu, Japan, January 31February 2, 2008. consolidation frameworks for moldable virtual machines in clouds, Future
[8] Yinong Chen, S. Abhyankar, L. Xu, W.T. Tsai, Marcos Garcia-Acosta: Developing Gener. Comput. Syst. 32 (2014) 6981.
a security robot in service-oriented architecture, in: The Proceedings of 12th
IEEE International Workshop on Future Trends of Distributed Computing
Systems, FTDCS08, Kunming, China. October, 2008, pp. 106111.
[9] Amazon Web Services. Amazon web services homepage. http://aws.amazon. Zhihui Du received the B.E. degree from the Computer
com. Department, Tianjin University, in 1992, and the M.S.
[10] K. Lai, L. Rasmusson, E. Adar, S. Sorkin, L. Zhang, B.A. Huberman, Tycoon: an and Ph.D. degrees in computer science from Peking
implementation of a distributed market-based resource allocation system, University, in 1995 and 1998, respectively. From 1998 to
Multiagent Grid Syst. 1 (3) (2005) 169182. 2000, he worked at Tsinghua University as a postdoctoral
[11] Hewlett-Packard, HP Integrated Lights-Out 2 User Guide, Technical Report, HP, researcher. Since 2001, he has been an associate professor
2009. at the Department of Computer Science and Technology,
[12] Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung, The Google file system,
Tsinghua University. His research interests include high
in: ACM Symposium on Operating Systems Principles, 2003.
performance computing and grid computing. He is a
[13] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford,
member of the IEEE.
S. Shenker, J. Turner, Openflow: Enabling innovation in college networks, 2008.
[14] Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A.
Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber,
Bigtable: A distributed storage system for structured data, in: Symposium on Ligang He is an associate professor of University of War-
Operating System Design and Implementation, 2006. wick. His research interests include Cloud Computing, Grid
[15] PaaS. http://en.wikipedia.org/wiki/Platform_as_a_service. Computing, Cluster Computing, Parallel and Distributed
[16] S. Microsystems, Project caroline. http://research.sun.com/projects/caroline. Processing, High Performance Computing, Performance
[17] Microsoft, Azure Services Platform. http://www.microsoft.com/azure. Modeling and Evaluation, Real-time Processing. He has
[18] M.H. Weier, L. Smith, Businesses get serious about software as a service, served for many conferences and journals. He has pub-
Informat. Week (2007) 4648. lished many top level journal and conference papers.
[19] Google Inc. Google docs. http://docs.google.com.
[20] P.A. Laplante, Jia Zhang, J. Voas, Whats in a name? Distinguishing between
SaaS and SOA, IT Prof. 10 (3) (2008) 4650.
[21] Henry E. Schaffer, X as a service, cloud computing, and the need for good
judgment, IT Prof. 11 (5) (2009) 45.
[22] Amazon Elastic Compute Cloud (EC2). http://www.amazon.com/ec2/.
[23] Google App Engine. http://appengine.google.com. Yinong Chen is a Senior Lecturer of Arizona State
[24] Microsoft Azure. http://www.microsoft.com/windowsazure/. University. He got his Ph.D. degree from University of
[25] Sun network.com (Sun Grid). http://www.network.com. Karlsruhe/KIT, Germany. He has published more than 100
[26] Xingchen Chu, Krishna Nadiminti, Chao Jin, Srikumar Venugopal, Rajkumar conferences and journal papers. He is the Area Editor of the
Buyya, Aneka: Next-generation enterprise grid platform for e-science and Elsevier Journal: Simulation Modeling Practice and Theory,
e-business applications, in: Proceedings of the 3th IEEE International since Jan 2006 and Associate Editor of the International
Conference on e-Science and Grid Computing, e-Science 2007, Bangalore, Journal of Simulation and Process Modelling (IJSPM), since
India, December, 2007. Jan. 2004.
[27] J. Dean, S. Ghemawat, MapReduce: Simplified data processing on large
clusters, in: Symposium on Operating System Design and Implementation,
2004.

You might also like