For solving complex problems, we advocate for constructing “social
computers” which combine software and human services. However, to date, hu-
man capabilities cannot be easily programmed into applications in a similar way
like software capabilities. Existing approaches exploiting human capabilities via
crowds do not support well on-demand, proactive, team-based human computa-
tion. In this paper, we explore a new way to virtualize, provision and to program
human capabilities using cloud computing concepts and service delivery mod-
els. We propose novel methods for modeling clouds of human-based services and
combine human-based services with software-based services to establish clouds
of hybrid services. In our model, we present common APIs, similar to APIs for
software services, to access individual and team-based compute units in clouds of
human-based services. Based on that, we propose frameworks and programming
primitives for hybrid services. We illustrate our concepts via some examples of
using our cloud APIs and existing cloud APIs for software.
1. Programming Hybrid Services in the Cloud
Hong-Linh Truong*, Schahram Dustdar*, Kamal Bhattacharya§
*Distributed Systems Group,
Vienna University of Technology
§ IBM Research Africa
truong@dsg.tuwien.ac.at
http://www.infosys.tuwien.ac.at/research/viecom
ICSOC 2012, Shanghai, China, 1
13 Nov 2012
2. Outline
Motivation
Our approach
Main contributions
Model for clouds of human-based services and hybrid
serices provisioning
Framework for solving complex problems using
clouds of hybrid services
Programming primitives for hybrid services
Conclusions and future work
ICSOC 2012, Shanghai, China, 2
13 Nov 2012
3. Motivation (1)
Humans and software for
solving complex problems
We need to actively finding and binding human
capabilities into the application!
ICSOC 2012, Shanghai, China, 3
13 Nov 2012
4. Motivation (2)
But how to program human-based services and
software-based services together?
ICSOC 2012, Shanghai, China, 4
13 Nov 2012
5. Motivation (3)
Existing technologies are not adequate
ICSOC 2012, Shanghai, China, 5
13 Nov 2012
6. Our approach -- incorporate humans
into a programming paradigm
• Abstracting human compute units as program elements
Programming • Extending programming languages to support human
languages compute units
• Data/control flows via extensible APIs
• Shared memory (e.g., human –software – human),
Multiple message passing (human-to-human), artifact-centric,
programming etc., via APIs working atop the compute unit abstraction
models layer
• Computing capability /profile management: human
computing power, reputation and incentive models
Execution • Monitoring and enforcing incentives/rewards, quality of
environment results, availability
• Communication between human-middleware, among
Individual Compute Units (ICU)/Social Compute Units
(SCU) for exchanging artifacts and comprehensing l tasks
ICSOC 2012, Shanghai, China, 6
13 Nov 2012
7. Our approach -- incorporate humans
into a programming paradigm
program human actions
and dependencies
Program
elements
program incentive condition
and rewarding action
program result evaluation
method
Program languages and programming models
Provisioning/Negotiation/Execution API
ICU ICU SCU ICU SCU
Abstraction of Human-based Compute Units
Communication
Capability/Profile Software Human-to-middleware
Monitoring
Management Compute interfaces:
Service-based Middleware Units •visualization of collective tasks
•embedding of common forms
•mobile app
Volunteers Professionals
Individual Team 7
ICSOC 2012, Shanghai, China,
13 Nov 2012
8. Clouds of hybrid services
A cloud of hybrid services includes software-
based services and human-based services
that can be provisioned, deployed and utilized
on-demand based on different pricing models
ICSOC 2012, Shanghai, China, 8
13 Nov 2012
9. HBS Communication Interface
Based on well known technologies for
integrating human requests/responses into SBS
Emails, web interfaces, Web services, etc.
Some special characteristics
The same protocol can be used for multiple layers
(middleware, application, OS) -- unlike in SBS
Typically asyschronous communication and unknown
upper-bound delay
Can support message passing and shared
memory models
hbsi hbsj or hbsi sbs hbsj
ICSOC 2012, Shanghai, China, 9
13 Nov 2012
10. Human Power Unit (HPU)
Humans are determined via skills/skill levels
A particular HBS cloud can define its own sets of
skills (CS) and skill levels (SK)
Similar to Amazon defines its own EC unit
Different ways to make sure skill and skill levels
declared in a cloud consistent (e.g., via testing and
monitoring).
HPU Definition: HPU is a value describing the computing
power of an HBS measured in an abstract unit. A cloud of
HBS has a pre-defined basic power unit, hpuθ,
corresponding to the baseline skill bsθ of the cloud.”
ICSOC 2012, Shanghai, China, 10
13 Nov 2012
11. Human Power Unit (HPU) – our
starting point
HPU for a particular (skill,
skill level)
HPU for a set of (skill, skill
level), no weighted factors
Decomposition/compositi
on of HPU for a shared
HBS
Given an HBS, its theoretical HPU can be larger
or smaller than its real HPU – unlike SBS
ICSOC 2012, Shanghai, China, 11
13 Nov 2012
12. Human Power Unit (HPU) – our
starting point (2)
HPU can be defined for different „archtypes“
An „archtype“ characterizes the problem domain (e.g.,
bones simulation) that the ICU/SCU can solve (the type of
tasks)
ICSOC 2012, Shanghai, China, 12
13 Nov 2012
13. HBS Instances Provisioning
Types of • Individual Compute Unit (ICU)
services • Social Compute Unit (SCU
• iICU(CS, HPU, archtype, price,
utilization,location, APIs)
Instances • iSCU(CS,HPU, archtype, price,
Descriptions utilization,connectedness, location,
APIs)
• Other (traditional) NFPs
• utilization
Pricing • offering communication APIs
factors • connectedness
ICSOC 2012, Shanghai, China, 13
13 Nov 2012
14. Cloud APIs for Provisioning Hybrid
Services
APIs hide low-level platforms and utilize low level HBS
communication interfaces
APIs for HBS information and APIs for HBS execution and
management communication
• listSkills();listSkillLevels();
• listICU();listSCU() • runRequestOnHBS ()
• negotiateHBS() • receiveResultFromHBS()
• startHBS() • sendMessageToHBS()
• suspendHBS () • receiveMessageFromHBS()
• resumeHBS ()
• stopHBS()
• reduceHBS()
• expandHBS() China,
ICSOC 2012, Shanghai, 14
13 Nov 2012
16. Framework for utilizing hybrid
services
IT Management
Smart City Management
ICSOC 2012, Shanghai, China, 16
13 Nov 2012
17. Modeling HPU-aware task
dependency graphs
Link management skills and compliance constraints to tasks
required HBS
Can be specified in TOSCA!
Modeled in dependency graphs
17
ICSOC 2012, Shanghai, China,
13 Nov 2012
18. Programming a combination of
HBS and SBS
e.g., preparing/managing inputs/outputs for HBS using SBS
ICSOC 2012, Shanghai, China, 18
13 Nov 2012
19. Forming iSCUs
Done by consumers or cloud providers
Business As
Usual
Corrective
Action
HBS
Constraints
SCU Formation
Algorithms
ICSOC 2012, Shanghai, China, 19
13 Nov 2012
20. Configuring iSCU
Establish „connectedness“ based on compliance
constraints and network topology
Addional cost might occur!
Program SBS and HBS for the iSCU to have a
complete working environment.
Different connectedness
E.g., ring-based, star-based, and master-slave
topologies
ICSOC 2012, Shanghai, China, 20
13 Nov 2012
21. Selecting HBS: Some algorithms
Several algorithms can be built based on existing team
formation algorithms which do not consider dependency
graphs
Different weighted factors can be considered
ICSOC 2012, Shanghai, China, 21
13 Nov 2012
22. Forming iSCU by minimizing cost
and considering no direction
ICSOC 2012, Shanghai, China, 22
13 Nov 2012
23. Example of star-based iSCU using
Dropbox as a communication hub
ICSOC 2012, Shanghai, China, 23
13 Nov 2012
24. Change model for task graph’s
Human Power Unit
ICSOC 2012, Shanghai, China, 24
13 Nov 2012
25. Conclusions and Future Work (1)
Novel models and APIs are needed for integrating
humans into program paradigms
We introduce
Methods for modeling clouds of human-based services
Techniques for combining human-based services with
software-based services
Future works
Programming elements/constructs/patterns for hybrid
services
Hybrid service life-cycle management
ICSOC 2012, Shanghai, China, 25
13 Nov 2012
26. Conclusions and Future Work (2)
Mapping from a coordination language to hybrid service
APIs
Statelet: a declarative coordination language for collaboration
processes
Vitaliy Liptchinsky, Roman Khazankin, Hong Linh Truong, Schahram
Dustdar: Statelets: Coordination of Social Collaboration Processes.
COORDINATION 2012
Provisioning/Negotiation/Execution API
ICU ICU SCU ICU SCU
26
Abstraction of Human-based Compute Units
ICSOC 2012, Shanghai, China,
13 Nov 2012
27. Thanks for
your attention
Hong-Linh Truong
Distributed Systems Group
Vienna University of Technology
truong@dsg.tuwien.ac.at
http://www.infosys.tuwien.ac.at/staff/truong
ICSOC 2012, Shanghai, China, 27
13 Nov 2012