RE: Beagle Networking / Beagle Win32 Port
- From: Nat Friedman <nat novell com>
- To: "Battermann, Joerg" <jb justBE com>
- Cc: burton1 rojo com, Joe Gasiorek <joe gasiorek gmail com>, Dashboard <dashboard-hackers gnome org>, Joe Shaw <joeshaw novell com>, Fredrik Hedberg <fredrik hedberg avafan com>, look recursion org, trow novell com, robertojdohnert msn com
- Subject: RE: Beagle Networking / Beagle Win32 Port
- Date: Fri, 19 Nov 2004 11:13:51 -0500
[ Cc'ing the list on this discussion. ]
Hi Joerg,
On Fri, 2004-11-19 at 11:52 +0100, Battermann, Joerg wrote:
> by browsing through the beagle sources, I think dbus is used on more
> places than the network implementation.
Yes. Beagle uses a client/server architecture: the indexing and query
engine runs on a dedicated daemon, and any process can open a query and
get results remotely from this daemon. The IPC mechanism that we use
today is D-BUS. This means that we don't force application authors to
link their applications against the entire Beagle infrastructure;
instead they can just link against a lightweight IPC client.
So D-BUS is pretty fundamental to the way Beagle works right now.
We use D-BUS because it seems to be the popular thing to do in the Linux
Desktop world today, and because it is a fairly simple IPC mechanism. We
could equally have used web services or a hand-rolled system, but as
long as everyone is moving toward D-BUS, it seemed like a sane decision.
If this D-BUS momentum does indeed continue to build, then I think the
desire for a Windows port will go also.
In general terms, we are VERY open to the idea of porting Beagle to
Windows, and would entertain patches to that end.
Speaking specifically of D-BUS, Jon looked into porting it to Windows
and spoke to Havoc about the idea already. He learned that D-BUS already
has a fairly well-abstracted system layer and porting it to a new
operating system is essentially a matter of writing one file.
> So is inotify.
inotify is, in some ways, an imitation of the intent of the Windows
ChangeNotify system. So there is an analogous mechanism under Windows
already.
I think the right approach here would be to extend Mono's
FileSystemWatcher class to do the following:
On Linux
- If inotify exists, use inotify.
- Else, if Fam exists, use that.
- Else, either poll or do nothing at the user's option.
On Windows
- Use ChangeNotify.
Then we would simply be able to use FileSystemWatcher from anywhere and
it would work.
> Beagle basically
> relies on those so we either write a wrapper around beagle for windows
> or get rid of these dependencies by implenting other solutions, which
> would most likely result in branching/patching-hell to stay up to date
> with the beagle main source-tree.
I think if you do it right, like I described above, it wouldn't be so
bad.
> I'll dig a bit deeper into the beagle sources this weekend, and see what
> I can up with before giving any definite statements.
Excellent. Good luck.
Nat
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]