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