Let us take a step back and look at the problem again: Electronic PIMs are currently not very usefull, because each has its own database and it is very hard if not impossible to keep all of them in sync. The goal is to find some way to keep the data consitent on as many devices as possible.

To design a solution for all devices, we have to find out which devices exist and what their capabilities are. Table 2.1, “Overview of some PIM databases” gives an overview of some PIM databases:

The next step is evaluation how those devices connect. As said earlier, most of them already have some kind of network connection. Figure 2.1, “Different clients and how they connect” gives us a a little view on how those devices typically connect.

As you can see, the whole situation is pretty complicated. Different architectures have to be considered, and different transports. But the most difficult to consider are the different types of clients: server class, workstation class and thin clients.

As suggested earlier, we will reduce the problem to a much simpler client - server problem. When looking at Figure 2.1, “Different clients and how they connect” the only problem left is the desktop computer. The application here would have to act as a client to the central database sever and as a server for the mobile devices.

Even simpler, we could write a proxy application for the desktop computer. The thin clients would communicate with an adapter program on the desktop computer. Then the adapter program would handle all communications with the actual server.

Having solved the “desktop computer” issue enables us to build an approach on the base of TCP/IP. No other protocols need to be supported directly. It also enables us to reduce this problem to what we wanted: a simple client - server problem. Now all that is left is implementing a server, a client, and also a common protocol...