dotnet distributed apps:
Hi,
I am sorry this is a fairly long posting, but I need to make some
basic decisions concerning the architecture of a dialog application
that I am just beginning to develop, so I hope some of you will take
the time and trouble to read this :)
I am writing a dialog application using the dotnet framework and C#.
The application will allow a user to obtain information on departure
and arrival times of trains. The application will accept spoken input
from the user as well as input through a touch screen displaying a
form. Output is given to the user through the same form, but also
using speech (either by playing back prerecorded speech, or using
speech synthesis). A dialog manager steers the dialog with the user,
determining what information is still needed, how to interpret user
input, what questions to ask the user, etc.
At the moment, I have implemented a single-process design. Each module
in the system - speech recognizer, dialog manager, screen module,
speech output module - is a separate form class in a separate class
library (dll). I have a main form that acts as the controller module.
It creates instances of the other forms (components, modules), which I
call child forms. The main form can simply access the public
properties and methods I have made available in the child forms, and
whenever something interesting happens in one of the child forms it
uses events to notify the main form. This works fine and I can do all
I want in a simple and straightforward way.
Now I can see the point coming when so much will be going on at the
same time that performance will suffer. It would then seem a good idea
to have one or more of the child forms run on another machine.
However, this is completely new terrain for me. How do I instantiate a
form class on another machine? How do I access its public properties
and methods? How do I detect events raised by a form on another
machine?
I hear of remoting, telnet services, web services, asp.net, sockets
.... It's quite a jungle out there.
I really hope someone out there has some good pointers for me.
Thanks in advance!
Jan Roelof