Rich Internet Application

from Wikipedia, the free encyclopedia

The term Rich Internet Application ( RIA ; . English "rich Internet application") is not clearly defined or standardized, but from the evolution of the Internet arose and the development of this medium is getting used more often in the course.

As a rule, this term is understood to mean Internet applications that offer a rich (diverse) amount of interaction options with their user interface . In particular, RIAs that run in web browsers are more like dynamic desktop applications than classic (static) websites. An RIA enables the visitor to a website z. B. Drag and Drop , 3D effects, animations and support for various video formats and other media.

Rich Internet applications do not necessarily have to run in the browser, but can also be used as desktop applications, since the environment in which RIAs run is irrelevant for their designation. Rather, the requirements for richness and connection to the Internet must be met.

Identifying features

RIAs can be recognized by the fact that

  • they offer user interfaces that are rich in interaction options,
  • they either communicate via the Internet (for example with servers) or are at least delivered via this.

Examples of extensive interaction options are drag-and-drop capability or usability via key combinations .

properties

Rich Internet applications usually contain more application logic than static web pages that are based on pure HTML , for example . This can lead to an increased loading time the first time it is called. Using techniques such as B. Ajax can, however, noticeably improve performance and usability in contrast to classic web applications .

RIAs also include applications that require third-party technologies (e.g. the Flash player or the Java virtual machine ). These are installed on the local computer. Others are based exclusively on web technologies (such as HTML, CSS , JavaScript, Ajax) that are supported by most popular browsers without additional plugins.

The term Rich Internet Application therefore only describes a concept and not a specific technology. In theory, it would also be possible to use technologies such as B. C / C ++, which were not expressly designed for the creation of RIAs, just create such, as long as the requirements "richness of the user interface" and "connection to the Internet" are met. Nevertheless, the use of special platforms, such as Adobe's AIR or Microsoft Silverlight , makes sense, as these frameworks already come with numerous UI components .

Pure animations do not represent RIAs, as classic requirements such as interactions with the user are missing.

Technologies

Flash or DHTML is often used to create RIAs . However, there are now more and more frameworks and libraries. Some of them are:

Plug-in based

HTML / JavaScript based

Advantages and disadvantages

advantages

  • Often more user-friendly than classic web applications through the use of modern interaction techniques (e.g. drag and drop ).
  • Faster response to user input through local, client-side processing.
  • No "cross-browser issues" (through the use of special RIA frameworks).
  • Reduced server and network load through local calculations.
  • If necessary, access to the local file system and peripherals.
  • Often simple GUI development through extensive UI components that are contained in RIA frameworks (“A lot of WOW! Effect without much effort”).
  • With plug-in-based systems, more performance is possible in contrast to pure DHTML variants. No dependency on the browser's JavaScript engine.

disadvantage

  • Possibly. long download and loading times.
  • Higher resource load on the client computer possible.
  • Sometimes a plug-in needs to be installed.
  • Possibly. Security holes due to installed plug-ins.

Accessibility

Under Accessibility in connection with (web) applications is meant generally the way to do this both without visual perception to read and use to. People with a visual impairment usually use so-called screen readers to have the content read out to them. The interpretation of images is particularly critical because they are not so easy to read out. In the case of classic websites based on HTML, it is therefore important to tag them with the "old" tag (as specified by the W3C in the HTML4 DTD ) which contains a short textual description of what the image shows. A conventional keyboard can be used to navigate within the application, whereby the tab key is of particular importance, as it can be used to jump from one control element (e.g. a button or text input field) to the next.

The consequence of this is:

  • The content of (web) applications must be readable by screen readers.
  • The (web) application must be controllable via the tab key.
  • Images must be described textually.

In terms of RIAs, this means that DHTML -based web applications are often the least accessible. The so-called markup of the page can be easily read by screen readers . Most elements can be jumped to using the tab key. Is the page now also W3C-compliant, i.e. H. Valid according to its DTD definition, it can be described as low-barrier.

However, this is more problematic with plug-in based Rich Internet Applications, since these applications are often delivered in other formats. So z. For example, * .swf containers are used for Flash applications, while * .class and * .jar files are used for JavaFX . This leads to at least two problems:

  • If these files cannot be read as plain text, they cannot be read by screen readers.
  • If the files are readable, this does not necessarily mean that the content can also be interpreted.

