项目改为改为b/s架构,能否给点建议?

lxrlxr20021 2008-08-07 03:43:06
linux平台
原项目old:单个应用程序(c++),控制多个设备,在应用程序端可以查看设备状态和可用共享资源(目录层次),
程序与多个设备之间通信和设备发现使用第三方库x.so。
新项目new:现在想改为web方式,使用浏览器控制多个设备,并查看设备状态和可用资源(文件等),
程序与多个设备之间通信和设备发现还是使用三方库x.so


我的想法是把系统分为如下几个部分
1、构建一个服务端程序,使用c++编写,调x.so与设备通信和获取设备共享资源,并写入数据库如mysql.
2、在网络添加一台web服务器,使用apache+mysql;
3、客户端使用web浏览器访问web服务器获取设备信息和控制设备;

我对web不熟,有几个地方有疑问:
1、设备控制:
假设我写n个设备操作独立程序放在web服务器端,使用(程序1 参数1 参数2)的形式控制设备,我在web方式下如何调用这些独立程序?
不知道还有没有更好的建议?(我原来有想法是使用php扩展调用x.so,php与c++映射太繁琐,我抛弃了这种做法,
还有一种是使用php扩展调用独立程序)

2、设备上目录为多层,我想实现点击目录进入下一层的功能,不知道有什么好的做法没有?(不能使用默认文件浏览方式,界面要自己定制)?
(把每次点击产生的目录和文件信息存入mysql,然后通过web访问mysql,并显示在浏览器上)


3、对于新项目new不知道那位大侠能给个更好的架构,不局限于我的想法。我只懂c/c++,web编程基本是白痴,能否推荐能快速开发该项目的
工具、web编程语言,最好易上手的?
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxrlxr20021 2008-08-21
  • 打赏
  • 举报
回复
决定用php 和c socket写服务器来交互
jom_ch 2008-08-19
  • 打赏
  • 举报
回复
嗯,很高级,学习
ten789 2008-08-19
  • 打赏
  • 举报
回复
其实只是需要一个C和PHP的沟通方式

X.SO SHELL COM 都可以做到 个人觉得太复杂 呵呵 推荐用SOCKET C做这个很合适

是HTTP还是2进制 看个人喜好和C的程度 PHP对这些都没问题而且都有系统函数

个人推荐2进制方式 简单速度
4位操作符 16位SESSION 不定长的数据 结尾4位记录包长度 固定长度不足0补齐

->连接
<-确认链接
->认证信息
<-确认认证
->请求
<-数据
....
->断开

0001 链接
0002 确认链接
0003 认证信息 8位用户名 8位密码
0004 确认认证 16位SESSION
0005 请求 16位SESSION 不定长数据
0006 数据 16位SESSION 不定长数据
......
操作符4位不够就6位 呵呵 简单说个例子 大概就是这样了

多进程的问题不是很严重 如果C程序缓存数据 定期更新的话 每次通讯的时间很短 完全可以单线程列队 反正这类东西并发不大

身份认证 记录操作 视图这类的东西完全可以交给PHP来做 很简单
zgycsmb 2008-08-18
  • 打赏
  • 举报
回复
帮你顶下。
接分
hahajohn2006 2008-08-08
  • 打赏
  • 举报
回复
类似一个集中网管的web应用程序.
海诗美妆 2008-08-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 lxrlxr20021 的帖子:]
3、对于新项目new不知道那位大侠能给个更好的架构,不局限于我的想法。我只懂c/c++,web编程基本是白痴,能否推荐能快速开发该项目的
工具、web编程语言,最好易上手的?
[/Quote]

直接用C/C++实现web的话可以用它们写CGI。
但是,普通的web界面需要考虑session等基于HTTP协议一些比较特殊的问题,而且,基于C的web框架很少,
如果可能,建议楼主用C/C++的CGI做一个web service的服务器端,可以忽略session,作为一个单独的数据层。
但是需要注意多线程操作(类似于数据库)。

然后用php做web服务的客户端,直接通过web service提取对硬件的操作状态或进行相应的操作。
其他的UI方面的功能,就可以用php发挥了。


归总:
操作硬件和用户界面分成两个大层,
层与层之间用web service连接,
通过web service以信息传递的形势进行数据/命令共享。
fxs_2008 2008-08-07
  • 打赏
  • 举报
回复
1、可以的,但要注意 web开发均是单向请求-应答,不能双向即使通信
2、不知你设备是什么,如果是目录的话,很简单的
3、如查你有com组件的话,可以调用它去执行动作,返回结果,如查你的com支持调用,可以直接调用com
或者,如果你的组件支持系统调用,也可以命令行调用(如shell调用),可以返回结果并返回给浏览器!

总体来讲,相当于一个应用服务器,接收数据,处理结果,其他的由PHP+mysql完成


21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