This project is read-only.

Architecture

WS-Man layers

WS-Man.NET has a lax layered architecture in which particular layer can call any of the lower layers. The topmost layer is WS-Management itself. It contains nothing but specific handlers for basic protocols: WS-Transfer, WS-Enumeration and WS-Eventing.

Each basic protocol implementation contains both client and server components. Server component consists of a WCF contract, its implementation and an interface describing contract for user-friendly protocol-specific request handler. For example, WS-Transfer has following WCF contract:

[ServiceContract(Namespace = Const.Namespace)]
public interface ITransferContract
{
   [OperationContract(Action = Const.GetAction, ReplyAction = Const.GetResponseAction)]
   Message Get(Message getRequest);

   [OperationContract(Action = Const.PutAction, ReplyAction = Const.PutResponseAction)]
   Message Put(Message putRequest);

   [OperationContract(Action = Const.CreateAction, ReplyAction = Const.CreateResponseAction)]
   Message Create(Message createRequest);

   [OperationContract(Action = Const.DeleteAction, ReplyAction = Const.DeleteResponseAction)]
   Message Delete(Message deleteRequest);
}
and following back-end request handler contract:

public delegate object ExtractBodyDelegate(Type expectedType);

public interface ITransferRequestHandler
{
   object HandleGet();
   object HandlePut(ExtractBodyDelegate extractBodyCallback);
   EndpointAddress HandleCreate(ExtractBodyDelegate extractBodyCallback);
   void HandlerDelete();
}

Last edited Dec 31, 2009 at 11:47 AM by SzymonPobiega, version 2

Comments

No comments yet.