The Model-View-Controller design paradigm is a way of breaking an application into three parts:
In traditional object-oriented design, user input, modeling of the external world, and feedback to a user are separated and handled by three objects. The model manages the data, responds to queries, and responds to instructions to change state. By segregating the function and role of these elements and limiting what information each can learn about the others, a flexible design is achieved.
PRPC promotes and implements the MVC design pattern. Rules (including flows), work items, attachments, and history implement the model. Rules and transaction data such as work items are stored in relational databases. Processing capabilities are available to human users through the portal and user forms, or through external user interfaces such as portlets. Similar processing capabilities are available to other applications and systems through services.
For each requestor (human or system), the clipboard is the universal internal data structure that contains state information, security information, and data.