XML Interface for Network Services
Encyclopedia
XML Interface for Network Services (XINS) is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 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
    HTML
    HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

     documentation
  • test forms
  • SOAP
    SOAP
    SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...

    -compliant WSDL
    Web Services Description Language
    The Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...

  • a basic Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

     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
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

    -based specification format for projects, API
    Application programming interface
    An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

    s, functions, types and error codes
  • A POX
    Plain Old XML
    Plain Old XML is a term used to describe basic XML, sometimes mixed in with other, blendable specifications like XML Namespaces, Dublin Core, XInclude and XLink. People typically use the term as a contrast with complicated, multilayered XML specifications like those for web services or RDF...

    -style RPC
    Remote procedure call
    In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...

     protocol (called the XINS Standard Calling Convention), compatible with web browsers (HTTP
    Hypertext Transfer Protocol
    The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

     parameters in, XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     out).
  • A tool for generating human-readable documentation, from the specifications.
  • A tool for generating WSDL
    Web Services Description Language
    The Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...

    , from the specifications.
  • A Log4J
    Log4j
    Apache log4j is a Java-based logging utility. It was originally written by Ceki Gülcü and is now a project of the Apache Software Foundation. log4j is one of several Java Logging Frameworks....

    -based technology for logging (called Logdoc), offering a specification format, internationalization of log messages, generation of HTML documentation and generation of code.
  • A Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

     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 the 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
SOAP
SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...

 and XML-RPC
XML-RPC
XML-RPC is a remote procedure call protocol which uses XML to encode its calls and HTTP as a transport mechanism. "XML-RPC" also refers generically to the use of XML for remote procedure call, independently of the specific protocol...

. And it supports conversion using XSLT
XSL Transformations
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

. As of version 2.0, it also supports JSON
JSON
JSON , or JavaScript Object Notation, is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects...

 and JSON-RPC
JSON-RPC
JSON-RPC is a remote procedure call protocol encoded in JSON. It is a very simple protocol , defining only a handful of data types and commands...

.

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

Specifications

All XINS specification files are Plain Old XML
Plain Old XML
Plain Old XML is a term used to describe basic XML, sometimes mixed in with other, blendable specifications like XML Namespaces, Dublin Core, XInclude and XLink. People typically use the term as a contrast with complicated, multilayered XML specifications like those for web services or RDF...

. Compared to SOAP
SOAP
SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...

/WSDL
Web Services Description Language
The Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...

/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.




The constructed greeting.




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

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
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     and SOAP
    SOAP
    SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...

     technologies for the Java programming language
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    .
  • Apache Axis
    Apache Axis
    Apache Axis is an open source, XML based Web service framework. It consists of a Java and a C++ implementation of the SOAP server, and various utilities and APIs for generating and deploying Web service applications. Using Apache Axis, developers can create interoperable, distributed computing...

    : Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    -based framework for SOAP implementations.
  • Codehaus XFire
    Codehaus XFire
    is a Java SOAP framework for development and consumption of web services.Unlike earlier similar products, such as Apache Axis 1.x that use in-memory tree models for XML, XFire uses StAX resulting in better performance..Apache Axis2 also uses StAX....

    : Idem.
  • Hessian Web Service Protocol: Binary alternative to the XINS Standard Calling Convention.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK