Next Big change in computing architecture – Remote Action Interface – RAI

Remote Action Interface (RAI)

[email protected]

As the Internet expands due to the addition of new systems, applications, and users, the need for efficient communication between all of these entities increases. The Remote Action Interface (RAI) architecture achieves loose coupling between Internet entities. Any system that is network addressable is considered an entity. To simplify entity-to-entity communication, it is necessary to abstract away the complexity of the network. By removing network awareness from the implementation layer, the RAI architecture can seamlessly move data from one entity to another. Implementing a solution based on Remote Action Interface (RAI) principles provides entities with the ability to self-manage their own data without human intervention.

Within the RAI Architecture there are three classifications actions, entities and containers. The classifications are organized in a hierarchical tree structure. All leaf nodes are entities, while all paths starting from the root of the tree (domain) are containers.

Behaviour:

The four basic actions that can be performed on an entity are view, delete, update, and add. Additional actions can be derived from these four actions. The data sent to the entity is contained within the xml tags.

Syntax: action@

Entity:

The entity defines at what moment of the actions it will perform. The entity must reside within a container.

Syntax: action@entity

Container:

Containers contain zero or more entities. The classification changes between entity and container depending on how the entity or container is referenced.

Syntax: [email protected]

Definition of RAI

A request is sent to [email protected], the response is a RAI definition, listing all entities and actions.

Implementation of the RAI architecture

RAI server

Today communication and programming are two well differentiated layers. The RAI server functions as a web and mail server, allowing for the merging of the network and deployment layers. The RAI server cannot retain the requester’s status information; therefore, the security access check is performed on every request.

RAI language extension

To support the paradigm shift in computing architecture, programming languages ​​must support embedded communication. Data within the application is passed to the method using the RAI request or the conventional memory stack.

The first interaction directed at an entity is the RAI discovery request sent to [email protected]. The response will contain the RAI Definition of the entity. The RAI definition is simple and universally available to all applicants. The applicant is free to invoke any discovered action. The requester invokes an action by sending a request to [email protected]. The data is sent to the RAI action in the format specified by the RAI definition. The RAI response is the result of a RAI request made by a remote entity. The format of the RAI response is described in the RAI action definition.

Implementation example

Wal-Mart buys products from hundreds of suppliers around the world. Many of Wal-Mart’s suppliers change their mailing address frequently. Every time a supplier changes their mailing address, Wal-Mart must locate the supplier in its supplier database and manually update the address information. Having to manually find and update information costs Wal-Mart time and money. Costs are reduced by implementing a RAI solution. In the following example, Wal-Mart’s initials are requested from fedex each week requesting FedEx to update its mailing address.

RAI definition example

entity FedEx.com

{

entity address.FedEx.com; // entity declaration

public viewing; // action declaration

// input: none

// returns: website

};

entity address.FedEx.com

{

public viewing;

// input: none

// returns: company address information

// 43number>

// street wall

};

Fedex source code

Public [email protected]

{

String street number = “7”;

String name of the street; = “Long tail handling”;

// load data into entity

[email protected] = streetNumber;

[email protected] = streetName;

// de is global variable

// of the variable can contain [email protected]

return from = address.Fedex.com;

}

Walmart source code

Public [email protected]

{

// de is global variable

// since the variable can contain [email protected]

Chain number = street number.from;

String name = streetName.from;

Return;

}

birai

Leave a Reply

Your email address will not be published. Required fields are marked *