MiddlewareWishList

Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

The Middleware Wish List

This page is a collection of wishes and bug reports for the DWARF Middleware. Feel free to add your own.

Add your name to a feature request to vote for it. This actually makes no difference as when or if it will be implemented, but it will make you personally feel better.


Bug Reports

Service Wildcard-Attributes are set to an empty string when connected to a service w/o such an attribute

When an application service attribute (such as the Model) should be set to the application name and the service has connections to services w/o such attribute, then one clone is instanciated with an empty attribute and one with the correct value.

Feature Wishes

Attribute change notification

For a disucssion of attribute change notifications, attribute propagation between services and so on, see MiddlewareAttributeExtensions.

Error handling in CorbaInit?

It would be nice to get some more detailed output when the execution of CorbaInit? fails. At the moment all you get is the information that it failed, but no feedback what to do. The minimum could be to remind the user that a service manager should be running.

Additinally, the debug level of the log messages in CorbaInit? could be increased as long as no fatal error occurs.

-- MartinBauer - 17 Jul 2003

Streaming video communication

This would be useful for demos and for the software cinema.

Faster service clone instantiation and communication setup

Things are so slow...

Limit the service manager to a single host

This could make debugging easier. This could also make applications that do not need network communication easier to install, since no network service location protocol is needed.

-- MartinBauer - 17 Jul 2003

Use DNS-SD instead of SLP

Use DNS Service Discovery instead of Service Location Protocol. DNS Service Discovery together with Multicast DNS uses multicast announcements instead of broadcast queries. This could give at least as quick responses but without continuous broadcast queries. Of course both protocols are not primarily intended for continuously changing services, are they?

Also, this makes the middleware buzzword-compliant and enables Superlinear Speedup.

Superlinear Speedup

This could make everything even faster.

Pull Method for Events

Currently only the push-method for events is implemented.
  • We'd need also a pull-method like its description at omniNotify website (Consumer, Supplier) for our dimplomarbeit NAVI. We need it for example for retreiving Environmentdata from our Dataservice when we need it. -- GuentherHarrasser? - 16 August 2003
  • We could refactor the ServiceDiscretizer? to provide a SvcProtObjrefImporter? interface to access the last stored event of a given type -- Main.Main.MartinBauer

Design Ideas

"Startup" Abilities

We could separate the startup of a service from the other need/ability relationships, providing a special "startup" ability. This way, the viewer service can retain needs for e.g. the scene manipulation communication with the UI controller.

Handshake while connecting

For some applications it would be helpful to have some kind of handshake possibility when setting up connections. so far, the selection interface allows a service to choose from other available services the one it likes, based on the ActiveServiceDescription? of the services. there is however no possibility to ask the other service itself for some answer to a question (also needed for Challenge-Response Type authentication), or am i getting something wrong here?

Fixed Bugs

The Service Manager sometimes crashes on shutdown

Fixed on 29 Sep 2003:

  • destroy POA without deactivating it first.

This has to do with the deativation order of CORBA objects; it is not really a problem. Just remember to do a killall -9 servicemgr afterwards to clean up.

Dead/Busy services are replaced by unstarted ones

Fixed partly on 29 Sep 2003, better fix on 18 Nov 2003:

  • Sessions that cannot be set up time out after a while.
  • Services have a startable attribute that is only true if the service's needs are satisfyable and startOnDemand is true. The default selection strategy ignores unstartable partners.

Assume service A's need is connected to service B's ability, and service B crashes, or an SLP packet is lost at the wrong time. Assume futhrer that (unneeded) service C, on another host, is not started, but has an XML description in a running service manager, and also could satisfy A.

Then, A will try to connect to C after B crashes, this will fail because C is never started, and A will starve.

Workaround: restart service A, or remove the (unneeded) XML description of C.

Fix: rework the DefaultServiceSelection code in the service manager, and/or make sessions that are requested but never answered time out.

SLP timeouts are not handled gracefully

Fixed 22 Oct 2003, 04 Nov 2003:

  • If an SLP packet is lost, but a previous SLP query with the same predicate and partner attributes was successful, the lost SLP packet is ignored.
  • Actually, it would be better to have a notification system for attribute changes.

If a service with an ability iks running on a slow host, e.g. an ipaq, its SLP responses can be too slow for the other side. This leads to thrashing: sessions are terminated and set up again repeatedly.

-- MartinBauer - 22 May 2003


Edit | Attach | Refresh | Diffs | More | Revision r1.24 - 23 Mar 2005 - 20:01 - NikolasDoerfler

Lehrstuhl für Computer Aided Medical Procedures & Augmented Reality    rss.gif