31:10:2007 - human aspect - why should this make a difference (part I)
This is yet another answer to a bulk of questions from Mihai :)
This system that I have called Perspective programming or Perspectives is ment to create a common ground of processing and solving the problem of systems interactions. Just as 2 people communicate with each other they do it based on the a common language - be it even bodylanguage - they have developed in time methods of bridging over initial contact communication problems this is a a common strategy all people have one if they don't they will be pushed away to the outskirts of the sociaty. Thus another syntagm should be valid "I communicate thus I exist"
I comunicate thus I exist
And I'm refering to comunication, not talk - just to set this straight from the beginning. In the documentation to come and in this blog I will try to create an effective comunication rules set that can are sufficiently generic to be able to encompas any human interaction that has a given action result that can be to some extent be measured in success and failure. A system is more and more relying on external systems for it to exist for decades electronical systems were breached by human interactions, helpdesk phonecalls is just an example. In time these interactions became more and more standardised and now we see a very fruifull and effective interactional model Service Oriented Programming. What this lacks and what the Perspectives bring in new we will discuss imnmediately.
Perspectives vs. SOA
The 2 technologies overlap in many ways and extended SOA may provide a very good replacement of the Perspectives. So... Why then perspectives? Well perspectives is rooted in the SOA model of work but provides another very important add-on to it: Transformations. While SOA relyes on a common calling method (usually SOAP inspired) using XML-calls Perspectives lets you define prototypes that are processlevel and override perspective specific ones. This is no doubtly do-able in SOA too but there is no common ground defined and does not make the subject of it. While SOA is based on interactions Perspectives are based on transformations delivering a much closer to reality model of the data being transfered plus a much greater human understanding. Perspectives are closer to human understanding the use the same terms they use in everyday life in programming theyr everyday informational syste.
While SOA makes comunication available and offers it a messaging method Perspectives do not just transmit data they transfer behaviours tructures it has an intrinsic way of transmitting not just data but actions coordination, behaviours and new structures. Thus on the prototypes known by a certain Perspective we can build a completely new system of ideas, a completely new concept or set of concepts (objects at programatic level). Thus we can explain from outside to an inside process how it should work not just the predefined structures and actions, we can alter the process flow on the fly depending on other parameters. Each perspective can change any object of the underlying perspectives as it wishes to suit his needs.
Any perspective engine has a set of drivers which bind the perspective into the local system and offers a completely new level of control of local resources. This access must be provided by the perspectives framework. Security is a matter that I will discuss extensively in a future posts, for now I will just point out that users are assimilated to access entities that can be subdivided and part of a bigger entity security will allways be asserted at each perspective level each perspective asesses if the access entity has sufficient authority to access the process. The access entity is transported as a prototype throuout the process as an object. Additionally a perspective might require backcheck of the entity meaning accessing a security checking perspective (LDAP equivalent if you want)
Will continue this answer in the next post hopefully tomorrow