DotGNU's Vision for Webservices

Frequently Asked Questions

When a program is implemented as a "webservice", its functionality
can be used by other programs which can be implemented in any
programming language, and which can run on any computer which is
connected to the internet. This makes it possible for example that
multiple users in different parts of the world can interact with a
single set of data.

Apart from special circumstances (like when you need to process huge
amounts of data that your local computer cannot handle) there is a
benefit to using a webservice only when the same set of data needs
to be accessed by multiple people, or when a user needs to be able
to access the same set of data from multiple computers.

For example, the straightforward way to implement mailing list
hosting is to do it as a webservice, and that is exactly what the
implementors of Mailman, the GNU mailing list program, have done.

On the other hand there is little benefit from implementing e.g. a
text editor as a webservice unless there are features to allow
multiple users to edit the same file at the same time.

Yes. DotGNU Portable.NET can be used to implement a
highly portable webservice client program with a nice user interface.
Alternatively, you can use XWT to "project"
a graphical user interface to the user's computer.

Data can be stored either locally or on the webservice server. If
multiple users need to interact with the same set of data, then it
should probably be stored on the webservice server.

This raises the legitimate concern of whether a webservice provide
can "lock in" customers by making it inconvenient or impossible for
them to get at their data; this issue is addressed in the following
questions.

The DotGNU webservice server requires that for each webservice and
each set of data that it acts on, there is an "owner of the data"
who has the right to download the entire set of data together with
the program which implements the webservice. Program which have
been downloaded in this way can be executed in any DotGNU Secure
Execution Environment on a desktop computer or on a DotGNU
webservices server.

(This means that when there is a need for an application to use data
from multiple sources, where no-one has ownership rights to all the
data, then the application must be divided into multiple webservice
components.)