Professional Documents
Culture Documents
3 ”< u r l > 10 // S e r v i c e Re q u e st R e j e c t on T w i t t e r
4 11 RJ @<u s e r>#s e r v i c e :<name>
5 // D i r e c t S e r v i c e Re q u e st on T w i t t e r
6 SR @<u s e r>#s e r v i c e :<name>”.”< o p e r a t i o n >”
7 ”< h a s h t a g s >” ”< u r l > Listing 5: Syntax elements related to execution.
8
9 // D e l e g a t i o n o f a S e r v i c e Re q u e st on T w i t t e r
10 DS @<u s e r>#s e r v i c e :<name>”.”< o p e r a t i o n >” • Service Response: After the service has been com-
11 ”< h a s h t a g s >” ”< u r l > pleted, the service provider sends a message containing
12
13 // S p r e a d i n g a S e r v i c e Re q u e st on T w i t t e r
the service name and a link to the result of the service
14 RT #s e r v i c e :<name>”.”< o p e r a t i o n >” invocation.
15 ”< h a s h t a g s >” ”< u r l >
• Status Request: During the execution of a service, the
Listing 3: Syntax elements related to discovery. service requestor can check the current state of the
service execution.
• Publication of a Service Request: With Twitter as
• Status Reply: State requests are replied by the user.
communication platform, service discovery follows a
push approach where the user Tweets a particular ser- • Reject Service Request: It is also possible to reject a
vice request. The request, i.e., the Tweet contains service request from another user.
meta information about the service, the operation that
is required, hashtags providing meta information about Bootstrapping, Executing and Monitoring. The
the service (data) and a link to the service input data. process of creating or bootstrapping a Tweetflow consists
of tweeting a set of service requests to find adequate ser-
• Direct Service Request: The service request can also be
vice providers. As briefly discussed in the use case exam-
directed to Twitter followers. In this case, the Tweet
ple, the porting of the iPhone applications requires a set of
addresses the user directly.
services, respectively service providers. These include, for
• Delegation of Service Request: If Twitter followers are instance, Android developers, translation services or adver-
not able to handle the service request, but happen to tisement services. After the discovery phase is completed
know someone who is, the service request can be del- (all service requests are bound) the actual execution phase
egated to another follower. of the Tweetflow starts.
The originator, i.e. the coordinator, of the Tweetflow
• Retweet Service Request: Also, a user can retweet the
posts a Tweet that contains a concatenation of actions which
service request to his followers and spread the service
need to be executed by different users. This Tweet marks
request to other users that are no followers of the ser-
the beginning of the execution of a Tweetflow. A Tweetflow
vice requestor. The retweeting or delegating of ser-
consists of a concatenation of service invocations, resulting
vice requests leads to a dissemination of requests in
in a service pipeline. In the pipeline, each service invoca-
the Twitter network. As in the case of service an-
tions passes the result to the next service in the pipeline.
nouncements, we implicitly use Twitter’s social struc-
Listing 6 shows the syntax of Tweetflow Tweets.
tures during the discovery process.
1 TF #<name> @<u s e r>#s e r v i c e :<name>” ”< u r l > ”| ”
Binding and Addressing Services. If a Twitter fol- 2 @<u s e r>#s e r v i c e :<name>” ”< u r l >
lower is able to provide the required service, the binding of
a service request to the service instance happens if the fol- Listing 6: Service pipes on Twitter.
lower directly answers to a service request Tweet. As the
Tweet appears in the Tweetflow, the binding is complete It is worth noting that the control over the execution
and the service is being invoked. The actual addressing of is distributed: upon completion of a service in the service
the services uses the built-in Twitter addressing mechanism pipeline, the service provider is directly responsible for tweet-
which sends Tweets directly to followers. ing the invocation of the next service by posting a service
request Tweet. Given the ad hoc character of Tweetflows, user’s experience for a particular request. A user’s expe-
it’s possible to make modifications to the Tweetflow during rience is automatically calculated through interaction min-
its execution. For example, a service request can be dele- ing techniques. (iii) Interact: the framework supports au-
gated to another Twitter follower upon receiving a service tomatic user interface generation using standardized XML
request, allowing for service replacements on the fly. This forms that are generated according to exchanged complex
open, distributed control approach allows to exploit crowd- data types in SOAP messages.
sourcing behavior in Tweetflows:
1 <?xml version=" 1 . 0 " e n c o d i n g=" utf - 8 " ?>
Since each service interaction is represented by a Tweet, 2 < d e f i n i t i o n s name=" T r a n s l a t i o n S e r v i c e " . . . >
we imply implicit monitoring of the service execution of the 3 <t y p e s>
service pipeline. However, in order to track the execution of 4 <schema t a r g e t N a m e sp a c e=" h t t p : / / . . . ">
5 <si m p l e Ty p e name=" L a n g u a g e ">
Tweetflows, we require that each Tweetflow Tweet contains 6 < r e s t r i c t i o n b a s e=" x s d : s t r i n g ">
a hashtag with name of the Tweetflow (see Listing 7) to be 7 <e n u m e r a t i o n v a l u e=" J a p a n e s e " />
able to filter for Tweets. 8 <e n u m e r a t i o n v a l u e=" E n g l i s h " />
9 </ r e s t r i c t i o n>
1 RE #<name>” ”@<u s e r>#s e r v i c e :<name>” ”< u r l > 10 </ si m p l e Ty p e>
2 ST #<name>” ”@<u s e r>#s e r v i c e :<name> 11 <complexType name=" G e n e r i c R e s o u r c e ">
3 SE #<name>” ”@<u s e r>#s e r v i c e :<name>” ”< s t a t e > 12 <s e q u e n c e>
4 RJ #<name>” ”@<u s e r>#s e r v i c e :<name> 13 <e l e m e n t name=" L o c a t i o n " t y p e=" a n y U R I " />
14 <e l e m e n t name=" E x p i r e s " t y p e=" d a t e T i m e " />
15 <e l e m e n t name=" L a n g " t y p e=" t n s : L a n g u a g e " />
Listing 7: Tweetflow Tweets. 16 <s e q u e n c e>
17 <complexType name=" T r a n s l a t i o n R e q u e s t ">
18 <s e q u e n c e>
4.2 Mapping between Tweetflows and SOA 19 <e l e m e n t name=" R e q u e s t "
20 t y p e=" t n s : G e n e r i c R e s o u r c e " />
Using Tweetflow principles, we are able to fully support 21 <e l e m e n t name=" T a g s " t y p e=" s t r i n g " />
the SOA-lifecycle consisting of service publication, service 22 </ s e q u e n c e>
discovery, and service binding (interactions). However, in 23 </ complexType>
24 <e l e m e n t name=" T r a n s l a t i o n R e q u e s t "
human-centric systems, it becomes important to support 25 t y p e=" t n s : T r a n s l a t i o n R e q u e s t " />
additional coordination mechanisms (i.e., routing through 26 <e l e m e n t name=" A c k S u p p o r t R e q u e s t " t y p e=" s t r i n g " />
pipes). Similar (simple) mechanisms are already found in 27 <e l e m e n t name=" G e t S t a t u s " t y p e=" t n s : G e t S t a t u s " />
28 < !−− f u r t h e r r e q u e s t s / r e s p o n s e s o m i t t e d−−>
traditional message-oriented systems such as email. Our 29 </ schema>
approach brings the benefit of seamless communication and 30 </ t y p e s>
coordination in a service-oriented manner. The analogy of 31 <m e ssa g e name=" G e t T r a n s l a t i o n ">
32 <p a r t name=" P a r a m e t e r s "
these primitives to SOA concepts is summarized in Table 2. 33 e l e m e n t=" t n s : T r a n s l a t i o n R e q u e s t " />
34 </ m e ssa g e>
Tweetflow Primitives SOA Concept 35 <portType name=" H P S P o r t ">
SR, RT, DS, RJ Service Discovery 36 <o p e r a t i o n name=" G e t T r a n s l a t i o n ">
37 < !−− in −/o u t p u t . . . −−>
CS Service Binding 38 </ o p e r a t i o n>
RE Service Response 39 </ portType>
TF Message Routing 40 < s e r v i c e name=" T r a n s l a t i o n S e r v i c e ">
41 <p o r t b i n d i n g=" t n s : H P S P o r t " . . . />
ST, SE Service Monitoring 42 </ s e r v i c e>
SP Service Publication 43 <b i n d i n g name=" H P S S o a p B i n d i n g " . . . > . . . . </ b i n d i n g>
@ Service Addressing 44 </ d e f i n i t i o n s>
Table 2: Mapping SOA principles to Twitter. Listing 8: WSDL specification of HPS-based trans-
lation service (simplified example).
In the following, we show a simplified example of a human-
Listing 8 shows a simplified example of a HPS-based docu-
provided document translation service as defined by Listing
ment translation service that is provided by one or more hu-
8. Our approach utilizes the very same technologies used to
man actor(s). The WSDL description defines complex data
implement software services such as WSDL and SOAP to
types such as a GenericResource that wraps document-
support interactions with human-provided services.
related information (i.e., the location of the document, expi-
First, let us briefly outline the features of the human-
ration time, and language attributes). The TranslationRe-
provided services (HPS) framework [20, 23] that offers the
quest contains request-related information and additional
building blocks to support flexible human interactions in
tags applied to a request. Every request is acknowledged
SOA. HPS [20] enhances the traditional SOA-triangle by en-
through AckSupportRequest by automatically generating a
abling people to provide services with the very same technol-
unique identifier. Further operations are supported to ob-
ogy as used by implementations of software-based services.
tain the status of a request (e.g., GetStatus). Asynchronous
Various operations for different collaborative activities in-
notifications can be generated by passing the endpoint of the
dicate a provider’s ability (and willingness) to participate
requester to the service (not shown in this example). The
in collaborations. Three steps are performed when using
invocation of the translation service is shown in Listing 9.
HPS: (i) Publish: the user can create an HPS, specify its
operations, and publish the service on the Web by using a 1 TF @ i k a n g a i #s e r v i c e : t r a n s l a t i o n . g e t T r a n s l a t i o n
registry. (ii) Search: the requester can perform a keyword- 2 #t r a n s l a t i o n #e n g l i s h #j a p a n e s e
based search to find HPSs. Ranking is performed to find 3 h t t p : / / b i t . l y /9qFRGL
the most relevant HPS based on, for example, the exper-
tise of the user providing the service, or the relevance of a Listing 9: Requesting the SOAP translation service.
5. DISCUSSION The core follower structure of the project team was a com-
The use of Twitter for the collaboration between team plete graph because the project team was known a priori and
members and services has several implications. First and followed each other on Twitter. Consequently, all project-
foremost, using Twitter for communication and coordina- related messages were observed by each team member. How-
tion means that messages are immediately visible to all fol- ever, as discussed before, service requests that couldn’t be
lowers. Input data of services is also visible, since it is being served were forwarded to other followers of the team mem-
linked to in the Tweets. If sensitive data needs to be passed, bers, creating a permeable information boundary. In an en-
then direct Twitter messages can be sent or the Tweets can terprise setting, such structures can be mapped onto de-
be marked as private to prevent non-followers from reading velopment teams which work on different areas of a prod-
them. Alternatively, users can send direct messages to other uct and which members are highly connected. However,
users without public Tweets. By using Twitter for service as shown in the working example, some expertise might be
related messages (e.g., discovery, publication), we implicitly missing and an open messaging infrastructure can be used
make use of information cascades if the corresponding mes- to extend the expertise of a group. After the kickoff meet-
sage is retweeted to other followers. As has been discussed in ing, a Tweetflow for coordinating the activities for the cre-
the literature, retweets have the potential to reach large por- ation of the project infrastructure was initiated. The origi-
tions of the Twitter network. However, the success rate of nator of the Tweet (Twitter user ikangai), bootstrapped the
information cascades for service requests in an open crowd- Tweetflow by posting a number of service requests. The
sourcing setting still needs to be asserted in greater detail. service requests were answered by the team members who
As an experiment ikangai tweeted a request for a Japanese- are followers and claimed the services. The originator, being
English translation for the ikangai blog and received an an- at the same time the coordinator of the Tweetflow, bound
swer from a Twitter user ikangai did not know before. A the services to the users and started the execution of the
similar event was observed with a request for an English- Tweetflow by posting a new round of Tweets. As shown in
Korean translation. In this case, a direct follower of ikangai the example, there were dependencies between actions, like
answered stating that he knew a student able to provide this the creation of a google docs account and the creation of a
kind of service. This suggests that information cascades in google document which had to be taken into consideration.
Twitter can be used for service discovery purposes. Listing Furthermore, it’s worth noticing that the polling service is
10 shows parts of the Tweetflow that were used to set up bound by user ikangai to an external Restful doodle poll
the communication and development infrastructure which service and that the Tweet TF #ase_2010_11 ikangai ser-
was explained in our working scenario. vice:poll.create #meeting http://bit.ly/bsdbGY invokes
a Restful service, providing seamless integration between
1 SR #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e #g o o g l e d o c s software-based and human services.
2 #a s e 2 0 1 0 1 1
3 SR #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e #p i v o t a l t r a c k e r
4 #a s e 2 0 1 0 1 1 6. RELATED WORK
5 SR #s e r v i c e : document . c r e a t e #k i c k o f f
6 #a s e 2 0 1 0 1 1 In service-oriented environments, standards have been es-
7 SR #s e r v i c e : name . c r e a t e #p r o j e c t n a m e tablished to model human-based process activities and tasks
8 #a s e 2 0 1 0 1 1 (WS-HumanTask [8]). However, these standards demand for
9 SR #s e r v i c e : p o l l . c r e a t e #m e e t i n g
10 #a s e 2 0 1 0 1 1 the precise definition of interaction models between humans
11 ... and services. In our approach, we combine SOA concepts
12 SC @ i k a n g a i #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e and social principles. We consider open service-oriented en-
13 #g o o g l e d o c s #a s e 2 0 1 0 1 1
14 SC @ i k a n g a i #s e r v i c e : name . c r e a t e vironments wherein services can be added at any point in
15 #p r o j e c t n a m e #a s e 2 0 1 0 1 1 time. Following the open world assumption, humans ac-
16 SC @ r e d a l i 2 5 #s e r v i c e : document . c r e a t e tively shape the availability of services. The concept of
17 #k i c k o f f #a s e 2 0 1 0 1 1
18 SC @ s t e f a n a s s e g #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e Human-Provided Services (HPS) [20] supports flexible service-
19 #p i v o t a l t r a c k e r #a s e 2 0 1 0 1 oriented collaborations across multiple organizations and do-
20 SC @ i k a n g a i #s e r v i c e : p o l l . c r e a t e mains. Similarly, emergent collectives as defined by [19] are
21 #m e e t i n g h t t p : / / b i t . l y /bsdbGY
22 ...
networks of interlinked, valued nodes (services).
23 TF #a s e 2 0 1 0 1 1 @ s t e f a n a s s e g Open service-oriented systems are specifically relevant for
24 #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e #p i v o t a l t r a c k e r future crowdsourcing applications. For example, a hybrid
25 TF #a s e 2 0 1 0 1 1 @ i k a n g a i
26 #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e #g o o g l e d o c s |
human-computer document translation system has been dis-
27 @ r e d a l i 2 5 #s e r v i c e : document . c r e a t e #k i c k o f f cussed by [21], however not focusing on the realization as a
28 TF #a s e 2 0 1 0 1 1 @ i k a n g a i #s e r v i c e : name . c r e a t e service-based system. While existing platforms (e.g., MTurk
29 #p r o j e c t n a m e [2]) only support simple interaction models (tasks are as-
30 TF #a s e 2 0 1 0 1 1 @ i k a n g a i #s e r v i c e : p o l l . c r e a t e
31 #m e e t i n g h t t p : / / b i t . l y /bsdbGY signed to individuals), social network principles support more
32 ... advanced techniques such as formation and adaptive coor-
33 RE @ i k a n g a i #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e dination. Social game-based human computation has been
34 #g o o g l e d o c s #a s e 2 0 1 0 1 1 h t t p : / / b i t . l y /bfWcyV
35 RE @ i k a n g a i #s e r v i c e : document . c r e a t e introduce [25] in the context of image labeling that is per-
36 #k i c k o f f #a s e 2 0 1 0 1 1 h t t p : / / b i t . l y /bfWcyV formed by humans. From the technical point of view, TurKit
37 RE @ i k a n g a i #s e r v i c e : i n f r a s t r u c t u r e . c r e a t e [16] is a crowd computing framework based on MTurk.
38 #p i v o t a l t r a c k e r #a s e 2 0 1 0 1 1 h t t p : / / b i t . l y /17VtC
39 RE @ i k a n g a i #s e r v i c e : name . c r e a t e On an architectural level, we follow the blackboard archi-
40 #p r o j e c t n a m e #a s e 2 0 1 0 1 1 h t t p : / / b i t . l y / ajp8vF tectural pattern [9]. In our architecture, the Tweet Bus plays
41 ... the role of the blackboard which holds state information,
i.e., Tweets of the Tweetflows. Enterprise Service Bus Ar-
Listing 10: Tweetflow example. chitectures (ESB) [4] have a strong similarity to our Tweet
Bus architecture. Like in ESBs, our approach also uses a [6] T. Erl. SOA Principles of Service Design. Prentice
centralized communication channel to transport messages. Hall PTR, Upper Saddle River, NJ, USA, 2007.
Clients plug into this channel and listen to messages which [7] P. T. Eugster, P. A. Felber, R. Guerraoui, and A.-M.
are transported in a standard format. However, the pub- Kermarrec. The many faces of publish/subscribe.
lic visibility of Tweets, the 140 character limit for messages ACM Comput. Surv., 35(2):114–131, 2003.
and the ability to forward (retweet) messages arbitrarily to [8] M. Ford et al. Web Services Human Task
other users not listening to the communication bus, i.e., to (WS-HumanTask), Version 1.0., 2007.
push messages into a community of followers, are the main [9] D. Garlan and M. Shaw. An introduction to software
differences. architecture. Technical report, Pittsburgh, PA, USA,
1994.
7. SUMMARY AND OUTLOOK [10] J. Hannon, M. Bennett, and B. Smyth.
In this paper, we presented an approach for using Twit- Recommending twitter users to follow using content
ter as a communication and coordination medium for the and collaborative filtering approaches. In RecSys ’10,
execution of simple workflows. A novel application of our pages 199–206. ACM, 2010.
approach are collaborations in crowdsourcing environments [11] C. Honey and S. C. Herring. Beyond microblogging:
where people provide their skills and capabilities in a service- Conversation and collaboration via twitter. In HICSS
oriented manner. In contrast to existing crowdsourcing plat- ’09, pages 1–10. IEEE Computer Society, 2009.
forms, our approach enables the realization of collabora- [12] J. Howe. Crowdsourcing: Why the Power of the Crowd
tive crowds where individuals jointly work on activities and Is Driving the Future of Business. Crown Publishing
short-term projects. Group, New York, NY, USA, 2008.
We introduced Tweetflow primitives which are embedded [13] J. Huang, K. M. Thornton, and E. N. Efthimiadis.
in Twitter communications to control collaborations and to Conversational tagging in twitter. In HT ’10, pages
interact with human- and software-based services. By us- 173–178. ACM, 2010.
ing Twitter, we implicitly provided a platform-agnostic com- [14] B. Krishnamurthy, P. Gill, and M. Arlitt. A few chirps
munication backend, which possesses enterprise service bus about twitter. In WOSP ’08, pages 19–24. ACM, 2008.
characteristics: each client is able to plug into the Tweet
[15] H. Kwak, C. Lee, H. Park, and S. Moon. What is
Bus and exchange messages, independent of any implemen-
Twitter, a social network or a news media? In WWW
tation. Moreover, a Tweet Bus provides the means to inte-
’10, pages 591–600. ACM, 2010.
grate human- and software-services seamlessly. And finally,
[16] G. Little, L. B. Chilton, M. Goldman, and R. C.
the Twitter follower structure offers the ability to exploit
Miller. Turkit: tools for iterative tasks on mechanical
social structures and to utilize them for service discovery
turk. In HCOMP ’09, pages 29–30. ACM, 2009.
purposes as well as to tap human resources of crowds: ser-
vice requests can be forwarded (i.e., retweeted) to followers [17] M. Motoyama, B. Meeder, K. Levchenko, G. M.
and are thus distributed to the crowd. In future works, we Voelker, and S. Savage. Measuring online service
plan to extend Tweetflow primitives to enable the creation of availability using twitter. In WOSN’10, pages 13–13.
more complex Tweetflows. For instance, we plan to integrate USENIX Association, 2010.
branching conditions, synchronization points and execution [18] D. G. Murray, E. Yoneki, J. Crowcroft, and S. Hand.
deadlines into Tweetflows to allow for more complex Tweet- The case for crowd computing. In MobiHeld ’10, pages
flows. Our prototype will be extended with a graphical tool 39–44. ACM, 2010.
that facilitates the creation of Tweetflows and we intend to [19] C. Petrie. Plenty of room outside the firm. IEEE
extend the support for SOAP-based Web services. We will Internet Computing, 14, 2010.
investigate Twitter user profiles to include them for service [20] D. Schall, H.-L. Truong, and S. Dustdar. Unifying
recommendations [10] or delegations. Human and Software Services in Web-Scale
Collaborations. Internet Comp., 12(3):62–68, 2008.
Acknowledgment [21] D. Shahaf and E. Horvitz. Generalized task markets
for human and machine computation. In AAAI, 2010.
This work received funding from the EU FP7 program under
[22] M. Treiber, H.-L. Truong, and S. Dustdar. Soaf
the agreements 215483 (SCube) and 215175 (COMPAS).
–design and implementation of a service-enriched
social network. Web Engineering, pages 379–393, 2009.
8. REFERENCES [23] TU-Wien. Human-Provided Services, 2010. online:
[1] G. Alonso, F. Casati, H. Kuno, and V. Machiraju.
http://www.infosys.tuwien.ac.at/prototyp/HPS/.
Web Services - Concepts, Architectures and
Applications. Springer, October 2003. [24] W. M. van der Aalst, L. Aldred, M. Dumas, and A. H.
ter Hofstede. Design and Implementation of the
[2] Amazon.com. Amazon mechanical turk, last access:
YAWL System. In Lecture Notes in Computer Science,
2010. available online: http://www.mturk.com.
volume 3084, pages 142–159, 2004.
[3] D. Brabham. Crowdsourcing as a model for problem
[25] L. von Ahn and L. Dabbish. Designing games with a
solving: An introduction and cases. Convergence,
purpose. Commun. ACM, 51(8):58–67, 2008.
14(1):75, 2008.
[26] J. Voss. Tagging, folksonomy & co - renaissance of
[4] D. Chappell. Enterprise Service Bus. O’Reilly Media,
manual indexing? CoRR, abs/cs/0701072, 2007.
Inc., 2004.
[27] M. Vukovic. Crowdsourcing for enterprises. In
[5] M. Efron. Hashtag retrieval in a microblogging
Congress on Services, pages 686–692, 2009.
environment. In SIGIR ’10, pages 787–788. ACM,
2010.