Echo (framework)
Encyclopedia
Echo is a web application framework
that was created by the company NextApp. It originally started as a request-response
web application framework that leveraged the Swing
object model to improve the speed of application development. Through the use of the swing model, Echo was able to employ concepts such as components and event-driven programming
that removed much of the pain of web application development
.
based web application platform, "Echo2". This framework built on the concepts of Echo (well known API
, total web abstraction
) but delivered the additional benefit of being an AJAX environment. NextApp believed that this approach brought the framework extremely close to the capabilities of rich clients
. NextApp also claimed that this reincarnation of the Echo framework provided dramatic performance
, capability, and user-experience
enhancements made possible by its new Ajax-based rendering engine
.
objects, with an XML
-based state synchronization protocol between client (web browser) and server. This was developed in tandem with a core javascript framework, providing the ability to define inheritance hierarchies in Javascript
in a way familiar to developers of object-oriented languages.
as both Echo and GWT (among others) offer a programming model that completely abstracts users from the web tier
. However Echo differs substantially from GWT in the way it interacts with JavaScript
. GWT essentially implements a subset of the Java API in Javascript, and as such, Java code is compiled to JavaScript and fully executed on the client side. Echo on the other hand offers since version 3 a dual-stack approach. Applications can be written in JavaScript (Client-side) or Java (Server-side) or in mixed forms.
Comparable frameworks include Vaadin
, RAP
, ZK, Openlaszlo
, Icefaces
, Thinwire
and jSeamless.
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...
that was created by the company NextApp. It originally started as a request-response
Request-response
Request-response or request-reply is one of the basic methods computers use to talk to each other. When using request-response, the first computer requests some data and the second computer responds to the request. Usually there is a series of such interchanges until the complete message is sent. ...
web application framework that leveraged the Swing
Swing (Java)
Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes — an API for providing a graphical user interface for Java programs....
object model to improve the speed of application development. Through the use of the swing model, Echo was able to employ concepts such as components and event-driven programming
Event-driven programming
In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions or messages from other programs or threads.Event-driven programming can also be defined as an...
that removed much of the pain of web application development
Web application development
Web application development is the process and practice of developing web applications.-Risk:Just as with a traditional desktop application, web applications have varying levels of risk. A personal home page is much less risky than, for example, a stock trading web site. For some projects security,...
.
Echo2
In late 2005, NextApp formally announced the release of their new AJAXAjax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
based web application platform, "Echo2". This framework built on the concepts of Echo (well known API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
, total web abstraction
Abstraction (computer science)
In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...
) but delivered the additional benefit of being an AJAX environment. NextApp believed that this approach brought the framework extremely close to the capabilities of rich clients
Fat client
A fat client is a computer in client–server architecture or networks that typically provides rich functionality independent of the central server...
. NextApp also claimed that this reincarnation of the Echo framework provided dramatic performance
Computer performance
Computer performance is characterized by the amount of useful work accomplished by a computer system compared to the time and resources used.Depending on the context, good computer performance may involve one or more of the following:...
, capability, and user-experience
User experience design
User experience design is a subset of the field of experience design that pertains to the creation of the architecture and interaction models that affect user experience of a device or system...
enhancements made possible by its new Ajax-based rendering engine
Layout engine
A web browser engine, , is a software component that takes marked up content and formatting information and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer...
.
Echo3
During 2007, development on a third generation of the framework, Echo3, began. The focus of this evolution was to move away from generating markup on the server side, and instead to implement rendering peers as native JavascriptJavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
objects, with an XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
-based state synchronization protocol between client (web browser) and server. This was developed in tandem with a core javascript framework, providing the ability to define inheritance hierarchies in Javascript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
in a way familiar to developers of object-oriented languages.
Competitors
Echo is often compared to frameworks such as GWT (Google Web Toolkit)Google Web Toolkit
Google Web Toolkit is an open source set of tools that allows web developers to create and maintain complex JavaScript front-end applications in Java. Other than a few native libraries, everything is Java source that can be built on any supported platform with the included GWT Ant build files...
as both Echo and GWT (among others) offer a programming model that completely abstracts users from the web tier
Multitier architecture
In software engineering, multi-tier architecture is a client–server architecture in which the presentation, the application processing, and the data management are logically separate processes. For example, an application that uses middleware to service data requests between a user and a database...
. However Echo differs substantially from GWT in the way it interacts with JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
. GWT essentially implements a subset of the Java API in Javascript, and as such, Java code is compiled to JavaScript and fully executed on the client side. Echo on the other hand offers since version 3 a dual-stack approach. Applications can be written in JavaScript (Client-side) or Java (Server-side) or in mixed forms.
Comparable frameworks include Vaadin
Vaadin
Vaadin is an open source Web application framework for rich Internet applications. In contrast to JavaScript libraries and browser-plugin based solutions, it features a server-side architecture, which means that the majority of the logic runs on the servers. Ajax technology is used at the...
, RAP
Rich AJAX Platform
Rich Ajax Platform Project is an open-source software project under the Eclipse Technology Project which aims to enable software developers to build Ajax-enabled rich Internet applications by using the Eclipse development model, plugins and a Java-only application programming interface...
, ZK, Openlaszlo
OpenLaszlo
OpenLaszlo is an open source platform for the development and delivery of rich Internet applications. It is released under the Open Source Initiative-certified Common Public License ....
, Icefaces
ICEfaces
ICEfaces is an open source Ajax framework that enables Java EE application developers to create and deploy server-based rich Internet application using the Java language....
, Thinwire
ThinWire
ThinWire is an open source, Java based web application framework that uses Ajax techniques to give Web Applications the look and feel of traditional GUI applications...
and jSeamless.
Associated projects
Echo2 has inspired various add-on projects including:- EchoPoint: "Next Generation" (http://echopoint.sourceforge.net not active, last updated 2009-07-17), The most well known 3rd party component library for Echo2
- Cooee frameworkCooee frameworkThe Cooee Web Application Framework is a Java framework for delivering "AJAX", or Web 2.0 applications. Cooee draws its strength by providing developers with a familiar API based on Java Swing whilst also completely abstracting the developer from having any knowledge of the Javascript...
: (http://www.karora.org) A project based around Echo 2 dedicated to the furthering the development of the framework - Echo2Struts: http://echostruts.free.fr/ A struts compatible implementation of Echo2
- Hibernate-Spring-Echo: (http://sourceforge.net/projects/hse/) An effort to provide an out of the box application framework that includes Echo2
- Google maps for Echo2: http://sourceforge.net/projects/googlemaps-echo/
- Google maps v3 for Echo2: https://code.google.com/p/echo2gmap/wiki/Start
- Gantt Charting for Echo2: (http://sourceforge.net/projects/echo2gantt/)
- Echo2Faces: (http://sourceforge.net/projects/echo2faces/) An effort to provide XML markup for Echo2 UI layouts
- Moomba: (http://www.karora.org) A project that implements the Eclipse API for Cooee
- jZeno: (http://www.jzeno.org) A full-stack application framework that uses a highly optimized version of the original Echo framework as rendering engine.
- Aejaks: (http://aejaks.sourceforge.net) A Jacl layer on top of Echo2 to easily create rich web applications.