Per user server processes are created on demand for efficiency and flexibility. Successive connections for will reuse server process . NetAuth can also support other commonly used methods such as pre-forking processes or forking a process per connection.
This mechanism provides a very clean programming model as it is trivial to create back-end services for each user on demand. For example, Figure 3 shows a calendar proxy which caches a user's local and remote calendars (and no one else's) and provide feeds to a desk planner, email to calendar appointment program, a reminder system, etc. The reminder mechanism might know where the user is currently located and where the appointment is, so that reminders can be given with suitable lead times. As the user's connections are always to the same process, requests are serialized for that user preventing race condition (and the need to synchronize) and enable easy adding of calendar applications without configuring for security (since the configuration is in the proxy). Such a model also allows different parts of the application to execute on different systems. For example, a user interface component could run on a notebook, and a backend store could run on an always available server.
We next look at the uses of NetAuth in more detail.
Manigandan Radhakrishnan 2008-05-13