Java - JavaScript RPC Technologies

XINS - XML Interface for Network Services

http://xins.sourceforge.net/

XINS is a technology used to define, create and invoke remote APIs. XINS is specification-oriented. When API specifications are written (in XML), XINS will transform them to HTML-based documentation and Java code for both the client- and the server-side. The communication is based on HTTP.

XINS competes with the overcomplex SOAP technology. Main design goals include simplicity, scalability and testability.

XINS is not only a specification technology, but also an application development framework. It offers transaction logging, unique log documentation and active code generation.

In a nutshell: SOA + Java + XML + code_generation - complexity => XINS

JavaScript O Lait

http://jsolait.net/

The goal is to ease JavaScript development by building a library of reusable modules and components and enhancing JavaScript with simpler Class and Module handling mechanisms.

Include modules:

Apache XML-RPC

http://ws.apache.org/xmlrpc/

Apache XML-RPC is a Java implementation of XML-RPC, a popular protocol that uses XML over HTTP to implement remote procedure calls.

Apache XML-RPC was previously known as Helma XML-RPC. If you have code using the Helma library, all you should have to do is change the import statements in your code from helma.xmlrpc.* to org.apache.xmlrpc.*.

XML-RPC

http://www.xmlrpc.com/

It's a spec and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet.

It's remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned.

Direct Web Remoting

https://dwr.dev.java.net/

What DWR does for you:

What DWR does not do for you:

Jakarta Turbine Web Application Framework

http://jakarta.apache.org/turbine/

Turbine is a servlet based framework that allows experienced Java developers to quickly build web applications. Turbine allows you to use personalize the web sites and to use user logins to restrict access to parts of your application.

Turbine is a matured and well established framework that is used as the base of many other projects (like e.g. the excellent Jetspeed 1 Portals framework.

Turbine is an excellent choice for developing applications that make use of a services-oriented architecture. Some of the functionality provided with Turbine includes a security management system, a scheduling service, XML-defined form validation server, and an XML-RPC service for web services. It is a simple task to create new services particular to your application.

Echo

http://www.nextapp.com/products/echo/
Echo is a framework for developing object-oriented, event-driven Web applications. Echo removes the developer from having to think in terms of "page-based" applications and enables him/her to develop applications using the conventional object-oriented and event-driven paradigm for user interface development. Knowledge of HTML, HTTP, and JavaScript is not required.

Echo 2.0.Alpha1 (March 17, 2005)

The first developer release of the Echo 2.0 framework has arrived! Echo2 features a new Ajax-based rendering engine which provides dramatic improvements to both application performance and user-experience.

Echo2 is the next-generation of the Echo Web Framework, a platform for developing web-based applications that approach the capabilities of rich clients. The 2.0 version holds true to the core concepts of Echo while providing dramatic performance, capability, and user-experience enhancements made possible by its new Ajax-based rendering engine.

Java Technology and Web Services

http://java.sun.com/webservices/index.jsp

Web services are Web-based enterprise applications that use open, XML-based standards and transport protocols to exchange data with calling clients. Java 2 Platform, Enterprise Edition (J2EE) provides the APIs and tools you need to create and deploy interoperable Web services and clients.

Java Technology and Web Services is organized into these subcategories:

JSON-RPC-Java

http://oss.metaparadigm.com/jsonrpc/

JSON-RPC-Java is a key piece of Java web application middleware that allows JavaScript DHTML web applications to call remote methods in a Java Application Server (remote scripting) without the need for page reloading (as is the case with the vast majority of current web applications). It enables a new breed of fast and highly dynamic enterprise Java web applications (using similar techniques to Gmail and Google Suggests).

Explanation of standard formats and protocols:

Mozilla's XMLHttpRequest

http://unstable.elemental.com/mozilla/build/latest/mozilla/extensions/dox/interfacensIXMLHttpRequest.html

Mozilla's XMLHttpRequest is modelled after Microsoft's IXMLHttpRequest object.
The goal has been to make Mozilla's version match Microsoft's version as closely as possible, but there are bound to be some differences.

Microsoft's IXMLHTTPRequest

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/63409298-0516-437d-b5af-68368157eae3.asp

Provides client-side protocol support for communication with HTTP servers.

Apache XML Project

http://xml.apache.org/

The goals of the Apache XML Project (part of The Apache Software Foundation) are:

The Apache XML Project currently consists of the following sub- projects, each focused on a different aspect of XML:

Remote Scripting

http://www.ashleyit.com/rs/main.htm

:: getting information from the server without refreshing the page

When traditional web applications exchange data with the server, the current page is replaced, causing a redraw of the display and disruption of application flow. Many applications are forced to be drawn out along a series of wizard steps rather than dealt with on a single form.

While SOAP, XML-RPC, Web Services and .NET are all designed to deal with these issues and others, there still remain many sites who wish to support a wide range of browsers while providing remote procedure call functionality.

Microsoft's Remote Scripting (MSRS) solves this problem by embedding a Java applet in the page to communicate with the server. It provides synchronous and asynchronous remote procedure calls, and works with Netscape 4.x and IE 4+ only on Windows platforms. Because it requires Java, it only works with Windows XP if the optional JVM is loaded. It is designed to work with IIS/ASP on the server side. MSRS is in wide use, mostly on corporate intranets where the client base is predictable. Microsoft has made MSRS freely available.

Javascript Remote Scripting (JSRS) is a client-side javascript library which uses Dynamic HTML elements to make hidden remote procedure calls to the server. It only works asynchronously, but is known to work on Win9x, WinNT/2000, WinXP, Unix/Linux/BSD, and Mac with IE4+, NS4.x, NS6.x, Mozilla, Opera7 and Galeon. There are server-side implementations for ASP, ColdFusion, PerlCGI, PHP,Python, and JSP(servlet). JSRS is in production use on intranet and public sites in Canada, the US, South America, Australia, Europe, and the Middle East. JSRS is free of charge and its source is open and freely available.

RSLite is an extremely lightweight implementation of remote scripting which uses cookies. It is very widely browser-compatible (Opera!) but limited to single calls and small amounts of data. It is also free.

Apache Axis

http://ws.apache.org/axis/

Introduction

Apache Axis is an implementation of the SOAP ("Simple Object Access Protocol") submission to W3C.

From the draft W3C specification:

SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and responses.

This project is a follow-on to the Apache SOAP project.

Please see the Reference Library for a list of technical resources that should prove useful.

Axis 1.2 and beyond

Axis 1.1 has proven itself to be a reliable and stable base on which to implement Java Web Services. There is a very active user community and there a many companies who use Axis for Web Service support in their products.

For Axis 1.2, we are focusing on our document/literal support to better address the WS-I Basic Profile 1.0 and JAX-RPC 1.1 specifications. And we are fixing as many bug as possible.

Other links

Dynamic HTML and XML: The XMLHttpRequest Object

http://developer.apple.com/internet/webcontent/xmlhttpreq.html

Asynchronous JavaScript Technology and XML (AJAX)
With Java 2 Platform, Enterprise Edition

http://java.sun.com/developer/technicalArticles/J2EE/AJAX/

Ajax: A New Approach to Web Applications

http://www.adaptivepath.com/publications/essays/archives/000385.php

Ajax using XMLHttpRequest and Struts

http://www.omnytex.com/articles/xhrstruts/

Use the XMLHttpRequest Object to Post Data

http://www.devx.com/DevX/Tip/17500

Asynchronous JavaScript and XML (AJAX) with Java 2 Enterprise Edition

https://bpcatalog.dev.java.net/nonav/ajax/index.html

Using DWR with Spring and Hibernate Category: Java

http://raibledesigns.com/page/rd?anchor=using_dwr_with_spring_and

For those of you that get bored quickly, [t]here's a movie (QuickTime) of the app's Ajax features.


Other lists

Open Source Web Frameworks in Java

http://java-source.net/open-source/web-frameworks

Web services enabling technologies

http://www.javaskyline.com/webservices/