regarding YAMI4 features

50 views
Skip to first unread message

Suman Patro

unread,
Oct 7, 2015, 4:36:47 PM10/7/15
to yami4
Hello,
        I would like to know more about YAMI4 in the following context: so that I can choose YAMI4 as my message broker.
1. Security in YAMI4, how is that implemented and at what level?
2. Is there any scope of cyber security implementation?
3. Is there any persistence feature available?
4. how is asynchronous message handling done if there are so less usage of threads ?
5. how are queues implemented ?
6.Are those queues used for brokered mechanism or for both brokered and brokerless as well?
7.Difference between named queue, topic and multiple tag matching?
8. Are sockets implemented using posix  library and  winsock for windows, but why not Boost?
Kindly reply.
Thanks and regards,
Suman



Maciej Sobczak

unread,
Oct 9, 2015, 2:22:44 PM10/9/15
to yami4

        I would like to know more about YAMI4 in the following context: so that I can choose YAMI4 as my message broker.
1. Security in YAMI4, how is that implemented and at what level?

Security in the distributed system can be discussed at three different contexts:

1. Security of the data transfer - this is offered in YAMI4 in terms of SSL transport layer, which handles the whole communication.
Another option could be to encode only data payloads - this can be done either at the application level or embedded in the YAMI4 library if necessary.

2. Safe data, meant as transfer of messages that have only approved values, where messages use embedded digital signatures so that receivers can ensure that what they receive was not tampered with. This can be done in YAMI4 by embedding signatures alongside data payloads. In YAMI4, payloads have open and hierarchical structure, which makes it easy to associate metadata (like digital signatures) with regular data.

3. Access authorization, meant as the ability of the receiver to decide whether the sender has rights to perform some particular action or to send some particular data. This, similarly to data signing, can be done with additional fields that can be embedded together with the useful data payloads in messages.

In other words, apart from the out-of-the box solution in terms of SSL, YAMI4 provides implementation hooks that enable users to plug in their own security mechanisms.
 
2. Is there any scope of cyber security implementation?

What do you mean by this term? Does it fall into any of the three categories explained above? 

3. Is there any persistence feature available?

YAMI4 messages can be persisted as they can be serialized and deserialized at any moment, even outside of the communication itself. In other words, YAMI4 messages can be stored in data files or as values in databases, which can be done in a straightforward way at the application level. In addition to this, existing services like the message broker can be extended with the persistence mechanisms if needed. 

4. how is asynchronous message handling done if there are so less usage of threads ?

A single YAMI4 agent uses only one thread to handle all I/O operations and can do so by means of non-blocking operation of communication channels. In other words, many concurrent communications can be handled at the same time thanks to the fact that each communication channel has its own independent finite state machine that can progress independently on other channels. This architecture is very efficient with minimal use of system resources.

5. how are queues implemented ?

Outgoing and incoming messages are stored in queues, which are implemented in terms of regular dynamic lists. 

6.Are those queues used for brokered mechanism or for both brokered and brokerless as well?

They are used in both cases.
 
7.Difference between named queue, topic and multiple tag matching?

Queue is a mechanism that allows multiple receivers (subscribers) to receive messages in a way that only one receiver will get a given message. This is useful for work-dispatching scenarios, where a single message should be processed by only single server in a pool.
Contrary to this, broker allows a single message to be transmitted to multiple subscribers, who have registered their interest in some particular topic or a matching pattern(s). This is useful in those systems where a single data item can be processed by multiple receivers - a monitoring or a data acquisition system is a good example of this. 

8. Are sockets implemented using posix  library and  winsock for windows, but why not Boost?

YAMI4 was designed to be free of third-party dependencies. There is no need to install any other library in order to use YAMI4. This design goal was very important especially for embedded systems, where other libraries might not be easy to install. For example, YAMI4 was used on some less popular real-time operating systems like LynxOS or Unison, where Boost does not exist at all or would be very difficult to install.
Thanks to the lack of third-party dependencies, YAMI4 can be deployed on target systems that are very specialized (especially in industrial environments), without necessity to involve other development teams to port their software.

I hope that these answers are useful.

Best regards,

-- 
Maciej Sobczak
http://www.inspirel.com/

Reply all
Reply to author
Forward
0 new messages