Jump to content

XML Interface for Network Services

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Ernstdehaan (talk | contribs) at 07:26, 1 February 2006 (Added section Competition). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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