OKeilidh is an online Web Service (WS) choreography management system, which assists users in editing, publishing and testing WS choreography in the form of Interaction Models (IMs) encoded in XLCC. An IM is a set of clauses defining the behaviours associated with roles within peer interactions and a role describes the necessary actions for one of the peers taking part in the interaction. The term peer is used here instead of agent since we focus on reactive behaviours of participants within their interactions, which complies with the term peer in OpenKnowledge.

XLCC is an extension of the Lightweight Coordination Calculous (LCC) and fully interpretable in modern browsers. Here, "X" means not only "eXtension" but also "XMPP" which is the messaging protocol employed by XLCC to interpret peer interactions. OKeilidh also provides a node.js version --- node-xlcc running in your favourite clouds.

The Hello World examples written in XLCC are as follows:


HelloWorld example 1


HelloWorld example 2

Edit XLCC [+]

Please input the bodyload an example

Submit this body

Configure the XMPP-HTTP endpoint:

change
(this might cause some lost so please back up everything you have changed before clicking the "change" button.)

Import external OKCs

add

Create OKCs on the fly

Constraint Name: Add

Submit this function

Edit peer subscription head

Edit XLCC Head [+]

Please input the headload an example

Submit this head

Run this IM!   Reset   Disconnect

OKeilidh is an online Interaction Model (IM) management system, which assists users in editing, publishing and testing IMs written in XLCC. XLCC is an extension of the Lightweight Coordination Calculous (LCC) and fully interpretable in modern browsers. Here, "X" means not only "eXtension" but also "XMPP" which is the messaging protocol employed by XLCC to interpret peer interactions. The syntax of XLCC is described as follows:

				
IM := Clause_List
Clauses_List := Clause | Clause_List
Clause := Role :: Def . | Role . | plays ( String , Constant) . | knows ( String ) . | iid ( String ) .
Role := a ( Type , Id )
Def := Message | Def then Def | Def or Def | Def niob Def
Message := M => Role | M => Role <- C | M <= Role | C <- M <= Role | null <- C | Role | Role <- C
C := Constant | Constant ( Terms ) | not ( C ) | C && C | C || C | C = C | C Operator C | list ( Variable, Variable, Terms)
Terms := Term , Terms | Term
Type := Term
Id := Constant | Variable
M := Constant ( Term )
Term := Constant | Variable | Constant ( Terms ) | _ )
Operator := == | != | > | < | >= | =<
Constant := lower case character, sequence or number
Variable := upper case character, sequence or number

OKeilidh supports on-the-fly creation of the OpenKnowledge Component (OKC). Several methods which help users in creating OKCs are already wrapped in the PeerHelper by default when the OKC template is automatically generated, which are:

setValue(Variable, Constant)
getValue(Variable)
readValue(Terms)
displayValue(Terms)

The OKeilidh project provides a node.js version running on the Google V8 engine. Please check out node-xlcc at github and start choreographing WSs in your favourite clouds.

Having spare £25? Start using lightweight OKeilidh on your Raspberry Pi!

OKeilidh running on Raspberry Pi

Start annotating

OKeilidh is under active development of Xi Bai at University of Edinburgh

Xi Bai
Room 2.05, Informatics Forum
10 Crichton Street
Edinburgh EH8 8PD, UK
Email


View Larger Map