Overview
Enduro/X Connect module offers a simple and cost-effective Enduro/X cluster application extension for web services and external interoperability. Enduro/X Connect product offers Web services connectivity with HTTP/S REST incoming and outgoing channels. The third adapter of the Connect package includes a bi-directional high-level generic TCP/IP connection gateway.
Web Services for C, Go, Java, and Python
The web services make it possible for other applications to read and update information To Enduro/X application via the Web. The very Enduro/X XATMI server can be mapped to the HTTP URL. Thus the external entity can use the standard REST API to invoke existing system components. This part is called incoming REST traffic.
In the same way, the outgoing REST connectivity allows calling remote REST services from XATMI clients and servers with the standard XATMI commands and protocol buffers. The Enduro/X Connect package converts the message, invokes mapped service, and returns back the response to the caller.
Thus, the Enduro/X connectivity package gives a very effective way for C/C++, Java, and Python to connect to the external world via HTTP REST services. There is no more need for third-party libraries (which are not easy to find) to make a bi-directional HTTP connectivity. When connecting other community packages like Enduro/X-PHP, Enduro/X-Perl, and Enduro/X-Python, the same rule applies here too. The package will provide an easy and effective way to perform e-business connections.
Generic high-level TCP Gateway
As the different industrial systems work with a variety of TCP protocols, the first layer of the programming stages is physical connection establishment. The Sockets are not simple to program, there could be different scenarios where and how packets are sent and how basic data is encoded. With all these aspects systems need to face, it is hard to establish the first steps for industry-specific application development. The Enduro/X Connectivity package includes a generic TCP Gateway component that addresses these issues. TCP Gateway allows sending messages bidirectionally to and from XATMI services. Stateful and stateless connections are supported. Different framing schemes are supported too.
Details of the Enduro/X Connect product
This section lists to main features of the Enduro/X Connect product - Web connectivity modules and TCP Gateway.
Web connectivity
The product includes the following features:
- HTTP REST external server mapping into Enduro/X Application domain.
- Exposing internal XATMI server as HTTP/S REST service.
- Request and response methods are handled with the POST method.
- Configurable HTTP rest server with different XATMI protocol buffer support:
- UBF (FML) protocol buffer.
- JSON buffer.
- String buffer.
- CARRAY (Raw data buffer).
- Different error mapping schemes: HTTP codes, JSON field, or text
- External resource mapping support of target server monitoring by Echo messages which allows for dynamically reconfiguring available services in the system depending on external service availability.
- HTTPS Support.
- Multi-server configuration and multi-threaded traffic handling.
- Timeout handling.
- Incoming web services features:
- File upload support.
- Over the Web Services Distributed Transaction orchestration API.
- Static content serving.
TCP Gateway
The TCP Gateway server has the following properties:
- Incoming and outgoing traffic handling.
- Different packet framing modes:
- Including frame length indicators.
- ASCII tokens like ETX and STX
- Passive role support - wait for an incoming connection.
- Active role - establishing TCP connection as a client.
- Abstraction of the socket as the standard XATMI server - just send a UBF buffer with RAW data fields, and those will be delivered to the target server
- Multiple connections per server.
- Connections are identified by their sequence number or hash number
- When sending messages out, the request can contain either connection number. Thus effectively XATMI application can respond to the particular request.
- Connection mode:
- Persistent connection, asynchronous, optionally correlated.
- Persistent connection, synchronous, correlated by connection ID.
- Non-persistent synchronous connection, Enduro/X makes a TCP call to the target server for each XATMI request.
- Non-persistent synchronous, Enduro/X receives requests from the network - each request is a new connection.
- Timeout handling.
- Connection management - periodic zero-length messages.
- Status handling by reporting status to configured XATMI server.