Connection-oriented design
Many applications are inherently connection-oriented. It is important however to distinguish those which are connection-oriented at the application level from those which require connection-oriented communications. In essence, very few applications actually require that the communicating entities be physically connected by some transport media at all times. Rather, at the application level they have the notion of a session or connection which gives context to data transmitted through various transports.
An example of this is a Web shopping system using cookies. When a user first contacts the server it is given a cookie or unique key. Even though HTTP is a connection-less protocol, the web server can maintain a list of the items in your shopping basket using the cookie which is automatically supplied by the web browser with every request to that server.
SST is not inherently connection-oriented. It supports both connected and non-connected transports and does not demand that there be a higher-level notion of session. SST does however expose the behavior of the underlying mechanisms it uses. So, for example, if your application uses a connection-oriented transport such as TCP, SST exposes the TCP notion of connection to you. This notion is supplied in the form of an endpoint. The endpoint is used internally to maintain a table of connections so you can use it to uniquely identify application-level sessions which are closely coupled to transport-level connections. SST also provides a set of callbacks which give you hooks to various communications-level connect and disconnect events.
To assist you in building and maintaining application-level sessions, SST provides a user-programmable session manager and session object. You define the contents of the session and semantics of session opening and closing.
Separating the issues of whether a transport is connected from whether the application design is logically connected is an important part of building applications which are transport-independent. This separation gives designers more freedom to set the communications and interaction characteristics of their applications.
Last modified date: 01/29/2015