We are actively pursing a real-time solution (module) for JavaSpaces.

Sent from my iPhone

Michael McGrady
Principal investigator AF081_028 SBIR
Senior Engineer
Topia Technology, Inc
Work 1.253.572.9712
Cel 1.253.720.3365

On Feb 23, 2010, at 8:48 PM, Peter Firmstone <[email protected]> wrote:

Sim IJskes - QCG wrote:
Peter Firmstone wrote:
Anyone have any thoughts about real time java threads? EtherCAT is real time ethernet, a Jini service that runs on a real time thread, over real time EtherCAT with JERI and clients running on real time threads. That would be more realistic in an industrial environment (ubiquitous computing) than a Jini Toaster yes? We seriously need to remove all and any references to Toasters, coffee machines etc in documentation.

EtherCAT, do you mean the fieldbus type?

Yep

Jini certainly looks like a good communications platform for SCADA solutions. All one needs is a small ARM-7 based sensor/controller and GCJ for creating a flashable image and your on the road.

Anybody here know of such a scenario in the wild?

Nope be interesting to see though, if it exists. GCJ 4.0 compiles to native code. Not sure how to do dynamic class loading for service proxy's.

I'm looking at Sun's RTSJ and Embedded Industrial x86 at the moment. My guess is that Oracle wont open it, even though Sun originally intended to. Java looks ideal for embedded. Although at this stage I have no intent of utilising Jini on real time threads.

However the thought exercise is interesting:

Jini Services and clients wouldn't need to be run on real time threads unless they were part of real time software implementations. For classes on real time threads (RTSJ) , there is an initialisation stage where all bytecodes for class files will be pre compiled to avoid hotspot, so a service could potentially run on a real time thread. Simple proxy's could be pre compiled in the initialisation stage, limiting the client to the services determined at initialisation.

A person might rightly suggest the 8 fallacy's of distributed computing as being a problem. One would tackle this by providing a time guarantee for service discovery. So in a redundant network topology utilising EtherCAT, one could have realtime services and simple proxy clients pre determined at initialisation time, the service would actually form part of the redundancy system, upon catching an exception, the lookup service would provide the location of an alternate service, utilised in instances where redundant sensors or functions were in place, made available through Jini services. The real time service might remove its entry from lookup once it has reached a load level that limits the real time guarantees. There are a number of time guarantees that need to be considered, such as network latency (according to the doc's EtherCAT has low latency, distance and load are limiting factors) and Service load.

Perhaps with a dynamic smart proxy, one might initially use a simple service proxy, where a server performs work subject to time guarantee's, until the smart proxy is compiled in the background on a non real time thread and loaded onto a real time thread when ready.

Perhaps the real time service lookup would need to be a totally different lookup service mechanism, specific to real time, that could coexist in the same space as the existing Jini Service Discovery / lookup spec. The River framework would have to check if a service or client registering for Real Time services were running on real time threads and whether the network supported Real Time constraints. A distinction would need to be made between soft and hard real time.

http://www.ciss.dk/download/Slides%20Martin%20Astradsson.pdf

I would love to work on a SCADA kernel completly written in Java.

Yes...

Cheers,

Peter.


Gr. Sim



Reply via email to