The Perspectives system is a structured modeling approach designed to represent user roles, contexts, interactions, and data within software applications. It emphasizes defining perspectives of user roles on other roles in specific contexts, along with principles for role nesting, property management, and user role transformations. Key components include roles (userroles and thingroles), contexts (domains, parties, cases, activities, and states), properties (booleans, strings, numbers, dates, and files), and perspectives software supporting textual and graphical representations. Overall, the Perspectives system provides a systematic framework for modeling complex systems, facilitating development and understanding of application behavior and structure.
Perspectives is first and foremost a language for describing collaboration. In a particular context, users come together to inform each other, work together on something, or establish a client-supplier relationship. To do this, they have a perspective on each other and on the matters they share. In the Perspectives language, we say that roles in a particular context must have the right (information) perspectives to achieve their goals.
Recognizing contexts and roles is very simple for us humans. From a young age, we learn to display behavior that corresponds to the role we play in a context. If we deviate from that, the environment immediately notices. Therefore we argue that the Perspectives Language is based on our most natural cognitive abilities. More on that in Perspectives on Human Cognition.
Creating Perspectives Applications
There are two forms that the Perspectives language adopts: a textual version and a graphical version. The latter for those who are more visually inclined. In both versions, applications are created in the form of models. A Perspectives Model is a textual description of Contexts, Roles, and Perspectives that together constitute an application. When the graphical version is used, the developed diagram can be translated into the textual version that can be executed on the Perspectives Platform. However, a model can also be created directly in the textual version of the Perspectives language.
Using Perspectives Applications
To become part of the Perspectives world, one logs in to the site mycontext.com. The first time you visit this site, the platform (the Perspectives Distributed Runtime) is loaded in the browser. Users select a model from the model library by requesting a Role-In-Context. For example: “I want a role as a host of a party.” Based on this request, the a Party Application (model) is downloaded and the user initially will assume the role of host. From this role, tasks such as inviting guests or creating a wish list can be performed. Other examples of Role-In-Context (RIC) include:
- Caregiver for an Elderly Person
- Babysitter for a Child
- Reviewer of a Text
- Chairperson of a Meeting
- Organizer of a Conference
Invitations from others to assume a role in a context are sent via email. Upon receiving an invitation email, you indicate your acceptance of the proposed role. The respective Perspectives Model is then downloaded and added to your model collection, and you are placed in the specified role. Examples of roles in invitations are:
- Participant in a Chat
- Guest at a Party
- Participant in a Meeting
- Participant in a Conference
- Babysitter for a Child
In the latter case when you get an invitation email, as a babysitter, you join a babysitting application initiated by someone else.
Private Perspectives
When a model is executed on the Perspectives Platform, the Platform continuously calculates which data a participant (role) in a context needs to have in order to fulfill this role. This is possible because modeling with the Perspectives language precisely defines who can see or do what in which context.
This is the opposite of what we normally do when we develop. We create a program where everyone has access to everything, and then we limit that afterward by determining the rights. The Perspectives Platform guarantees that everyone only has access to the data and capabilities that follow from the model. When modeling in Perspectives, we determine the rights as an intrinsic part of modeling the functions that a role has. No role in a context means no data. No perspective on another role also means no data from that other role. This is also known as “Role Based Access Control (RBAC) on Steroids”!
When we transfer the model to the Perspectives Platform, the platform generates the underlying message traffic that ensures that each participant only receives the data on their devices (PC, laptop, tablet, or smartphone) that are necessary for the roles they are playing. And nothing more! This message traffic is one-on-one between the participants, and no server is involved. Therefore, there is no opportunity for someone who provides us with a service and does not participate in a Perspectives Context to eavesdrop. Perspectives applications are therefore extremely privacy-safe. More about this in the Perspectives Platform.