Client Side Development 2- RIWAs
Rich Internet application
(RIA) which is the Web application which is designed to deliver the same features and
functions associated with desktop applications. A rich internet
application (RIA) usually runs inside a Web browser and does not require
software installation on the client side to work. Rich Internet Applications (RIAs) are very complex Web based
systems. RIAs are encompassed with various types of components, integrated in
diverse ways, making the RIAs more complex systems. Numerous Technologies and
Techniques (TTs), frameworks, libraries, and tools had been introduced over the
last decade for the development of these components of RIAs. However,
these TTs, frameworks, libraries,
and tools do
not improve the fundamental concepts in the
core of the RIAs and the complexity remains
due to the
lack of realization of the abstract architectural formalism of the
RIAs.
The term “Rich Internet Application” had been first used by Jeremy
Allaire at Macromedia, in 2002; introducing their new technology named
“Macromedia Flash MX”, which is a client-side application development platform
with dedicated TTs. As per Jeremy, the RIAs are supposed to have “media rich
power of the traditional desktop with the deployment and content rich nature of
web applications.
Most of the RIAs run their
client portions within an area which is special and isolated of the client
desktop called a sandbox for security purposes. The sandbox limits visibility
and access to the file and operating system on the client to the application
server on the other side of the connection. This approach allows the client
system to handle local activities, calculations, reformatting, lowering the
amount and frequency of client-server traffic, especially when compared to the
client-server implementations built around so-called thin clients.
Key
Features of Rich Web based Application are;
o
Adobe Flash, Flex and
Adobe Integrated Runtime (AIR)
o
Microsoft Silverlight.
o
Curl (an object-oriented
language with embedded HTML markup)
o
Google Gears.
o
Open Laszlo and
WebTop,
o
Oracle Web Center
Different technologies
used to develop the client side components of Rich Web based Application are;
o
Node.js web
development frameworks
ü Node.js is an open source server environment
ü Node.js is free
ü Node.js runs on various platforms (Windows,
Linux, UNIX, Mac OS X, etc.)
ü Node.js uses JavaScript on the server
o
Tensor flow
Tensor Flow is an end-to-end open source platform for
machine learning. It has a comprehensive, flexible ecosystem of tools,
libraries and community resources that lets researchers push the
state-of-the-art in ML and developers easily build and deploy ML powered
applications.
o
Symphony web
application framework.
Symphony is an open-source PHP web application framework, designed for developers who
need a simple and elegant toolkit to create full-featured web
applications. Symphony is
sponsored by SensioLabs. It was developed by Fabien Potencier in 2005.
o
ASP.NET web
application framework- What is ASP.NET?
.NET is a developer platform made up of
tools, programming languages, and libraries for building many different types
of applications.
ASP.NET extends the .NET developer platform with tools and
libraries specifically for building web apps.
Key
Features of Rich Web based Application are;
o
Adobe Flash, Flex and
Adobe Integrated Runtime (AIR)
o
Microsoft Silverlight.
oCurl (an object-oriented
language with embedded HTML markup)
o
Google Gears.
o
Open Laszlo and
WebTop,
Delta Communication-
Rich Communication model of the Rich Web based Application. It is
used to communicate with the server-components,
to exchange only the needful dataset –
for a particular feature executed at the time. Once a page is loaded to the
browser, all the
communications with the
server, for all
the features implemented on that
page, can be done using DC, eliminating page refreshes until the page is refreshed or redirected to another page,
explicitly by the user
or by an
internal component.
Rich Internet
Applications (RIAs) have become popular with their increased
user experience delivered through rich GUIs and faster responses. The key
concept behind the fast responses is the Delta-Communication (DC), which
enables the communication of necessary data between the client and the server
components, in either synchronous or asynchronous modes, supporting both
data-pull and push modes There are various Technologies and Techniques (TTs)
available for developing the DC in RIAs. These TTs have been already discussed
in different forums, and also many tutorials are available to demonstrate the
development of them.
However,
proper comparisons of these TTs are not available towards supporting decision
making in selecting these TTs for the RIA development.
Definition - What
does Synchronous Transmission mean?
Synchronous transmission is a data transfer method which is
characterized by a continuous stream of data in the form of signals which are
accompanied by regular timing signals which are generated by some external
clocking mechanism meant to ensure that both the sender and receiver are
synchronized with each other.
Data are sent as frames or packets in fixed intervals.
Synchronous transmission is transmission of signals in a fixed
interval based on a predefined clocking signal and is meant for constant and
reliable transmission of time-sensitive data such as VoIP and audio/video
streaming.
This method of transmission is used when large amounts of data
need to be transferred quickly since data is transferred in large blocks
instead of individual characters. The data blocks are spaced and grouped in
regular intervals and preceded by synchronous characters that a remote device
decode and use to synchronize the connection between the end points. After
synchronization is complete, the transmission can begin.
Definition - What does Asynchronous Transmission mean?
Asynchronous transmission is the transmission of data in which
each character is a self-contained unit with its own start and stop bits and an
uneven interval between them.
Asynchronous transmission is also referred to as start/stop
transmission.
Asynchronous
transmission uses start and stop bits to signify the beginning and ending bits.
The additional one at the start and end of a transmission alerts the receiver
to the occurrence of the first character and last character. The asynchronous
transmission method is deployed when data is sent as packets as opposed to in a
solid stream. The start and stop bits have opposite polarity, allowing the
receiver to understand when the second packet of information has been sent.
The two main
characteristics specific to asynchronous communication are:
- Every
character is preceded by a start bit and followed by one or more stop bits
- Spaces
between characters are common
SYNCHRONOUS
TRANSMISSION
|
ASYNCHRONOUS
TRANSMISSION
|
|
Meaning
|
Sends data in the
form of blocks or frames
|
Sends 1 byte or
character at a time
|
Transmission Speed
|
Fast
|
Slow
|
Cost
|
Expensive
|
Economical
|
Time Interval
|
Constant
|
Random
|
Gap between the data
|
Absent
|
Present
|
AJAX technique uses the data-pull mode, and supports both
synchronous and asynchronous modes by API. Through experiments we have noted
that the DC technique implemented by
AJAX is the
simplest form of
the DC. Furthermore, the
underlying concept used to implement the AJAX technique can be developed in
other environments –
Like desktop applications –
using other TTs like WS or C#, even without JS and/or XHR object. We have
successfully developed and tested the technique using C#.Net, to develop
a desktop application component, which communicates with server
components using data-pull
DC, asynchronously. Moreover, the
same DC technique is utilized in other
Advanced DC technologies like WS, for the data-pull mode. To denote
the abstract concept
of this simplest implementation of the DC
model, we propose
the term
“Simple Pull Delta-Communication” (SPDC).
Since the
SPCD concept is abstract, it is TTs independent and can be
developed for both browser-based and non-browser-based clients.
One of JavaScript’s greatest strengths is its ability
to make asynchronous requests. AJAX. Microsoft invented Ajax in 1999.AJAX can
be seen as the beginning of the JS based RIA development approach, and it
became a major breakthrough in the web development area (Salva & Laurencot,
2009). After its introduction, developers were learning how to use AJAX to
create desktop-like GUIs in the web applications such as Google Maps; and later
they subsequently used AJAX even to create entire enterprise RIAs (Lawton,
2008). Using the JS’s ability to manipulate the Document Object Model (DOM) in
HTML documents, AJAX achieves and enhances the interoperability capability of
the web applications (Salva & Laurencot, 2009). It should be noted that the
AJAX itself is not a technology, it is a technique; and the technology behind
AJAX is the XHR object with its JS API. The AJAX is a data-pull technique,
employing the traditional request-response model. Combining HTML and CSS with
JS, AJAX has become a powerful tool in RIA development, providing the
fundamental implementation of the DC.
Google made a wide deployment of standards-compliant, cross browser Ajax with Gmail (2004)
and Google Maps (2005). In October 2004 Kayak.com's public beta release was among the
first large-scale e-commerce uses of what their developers at that time called
"the xml http thing".[10] This increased interest in AJAX
among web program developers.
The term Ajax was publicly used on 18 February
2005 by Jesse James Garrett in an article titled Ajax: A New Approach
to Web Applications, based on techniques used on Google pages.
XHR is also known as XMLHttpRequest.
The XMLHttpRequest object was initially defined as part of the
WHATWG’s HTML effort. (Based on Microsoft’s implementation many years prior.)
It moved to the W3C in 2006. Extensions (e.g. progress events and cross-origin
requests) to XMLHttpRequest were developed in a separate
draft (XMLHttpRequest Level 2) until end of 2011, at
which point the two drafts were merged and XMLHttpRequest became a single entity again from a standards
perspective. End of 2012 it moved back to the WHATWG.On Chrome or other browsers, if you were to
inspect any page, you could head over to the Network tab, then notice a sub-tab
called XHR. Within this tab, you could see the status of requests, how long
requests take, and plenty more. Microsoft was working
on a technology
named XMLHTTP in their Exchange 2000 project [18], and it was first
introduced to the world as an ActiveX control in Internet Explorer 5.0 in March
1999 [19], [20]; and later it was called the
XMLHttpRequest (XHR) object,
which has an Application Programmer Interface (API) in
JS. The XMLHttpRequest object can be used to request data from a web server.
The XMLHttpRequest object is a developers dream,
because you can:
- Update
a web page without reloading the page
- Request
data from a server - after the page has loaded
- Receive
data from a server - after the page has loaded
- Send
data to a server - in the background
Simple Pull Delta- Communication is the basic abstract of
Delta-Communication technique, based on the data-pull mode. It describes the simplest
form of data-pull Delta-Communication, based on the
request-response model and this technique is technology independent. AJAX technique as a JS implementation of the
SPDC, which is limited to the browser based applications. XHR
object has the ability to develop the rich communication not only in
asynchronous mode, but also in synchronous mode, since the XHR API contains a
setting to configure the synchronous/asynchronous mode. However, even using the
asynchronous setting of the XHR object, still AJAX features can be developed
and presented to the users to perform DC in synchronous manner, and the mode of
the DC is determined by the way the feature is designed.
In later rich
communication development technologies like WS, a similar setting is not
included, and the developers are given the flexibility to determine, in which mode
the DC should be developed. Based
on these facts, considering the outdated and limited impression of the term “AJAX”,
we propose the term (JS-SPCD), in place of the term “AJAX”. The term JS-SPCS
indicates that it utilizes the SPDC technique, and developed using JS.
When the RIA bus is used all the AJAX requests are directed to a
dedicated file, which is assigned for the RIA Bus. As the system grows, the
developers can maintain separate files for multiple RIA-buses for different
modules. Then the JavaScript in AJAX engine has to use the direct URLs for
these dedicated RIA bus files. There are two drawbacks here 1-there will be
multiple URLs to maintain, 2- the physical addresses of these files are exposed
to anyone which is not a good practice. Using a small PHP code snippet in the
index file the data in the parameter segments can be extracted. According to
the first URL parameter the module can be identified and the
Writing regular AJAX code can be a bit tricky, because different browsers have different syntax for AJAX implementation. This means that you will have to write extra code to test for different browsers. However, the jQuery team has taken care of this for us, so that we can write AJAX functionality with only one single line of code.
jQuery AJAX Methods
jQuery - AJAX load () Method
jQuery load () Method
The jQuery
load ()
method is a simple, but powerful
AJAX method.
The
load ()
method loads data from a server and
puts the returned data into the selected element.
Syntax:
$(selector).load (URL, data, callback);
The required URL parameter specifies the URL you wish to load.
The optional data parameter specifies a set of query string
key/value pairs to send along with the request.
The optional callback parameter is the name of a function to be
executed after the
load ()
method is completed.
Here is the content of our example file: "demo_test.txt":
<h2>jQuery and AJAX is FUN!!!</h2>
<p id="p1">This is some text in a paragraph.</p>
<p id="p1">This is some text in a paragraph.</p>
The following example loads the content of the file
"demo_test.txt" into a specific
<div>
element:
Example
$("#div1").load ("demo_test.txt");
It is also possible to add a jQuery selector to the URL parameter.
The following example loads the content of the element with
id="p1", inside the file "demo_test.txt", into a
specific
<div>
element:
Example
$("#div1").load ("demo_test.txt #p1")
The optional callback parameter specifies a callback function to
run when the load
() method is
completed. The callback function can have different parameters:
- responseTxt - contains the resulting content if the call
succeeds
- statusTxt -
contains the status of the call
- xhr -
contains the XMLHttpRequest object
The following example displays an alert box after the load ()
method completes. If the load () method
has succeeded, it displays "External content loaded successfully!",
and if it fails it displays an error message:
Example
$("button").click(function(){
$("#div1").load("demo_test.txt", function(responseTxt, statusTxt, xhr){
if(statusTxt == "success")
alert("External content loaded successfully!");
if(statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
});
});
$("#div1").load("demo_test.txt", function(responseTxt, statusTxt, xhr){
if(statusTxt == "success")
alert("External content loaded successfully!");
if(statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
});
});
AJAX is the art of exchanging data with a server,
and update parts of a web page - without reloading the whole page. The
following two are the jQuery AJAX methods:
Performs an async AJAX request
|
|
Sets the default values for future AJAX
requests
|
Comments
Post a Comment