The latter case always occurs when the interpreting software (here the screen reader) does not find any markup or other markings in the text that support it in the semantic interpretation of the content.

In practice, the support of plug-in-based RIAs is still implemented in a mixed manner. The most widely used screen reader "Windows Narrator" now supports the parsing of Flash and Silverlight content. However, the navigation must be explicitly adapted by the programmer so that useful jumps within the user interface are possible by pressing the tab key. However, this still happens far too rarely, often due to a lack of time and money.

Search engine optimization

The term search engine optimization (or SEO for short) is understood to mean the optimization of web content so that it can be better found, interpreted and indexed by search engine operators such as Google .

What works well for "ordinary" static web pages is extremely problematic for dynamic content, such as that typically found in RIAs. The reason is that the search engine operator called. "Bots" to send out, the websites crawl should. However, this only works if the content is syntactically readable on the one hand and semantically interpretable on the other.

With dynamic websites this fails because the mentioned bots do not execute any script code that is responsible for controlling the content. A link that dynamically reloads and displays content via Ajax , for example , cannot be read by such a bot. This means that an indexing also fails logically. In the worst case, the website will not even appear in the search results.

In the case of HTML-based web applications, this can be achieved through techniques such as B. Hijax is compensable no longer works with plug-in based RIAs. The reason for this is that so-called deep linking is difficult to implement here. This means the ability to go directly to certain content via a unique URL. Since the website URL generally does not change with plug-in-based RIAs, the content cannot be assigned to a specific address. Furthermore, it is often difficult for search engine bots to open or read proprietary or binary formats, similar to the aforementioned problem with regard to accessibility . The provider Google , for example, now supports the parsing of Flash applications, but other formats (such as those used by Java ) are being ignored. In addition, there is still the problem of the previously mentioned deep linking, unless the programmer has explicitly taken care of it (for example with frameworks such as SWFAddress , which can generate unique addresses for dynamic content by manipulating the current URL with the help of JavaScript).

The alternative of automatically replacing dynamic content with static content if a search bot visits the website is not recommended. On the one hand, this means a considerable amount of additional work and, on the other hand, search engine operators, such as Google, require that no specially adapted version of the page should be delivered for their bots. If this is still the case, it can happen that this content is deleted from the search engine operator's index.

safety

The general rule for all web applications is that they usually run in a so-called sandbox . This means that these applications only have limited rights. Access to the file system or the execution of programs is not possible. However, some technologies, such as Java, support the possibility of obtaining additional rights by presenting a certificate to the user. In this case, the user is shown a dialog asking him to either accept or reject the certificate. If he agrees, he grants the application additional rights on his local system. However, this should only be done if the RIA's source can be classified as absolutely trustworthy.

RIAs that rely on web standards such as HTML and JavaScript can usually be considered relatively secure. Exceptions are security holes in the web browser used or non-technical attacks such as so-called social engineering .

The whole thing is much more problematic with plug-in based RIAs, as these can endanger the user's system through their own security holes. In the worst case, malicious code can be smuggled in and executed through so-called exploits . The sandbox model does not help in this case.

In the past, the Flash platform in particular has regularly attracted negative attention due to serious security deficiencies. This is particularly problematic because there are so many computers that use Flash installed on the web today. Attackers only have to place specially prepared code on their website and lure the user to it. If the user visits this page, the code is injected and, in the worst case, executed.

Trends

Rich Internet Applications are seen as the next generation of software applications. This offers enormous advantages, especially in the intranet , since the current software does not have to be distributed / installed with newer versions. But more and more companies are also using RIAs on the Internet. Business models based on RIAs are often called software as a service or ASP service .

Especially in the areas of mobile devices (e.g. cellular phones) and embedded devices (e.g. navigation systems), the need for more powerful interfaces, standardization and downloadability (without installation) is great. More and more universities are offering courses in game design, interactive design and mobile design.

See also

Web links

Patent literature

United States Patent 7000180: Neil Balthaser, named as inventor in the following links: