224
F. Firouzi and B. Farahani
• Asynchronous – While waiting for a response, the client does not block and any
response is not immediately sent.
• Synchronous – Clients expect a timely service response and may block while
waiting for the response.
Below you find the variety of synchronous and asynchronous one-on-one
communications [30]:
• Request and Response – The client request is made and then the client waits for
a timely service response. There are multiple protocol options, but two favored
ones include REST and Thrift.
– Representational State Transfer (REST) – An inter-process communication
(IPC) mechanism that usually relies on HTTP. Resource is the main concept
of REST. A resource is a concept that represents a business object (e.g., a
product, customer) in the application or a combination of business objects.
REST manipulates resources using verbs referred via URL. For example,
GET requests to send back a resource representation, likely in the form of
a JSON object or XML document, while a POST request actually creates a
new resource that can be updated via a PUT request.
– Apache Thrift – A framework used to write cross-language remote procedure
call (RPC) servers and clients. Thrift comes with a C-style interface description language (IDL) defining APIs. Next, the compiler creates code for diverse
programming languages such as Java, C++, PHP, Ruby, Python, and Node.js.
Thrift is able to support different message formats such as binary, compact
binary, and JSON. Note that binary is a more efficient choice because it takes
up less space and is faster to decode than JSON.
• Notification (a one-way request) – Request is sent to service by the client without
a reply being sent or expected.
• Request/Async Response – A request is sent to the server by the client and
the server returns an asynchronous response; client waits without blocking and
assumes the response will come later.
Noted below are the different kinds of one-to-many communications:
• Publish/Subscribe – Client publishes a message and it can be consumed by
interested services.
• Publish/Async Response – A request message is published by the client and then
the client waits for a designated timeframe for responses from services that are
interested.
There are several messaging platforms that are open source and available
including Apache Kafka, ActiveMQ, as well as RabbitMQ. Each system is designed
around the idea of messages and channels. The messages are created by a header
(i.e., metadata like security or identity information) and a body and then sent and
received via channels. There are a variety of human-readable, text-based (JSON or
F. Firouzi and B. Farahani
• Asynchronous – While waiting for a response, the client does not block and any
response is not immediately sent.
• Synchronous – Clients expect a timely service response and may block while
waiting for the response.
Below you find the variety of synchronous and asynchronous one-on-one
communications [30]:
• Request and Response – The client request is made and then the client waits for
a timely service response. There are multiple protocol options, but two favored
ones include REST and Thrift.
– Representational State Transfer (REST) – An inter-process communication
(IPC) mechanism that usually relies on HTTP. Resource is the main concept
of REST. A resource is a concept that represents a business object (e.g., a
product, customer) in the application or a combination of business objects.
REST manipulates resources using verbs referred via URL. For example,
GET requests to send back a resource representation, likely in the form of
a JSON object or XML document, while a POST request actually creates a
new resource that can be updated via a PUT request.
– Apache Thrift – A framework used to write cross-language remote procedure
call (RPC) servers and clients. Thrift comes with a C-style interface description language (IDL) defining APIs. Next, the compiler creates code for diverse
programming languages such as Java, C++, PHP, Ruby, Python, and Node.js.
Thrift is able to support different message formats such as binary, compact
binary, and JSON. Note that binary is a more efficient choice because it takes
up less space and is faster to decode than JSON.
• Notification (a one-way request) – Request is sent to service by the client without
a reply being sent or expected.
• Request/Async Response – A request is sent to the server by the client and
the server returns an asynchronous response; client waits without blocking and
assumes the response will come later.
Noted below are the different kinds of one-to-many communications:
• Publish/Subscribe – Client publishes a message and it can be consumed by
interested services.
• Publish/Async Response – A request message is published by the client and then
the client waits for a designated timeframe for responses from services that are
interested.
There are several messaging platforms that are open source and available
including Apache Kafka, ActiveMQ, as well as RabbitMQ. Each system is designed
around the idea of messages and channels. The messages are created by a header
(i.e., metadata like security or identity information) and a body and then sent and
received via channels. There are a variety of human-readable, text-based (JSON or
