is forecast to reach
$
5.7 billion by 2015, driven by
expanding broadband capabilities, decreasing prices,
improving performance of networks, and the devel-
opment of advanced, highly interactive Web 2.0 ap-
plications” (www.strategyr.com, 2016) and “... the
top 15 Web 2.0 vendors will spend
$
50 billion in
2015 on servers, networks, and other infrastruc-
ture, up from
$
38 billion in 2014 and
$
30 billion in
2013” (www.lightwaveonline.com, 2016).
2.1 Context of Research
The architecture upon which a social enterprise op-
erates is depicted in Fig. 1 showing this enter-
prise’s business and social worlds connecting together
through a meet-in-the-middle platform. This platform
hosts Social Machines (SMs) that act as proxies over
Web 2.0 applications (A, 2015c; Bur´egio et al., 2013).
Fig. 1, also, shows interactions between stakeholders
and the business world and between stakeholders and
the social world.
The business world hosts the enterprise’s busi-
ness processes that consist of tasks connected to each
other through dependencies (e.g., prerequisite and co-
prerequisite). The execution of processes might lead
to interacting with the social world so that for in-
stance, some social actions are triggered while oth-
ers are re-executed or canceled. SMs allow these
interactions to take place. The social world hosts
Web 2.0 applications that the enterprise subscribes to.
Some Web 2.0 applications are internal to the enter-
prise (i.e., locally managed) while others are external
(e.g., Facebook) calling for specific agreements (kind
of service level agreement) between the enterprise and
Web 2.0 applications’ providers. Last but not least,
the meet-in-the-middle platform supports interactions
between the business and social worlds. In this plat-
form, SMs act as proxies over Web 2.0 applications
so that tasks in the business processes trigger social
actions and track their progress at run-time.
2.2 Google Hangouts in Brief
Google Hangouts (hangouts.google.com/), or
commonly called Hangouts
TM
, is a popular com-
munication platform that allows both individuals
and groups to chat as well as make video calls
with up to 25 users at a time. It combines several
Google’s previous services such as Google Talk,
Google+ Messenger, and Google+ Hangouts. Google
promotes Hangouts as the “future” telephony prod-
uct so it has been enhanced with several voice
capabilities of Google Voice. Hangouts comes
along with Google+ Hangouts API (develop-
ers.google.com/+/hangouts) that allows enterprises
and regular users to create collaborative applica-
tions on top of Google Hangouts. This provides a
means for building new features and customizing
Google Hangouts’s behavior. Applications built
for Hangouts are just like regular Web applica-
tions, developed using HTML and JavaScript, but
enriched with Hangouts real-time functionality of
Google+ Hangouts API.
2.3 Categories of Social Actions
Social actions aim at supporting users reach out to
(unknown) peers (e.g., request friendship) and/or en-
gage (unknown)peers in a collaborativeproduction of
content (e.g., co-author a technical report) (A, 2015a).
In Table 1, social actions fall into one of the following
categories: communication, sharing, and enrichment.
As per our previous work (A, 2015a), we use three
properties to define a social action:
•
Stakeholders
property refers to those who par-
ticipate in a social action in terms of who initiates
it and who reacts to it. This property is manda-
tory for the social actions (e.g., chat) that require
a ”continuous” presence of all stakeholders during
the execution of these actions.
•
Content
property refers to the object that is made
available for and/or by a social action’s stakehold-
ers. This could be text, image, audio, etc.
•
Tool
property refers to a Web 2.0 application
(e.g., Facebook and Google Talk) that makes a so-
cial action available to the stakeholder(s) for exe-
cution.
2.4 Restrictions Over Social Actions
To define restrictions, we used Object-Constraint
Language (OCL) (Object Management Group, 2012)
as per the following examples:
1. A participant’s identity should be known
(anonymity not allowed) to the employee at
start-up time.
context: Chat
inv R_1: self.stakeholders -->
forAll (s:Stakeholder | s.Name <> null)
where
self
.stakeholders contains the set of
Stakeholder instances representing the partici-
pants who take part in a chat session. | separates
the object from the condition.
2. No more than n characters per chat message