To Send and Receive HTTP requests, BusinessWorks provides activities defined in HTTP Palette. HTTP Palette consists of following activities:
- HTTP Connection: HTTP Connection is used for defining the server details on which incoming HTTP Requests will be accepted. HTTP Connection is used for process starters (HTTP Receiver and SOAP Event Source) and Signal-In Activities (Wait for HTTP Request). One should note that there can be at most one process with an HTTP Receiver or Wait for HTTP Request that uses the same HTTP Connection configuration but there can be more than one SOAP Event Source that uses the same HTTP Connection.
- Proxy Configuration: Proxy Configuration is used to specify a Proxy HTTP Server when one needs to send HTTP Requests outside of a firewall.
- HTTP Receiver: HTTP Receiver is used in scenarios where one needs to start a process based on a HTTP request.
- Send HTTP Request: Send HTTP Request is used for sending HTTP Requests to a Web Server. The HTTP Requests can be sent to a server that complies with either HTTP 1.0 or HTTP 1.1 specification. One need not specify the HTTP Server while sending requests, TIBCO BusinessWorks automatically handles it using the correct version.
- Send HTTP Response: Send HTTP Response is used for sending back response for the received HTTP Request. It is generally used along with HTTP Receiver or Wait for HTTP Request activity.
- Wait for HTTP Request: Wait for HTTP Request is a signal-in activity which waits for an incoming HTTP Request in a process definition.
BusinessWorks supports two types of Server in HTTP Connection – Tomcat & HTTPComponent. Tomcat has a synchronous request response paradigm and can be used in scenarios where high throughput is important whereas HTTPComponent is a light-weight and scalable server based on NIO which can be useful in scenarios where handling thousands of requests in a resource efficient manner is more important than the throughput. To achieve a good throughput with Tomcat, the ‘maxprocessor’ value should be almost equal to the number of concurrent requests the server can handle.