|
| 1 | +/** |
| 2 | + * <h2>Connection API</h2> |
| 3 | + * |
| 4 | + * <h3>Short description:</h3> |
| 5 | + * <p> |
| 6 | + * This module contains the connection api.<br> |
| 7 | + * It provides a simplified interface for the most commonly used network interfaces in ground-stations and is |
| 8 | + * optimized for the VertX framework. |
| 9 | + * </p> |
| 10 | + * |
| 11 | + * <h3>Supported network interfaces:</h3> |
| 12 | + * <ul> |
| 13 | + * <li>TCP</li> |
| 14 | + * <li>UDP</li> |
| 15 | + * <li>Serial connection (e.g. UART)</li> |
| 16 | + * </ul> |
| 17 | + * |
| 18 | + * <h3>General Concepts:</h3> |
| 19 | + * <p> |
| 20 | + * The general concept of the connection api is to allow verticles to implement networking code without knowing the |
| 21 | + * specifics of the interface itself. This is achieved by the following concepts: |
| 22 | + * </p> |
| 23 | + * <ul> |
| 24 | + * <li>Sender-Api</li> |
| 25 | + * <li>Receiver-Api</li> |
| 26 | + * <li>Static-Sending</li> |
| 27 | + * <li>Special Concepts</li> |
| 28 | + * <li>Manual Mode</li> |
| 29 | + * </ul> |
| 30 | + * |
| 31 | + * <h4>{@link de.wuespace.telestion.services.connection.Sender Sender-Api}:</h4> |
| 32 | + * <p> |
| 33 | + * {@link de.wuespace.telestion.services.connection.ConnectionData} or |
| 34 | + * {@link de.wuespace.telestion.services.connection.SenderData} sent to this class will be rerouted to the |
| 35 | + * designated network interface or their dispatchers. If a connection is not, yet, established the default |
| 36 | + * behaviour is to try to create a new connection to the target. |
| 37 | + * </p> |
| 38 | + * <p> |
| 39 | + * <em> |
| 40 | + * Note:<br> |
| 41 | + * This can fail and the package can be dropped if the targeted network interface controller does not support |
| 42 | + * informing about failed packet delivery! |
| 43 | + * </em> |
| 44 | + * </p> |
| 45 | + * |
| 46 | + * <h4>{@link de.wuespace.telestion.services.connection.Receiver Receiver-Api}:</h4> |
| 47 | + * <p> |
| 48 | + * If this interface is used all incoming {@link de.wuespace.telestion.services.connection.ConnectionData packages} |
| 49 | + * will be routed to its output address.<br> |
| 50 | + * This allows parsers to listen on multiple network connections at once. Answers then can be sent to the |
| 51 | + * Sender-Api again. |
| 52 | + * </p> |
| 53 | + * |
| 54 | + * <h4>{@link de.wuespace.telestion.services.connection.StaticSender Static-Sending}:</h4> |
| 55 | + * <p> |
| 56 | + * In cases where the receiver is already known at start-up, the |
| 57 | + * {@link de.wuespace.telestion.services.connection.StaticSender} which can be fed with |
| 58 | + * {@link de.wuespace.telestion.services.connection.RawMessage RawMessages} which do not require network interface |
| 59 | + * information.<br> |
| 60 | + * The static sender will automatically send the packages to the connection specified in its config. |
| 61 | + * </p> |
| 62 | + * |
| 63 | + * <h4>Special Concepts:</h4> |
| 64 | + * <p> |
| 65 | + * There are more complex concepts than the previously described ones. This allows for more advanced or network |
| 66 | + * specific structures. |
| 67 | + * </p> |
| 68 | + * <h5>Connection established:</h5> |
| 69 | + * <p> |
| 70 | + * There are cases when one needs to know when a new connection has been established. In this case the XXXX will |
| 71 | + * yield the {@link de.wuespace.telestion.services.connection.ConnectionDetails} specifying the connection. |
| 72 | + * </p> |
| 73 | + * |
| 74 | + * <h5>{@link de.wuespace.telestion.services.connection.Broadcaster Broadcasting}:</h5> |
| 75 | + * <p> |
| 76 | + * To send information to all active network interfaces (which support broadcasting), a |
| 77 | + * {@link de.wuespace.telestion.services.connection.Broadcaster} verticle needs to be added. |
| 78 | + * </p> |
| 79 | + * |
| 80 | + * <h4>Manual Mode:</h4> |
| 81 | + * <p> |
| 82 | + * In rare cases where the previously described abstractions cannot be applied, |
| 83 | + * there is still the possibility to use the network interfaces directly. For this refer to the package |
| 84 | + * descriptions of the designated packages. |
| 85 | + * </p> |
| 86 | + * |
| 87 | + * @since 0.2.0 |
| 88 | + * @version 1.0 |
| 89 | + * @author Cedric Boes (cb0s) |
| 90 | + */ |
| 91 | +package de.wuespace.telestion.services.connection; |
0 commit comments