## 4 Software
### Components
#### 4.1.3 Solace PubSub+  
Solace, initially called Solace Systems, is a middleware company based in Canada. This company is dedicated to the manufacture and sale of message-oriented devices and software for routing information. In 2001, [PERSON] founded Solace with the purpose of incorporating the messaging system into hardware [26]. Their flagship product, PubSub+, is an unified message broker that supports publishing/subscribing, queuing, requesting/responding, and streaming using open APIs and protocols through hybrid cloud and Internet of Things (IoT) environments [27]. This software is divided into 5 layers that will be described below:  
1. **PubSub+ Event Broker**: This layer incorporates three other sub-layers that are described below. Even so, the PubSub+ event brokers have the ability of loading an event mesh. * **PubSub+ Event Broker- Software**: The main function of the Solace software sub-layer is to efficiently transport information in the form of events. This transport can be between applications, IoT devices, and user interfaces, all of which can be hosted locally or in a cloud. This software allows the use of various communication protocols, such as open protocols, like Advanced Message Queuing Protocol (AMQP), Java Message Service (JMS), Message Queuing Telemetry Transport (MQTT), Representational State Transfer (REST), and WebSocket. There are two  
Figure 2: Sqoop architecture. versions of this software, one free (Standard) with support of up to 1000 client connections, and another that offers high performance (Enterprise), with a scale of up to 200,000 client connections. * **PubSub+ Event Broker- Appliance**: PubSub+ Appliances have three characteristics that define them exclusively. They are specially designed with high-speed FPGAs and network processors that support extremely low and predictable latency. They offer built-in redundancy and can even continuously replicate all messages to waiting locations. * **PubSub+ Event Broker- Cloud**: Solace's cloud service makes software event brokers available as a service. Only in this way can the needs of the software be met in a short period of time, and scale on-demand to any level. 2. **PubSub+ Event Mesh**: An event mesh is a layer that dynamically routes events from one application to any other. 3. **PubSub+ Streaming APIs and Integrations**: They provide a variety of on and off-ramps, such as the protocols already listed and proprietary APIs for messaging, in order to link old and modern applications and connectors to technologies, like Kafka. 4. **PubSub+ Event Portal**: The PubSub+ Event Portal is an event managing tool-presented through the User Interface (UI) available on the Web--which allows for the discovery, constructing, visualizing, sharing, and managing of several aspects of the Event-Driven Architecture (EDA). Here, major elements of the Event portal are described, as well as a general view of its tools. Furthermore, some of the characteristics are discussed, such as the possibility of execution-time EDA, support for Kafka-native objects, event sharing, version control, REST API, AsyncAPI, and other essential characteristics. In addition, tools are provided for building, describing, and discovering events within the system, but also the establishing of connections between applications and events, making it easier to develop event-oriented applications and microservices [28]. 5. **PubSub+ Platform Security**: The security platform allows for message architectures that obtain a consistent multi-protocol authentication of a client, plus security clearance management in a company environment, all of it integrated with company authentication services while using a minimum amount of components. These layers are organized as illustrated in Figure 3.  
Figure 3: Layout of the internal layers of PubSub+. Adapted from Reference [27]. Components  
Sending messages is analogous to worldwide known postal services.