For a good
implementation of REST it is important that systems are at Level3 of richardson
Model. Are you still building systems that scream RPC?
Systems built with current procedure based approaches will not be able to
deliver HATEOAS systems without engineering for it. MasterKube with its unique
interaction oriented software paradigm, deliver HATEOAS systems directly.
Interactions are the primary programming paradigm in MasterKube technology.
Interactions are observations that are observed by a human being or another
computer. MasterKube interaction oriented programming, is specifying which
interactions unfold when a particular interaction is acted on. The exposed
interactions are observed as hypermedia there by delivering HATOEAS system.
Interaction oriented programming is illustrated with a simple Read, Update and Delete application. The application is to edit, delete a contact. The different elements captured are name age and date of birth. Programming is first defining the elements that need to be captured, then organizing these elements into actions that are interacted with. These actions are then sequenced, to give the dynamics of the system. The action sequences are packaged into an agent, so it can be used recursively.
In the above case, edit, delete and view are choreograhped in a choice. The behaviour of the choice operator is that when one of the actions in the <choiceOption> (i.e. View, Edit or Delete) is interacted with then the other actions in the choice options dissappear.
If the Interaction happens on either the Edit or View hyperlink, the values are transfered on the two links and and it repeats the same EditContactAgent again. Because of this repetition of this agent, the same 3 behaviour of edit, view and delete are shown again.
If the interaction happens on the 'Delete' hyperlink, then the action on the optionaction is exposed. As there are no agents or signals, on this optionaction, there are no further observations to be exposed and hence the contact is considered as deleted.