Enduro/X Connect module offers 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 bi-directional high level generic TCP/IP connection gateway.
Web Services for C and Go
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 to call 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 Enduro/X connectivity package gives very effective way for C/C++ for connecting to the external world via HTTP REST services. There is no more need for third parity 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, Enduro/X-Python, the same rule applies here too. The package will provide easy and effective way for performing e-business connections.
Generic high level TCP Gateway
As the different industrial systems are working with variety of the TCP protocols, the first layer of the programming stages are 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 needs to face, making it hard to establish first steps for industry specific application development. The Enduro/X Connectivity package includes generic TCP Gateway component which addresses these issue. TCP Gateway allows to send messages bidirectionally to and from XATMI services. Stateful and stateless connections are support. Different framing schemes are supported too.
Details of the Enduro/X Connect product
This section lists to main features of the connect product - Web connectivity modules and TCP Gateway.
Product includes following features describes Web connectivity
- 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 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 to dynamically reconfigure available services in the system depending on external service availability.
- HTTPS Support.
- Multi server configuration and multi-threaded traffic handling.
- Timeout handling.
The TCP Gateway server have 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 incoming connection.
- Active role - establishing TCP connection as client.
- Abstraction of the socket as the standard XATMI server - just send a UBF buffer with RAW data fields, those will be delivered to 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 TCP call to target server for each XATMI request.
- Non persistent synchronous, Enduro/X receives requests from network - each request new connection.
- Timeout handling.
- Connection management - periodic zero length messages.
- Status handling by reporting status to configured XATMI server.