Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Expand
titleContents

Table of Contents
indent15px
stylenone

Service Components Microservices may be synchronous or asynchronous. Service components Microservices are loosely coupled allowing them to interact via exchange of messages in a flexible manner within a Fiorano Event Process. Service components Microservices are the building blocks of Fiorano applications (Event Processes). A service component is microservice is an application that performs a specific task (for example, sending e-mails or reading a file). Each Service Component microservice has an interface that defines the acceptable formats of each input and output. Most services microservices typically require runtime parameters and other variables to be configured before they are run/executed. Configurations allow customization of Service Components microservices for the specific business scenario/situation being solved by the Event Process. Service components Microservices can be categorized as synchronous and asynchronous, based on the manner in which a component microservice is invoked for processing.

Anchor
_Toc153188450
_Toc153188450
Synchronous

...

Microservices

A synchronous componentmicroservice, as the name suggests, is invoked in a Request - Reply format. Thus the invoking client of this component microservice waits for the component microservice to process the request and send back the response. Fiorano synchronous components microservices implement the J2EE Connector Architecture (JCA) interface, which mandates that each component microservice has a single input and single output. JCA is a standard API that is part of the J2EE platform that implements synchronous function calls semantics.

The Fiorano platform includes a Business Component Development Kit (BCDK) for the development of synchronous componentsmicroservices. This framework abstracts the implementation details of JCA.

All synchronous components microservices can also be invoked asynchronously. This is achieved through the usage of a JMSGateway component microservice that provides a layer (wrapper) on top of the BCDK to make the components microservices event-driven, allowing them to be invoked using asynchronous JMS semantics.

Anchor
_Toc153188451
_Toc153188451
Asynchronous

...

Microservices

Asynchronous components microservices or event-components microservices are based on JMS semantics. Each asynchronous component microservice can have multiple inputs and outputs. Inputs of asynchronous Fiorano components microservices listen for events (JMS messages) via listeners on specific JMS destinations.

Asynchronous components microservices have the concept for ports — abstracted form of JMS destinations. A port can be a queue or a topic and components microservices listen to input ports for JMS messages and send JMS messages on to the output ports. An asynchronous component microservice can define how many input and output ports it needs. These can be added through static definition or dynamically when a component microservice is configured.

Anchor
_Toc153188452
_Toc153188452
Design Choices

When developing a component in the Fiorano Platform, a design decision as to when to use a synchronous component microservice versus an asynchronous component microservice requires a careful understanding of the strengths of both types of componentsmicroservices. The following features of both component microservice types help decision making:

Synchronous Componentsmicroservices

  • Scheduling, error handling and connection pooling are abstracted
  • Can be deployed in external J2EE JCA containers
  • Cannot have multiple ports in output/input
  • Cannot handle server sockets
  • Cannot have runtime UI with manual intervention
  • Supports only Java programming language for component microservice creation

Asynchronous Componentsmicroservices

  • Allows multiple input and output ports
  • Supports multiple programming languages for component microservice creation like Java, C, C++, C# etc.
  • Handles server sockets
  • Allows components to microservice to have manual intervention
  • Does not have abstracted layers like synchronous componentsmicroservices

Based on the business context, users can determine the type of component microservice to use and/or create.

Adaptavist ThemeBuilder EngineAtlassian Confluence