V
Vagelis
Hi all,
I have written a small library that provides a generic processing
engine for executing tasks with soft-real-time guarantees. Some of you
may think that the words "Java" and "real-time" cannot be used in the
same sentence if you don't also use some form of negation, like "is
not" or "cannot be". That's why I've also added the word "soft" in its
name!
The project is on SourceForge and you can find it here:
http://sourceforge.net/projects/jsrtproc/
Since I haven't yet written any significant documentation, let me
summarize what this thing is and how it works.
What it is
JSRTProc is a generic, high performance processing engine that
provides soft-real-time guarantees. Generic means that it can do
whatever tasks the user-developer wants, by using the provided
constructs. Real-time means that these tasks are guaranteed to
complete (successfully or not) within a specified time period. And
high performance means that it was designed and implemented to be
efficient with resources and to have low processing overhead.
How it works
The developer implements real-time tasks as Processes. A Process
consists of Stages, which model units of real-time work and can be
blocking or non-blocking for the thread that executes them. Non-
blocking Stages are executed by a small pool of threads with very low
synchronizing overhead, while blocking Stages are executed by larger
task-oriented or service-oriented thread pools. Now, both Stages and
Processes have timeouts which are constantly under tracking by the
Processor. Processing Requests, which represent events or the need to
immediately perform some real-time task and act as the entry-point
into the system, also have timeouts. Timeouts have a hierarchy and the
Processor constantly keeps track of execution of a Process and reacts
accordingly when a timeout expires.
I have written some (incomplete yet) documentation on the project's
Wiki, which you can find here: http://jsrtproc.wiki.sourceforge.net/.
Please have a look for some more information.
If you find this topic interesting, please have a look! I know
documentation is far from complete yet, but I'm doing my best to
complete it. Source code is available on the project's SVN repo, so
you can check it out if you want -- please do! I have made my work
available under the GNU General Public License.
I will be more than glad to discuss about JSRTProc with you and
provide answers to any questions!
Thank you and best regards,
Vagelis
I have written a small library that provides a generic processing
engine for executing tasks with soft-real-time guarantees. Some of you
may think that the words "Java" and "real-time" cannot be used in the
same sentence if you don't also use some form of negation, like "is
not" or "cannot be". That's why I've also added the word "soft" in its
name!
The project is on SourceForge and you can find it here:
http://sourceforge.net/projects/jsrtproc/
Since I haven't yet written any significant documentation, let me
summarize what this thing is and how it works.
What it is
JSRTProc is a generic, high performance processing engine that
provides soft-real-time guarantees. Generic means that it can do
whatever tasks the user-developer wants, by using the provided
constructs. Real-time means that these tasks are guaranteed to
complete (successfully or not) within a specified time period. And
high performance means that it was designed and implemented to be
efficient with resources and to have low processing overhead.
How it works
The developer implements real-time tasks as Processes. A Process
consists of Stages, which model units of real-time work and can be
blocking or non-blocking for the thread that executes them. Non-
blocking Stages are executed by a small pool of threads with very low
synchronizing overhead, while blocking Stages are executed by larger
task-oriented or service-oriented thread pools. Now, both Stages and
Processes have timeouts which are constantly under tracking by the
Processor. Processing Requests, which represent events or the need to
immediately perform some real-time task and act as the entry-point
into the system, also have timeouts. Timeouts have a hierarchy and the
Processor constantly keeps track of execution of a Process and reacts
accordingly when a timeout expires.
I have written some (incomplete yet) documentation on the project's
Wiki, which you can find here: http://jsrtproc.wiki.sourceforge.net/.
Please have a look for some more information.
If you find this topic interesting, please have a look! I know
documentation is far from complete yet, but I'm doing my best to
complete it. Source code is available on the project's SVN repo, so
you can check it out if you want -- please do! I have made my work
available under the GNU General Public License.
I will be more than glad to discuss about JSRTProc with you and
provide answers to any questions!
Thank you and best regards,
Vagelis