Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Newsreader/enhancing salvo newsreader/Protocol Independent Connectivity Interface

Abstract

Salvo Newsreader is initially designed and developed to communicate with Newsgroups. These newsgroups operate under News Transfer Protocol Network News Transfer Protocol(NNTP). So Salvo product implementation was heavily coupled with NNTP protocol. Aim of this milestone is to design a protocol independent connectivity API for Salvo Newsreader. As deliverables an API is designed and implemented along with a generic model which Salvo can understand and concrete protocol must implement to do their implementations. Also a transaction context is implemented to the purpose of information sharing.

Protocol Independent Connectivity API

Protocol independent connectivity API encapsulates all the high level functionality needed by Salvo Newsreader. And the best this is the new API implements IAdaptable. So programmers can get the API as an adaptor and use the functionality. Along with the connectivity API Salvo is improved to use proved ECF IContainer implementation. Containers should implement the API adaptor so that every container will encapsulate the general protocol independent functionality.

The connectivity API uses Channel Model(org.eclipse.ecf.channel.model) and API can understand that model. So every concrete protocol implementation should implement channel model to get the benifit of protocol independent API.

Main advantage of having this protocol independent API is now developers can have their own protocol dependent implementations and link that implementation with Salvo Newsreader through new connectivity API.

Transaction Context

Transaction context(org.eclipse.ecf.channel.ITransactionContext.java) is introduced as an information carrier to new protocol independent connectivity API. ITranactionContext extends IConnectContext. Concrete implementation can be found here. Basically values to be sent to API can be stored as key value pair in TranactionContext and can be used to do necessary operations.

Generic Model

Generic model is an abstraction for any passive communication media such as Newsgroups or forums. Model houses all the generic components to model a passive communication media. Two basic fundamental thing in this abstraction is IMessage and IMessageSource.
IMessage is the most lower level and atomic unit in the model. It represent the elementary information block. It is the equivalent of an article in a newsgroup or post in a forum. IMessageSource is the element which hold IMessages. There can be several IMessages in IMessageSource and IMessages are sequential and their order is preserved.
IServer and IServerConnection are another two important elements. IServer is the virtual representation of server which holds IMessageSources. There can be several IMessageSources in a single server. Every IServer has a IServerConnection. IServerConnection represent the connection between server and the Salvo Newsreader. These classes are fundamental when making connection to actual server.
Developers who work on concrete protocol implementations should always implement this model to make use of protocol independent connectivity API.


Back to the top