One of the goals of our P3/P7 client API was to provide a single API that gave the same API to both services, so that a client product could be easily built to use either protocol. As applications are being developed to these APIs, we are finding some requirements to diverge (although still keeping the common core API). There are two interesting changes in R11.
1. In X.400 P7, a client access a server to retrieve a message, which may subsequently be deleted from the server. In P3, a message is delivered from MTA to the P3 client and removed from the MTA as part of the delivery. When the "get message" operation is used with P3, a message could be lost if the client crashes before the message is secured. Therefore, we've provided a two stage API for P3, so that a P3 client can get the message, store it securely, and then complete the P3 operation reliably.
2. We've extended our API to provide access to the P7 list operation. This means that an application using P7 can get a list of messages that are held in the store. This will help more sophisticated P7 Client applications.
So, while we still have a common core API, we are introducing some protocols specific features, which sophisticated applications will want to take advantage of
Steve