Simply spoken, APlay distributes objects for you. Your objects can be distributed between processes, across different computers and across the internet. You define for APlay the objects you want to distribute and APlay generates the code you need to do that. Then, whenever an object is changed in one place, all other instances of this object - no matter where they are - are changed automatically. And when a method for an object is called, the same method is invoked on all other instances of this object. This works across many programming languages and operating systems.
Optionally you can also have some or all of your objects stored in a database, this is called persistence. APlay ensures that always the latest state is stored.
For most people, APlay eliminates the need for network libraries. It automatically covers all need for commmunication within your application. And that's true whether you are writing a real time shooter, a massive multiplayer game, a social game or a transactional business application. The cool thing is that you do not need to know about networking to be able to implement your application.
When two or more processes share an object, each has a local version of this object. The APlay code generated for the objects makes sure that every time one process makes a change or calls a method this gets sent to all others automatically. APlay knows how to contact all other copies of the object. It will automatically choose the right communication protocolls, traverse routers and cross language and operating system barriers.
Three simple steps: