I worked as a programmer for the OSA-project during the summer, however because of our fast developing pace, I never found time to write to this blog. Now, when I’m back at school for the last year of my studies I decided to do my bachelor’s thesis for the OSA-project.
The topic is going to be developing (hopefully) simple workflow engine which is going to handle the execution of micro-services. The communication with the workflow engine is going to be developed using REST that is because then user can develop their own UI or easily integrate this workflow engine into their projects. Also there needs to be possibility for timed runs and different triggers, for these I’m going to use Quartz scheduling library. Also possibility for using the workflow engine as a distributed application is something that needs to be researched.
I’m also going to create a batch ingest workflow and required micro-services as an example on how to create workflows with my engine. That project started by modeling the batch ingest workflow. Because I don’t have much archiving experience I started out by looking at other archiving systems like Archivematica and Islandora. After inspecting these systems and doing my own research I could start doing some modeling.
To do the actual model I used software called yEd which was free and easy to use. I didn’t want to use too complex modeling methods because I think it is important to be able to create models which can be understood also by people without deep technical knowledge. For example someone who has worked with archiving for long time but doesn’t understand that much about programming or process modeling can still see what is going on in the workflow and may be able to provide important knowledge about archiving.
Here is the current model:
Of course later this process will be fully configurable but these are going to be settings for now.