Professional Documents
Culture Documents
// D e l e g a t i o n o f a S e r v i c e R e q u e st on T w i t t e r
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-
”< h a s h t a g s >” ”< u r l > pleted, the service provider sends a message containing
// S p r e a d i n g a S e r v i c e R e q u e st on T w i t t e r
the service name and a link to the result of the service
RT #s e r v i c e :<name>”.”< o p e r a t i o n >” invocation.
”< 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.
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- @<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, for a particular request. A user’s experience is automati-
it’s possible to make modifications to the Tweetflow during cally calculated through interaction mining techniques. (iii)
its execution. For example, a service request can be dele- Interact: the framework supports automatic user interface
gated to another Twitter follower upon receiving a service generation using standardized XML forms that are gener-
request, allowing for service replacements on the fly. This ated according to exchanged complex data types in SOAP
open, distributed control approach allows to exploit crowd- messages.
sourcing behavior in Tweetflows:
<?xml version=" 1 . 0 " e n c o d i n g=" utf - 8 " ?>
Since each service interaction is represented by a Tweet, < 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 <t y p e s>
service pipeline. However, in order to track the execution of <schema t a r g e t N a m e sp a c e=" h t t p : / / . . . ">
<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 < 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 <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. <e n u m e r a t i o n v a l u e=" E n g l i s h " />
</ r e s t r i c t i o n>
RE #<name>” ”@<u s e r>#s e r v i c e :<name>” ”< u r l > </ si m p l e Ty p e>
ST #<name>” ”@<u s e r>#s e r v i c e :<name> <complexType name=" G e n e r i c R e s o u r c e ">
SE #<name>” ”@<u s e r>#s e r v i c e :<name>” ”< s t a t e > <s e q u e n c e>
RJ #<name>” ”@<u s e r>#s e r v i c e :<name> <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 " />
<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 " />
<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. <s e q u e n c e>
<complexType name=" T r a n s l a t i o n R e q u e s t ">
<s e q u e n c e>
4.2 Mapping between Tweetflows and SOA <e l e m e n t name=" R e q u e s t "
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 <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 </ s e q u e n c e>
discovery, and service binding (interactions). However, in </ complexType>
<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 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 <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 <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 " />
< !−− 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 </ schema>
approach brings the benefit of seamless communication and </ t y p e s>
coordination in a service-oriented manner. The analogy of <m e ssa g e name=" G e t T r a n s l a t i o n ">
<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. 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 " />
</ m e ssa g e>
Tweetflow Primitives SOA Concept <portType name=" H P S P o r t ">
SR, RT, DS, RJ Service Discovery <o p e r a t i o n name=" G e t T r a n s l a t i o n ">
< !−− in −/o u t p u t . . . −−>
CS Service Binding </ o p e r a t i o n>
RE Service Response </ portType>
TF Message Routing < 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 ">
<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 </ s e r v i c e>
SP Service Publication <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 </ 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 [21] that offers the build-
quest contains request-related information and additional
ing blocks to support flexible human interactions in SOA.
tags applied to a request. Every request is acknowledged
HPS enhances the traditional SOA-triangle by enabling peo-
through AckSupportRequest by automatically generating a
ple to provide services with the very same technology as
unique identifier. Further operations are supported to ob-
used by implementations of software-based services. Vari-
tain the status of a request (e.g., GetStatus). Asynchronous
ous operations for different collaborative activities indicate
notifications can be generated by passing the endpoint of the
a provider’s ability (and willingness) to participate in col-
requester to the service (not shown in this example). The
laborations. Three steps are performed when using HPS: (i)
invocation of the translation service is shown in Listing 9.
Publish: the user can create an HPS, specify its operations,
and publish the service on the Web by using a registry. (ii) 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
Search: the requester can perform a keyword-based search #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
to find HPSs. Ranking is performed to find the most rele- h t t p : / / b i t . l y /9qFRGL
vant HPS based on, for example, the expertise of the user
providing the service, or the relevance of a user’s experience 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 devel-
be marked as private to prevent non-followers from reading opment teams which work on different areas of a product
them. Alternatively, users can send direct messages to other and which members are highly connected. As shown in the
users without public Tweets. By using Twitter for service working example, some expertise might be missing and an
related messages (e.g., discovery, publication), we implicitly open messaging infrastructure can be used to extend the ex-
make use of information cascades if the corresponding mes- pertise of a group. After the kickoff meeting, a Tweetflow
sage is retweeted to other followers. As has been discussed in for coordinating the activities for the creation of the project
the literature, retweets have the potential to reach large por- infrastructure was initiated. The originator of the Tweet
tions of the Twitter network. However, the success rate of (Twitter user ikangai), bootstrapped the Tweetflow by post-
information cascades for service requests in an open crowd- ing a number of service requests. The service requests were
sourcing setting still needs to be asserted in greater detail. answered by the team members and claimed the services.
As an experiment ikangai tweeted a request for a Japanese- The originator bound the services to the users and started
English translation for the ikangai blog and received an an- the execution of the Tweetflow by posting a new round of
swer from a Twitter user ikangai did not know before. A Tweets. As shown in the example, there were dependen-
similar event was observed with a request for an English- cies between actions, like the creation of a Google Docs ac-
Korean translation. In this case, a direct follower of ikangai count and the creation of a Google document which had to
answered stating that he knew a student able to provide this be taken into consideration. A polling service was bound
kind of service. This suggests that information cascades in by user ikangai using the Tweet TF #ase_2010_11 ikangai
Twitter can be used for service discovery purposes. Listing service:poll.create #meeting http://bit.ly/bsdbGY, in-
10 shows parts of the Tweetflow that were used to set up tegrating the Restful Doodle Poll API into the Tweetflow.
the communication and development infrastructure which
was explained in our working scenario. 6. RELATED WORK
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
In service-oriented environments, standards have been es-
#a s e 2 0 1 0 1 1 tablished to model human-based process activities and tasks
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 (WS-HumanTask [8]). However, these standards demand for
#a s e 2 0 1 0 1 1
SR #s e r v i c e : document . c r e a t e #k i c k o f f
the precise definition of interaction models between humans
#a s e 2 0 1 0 1 1 and services. In our approach, we combine SOA concepts
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 and social principles. We consider open service-oriented en-
#a s e 2 0 1 0 1 1 vironments wherein services can be added at any point in
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
#a s e 2 0 1 0 1 1 time. Following the open world assumption, humans ac-
... tively shape the availability of services. The concept of
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 Human-Provided Services (HPS) [21] supports flexible service-
#g o o g l e d o c s #a s e 2 0 1 0 1 1
SC @ i k a n g a i #s e r v i c e : name . c r e a t e oriented collaborations across multiple organizations and do-
#p r o j e c t n a m e #a s e 2 0 1 0 1 1 mains. Similarly, emergent collectives as defined by [20] are
SC @ r e d a l i 2 5 #s e r v i c e : document . c r e a t e networks of interlinked, valued nodes (services).
#k i c k o f f #a s e 2 0 1 0 1 1
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 Open service-oriented systems are specifically relevant for
#p i v o t a l t r a c k e r #a s e 2 0 1 0 1 future crowdsourcing applications. For example, a hybrid
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 human-computer document translation system has been dis-
#m e e t i n g h t t p : / / b i t . l y /bsdbGY
...
cussed by [22], however not focusing on the realization as a
TF #a s e 2 0 1 0 1 1 @ s t e f a n a s s e g service-based system. While existing platforms (e.g., MTurk
#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 [2]) only support simple interaction models (tasks are as-
TF #a s e 2 0 1 0 1 1 @ 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 #g o o g l e d o c s |
signed to individuals), social network principles support more
@ 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 advanced techniques such as formation and adaptive coor-
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 dination. Social game-based human computation has been
#p r o j e c t n a m e introduce [25] in the context of image labeling that is per-
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
#m e e t i n g h t t p : / / b i t . l y /bsdbGY formed by humans. From the technical point of view, TurKit
... [16] is a crowd computing framework based on MTurk.
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 On an architectural level, we follow the blackboard archi-
#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
RE @ i k a n g a i #s e r v i c e : document . c r e a t e tectural pattern [9]. In our architecture, the Tweet Bus plays
#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 the role of the blackboard which holds state information,
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 i.e., Tweets of the Tweetflows. Enterprise Service Bus Ar-
#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
RE @ i k a n g a i #s e r v i c e : name . c r e a t e chitectures (ESB) [4] have a strong similarity to our Tweet
#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 Bus architecture. Like in ESBs, our approach also uses a
... centralized communication channel to transport messages.
Clients plug into this channel and listen to messages which
Listing 10: Tweetflow example. are transported in a standard format. However, the pub-
lic visibility of Tweets, the 140 character limit for messages [7] P. T. Eugster, P. A. Felber, R. Guerraoui, and A.-M.
and the ability to forward (retweet) messages arbitrarily to Kermarrec. The many faces of publish/subscribe.
other users not listening to the communication bus, i.e., to ACM Comput. Surv., 35(2):114–131, 2003.
push messages into a community of followers, are the main [8] M. Ford et al. Web Services Human Task
differences. (WS-HumanTask), Version 1.0., 2007.
[9] D. Garlan and M. Shaw. An introduction to software
7. SUMMARY AND OUTLOOK architecture. Technical report, Pittsburgh, PA, USA,
In this paper, we presented an approach for using Twit- 1994.
ter as a communication and coordination medium for the [10] J. Hannon, M. Bennett, and B. Smyth.
execution of simple workflows. A novel application of our Recommending twitter users to follow using content
approach are collaborations in crowdsourcing environments and collaborative filtering approaches. In RecSys ’10,
where people provide their skills and capabilities in a service- pages 199–206. ACM, 2010.
oriented manner. In contrast to existing crowdsourcing plat- [11] C. Honey and S. C. Herring. Beyond microblogging:
forms, our approach enables the realization of collabora- Conversation and collaboration via twitter. In HICSS
tive crowds where individuals jointly work on activities and ’09, pages 1–10. IEEE Computer Society, 2009.
short-term projects. [12] J. Howe. Crowdsourcing: Why the Power of the Crowd
We introduced Tweetflow primitives which are embedded Is Driving the Future of Business. Crown Publishing
in Twitter communications to control collaborations and to Group, New York, NY, USA, 2008.
interact with human- and software-based services. By us- [13] J. Huang, K. M. Thornton, and E. N. Efthimiadis.
ing Twitter, we implicitly provided a platform-agnostic com- Conversational tagging in twitter. In HT ’10, pages
munication backend, which possesses enterprise service bus 173–178. ACM, 2010.
characteristics: each client is able to plug into the Tweet [14] B. Krishnamurthy, P. Gill, and M. Arlitt. A few chirps
Bus and exchange messages, independent of any implemen- about twitter. In WOSP ’08, pages 19–24. ACM, 2008.
tation. Moreover, a Tweet Bus provides the means to inte- [15] H. Kwak, C. Lee, H. Park, and S. Moon. What is
grate human- and software-services seamlessly. And finally, Twitter, a social network or a news media? In WWW
the Twitter follower structure offers the ability to exploit ’10, pages 591–600. ACM, 2010.
social structures and to utilize them for service discovery [16] G. Little, L. B. Chilton, M. Goldman, and R. C.
purposes as well as to tap human resources of crowds: ser- Miller. Turkit: tools for iterative tasks on mechanical
vice requests can be forwarded (i.e., retweeted) to followers turk. In HCOMP ’09, pages 29–30. ACM, 2009.
and are thus distributed to the crowd. In future works, we [17] M. Motoyama, B. Meeder, K. Levchenko, G. M.
plan to extend Tweetflow primitives to enable the creation Voelker, and S. Savage. Measuring online service
of more complex Tweetflows. For instance, we plan to inte- availability using twitter. In WOSN’10, pages 13–13.
grate branching conditions, synchronization points and exe- USENIX Association, 2010.
cution deadlines into Tweetflows to allow for more complex
[18] D. G. Murray, E. Yoneki, J. Crowcroft, and S. Hand.
Tweetflows. Our prototype will be extended with a graph-
The case for crowd computing. In MobiHeld ’10, pages
ical tool that facilitates the creation of Tweetflows and we
39–44. ACM, 2010.
intend to extend the support for SOAP-based Web services
[19] C. Pautasso. REST vs. SOAP: Making the Right
and Resful Services [19]. We will investigate Twitter user
Architectural Decision. In SOA Symposium, pages
profiles to include them for service recommendations [10] or
2009–01. Citeseer, 2008.
delegations.
[20] C. Petrie. Plenty of room outside the firm. IEEE
Internet Computing, 14, 2010.
Acknowledgment [21] D. Schall, H.-L. Truong, and S. Dustdar. Unifying
This work received funding from the EU FP7 program under Human and Software Services in Web-Scale
the agreements 215483 (SCube) and 215175 (COMPAS). Collaborations. Internet Comp., 12(3):62–68, 2008.
[22] D. Shahaf and E. Horvitz. Generalized task markets
8. REFERENCES for human and machine computation. In AAAI, 2010.
[23] M. Treiber, H.-L. Truong, and S. Dustdar. Soaf
[1] G. Alonso, F. Casati, H. Kuno, and V. Machiraju.
–design and implementation of a service-enriched
Web Services - Concepts, Architectures and
social network. Web Engineering, pages 379–393, 2009.
Applications. Springer, October 2003.
[24] W. M. van der Aalst, L. Aldred, M. Dumas, and A. H.
[2] Amazon.com. Amazon mechanical turk, last access:
ter Hofstede. Design and Implementation of the
2010. available online: http://www.mturk.com.
YAWL System. In Lecture Notes in Computer Science,
[3] D. Brabham. Crowdsourcing as a model for problem volume 3084, pages 142–159, 2004.
solving: An introduction and cases. Convergence,
[25] L. von Ahn and L. Dabbish. Designing games with a
14(1):75, 2008.
purpose. Commun. ACM, 51(8):58–67, 2008.
[4] D. Chappell. Enterprise Service Bus. O’Reilly Media,
[26] J. Voss. Tagging, folksonomy & co - renaissance of
Inc., 2004.
manual indexing? CoRR, abs/cs/0701072, 2007.
[5] M. Efron. Hashtag retrieval in a microblogging
[27] M. Vukovic. Crowdsourcing for enterprises. In
environment. In SIGIR ’10, pages 787–788. ACM,
Congress on Services, pages 686–692, 2009.
2010.
[6] T. Erl. SOA Principles of Service Design. Prentice
Hall PTR, Upper Saddle River, NJ, USA, 2007.