Since my lab project is already finished by developing a prototype of a Firefox plugin which is able to execute micro service workflows in web content (which was briefly described in “my” previous post), I’ll extend the plugin within my bachelor project.
Here you can see a simple example of an instance of the current workflow grammar as shown before:
It shows a simple cashflow calculation with several static input parameters and the option for the user whether to calculate the cashlfow directly or indirectly. The cashflow is just shown as popup if it is greater than zero. Otherwise it will also shown and additionally the rating (of the company) will be decreased (which will be handled by the second web service “DecreaseRating” which gets the cashflow from “CalcCashFlow” directly as input).
The actual endpoints of the web services are stored in the preference system of Firefox and can be manipulated via a GUI in the Tools menu:
In the bachelor project I’ll basically try to introduce variables in the workflows in order to develop more complex workflows in an easier way than it is now possible. It should be possible to use variables in different scopes like “per invocation instance”, “per page” or just global variables which can be accessed from every page.
Furthermore it should be possible to use (more) complex return values from executed web sevices. Currently only primitive types are supported. So for example, an invocated web service should be able to return a complex object “Person” which consists of several primitive types like first name, second name, birthday, aso. which are then stored temporarily in variables to be accessible for further use.
This is also my current status actually – having thought about the requirements in a more detailed and structured way without coding some features yet.
I’ve also played a bit with the localStorage concept which was introduced in HTML5 and is ready to use in Firefox 3.5+, since this could become quite handy I guess. Since the data is stored persistently in the browser (even when it is closed), it should be quite easy to develop another requirement: storing default values for invocation instance parameters which depend on a certain context like location. For instance, if you know that you are dealing with an US american page, then it would be reasonable to set currency paramaters automatically to “US Dollars”.
Attention! Firefox is a bit buggy concerning this localStorage concept as I’ve found out lately. In order to make it work so that values are stored persistently even when the browser is closed, you have to put your page online and access it with http://yourpage.com rather than file://yourpage.com. This is quite nasty since you don’t want to upload your changing test page all the time during development process and just access it directly via the file system. Well, that’s the only way it works right now, I guess.
When you want to use the localStorage concept, make also sure that the Firefox environment variable “dom.storage.enabled” is set to true (even though it’s the default value, checking this can’t be wrong )
So long!
Tom