Warning:
This wiki has been archived and is now read-only.

Semantic Web User Interface Architecture

From Model-based User Interfaces Incubator Group Wiki
Jump to: navigation, search

Semantic Web User Interface Architecture

The RIA Interfaces Description Language sets the basis for the specification of a Computer-Aided User Interfaces Design Tool that provides the automatic code generation and the runtime environment for the RIA interfaces. The Semantic Web User Interface (SWUI) Architecture describes the components and technologies involved in modelling, generating and running the interfaces. [1]

[[Image:Architecture1.PNG|SHDM Interface Architecture]

In short, the SWUI Architecture main components are:

Next we describe how the proposed architecture is realized as a module of the HyperDE framework, the SHDM development environment. The HyperDE RIA Interfaces Module is composed by modelling tools and a runtime environment for the RIA interfaces.

RIA Interfaces Generation

The RIA Interfaces Generator takes an abstract interface description and outputs the translated HTML + RDFa + JSON concrete code. The compilation process performs two tasks. First, it translates a XML abstract widgets description into concrete UI controls. The result is an HTML + RDFa code snippet. It also converts a DSL (Domain Specific Language) rethorical description to a JSON format. RDFa provides semantic annotat==ion for the HTML code. It is used to represent the data binding in the translated code. The following illustrates how a designer defines an abstract interface to display a Person object's set of attributes and the corresponding semantic annotation in the HTML compiled code.

Error creating thumbnail: Unable to save thumbnail to destination

RIA Interfaces Rendering and Execution

The interface code must be sent to the client's browser as an HTML page. The RIA Interfaces Renderer embeds the HTML + RDFa code snippet that represents the concrete interface in the <body> element of an HTML page. But, since the HTML annotated code does not hold the actual content to be displayed, rendering an interface requires sending the data along with the concrete code. In the rendered page, application data is represented as JSON objects, as is the rethorical specification.

The RIA Interfaces Interpreter code is also included in the HTML rendered page. Thus, after the client loads the HTML page, a set of Javascript functions will read the JSON data and create widgets to present them, based on the provided templates. This Javascript library is also responsible for performing the decorations in response to interface transitions and events.

Error creating thumbnail: Unable to save thumbnail to destination

Transactions

The RIA interfaces runtime environment also introduces a message queue-based protocol for asynchronous communication between the model and view layers. Using this architecture, the client is able to consume the partial results of a request processing. This is achieved by the implementation of a Transaction concept, which replaces the traditional request/response cycle between client and server.

In a conventional web application, when the client makes a request, we feel the effect of a synchronous call, i.e., the user has to wait for the page to be refreshed before being able to interact with the application again. On the other hand, Ajax technology allows asynchronous communication between client and server, which prevents the user from having to hold on at each request. However, using transactions, it is possible to achieve an even higher degree of asynchronicity.

A transaction occurs inside the context of an HTTP session, and is represented by a unique identifier, with a FIFO data structure attached. Responses generated by the execution of a query or operation in the model are queued there. The runtime environment needs, therefore, a server side component for the management of transactions. The Transaction Manager handles the generation of identifiers and the insertion/removal of elements in the response queue.

Error creating thumbnail: Unable to save thumbnail to destination

Sending a request characterizes the beginning of a new transaction. However, the method executed by the application does not send a response directly to the client. In fact, it will store the results of its execution in the transaction response queue. In addition, after sending the request, the client starts a loop to consume the results as soon as they become available in the response queue. This makes it possible to track the execution of an action by its partial results – without having to wait until the whole processing has been completed before receiving any return.

Error creating thumbnail: Unable to save thumbnail to destination


Notes:

RDFa - Resource Description Framework in attributes - http://rdfa.info/

JSON - JavaScript Object Notation - http://www.json.org

References

[1] LUNA, A. M. Geração de Interfaces RIA Dirigida por Ontologias. Rio de Janeiro, 2009. Master Dissertation – Pontifícia Universidade Católica do Rio de Janeiro.