系统分析员面试题:云台的web远程控制问题!
WvW 2010-10-17 01:06:25 前几天去一个公司面试,看到这个题目,虽然自己有些构想,但是感觉不够完美。贴出来,大家思考一下解决方案。
题目:
情况介绍: 云台是录像监控系统里面经常用到的东西,可以将上面的摄像机 上下左右移动,有的带有灯光控制。通信协议用RS232/485,有很多种协议模型,基本上差不多:命令 地址 数据。
云台的属性:
控制属性:方向:上 下 左 右;灯光开、关。
状态属性:灯光的状态;报警端口的状态:闭合、断开。 状态需要主动查询。
假设现在云台服务器,COM1端口上挂了10个云台,地址1~10。
设计要求:
0。云台服务器软件(服务器本机的监控软件); 局域网客户端监控软件; web浏览器控制软件。
1。要求能控制所有动作;及时获取前段的状态。
2。所有登录用户都能看,但同时只能有一个用户可以控制云台。
3。用户级别:分为1~5级(低~高)。高优先级的可以抢断低优先级的。同级的不能抢断。(设计时考虑控制权释放问题,并显示当前谁控制着,如果被抢占了,还要禁用相关界面)。
4。关于web访问,可只限定IE模式(Activex),能设计跨平台方案优先考虑。
5。服务器为windows平台,但不使用DCOM,但支持IIS。必须走http协议,方便穿过防火墙。
----------------------------------------------------------------------------------------------------------
我的考虑:
1。云台服务程序:
1.用socket通信,提供控制指令,和查询指令.
2.根据请求的用户权限字节,如果大于当前控制用户,就抢断.
3.记录当前状态:当前控制用户. 云台的灯光和报警状态值. 以便每个客户端不停的查询.
2.客户端控制层, 均封装成activex, 方便统一用户界面.
3.web服务端, 采用ISAPI(类似ASP。net的模块),完成浏览器用户的登录,并解释控制指令,和状态返回。
4.web客户端, 在HTML里面嵌入ACtivex. JS给登录参数后, 一切由activex来做.
其实这个题目主要难度是:
1。如何控制3个客户端软件的并发访问,根据权限,踢出另外一个。
2。多层构架,因为COM端口是只能一个进程打开并占用着。必须有一个程序封装云台的控制和状态读取。
3。web方案的解决能力。(数据状态查询等等)。
4. web客户端与云台服务器通信的问题:
关于第4点: 我对"服务器推"技术不是很了解.不知道稳定性如何.
如果不支持推技术, web客户端就需要: 状态值只能不停的去请求查询.
我感觉看起来挺简单,实现起来其实挺复杂的。
不知道大家有什么好的解决方案呢?