您的位置:首页 > 理论基础 > 计算机网络

开源倾情奉献:基于.NET打造IP智能网络视频监控系统(四)服务端介绍

2013-11-19 10:07 429 查看
[b]本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。[/b]

开源倾情奉献系列链接

开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码

开源倾情奉献:基于.NET打造IP智能网络视频监控系统(二)基础类库介绍

开源倾情奉献:基于.NET打造IP智能网络视频监控系统(三)命令行工具集

开源倾情奉献:基于.NET打造IP智能网络视频监控系统(四)服务端介绍

开源倾情奉献:基于.NET打造IP智能网络视频监控系统(五)客户端介绍

服务端介绍

目前在服务端实现了 4 个 WCF 服务:

ServiceDiscovery(简称 SVD)

DeviceConnector(简称 DVC)

DeviceProfile(简称 DPS)

MediaPublisher(简称 MPS)

服务建议启动顺序

SVD - 服务发现目前有时后启动不太稳定,暂时没有调试这个问题。

DVC

DPS

MPS

Service Discovery Service

SVD 服务实现 WCF Discovery ,当有服务上线时接收注册,并通过服务接口实现向外提供检索指定类型服务的功能。

[ServiceContract(SessionMode = SessionMode.Allowed)]
[ManagedServiceContract]
public interface IServiceDiscoveryService
{
[FaultContract(typeof(ServiceDiscoveryServiceFault))]
[OperationContract]
GetServicesResponse GetServices(GetServicesRequest request);
}


Device Connector Service

DVC 服务负责提供接口创建、连接、保活摄像机设备。

使用 Gimela.Data.MagpieDatabase 文档数据库进行本地数据存取。

使用 Gimela.Media.Video 进行媒体流数据的建立。

使用 Gimela.Net.Rtp 进行媒体流的封装。

使用 Gimela.Net.Sockets 进行媒体流的传输。

/// <summary>
/// 设备信息服务接口
/// </summary>
[ManagedServiceContractAttribute]
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface IDeviceProfileService
{
/// <summary>
/// 获取全部摄像机的信息
/// </summary>
/// <param name="request">获取全部摄像机的请求信息</param>
/// <returns>全部摄像机的响应信息</returns>
[OperationContract]
[FaultContract(typeof(DeviceProfileServiceFault))]
GetCamerasResponse GetCameras(GetCamerasRequest request);

/// <summary>
/// 获取摄像机的信息
/// </summary>
/// <param name="request">获取摄像机的请求信息</param>
/// <returns>摄像机的响应信息</returns>
[OperationContract]
[FaultContract(typeof(DeviceProfileServiceFault))]
GetCameraResponse GetCamera(GetCameraRequest request);
}


View Code

Media Publisher Service

MPS 服务负责配置摄像机的媒体流的发布。

[ManagedServiceContractAttribute]
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface IMediaPublisherService
{
/// <summary>
/// 获取已发布摄像机的信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[OperationContract]
[FaultContract(typeof(MediaPublisherServiceFault))]
GetPublishedCamerasResponse GetPublishedCameras(GetPublishedCamerasRequest request);

/// <summary>
/// 发布摄像机视频流至指定接收器
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[OperationContract]
[FaultContract(typeof(MediaPublisherServiceFault))]
PublishCameraResponse PublishCamera(PublishCameraRequest request);

/// <summary>
/// 取消发布摄像机视频流
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[OperationContract]
[FaultContract(typeof(MediaPublisherServiceFault))]
UnpublishCameraResponse UnpublishCamera(UnpublishCameraRequest request);
}


[b]本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载。[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: