RIWAs - C.S.D part 2

Hello guys! welcome back to my Programming Applications & Frameworks blog article series. From today's blog, we are going to talk about RIWAs (Rich Internet Web Applications). As you know this is the 2nd part of Client-side development articles. Let's check out.

What are this RIAs and RIWAs?

Rich Internet applications (RIA) are Web-based applications that have some characteristics of graphical desktop applications. Built with powerful development tools, RIAs can run faster and be more engaging. They can offer users a better visual experience and more interactivity than traditional browser applications that use only HTML and HTTP. These are some characteristics of RIA,
  • Direct interaction
  • partial-page updating
  • better feedback
  • consistency of look and feel
  • offline use
  • performance impact


Rich Internet Web Application is a Web application that has many of the characteristics of desktop application software, typically delivered by way of a site-specific browser, a browser plug-in, an independent sandbox, extensive use of JavaScript, or a virtual machine. The concept is closely related to a single-page application and may allow the user interactive features such as drag and drop, background menu, WYSIWYG editing, etc. HTML5 is a current standard for delivering rich web applications, supported by all major browsers.

Do you know the features of RIWA?

  • Performance - RIAs can often perform better than traditional applications on the basis of the characteristics of network and applications, the performance of server also improved by offloading possible processing work to the client system and also perceived performance in terms of UI responsiveness and smoother visual transitions and animations are key aspects of any RIA.
  • Offline use - When connectivity is unavailable, it might still be possible to use an RIA. An RIA platform lets the user work with the application without connecting to the Internet and synchronizing it automatically when the user goes live.
  • Consistency of look and feel - With RIA tools, the user interface and experience with different browsers, devices, and operating systems can be more carefully controlled and made consistent.
  • Security - RIAs should be as secure as any other web application, and the framework should be well equipped to enforce limitations appropriately when the user lacks the required privileges, especially when running within a constrained environment such as a sandbox.
  • Advanced Communications - Sophisticated communications with supporting servers through optimized network protocols can considerably enhance the user experience.
  • Rapid Development - An RIA Framework should facilitate the rapid development of rich user experience through its easy-to-use interfaces in ways that help developers.
  • Direct Interaction - An RIA can use a wider range of controls that allow greater efficiency and enhance the user experience. In RIAs, for example, users can interact directly with page elements through editing or drag-and-drop tools. They can also do things like pan across a map or other image.
  • Better Feedback - Because of their ability to change parts of pages without reloading, RIAs can provide the user with fast and accurate feedback, real-time confirmation of actions and choices, and informative and detailed error messages.
  • Improved Features - RIA allows programmers to embed various functionalities in graphics-based web pages that look fascinating and engaging like desktop applications. RIA provides complex application screens on which various mixed media, including different fonts, vector graphic and bitmap files online conferencing, etc. are paused by using different modern development tools.
  • Partial-page updating - RIAs incorporate additional technologies, such as real-time streaming, high-performance client-side virtual machines, and local caching mechanisms that reduce latency (wait times) and increase responsiveness.

RIA technologies with standard internet applications

Traditional Web applications are mainly focused on client/server with a client serving only as a terminal to display or enter data. All requests in the process of using software must be submitted and done on the server. After filling the request the server will automatically send the data back to the client’s computer that displays the contents of the back page. Data loading cause a significant reduction in server load and the effective use of Internet link. Data is collected on a selective basis only in case of a clear demand.
Applications based on the RIA model differ from its predecessors, primarily:
  • eliminate the need for a full-screen refresh when fetching new data from the Server
  • One-screen presentation of data, which makes all the elements on the screen form a coherent whole and new items appear without having to re-download the data that had already been sent
  • Often characterized by the interface which is enriched with elements of animation and video and much more functionality
It is hard to determine a precise definition that allows, without any doubts, to arrange a given application as the RIA. However, such applications have a characteristic feature in Web applications. They introduce an additional kind of software functioning between the server and the final visualization of the client Website. The Client Engine is a useful element in communicating with the Terminal Server Client which is usually taken at the beginning of your session. It functions as an additional browser, which takes over the function of data processing, communications with the server and the presentation of data using the same computing power for the client computer.

What is this synchronous and asynchronous communication?

Serial Transmission data is sent bit by bit, in such a way that each bit follows another. It is of two types namely, Synchronous and Asynchronous Transmission. One of the major differences is that in Synchronous Transmission, the sender and receiver should have synchronized clocks before data transmission. Whereas Asynchronous Transmission does not require a clock but it adds a parity bit to the data before transmission.


Synchronous Transmission -

In Synchronous Transmission, data flows in a full-duplex mode in the form of blocks or frames. Synchronization between the sender and receiver is necessary so that the sender knows where the new byte starts (since there is no gap between the data). Synchronous Transmission is efficient, reliable and is used for transferring a large amount of data. It provides real-time communication between connected devices. Chat Rooms, Video Conferencing, telephonic conversations, as well as face to face interactions, are some of the examples of Synchronous Transmission.

Asynchronous Transmission -

In Asynchronous Transmission data flows in a half-duplex mode, 1 byte or a character at a time. It transmits the data in a continuous stream of bytes. In general, the size of a character set is 8 bits to which a parity bit is added i.e. a start and a stop bit that gives the total of 10 bits. It does not require a clock for synchronization; rather it uses the parity bits to tell the receiver how to interpret the data. It is simple, fast, economical and does not require a 2-way communication. Letters, emails, forums, televisions, and radios are some of the examples of Asynchronous Transmission.

Let's get to know about XHR & AJAX

Abbreviated as XHR, XMLHttpRequest is a set of APIs that can be used by Web browser scripting languages, such as JavaScript to transfer XML and other text data to and from a Web server using HTTP. XMLHttpRequest works by establishing a communication channel between a Web page's client-side and server-side. XMLHttpRequest can be used to fetch data in a number of formats including XML, HTML, JSON or plain text.  Examples of applications using XMLHttpRequest include Google Gmail and Google Maps. Browsers that support XMLHttpRequest include newer versions of Internet Explorer, Mozilla, and Safari. Take an application like Instagram or Pinterest for example. How is it that I can continue scrolling forever and ever, without a page reload, and content continues to show up? What’s happening behind the scenes is this asynchronous request to a server that does not end up disturbing the user? Around 2005 (when the term AJAX was coined), this was pretty revolutionary. Since then, new technologies have been built on top of older ones to create a more useful, faster web.

Difference between xmlhttprequest and $.ajax() is same as one main difference between javascript and Jquery “Cross-Browser” Compatibility XMLHttpRequest is raw object for ajax request. It is the lightest performance wise but it is not cross-browser compatible so using this you will lose cross-browser accessibility for your Asynchronous request while $.ajax() is provided by jquery that adds cross-browser compatibility to the asynchronous request

Variation of the jQuery ajax() function

Sometimes, we need more control over the Ajax calls we want to make. For example, we want to specify what should happen in case an Ajax call fails or we need to perform an Ajax request but its result is only needed if retrieved within a certain amount of time. In such situations, we can rely on another function provided by jQuery, called $.ajax(). The jQuery $.ajax() function is used to perform an asynchronous HTTP request. It was added to the library a long time ago, existing since version 1.0. The $.ajax() function is what every function discussed in the previously mentioned article calls behind the scene using a preset configuration. The signatures of this function are shown below:

  • $.ajax(url[, options])
  • $.ajax([options])

The URL parameter is a string containing the URL you want to reach with the Ajax call, while options is an object literal containing the configuration for the Ajax request. In its first form, this function performs an Ajax request using the URL parameter and the options specified in options. In the second form, the URL is specified in the options parameter, or can be omitted in which case the request is made to the current page.

That's all about Rich Internet Web Applications blog article and hope to see you with another interesting topic of Programming Applications & Frameworks. Thank you all for reading and wish you all the best.


References:-

Comments

Popular Posts