The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024


[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: Multiple Endpoints


  • Subject: Re: Multiple Endpoints
  • From: Stuart Booth
  • Date: Tue, 23 Sep 2003 20:55:00 +0000

Here's an example of what I'm doing. I still haven't written the
documentation for this application configuration yet. It's dead easy
when you know what you're doing, but in the mean time I've just
packaged everything up individually so that they look different.

I have a standard/generic user interface, or a 'runtime' if you like.
It's completely unaware of the modules it'll load until it discovers
them dynamically at run-time. Then it configures itself and the
'plugins' it has found so that they behave as independent xAP modules.

The runtimes currently come only as a console application and a
Windows Service shell. Haven't finished the GUI version yet.

The plugins perform certainly individual services;
- CID monitoring
- Internet dialup monitoring
- TiVo OSD
- SliMP3, etc

Say you want to run two of those together in one user interface? I was
getting cheesed off with multiple separate applications running (as
well as writing/maintaining the same runtime shell application over
and over.

If the runtime starts up and finds only the SliMP3 plugin module then
it sends out h/bs and receives messages at the following ('anya' is
the name of my main PC):

KCSoft.SliMP3.anya FF123400

This is easy and makes perfect sense to me. It's exactly the same as
if there was a real dedicated EXE that implemented the SliMP3 logic.

If it detects multiple plugins (say SliMP3 and TiVoYAC), then it
configures itself differently:

KCSoft.xAPConsole.anya FF123400 (the main runtime EXE)
KCSoft.xAPConsole.anya.SliMP3 FF123500
KCSOft.xAPConsole.anya.TiVoYAC FF123600

I'm not entirely happy with this yet. For instance, what if I run 2
separate instances of this EXE, with different plugins?

EXE number 1:

KCSoft.xAPConsole.anya FF123400 (the main runtime EXE)
KCSoft.xAPConsole.anya.SliMP3 FF123500
KCSOft.xAPConsole.anya.TiVoYAC FF123600

EXE number 2:

KCSoft.xAPConsole.anya FF345600 (the main runtime EXE)
KCSoft.xAPConsole.anya.CallerID-OSD FF345700
KCSOft.xAPConsole.anya.InternetDialup-OSD FF345800

Problem one is that they both share the same address for the main EXE,
when they are two separate instances. Note that this is the default
configuration. You can easily adjust the values via the application
config file, so it's not a showstopper, but by default it doesn't seem
right.

But it's the difference between the standalone runtime + plugin and
the multiple plugin runtime addressing that bothers me. I can't change
my device topology without messing heavily with the addressing.

Windows Services

Finally, a note on Windows Services. When you install the Windows
Service runtime interface (rather than a console or GUI app), no
matter how many (1 or 2 or 5, whatever) plugins it loads, it *always*
registers them individually. It's just the same as installing all 5
separately and individually.

KCSoft.SliMP3.anya FF123400
KCSoft.TiVoYAC.anya FF345600
KCSoft.CallerID-OSD.anya FF789000

When working with the Services applet in the Control Panel this makes
a lot of sense and feels right. And seems to me to work really well.

And if you read all that and got down to here, well done for not
nodding off!!!

S
--
Stuart Booth
xAPFramework.net - a reusable xAP framework for .net

<a href="http://www.xapframework.net/";>http://www.xapframework.net/</a>
<a
href="/group/xAP_developer/post?postID=QnrJZraG5cp_w_wBTT64JwYoaU2FjgFiTLHeduMGng4_JukubFSLDMfYBswgaVLfvbqJKFZqpQsEI3JKlw2J">stuart@x...</a>





xAP_Development Main Index | xAP_Development Thread Index | xAP_Development Home | Archives Home

Comments to the Webmaster are always welcomed, please use this contact form . Note that as this site is a mailing list archive, the Webmaster has no control over the contents of the messages. Comments about message content should be directed to the relevant mailing list.