What does PCA do for me as a user ?
The PCA standard works at two levels. In each case a document or object in a common memory area can be 'shared' between two or more applications. This is not like the versions of OLE implemented on the Acorn platform. There is a major difference in that OLE copies the object for the second application to work on, thus your data takes up twice as much RAM. With PCA all applications work on the same object thus incurring no RAM overheads.
The application which owns the object is called the Local application and the tool working on it is called the Remote application.
When an object is edited in a Remote application the view of it in the Local application is automatically updated as you make changes.
What we have up to now is a more efficient way of doing OLE. However, PCA does not stop there. Take an application like Composition which provides a page make up environment for bit image and vector images - all of which can be moved and edited - a bit like Draw for bit images but with a LOT of extras. Composition does not provide 'painting' tools but because it supports PCA any of a range of tools (including painting, fill and drawing tools) may be used to modify any of the images in it - dramatically extending the capabilities of the program.
The available tools add themselves to Compositions normal application toolbar and to all intents and purposes appear as if they were part of the program.
All of these tools will work with any other PCA compliant application.
Imagine a simple program that does nothing else except display a sprite and conform to the PCA standard. Another application could provide paint tools, yet another could provide filters, another might provide warping tools - you get the picture I'm sure. From this range of applets you can construct a toolbox that suits the way you work and has the functions you need. This toolbox can be extended at any time and all of the tools will work with all compliant applications.
What's more, more than one tool can work on the same object at the same time and changes made in any one of these will be immediately reflected in all of them.
This is an awful lot better than OLE but there's still more.
Instead of each applet opening its own window onto the object we can use 'In-place' editing. This means that only the Local application displays the object and the selected tool merely 'attatches' itself to the object. Any action to the object (such as a mouse click) then goes to the tool and its functions are used to modify the object until you decide to break the link (or choose another tool).
Now you are really able to construct an application from a range of applets. All you will see is one window displaying the document.
Take this a little further and imagine a DTP package supporting the PCA standard. It could have a frame containing a graphic image and you could link this to any of the tools you have. Any changes made with a selected tool would be appear in the DTP window.
What we now have is a system whereby an application can have an infinite number of additional tools and all applications conforming to PCA can be used with and by all other PCA applications.
PCA links can be nested (so that tools can use other tools). An example of this could be an image in a DTP frame linked to Compo which used this image as a 'canvas' for a composite picture. From Compo one of the images in the composite picture could also be linked to a painting tool and any changes made with this would immediately be reflected in Compo (taking account of its variable opacity, masking and shadowing effects) and the combined result would appear in the DTP package.