XML Interface For Network Services
   HOME

TheInfoList



OR:

XML Interface for Network Services (XINS) is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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 Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
documentation * test forms *
SOAP Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
-compliant
WSDL The Web Services Description Language (WSDL ) is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (also ...
* a basic
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
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 Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
-based specification format for projects,
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s, functions, types and error codes * A POX-style RPC protocol (called the ''XINS Standard Calling Convention''), compatible with web browsers (
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
parameters in,
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
out). * A tool for generating human-readable documentation, from the specifications. * A tool for generating
WSDL The Web Services Description Language (WSDL ) is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (also ...
, 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 Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
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 A web container (also known as a servlet container; and compare "webcontainer" ) is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a pa ...
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 Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
and
XML-RPC XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism.Simon St. Laurent, Joe Johnston, Edd Dumbill. (June 2001) ''Programming Web Services with XML-RPC.'' O'Reilly. First Edition. ...
. 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. These formats c ...
. As of version 2.0, it also supports
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
and
JSON-RPC JSON-RPC (JavaScript Object Notation-Remote Procedure Call) is a JSON-based wire protocol for remote procedure calls (RPC). It is similar to the XML-RPC protocol, defining only a few data types and commands. JSON-RPC allows for notifications (data ...
. XINS is open-source and is distributed under the liberal
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
.


Specifications

All XINS specification files are Plain Old XML. Compared to
SOAP Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
/
WSDL The Web Services Description Language (WSDL ) is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (also ...
/
UDDI Web Services Discovery provides access to software systems over the Internet using standard protocols. In the most basic scenario there is a ''Web Service Provider'' that publishes a service and a ''Web Service Consumer'' that uses this service. ...
/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 A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scree ...
. 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 Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
and
SOAP Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
technologies for the
Java programming language Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
. * Apache Axis:
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
-based framework for SOAP implementations. * Codehaus XFire: Idem. * Hessian Web Service Protocol: Binary alternative to the XINS Standard Calling Convention.


References

{{Reflist


External links


XINS website
Internet protocols Java (programming language) libraries XML-based standards Web services Web service specifications