Jump to content

XML Interface for Network Services: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Added some more specification examples (environment list and API)
Added section Competition
Line 66: Line 66:
<function name="Hello"/>
<function name="Hello"/>
</api>
</api>


==Competition==
There are no known products that that provide an integrated approach to specification-oriented development, similar to XINS. However, there are several frameworks and libraries that provide functionality similar to individual parts of XINS, including:

* [[JWSDP]]: Collection of various [[XML]] and [[SOAP]] technologies for the [[Java programming language]]
* [[Apache Axis]]: [[Java programming language|Java]]-based framework for SOAP implementations.
* [[Hessian Web Service Protocol]]: Binary alternative to the XINS standard calling convention.





Revision as of 07:26, 1 February 2006

XINS (XML Interface for Network Services) is an open source technology for definition and implementation of internet applications, which enforces a specification-oriented approach:

  • first specifications need to written;
  • then documentation and code is generated from these specifications;
  • then the testing and implementation can start.


From specifications, XINS is able to generate:

  • HTML documentation
  • test forms
  • SOAP-compliant WSDL
  • a basic Java web application
  • unit test code (in Java)
  • stubs (in Java)
  • client-side code (in Java)


Technically, XINS is composed of the following:

  • An XML-based specification format for projects, APIs, functions, types and error codes
  • A POX-style RPC protocol (called the XINS Standard Calling Convention), compatible with web browsers (HTTP parameters in, XML out).
  • A tool for generating human-readable documentation, from the specifications.
  • A tool for generating WSDL, from the specifications.
  • A Log4J-based technology for logging (called Logdoc), offering a specification format, internationalization of log messages, generation of HTML documentation and generation of code.
  • A Java library for calling XINS functions: the XINS/Java Client Framework; in xins-client.jar.
  • A server-side container for Java-based XINS API implementations: XINS/Java Server Framework; in xins-server.jar. This is like a servlet container for XINS APIs. Since version 1.3.0, it supports not only POX-style calls, but also SOAP and XML-RPC. And it supports conversion using XSLT.
  • A Java library with some common functionality, used by both the XINS/Java Client Framework and the XINS/Java Server Framework: the XINS/Java Common Library, in xins-common.jar.


An introductory tutorial called the XINS Primer takes the reader by the hand with easy-to-follow steps to perform, with screenshots.


XINS is open-source and is distributed under the liberal BSD license.


Specifications

All XINS specification files are plain old XML. Compared to SOAP/WSDL/UDDI the format is extremely simple. There are specifications for projects, environment lists, APIs, functions, types and error codes.

Below is an example of a XINS project definition.

<?xml version="1.0"?>
<!DOCTYPE project PUBLIC "-//XINS//DTD XINS Project 1.3//EN" "http://www.xins.org/dtd/xins-project_1_3.dtd">

<project name="MyProject" domain="com.mycompany">
  <api name="MyAPI">
    <impl/>
    <environments/>
  </api>
</project>

Here is an example of a specification of an environment list:

<?xml version="1.0"?>
<!DOCTYPE environments PUBLIC "-//XINS//DTD Environments 1.3//EN" "http://www.xins.org/dtd/environments_1_3.dtd">

<environments>
  <environment id="netarray" url="http://xins.users.mcs2.netarray.com/myproject/xins/"/>
</environments>

An example of an API specification file:

<?xml version="1.0"?>
<!DOCTYPE api PUBLIC "-//XINS//DTD XINS API 1.3//EN" "http://www.xins.org/dtd/api_1_3.dtd">

<api name="MyAPI">
  <description>My first XINS API</description>
  <function name="Hello"/>
</api>


Competition

There are no known products that that provide an integrated approach to specification-oriented development, similar to XINS. However, there are several frameworks and libraries that provide functionality similar to individual parts of XINS, including:


XINS website

Frequently Asked Questions