Rich Internet Application
Rich Internet application
- Plug-ins :
Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform. Initially developed by Macromedia and then acquired by Adobe Systems, Flex was donated by Adobe to the Apache Software Foundation in 2011.
Java applets are used to create interactive visualizations and to present video, three dimensional objects and other media. Java applets are more appropriate for complex visualizations that require significant programming effort in high level language or communications between applet and originating server.
JavaFX is a software platform for creating and delivering rich Internet applications (RIAs) that can run across a wide variety of connected devices. The current release (JavaFX 2.2, August 2012) enables building applications for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned. Java FX runs as plug-in Java Applet or via Webstart.
Silverlight was proposed by Microsoft as another proprietary alternative. The technology has not been widely accepted and, for instance, lacks support on many mobile devices. Some examples of application were video streaming for events including the 2008 Summer Olympics in Beijing, the 2010 Winter Olympics in Vancouver, and the 2008 conventions for both major political parties in the United States. Silverlight is also used by Netflix for its instant video streaming service.
GWT ( Google Web Toolkit )
- Characteristics :
RIAs present indexing challenges to Web search engines, but Adobe Flash content is now at least partially indexable. Security can improve over that of application software (for example through use of sandboxes and automatic updates), but the extensions themselves remain subject to vulnerabilities and access is often much greater than that of native Web applications. For security purposes, most RIAs run their client portions within a special isolated area of the client desktop called a sandbox. The sandbox limits visibility and access to the file-system and to the 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 and so forth, thereby lowering the amount and frequency of client-server traffic, especially versus client-server implementations built around so-called thin clients.
- New Trends :
In November 2011, there were a number of announcements that demonstrated a decline in demand for rich internet application architectures based on plug-ins in order to favor HTML5 alternatives. Adobe announced that Flash would no longer be produced for mobile or TV (refocusing its efforts on Adobe AIR). Pundits questioned its continued relevance even on the desktop and described it as "the beginning of the end". RIM announced that it would continue to develop Flash for the PlayBook, a decision which has been described as "RIM's worst decision to date". Rumors state that Microsoft is to abandon Silverlight after version 5 is released. The combination of these announcements had some proclaiming it "the end of the line for browser plug-ins".
- History :
The term "rich Internet application" was introduced in a white paper of March 2002 by Macromedia (now merged into Adobe), though the concept had existed for a number of years earlier under names such as:
- Rich (Web) clients
- Rich Web application
- Design, distribution, cost
Rich Internet applications use a Rich Client deployment model (deployment of a compiled client application through a browser) rather than a thin-client-server model (where the user's view is largely controlled from the server).
Flash, Silverlight and Java are application platforms accessed by the user's web browser as plug-ins. These application platforms limit the amount of data downloaded during initialization to only what is necessary to display the page. The browser plug-in is only downloaded once, and does not need to be re-downloaded every time the page is displayed; this reduces application load time, bandwidth requirements, and server load.
Proponents of RIAs assert that the cost of RIA development and O&M is typically lower than that of HTML-based alternatives due to increased developer productivity and standardized, backwards compatible nature of the application platform runtime environments. A 2010 study conducted by International Data Corporation demonstrated an average savings of approximately $450,000 per application in the case of Flash platform development (in conjunction with use of the open source Flex SDK), a 39% reduction in cost over a three-year period.
Web-oriented architecture (WOA) is a style of software architecture that extends service-oriented architecture (SOA) to web-based applications, and is sometimes considered to be a light-weight version of SOA. WOA is also aimed at maximizing the browser and server interactions by use of technologies such as REST and POX.
The axioms of web architecture describe the basic building blocks of the Web (URIs) and how they can be combined into a wider system.
- Axiom 0: Universality 1 - Any resource anywhere can be given a URI.
- Axiom 0a: Universality 2 - Any resource of significance should be given a URI.
- Axiom 1: Global scope - It doesn't matter to whom or where you specify that URI, it will have the same meaning.
- Axiom 2a: sameness - a URI will repeatably refer to "the same" thing.
- Axiom 2b: identity - of URIs clears up the vagueness of 2a and is that - the significance of identity for a given URI is determined by the person who owns the URI, who first determined what it points to.
- Axiom 3: nonunique - URI space does not have to be the only universal space.
Plain Old XML
Plain Old XML (POX) is the basic XML, sometimes mixed in with other, blendable specifications like XML Namespaces, Dublin Core, XInclude and XLink. This contrasts with complicated, multilayered XML specifications like those for web services or RDF. The term may have been derived from or inspired by the expression plain old telephone service (a.k.a. POTS) and, similarly Plain Old Java Object (POJO).
An interesting question is how POX relates to XML Schema. On the one hand, POX is completely compatible with XML Schema. However, many POX users eschew XML Schema to avoid the poor or inconsistent quality of XML Schema-to-Java tools.
POX is complementary to REST: REST refers to a communication pattern, while POX refers to an information format style.
The primary competitors to POX are more strictly-defined XML-based information formats such as RDF and SOAP section 5 encoding, as well as general non-XML information formats such as JSON and CSV.
Representational State Transfer
Representational state transfer (REST) is a style of software architecture for distributed systems such as the World Wide Web. REST has emerged as a predominant web API design model.
The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation. Fielding is one of the principal authors of the Hypertext Transfer Protocol (HTTP) specification versions 1.0 and 1.1
The REST architectural style was developed by W3C Technical Architecture Group (TAG) in parallel with HTTP/1.1, based on the existing design of HTTP/1.0. The World Wide Web represents the largest implementation of a system conforming to the REST architectural style.
REST-style architectures conventionally consist of clients and servers. Clients initiate requests to servers; servers process requests and return appropriate responses. Requests and responses are built around the transfer of representations of resources. A resource can be essentially any coherent and meaningful concept that may be addressed. A representation of a resource is typically a document that captures the current or intended state of a resource.
The client begins sending requests when it is ready to make the transition to a new state. While one or more requests are outstanding, the client is considered to be in transition. The representation of each application state contains links that may be used the next time the client chooses to initiate a new state-transition.
Key goals of REST include :
- Scalability of component interactions
- Generality of interfaces
- Independent deployment of components
Intermediary components to reduce latency, enforce security and encapsulate legacy systems
REST has been applied to describe the desired web architecture, to help identify existing problems, to compare alternative solutions, and to ensure that protocol extensions would not violate the core constraints that make the Web successful.
Fielding describes REST's effect on scalability thus :
REST's client - server separation of concerns simplifies component implementation, reduces the complexity of connector semantics, improves the effectiveness of performance tuning, and increases the scalability of pure server components. Layered system constraints allow intermediaries , proxies, gateways, and firewalls , to be introduced at various points in the communication without changing the interfaces between components, thus allowing them to assist in communication translation or improve performance via large-scale, shared caching. REST enables intermediate processing by constraining messages to be self-descriptive: interaction is stateless between requests, standard methods and media types are used to indicate semantics and exchange information, and responses explicitly indicate cacheability.
The REST architectural style describes the following six constraints applied to the architecture, while leaving the implementation of the individual components free to design:
A uniform interface separates clients from servers. This separation of concerns means that, for example, clients are not concerned with data storage, which remains internal to each server, so that the portability of client code is improved. Servers are not concerned with the user interface or user state, so that servers can be simpler and more scalable. Servers and clients may also be replaced and developed independently, as long as the interface between them is not altered.
The client-server communication is further constrained by no client context being stored on the server between requests. Each request from any client contains all of the information necessary to service the request, and any session state is held in the client.
As on the World Wide Web, clients can cache responses. Responses must therefore, implicitly or explicitly, define themselves as cacheable, or not, to prevent clients reusing stale or inappropriate data in response to further requests. Well-managed caching partially or completely eliminates some client–server interactions, further improving scalability and performance.
A client cannot ordinarily tell whether it is connected directly to the end server, or to an intermediary along the way. Intermediary servers may improve system scalability by enabling load-balancing and by providing shared caches. They may also enforce security policies.
Code on demand (optional)
The uniform interface between clients and servers, discussed below, simplifies and decouples the architecture, which enables each part to evolve independently. The four guiding principles of this interface are detailed below.
The only optional constraint of REST architecture is "code on demand". One can characterise applications conforming to the REST constraints described in this section as "RESTful". If a service violates any of the required constraints, it cannot be considered RESTful.
Complying with these constraints, and thus conforming to the REST architectural-style, enables any kind of distributed hypermedia system to have desirable emergent properties, such as performance, scalability, simplicity, modifiability, visibility, portability, and reliability.
Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: presented with a network of Web pages (a virtual state-machine), the user progresses through an application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use.
REST was initially described in the context of HTTP, but it is not limited to that protocol. RESTful architectures may be based on other Application Layer protocols if they already provide a rich and uniform vocabulary for applications based on the transfer of meaningful representational state. RESTful applications maximize the use of the existing, well-defined interface and other built-in capabilities provided by the chosen network protocol, and minimize the addition of new application-specific features on top of it.
Vocabulary re-use vs. its arbitrary extension: HTTP and SOAP
In addition to URIs; Internet media types; request and response codes; etc., HTTP has a vocabulary of operations called request methods, most notably:
REST uses these operations and other existing features of the HTTP protocol. For example, layered proxy and gateway components perform additional functions on the network, such as HTTP caching and security enforcement.
SOAP RPC over HTTP, on the other hand, encourages each application designer to define new, application specific operations that supplant HTTP operations. An example could be :
- getNewUsersSince(date SinceDate)
- savePurchaseOrder(string CustomerID, string PurchaseOrderID)
This additive, "re-invention of the wheel" vocabulary - defined on the spot and subject to individual judgment or preference — disregards many of HTTP's existing capabilities, such as authentication, caching, and content-type negotiation. The advantage of SOAP over REST comes from this same limitation: since it does not take advantage of HTTP conventions, SOAP works equally well over raw TCP, named pipes, message queues, etc.
Guiding principles of the interface
- The uniform interface that any REST interface must provide is considered fundamental to the design of any REST service. Identification of resources
- Individual resources are identified in requests, for example using URIs in web-based REST systems. The resources themselves are conceptually
- separate from the representations that are returned to the client. For example, the server does not send its database, but rather, perhaps,
- some HTML, XML or JSON that represents some database records expressed, for instance, in Swahili and encoded in UTF-8, depending on the details of the request and the server implementation.
Manipulation of resources through these representations
When a client holds a representation of a resource, including any metadata attached, it has enough information to modify or delete the resource on the server, provided it has permission to do so.
Each message includes enough information to describe how to process the message. For example, which parser to invoke may be specified by an Internet media type (previously known as a MIME type). Responses also explicitly indicate their cacheability. Hypermedia as the engine of application state
Clients make state transitions only through actions that are dynamically identified within hypermedia by the server (e.g., by hyperlinks within hypertext). Except for simple fixed entry points to the application, a client does not assume that any particular action is available for any particular resources beyond those described in representations previously received from the server.
An important concept in REST is the existence of resources (sources of specific information), each of which is referenced with a global identifier (e.g., a URI in HTTP). In order to manipulate these resources, components of the network (user agents and origin servers) communicate via a standardized interface (e.g., HTTP) and exchange representations of these resources (the actual documents conveying the information). For example, a resource that represents a circle (as a logical object) may accept and return a representation that specifies a center point and radius, formatted in SVG, but may also accept and return a representation that specifies any three distinct points along the curve (since this also uniquely identifies a circle) as a comma-separated list.
Any number of connectors (e.g., clients, servers, caches, tunnels, etc.) can mediate the request, but each does so without "seeing past" its own request (referred to as "layering", another constraint of REST and a common principle in many other parts of information and networking architecture). Thus, an application can interact with a resource by knowing two things: the identifier of the resource and the action required , it does not need to know whether there are caches, proxies, gateways, firewalls, tunnels, or anything else between it and the server actually holding the information. The application does, however, need to understand the format of the information (representation) returned, which is typically an HTML, XML, or JSON document of some kind, although it may be an image, plain text, or any other content.
RESTful web APIs
A RESTful web API (also called a RESTful web service) is a web API implemented using HTTP and REST principles. It is a collection of resources, with four defined aspects :
- the base URI for the web API, such as http://example.com/resources/
- the Internet media type of the data supported by the web API. This is often JSON but can be any other valid Internet media type provided that
- it is a valid hypertext standard.
- the set of operations supported by the web API using HTTP methods (e.g., GET, PUT, POST, or DELETE).
- The API must be hypertext driven.
Web content is the textual, visual or aural content that is encountered as part of the user experience on websites. It may include, among other things: text, images, sounds, videos and animations.
In Information Architecture for the World Wide Web, Lou Rosenfeld and Peter Morville write, "We define content broadly as 'the stuff in your Web site.' This may include documents, data, applications, e-services, images, audio and video files, personal Web pages, archived e-mail messages, and more. And we include future stuff as well as present stuff."
Beginnings of web content
While the Internet began with a U.S. Government research project in the late 1950s, the web in its present form did not appear on the Internet until after Tim Berners-Lee and his colleagues at the European laboratory (CERN) proposed the concept of linking documents with hypertext. But it was not until Mosaic, the forerunner of the famous Netscape Navigator, appeared that the Internet become more than a file serving system.
The use of hypertext, hyperlinks and a page-based model of sharing information, introduced with Mosaic and later Netscape, helped to define web content, and the formation of websites. Largely, today we categorize websites as being a particular type of website according to the content a website contains.
The Page Concept
Web content is dominated by the "page" concept, its beginnings in an academic settings, and in a setting dominated by type-written pages, the idea of the web was to link directly from one academic paper to another academic paper. This was a completely revolutionary idea in the late 1980s and early 1990s when the best a link could be made was to cite a reference in the midst of a type written paper and name that reference either at the bottom of the page or on the last page of the academic paper.
When it was possible for any person to write and own a Mosaic page, the concept of a "home page" blurred the idea of a page. It was possible for anyone to own a "Web page" or a "home page" which in many cases the website contained many physical pages in spite of being called "a page". People often cited their "home page" to provide credentials, links to anything that a person supported, or any other individual content a person wanted to publish.
Even though "the web" may be the resource we commonly use to "get to" particular locations online, many different protocols are invoked to access embedded information. When we are given an address, such as http://www.youtube.com, we expect to see a range of web pages, but in each page we have embedded tools to watch "video clips".
HTML web content
Even though we may embed various protocols within web pages, the "web page" composed of "html" (or some variation) content is still the dominant way whereby we share content. And while there are many web pages with localized proprietary structure (most usually, business websites), many millions of websites abound that are structured according to a common core idea.
Blogs are a type of website that contain mainly web pages authored in html (although the blogger may be totally unaware that the web pages are composed using html due to the blogging tool that may be in use). Millions of people use blogs online; a blog is now the new "home page", that is, a place where a persona can reveal personal information, and/or build a concept as to who this persona is. Even though a blog may be written for other purposes, such as promoting a business, the core of a blog is the fact that it is written by a "person" and that person reveals information from her/his perspective.
Search engine sites are composed mainly of html content, but also has a typically structured approach to revealing information. A search engine results page (SERP) displays a heading, usually the name of the search engine, and then a list of websites and their addresses. What is being listed are the results from a query that may be defined as keywords. The results page lists webpages that are connected in some way with those keywords used in the query.
Discussion boards are sites composed of "textual" content organized by html or some variation that can be viewed in a web browser. The driving mechanism of a discussion board is the fact that users are registered and once registered can write posts. Often a discussion board is made up of posts asking some type of question to which other users may provide answers to those questions.
Ecommerce sites are largely composed of textual material and embedded with graphics displaying a picture of the item(s) for sale. However, there are extremely few sites that are composed page-by-page using some variant of HTML. Generally, webpages are composed as they are being served from a database to a customer using a web browser. However, the user sees the mainly text document arriving as a webpage to be viewed in a web browser. Ecommerce sites are usually organized by software we identify as a "shopping cart".
A wider view of web content
While there are many millions of pages that are predominantly composed of HTML, or some variation, in general we view data, applications, E-Services, images (graphics), audio and video files, personal web pages, archived e-mail messages, and many more forms of file and data systems as belonging to websites and web pages.
While there are many hundreds of ways to deliver information on a website, there is a common body of knowledge of search engine optimization that needs to be read as an advisory of ways that anything but text should be delivered. Currently search engines are text based and are one of the common ways people using a browser locate sites of interest.
Content is king
This section may contain original research. Please improve it by verifying the claims made and adding inline citations. Statements consisting only of original research may be removed. (August 2010)
The phrase can be interpreted to mean that - without original and desirable content, or consideration for the rights and commercial interests of content creators - any media venture is likely to fail through lack of appealing content, regardless of other design factors.
Content can mean any creative work, such as text, graphics, images or video.
"Content is King" is a current meme when organizing or building a website (although Andrew Odlyzko in "Content is Not King" argues otherwise). Text content is particularly important for search engine placement. Without original text content, most search engines will be unable to match search terms to the content of a site.
Because websites are often complex, a term "content management" appeared in the late 1990s identifying a method or in some cases a tool to organize all the diverse elements to be contained on a website. Content management often means that within a business there is a range of people who have distinct roles to do with content management, such as content author, editor, publisher, and administrator. But it also means there may be a content management system whereby each of the different roles are organized whereby to provide their assistance in operating the system and organizing the information for a website.
Even though a business may organize to collect, contain and represent that information online, content needs organization in such a manner to provide the reader (browser) with an overall "customer experience" that is easy to use, the site can be navigated with ease, and the website can fulfill the role assigned to it by the business, that is, to sell to customers, or to market products and services, or to inform customers.
Geo targeting of web content
Geo targeting of web content in internet marketing and geo marketing is the method of determining the geolocation (the physical location) of a website visitor with geolocation software and delivering different content to that visitor based on his or her location, such as country, region/state, city, metro code/zip code, organization, Internet Protocol (IP) address, ISP or other criteria.
Different content by choice
A typical example for different content by choice in geo targeting is the FedEx website at FedEx.com where users have the choice to select their country location first and are then presented with different site or article content depending on their selection.
Automated different content
With automated different content in internet marketing and geomarketing the delivery of different content based on the geographical geolocation and other personal information is automated.
- RIA Applications
- Php Solutions
- Lamp Solutions
- Dotnet Solutions
- J2ee Solutions
- Portal Solutions
- Joomla - Mvc
- Struts 1.3
- Struts 2.0
- Java Server Faces
- Spring Mvc
- Spring Webflow
- Ruby on Rails
- Moo Tools
- Adobe Flex
- Yahoo! User Interface Library (YUI)
- GWT (Googel Web Toolkit)
- SEO Optimization
- SEO Branding
- SEO Consulting
- PPC (Pay Per Click )
- SMS Service
- Web Hosting
A solid working knowledge of productivity software and other IT tools has become a basic foundation for success in virtually any career. Beyond that, however, I don't think you can overemphasise the importance of having a good background in maths and science.....
"Every software system needs to have a simple yet powerful organizational philosophy (think of it as the software equivalent of a sound bite that describes the system's architecture)... A step in thr development process is to articulate this architectural framework, so that we might have a stable foundation upon which to evolve the system's function points. "
"All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change"
"The ultimate measurement is effectiveness, not efficiency "
"It is argued that software architecture is an effective tool to cut development cost and time and to increase the quality of a system. "Architecture-centric methods and agile approaches." Agile Processes in Software Engineering and Extreme Programming.
"Java is C++ without the guns, knives, and clubs "
"When done well, software is invisible"
"Our words are built on the objects of our experience. They have acquired their effectiveness by adapting themselves to the occurrences of our everyday world."
"I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby. "
"The best way to predict the future is to invent it."
"In 30 years Lisp will likely be ahead of C++/Java (but behind something else)"
"Possibly the only real object-oriented system in working order. (About Internet)"
"Simple things should be simple, complex things should be possible. "
"Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines."
"Model Driven Architecture is a style of enterprise application development and integration, based on using automated tools to build system independent models and transform them into efficient implementations. "
"The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs. "
"Software Engineering Economics is an invaluable guide to determining software costs, applying the fundamental concepts of microeconomics to software engineering, and utilizing economic analysis in software engineering decision making. "
"Ultimately, discovery and invention are both problems of classification, and classification is fundamentally a problem of finding sameness. When we classify, we seek to group things that have a common structure or exhibit a common behavior. "
"Perhaps the greatest strength of an object-oriented approach to development is that it offers a mechanism that captures a model of the real world. "
"The entire history of software engineering is that of the rise in levels of abstraction. "
"The amateur software engineer is always in search of magic, some sensational method or tool whose application promises to render software development trivial. It is the mark of the professional software engineer to know that no such panacea exist "
Core Values ?Agile And Scrum Based Architecture
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration.....more
Core Values ?Total quality management
Total Quality Management / TQM is an integrative philosophy of management for continuously improving the quality of products and processes. TQM is based on the premise that the quality of products and .....more
Core Values ?Design that Matters
We are more than code junkies. We're a company that cares how a product works and what it says to its users. There is no reason why your custom software should be difficult to understand.....more
Core Values ?Expertise that is Second to None
With extensive software development experience, our development team is up for any challenge within the Great Plains development environment. our Research works on IEEE international papers are consider....more
Core Values ?Solutions that Deliver Results
We have a proven track record of developing and delivering solutions that have resulted in reduced costs, time savings, and increased efficiency. Our clients are very much ....more
Core Values ?Relentless Software Testing
We simply dont release anything that isnt tested well. Tell us something cant be tested under automation, and we will go prove it can be. We create tests before we write the complementary production software......more
Core Values ?Unparalled Technical Support
If a customer needs technical support for one of our products, no-one can do it better than us. Our offices are open from 9am until 9pm Monday to Friday, and soon to be 24hours. Unlike many companies, you are able to....more
Core Values ?Impressive Results
We have a reputation for process genius, fanatical testing, high quality, and software joy. Whatever your business, our methods will work well in your field. We have done work in Erp Solutions ,e-commerce, Portal Solutions,IEEE Research....more
Why Choose Us ?
The intellectual commitment of our development team is central to the leonsoft ability to achieve its mission: to develop principled, innovative thought leaders in global communities.Read More
Today's most successful enterprise applications were once nothing more than an idea in someone's head. While many of these applications are planned and budgeted from the beginning.Read More
We constantly strive to redefine the standard of excellence in everything we do. We encourage both individuals and teams to constantly strive for developing innovative technologies....Read More
If our customers are the foundation of our business, then integrity is the cornerstone. Everything we do is guided by what is right. We live by the highest ethical standards.....Read More