XML Interface for Network Services
| Company type | Open-source software framework |
|---|---|
| Industry | Internet software development |
Area served | Internet applications |
| Products | Specification-driven development tools, Java client and server frameworks, logging system |
| Owner | Online Breedband B.V. |
| Website | xins |
XML Interface for Network Services (XINS) represents an open-source framework created by Online Breedband B.V. designed to define and develop internet applications through a specification-centric methodology.
Specification-oriented approach
XINS follows a process driven primarily by specifications:
- Begin by drafting detailed specifications;
- Automatically produce documentation and source code from these documents;
- Continue with implementation and testing based on the generated materials.
From these detailed specifications, XINS can produce:
- HTML-formatted documentation
- interactive test forms
- SOAP-compatible WSDL files
- a foundational Java web application
- unit tests written in Java
- client-side code and stubs in Java
Components of the XINS technology
The XINS framework comprises several elements:
- An XML-based schema for specifying projects, APIs, functions, data types, and error codes
- A POX-style RPC protocol called the "XINS Standard Calling Convention," which supports web browser interaction (HTTP parameters input, XML output)
- Utilities to create user-friendly documentation and WSDL definitions from the specifications
- Logdoc, a logging system built on Log4J featuring internationalized messages, HTML documentation generation, and code production
- The XINS/Java Client Framework (xins-client.jar) designed for invoking XINS functions
- The XINS/Java Server Framework (xins-server.jar), functioning as a servlet-like container for Java-based XINS API implementations
- The XINS/Java Common Library (xins-common.jar), utilized by both client and server frameworks
The introductory tutorial, XINS Primer, assists newcomers with setup procedures supported by illustrative screenshots.
Starting with version 1.3.0, the server framework expanded support to include POX, SOAP, and XML-RPC, along with transformations via XSLT. Version 2.0 further introduced compatibility with JSON and JSON-RPC protocols.
XINS is released under the permissive terms of the BSD license.
Specifications
Specification files in XINS employ straightforward Plain Old XML, providing a simpler alternative to complex standards such as SOAP/WSDL/UDDI. These files define projects, environment configurations, APIs, functions, data types, and error codes.
A sample project declaration in XINS:
<syntaxhighlight lang="xml"> <project name="MyProject" domain="com.mycompany">
<api name="MyAPI"> <impl/> <environments/> </api>
</project> </syntaxhighlight>
An example of an environment list specification:
<syntaxhighlight lang="xml"> <environments>
<environment id="netarray" url="http://xins.users.mcs2.netarray.com/myproject/xins/"/>
</environments> </syntaxhighlight>
Illustration of an API definition:
<syntaxhighlight lang="xml"> <api name="MyAPI">
<description>My first XINS API</description> <function name="Hello"/>
</api> </syntaxhighlight>
Sample function declaration:
<syntaxhighlight lang="xml"> <function name="Hello">
<description>Greets the indicated person.</description>
<input>
<param name="name" required="true">
<description>The name of the person to be greeted.</description>
</param>
</input>
<output>
<param name="greeting" required="true">
<description>The constructed greeting.</description>
</param>
</output>
</function> </syntaxhighlight>
RPC protocol
The XINS Standard Calling Convention represents a straightforward RPC protocol built on HTTP. It accepts input through HTTP parameters and delivers output as an XML document, guaranteeing seamless interaction with standard Web browsers.
Sample request:
http://somehost/someapi/?_convention=_xins-std&_function=SayHello&firstName=John&lastName=Doe
Sample successful response:
<syntaxhighlight lang="xml"> <result>
<param name="greeting">Hello John Doe!</param>
</result> </syntaxhighlight>
Competition
Currently, no products provide a fully integrated specification-driven development methodology like XINS. Other frameworks and libraries tend to specialize in particular areas, such as:
- JWSDP: A collection of XML and SOAP tools designed for Java (programming language).
- Apache Axis: A Java-based framework focused on SOAP implementations.
- Codehaus XFire: Another Java SOAP framework with similar capabilities.
- Hessian Web Service Protocol: A binary protocol serving as an alternative to the XINS Standard Calling Convention.