open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
technology for definition and implementation of internet applications, which enforces a specification-oriented approach.
Specification-oriented approach
The specification-oriented approach is at the heart of XINS:
* first specifications need to be written;
* then documentation and code is generated from these specifications;
* then both 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)
Components of the XINS technology
Technically, XINS is composed of the following:
* An XML-based specification format for projects, APIs, functions, types and error codes
* A POX-style
RPC
RPC may refer to:
Science and technology
* Rational polynomial coefficient
* Reactive Plastic Curtain, a carbon-dioxide-absorbing device used in some rebreather breathing sets
* Regional Playback Control, a regional lockout technology for DVDs
* ...
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, the ''XINS/Java Server Framework''; in xins-server.jar. This is like a servlet container for XINS APIs.
* 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 th XINS Primer takes the reader by the hand with easy-to-follow steps to perform, with screenshots.
Since version 1.3.0, the XINS/Java Server Framework supports not only POX-style calls, but also SOAP and XML-RPC. And it supports conversion using
XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subseque ...
. As of version 2.0, it also supports
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
and JSON-RPC.
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/etc. 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.
Here is an example of a specification of an environment list:
An example of an API specification file:
My first XINS API
An example of a function definition:
Greets the indicated person.The name of the person to be greeted.
RPC protocol
The ''XINS Standard Calling Convention'' is a simple HTTP-based RPC protocol. Input consists of HTTP parameters, while output is an XML document. This approach makes it compatible with plain Web browsers.
Example of a request:
http://somehost/someapi/?_convention=_xins-std&_function=SayHello&firstName=John&lastName=Doe{{dead link, date=July 2016 , bot=InternetArchiveBot , fix-attempted=yes
Example of a successful response:
Hello John Doe!
Competition
There are no known products 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-based framework for SOAP implementations.
* Codehaus XFire: Idem.
* Hessian Web Service Protocol: Binary alternative to the XINS Standard Calling Convention.