__OSyRIS__ (Orchestration System using a Rule based Inference Solution) is an Event-Condition-Action workflow engine. It allows the composition of remotely located tasks based on the __SiLK__ (Simple Language for worKflows) language. It was partially supported by the {link:GiSHEO|http://gisheo.info.uvt.ro}esapecsproject.theengine,togetherwiththelanguageweredevelopedtoallowimageprocessingcompositions.howeverduetoitsgeneralityithasbeenextendedbeyondthisinitialscope(e.g.,expressingschedulingheuristics).xd;xa;xd;xa;taskscanbeeitherwebservicesorsimpleapplicationswhichcanbeaccessedbyusingmessagequeuesorotheravailablesolutions.thechoiceislefttotheuser.xd;xa;xd;xa;osyrisisbasedon{link:drools/|http://www.jboss.org/drools} and every SiLK rule file is converted to Drools rules before being executed. The programming language when handling OSyRIS workflows is Java.xD;xA;xD;xA;OSyRIS has several characteristics which include:xD;xA;xD;xA;1. A simple and fully customisable interface between the SiLK rules and the tasks to be invoked. When using OSyRIS users need only create the SiLK workflow and customise the __Executor__ class. This class handles the actual invocation of the task to be executed as a consequence of a rule firing. Because the class acts as a middle layer between the rules and the tasks users are free of using their own communication protocols when designing and implementing it.xD;xA;1. A simple yet expressive workflow language called __SiLK__ for expressing workflows. The language has only one construct in the form of __RHS -> LHS | condition, salience__ where the __RHS__ (Right Hand Side) is made up of tasks that need to be completed before executing the __LHS__ (Left Hand Side) tasks. For this to happen additional optional __conditions__ need to be satisfied. The __salience__ represents the priority of the rule. Constructs such as: sequence, parallel, decision, loop, synchronised split, etc. can be easily derived from it. 1. Possibility to distribute the workflow across several resources. The communication is based on {link:AMQP|http://www.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol} and uses {link:RabbitMQ|http://www.rabbitmq.com/} as message service. The distributed version is called __D-OSyRIS__.xD;xA;1. Self-healing capabilities in case of engine failure.xD;xA;xD;xA;-----------xD;xA;xD;xA;__SiLK__ is a rule based language which allows tasks to be linked together through inference rules. The language is loosely based on the {link:Gamma formalism|../space/Gamma-calculus}.xD;xA;xD;xA;Its key features are_3AxD;xA;xD;xA;1. Rule firing is inherently parallel0FA408DDE0"initial-output-A", "processing"="oper-A", "instances"="1"]; B := [i1:input, o1:output, "processing"="oper-B"]; C := [i1:input, o1:output, "processing"="oper-C"]; D := [i1:input, o1:output, "processing"="oper-D"]; E := [i1:input, o1:output="output-E", "processing"="oper-A", "instances"="1"]; F := [i1:input, i2:input, o1:output, "processing"="oper-E"]; # A simple loop here in the default domain A[a=o1] -> B[i1=a]; B[b=o1] -> C[i1=b]; C[c=o1] -> A[i1=c] | c < 10; # This rule switches to domain 2 C[c=o1] -> 2:D[i1=c] | c >= 10; # A simple synchronised join in domain 2. # Task E already exists as it has been defined as having one initial instance 2:D[d=o1],E[e=o1] -> F[i1=d#i2=e]; {code} Links: http://gisheo.info.uvt.ro/trac/wiki/Workflow References: - M. E. Frîncu and D. Petcu, OSyRIS: a Nature Inspired Workflow Engine for Service Oriented Environments, Scalable Computing: Practice and Experience, vol. 11(1), pp. 81-97, 2010 (online: http://www.scpe.org/index.php/scpe/article/download/642/265). - M. E. Frîncu, D-OSyRIS: A Self-Healing Distributed Workflow Engine, Procs. ISPDC'11, IEEE Computer Press, accepted. - M. E. Frîncu, A Method for Distributing Scheduling Heuristics Inside Service Oriented Environments Using a Nature-Inspired Approach, Procs. ISPDC'10, IEEE Computer Press, ISBN 978-0-7695-4120-4, pp. 211–218, 2010 (online: http://portal.acm.org/citation.cfm?id=1848318). - M. E. Frîncu, S. Panica, M. Neagul, D. Petcu, GiSHEO: On Demand Grid Service-based Platform for Earth Observation Data Processing, Procs. HiperGRID’09, 26-28 May, Politehnica Press, ISSN 2066-4451, pp. 415–422, 2009. 2011-04-13 17:58:27.919 2011-01-17 09:59:41.759