jython in workflow and rules engines

15
1 --a powerful scripting language for workflow and rules engines Václav Tunka Software engineer, JBoss by Red Hat Twitter: @vtunka @naPyVo 28.2.2013 Jython

Upload: vaclav-tunka

Post on 13-Dec-2014

990 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Jython in workflow and rules engines

1

--a powerful scripting language for workflow and rules engines

Václav TunkaSoftware engineer, JBoss by Red HatTwitter: @vtunka

@naPyVo28.2.2013

Jython

Page 2: Jython in workflow and rules engines

Is JVM an unusual place?

Page 3: Jython in workflow and rules engines

3

Why Jython?

No Global Interpreter Lock => true parallelism and concurrency.

Page 4: Jython in workflow and rules engines

4

Why Jython?

Page 5: Jython in workflow and rules engines

Why Jython?

• Usage of the best Garbage Collectors including several concurrent GCs.

• Native access to Java API.

• Access to Java Concurrency libraries with support for concurrent collections.

• Polyglot JVM – use the best tools for the job eg. Clojure for functional programming, Jython for scripting, etc.

Page 6: Jython in workflow and rules engines

Monitoring and profiling

• VisualVM, jprofiler, NetBeans, and other JVM tools enabling:– CPU, memory and thread monitoring.– Heap analysis,– Etc.

• Need to have minimal memory consumption in Cloud -> JVM tools might help.

Page 7: Jython in workflow and rules engines
Page 8: Jython in workflow and rules engines

Long time ago, in a galaxy..

• I used to work as a core developer on unnamed “dark-side” closed source platform:– ITIL compatible ERP platform with support

for workflow and rules engine.– Written in Java, Jython used as scripting

language for the workflow and rules engine.

– Nice data integration solution.

Page 9: Jython in workflow and rules engines

Workflow engines

• Similar to state machines: defined states, transition rules, inputs & outputs etc.

• Standardization process in place, mainly BPMN standard in 2.0 release.

• Can be used for easy creation of Information systems & UI dialogs based on simple process definition.

Page 10: Jython in workflow and rules engines

Jython in Worfklow engines

• Used to script custom tasks mainly because:– Python is easily readable,– Forces users to format their code properly,– Dynamic typing & better scripting

capabilities than Java,– Runs on multiple platforms inside JVM.

Page 11: Jython in workflow and rules engines

Rules engines

• Provide a declarative way to solve various repeating rule based tasks including NP problems, eg. Travelling salesman.

• You declaratively define rules, for example in Jython.

• The rules engine provides the resolution for you automatically.

Page 12: Jython in workflow and rules engines

12

Questions?

Page 13: Jython in workflow and rules engines

13

Page 14: Jython in workflow and rules engines

On unrelated note - Project Odd

• Project by Red Hat that aims to support dynamic languages running on JBoss Application Server for better asynchronous programming & concurrency support etc..

• Provides native API for dynamic languages.

• Currently: TorqueBox for Ruby, Dyn.JS for Javascript, Immutant for Closure.

Page 15: Jython in workflow and rules engines

Image References

• Slide 7 image Courtesy of project presentations

• Jython logo – slide 2: jython.org

• PyVo community logo, courtesy of python.cz

• Lock image from slide 3

• Python image from slide 1 Courtesy of Michael Cvet