[讨论]C/S结构的OA,采用什么结构?

柳晛 2009-08-14 10:37:42
1、Client端发送数据给Server端,然后由Server端操作数据库。
我认为这种方式多了一个Server端,代码量增加,可靠性可能因此降低。

2、Client直接操作DB Server数据库。
这种方式虽然简单,但数据库的连接数有限,而且反编译Client端可能会得到DB Server的登录名和密码。
...全文
167 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
柳晛 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sp1234 的回复:]
设计真正的营运系统时要采用专门基于通信技术的架构进行设计,暂时忘掉数据库等刚毕业的程序员的那种c/s编程观念。
[/Quote]

您好,sp1234。
我是刚毕业的,请问您说的通信技术架构设计需要从哪里学习,有没有推荐的书籍、资料呢?
flyerwing 2009-08-14
  • 打赏
  • 举报
回复
Client/Server
  • 打赏
  • 举报
回复
例如再举出一个理由:internet客户端与服务器联系是时断时通的不稳定状态,你的通讯机制就应该适应这种设计(或者说经常测试这种服务离线状态)。

还可以举出很多理由,都可以支持:设计真正的营运系统时要采用专门基于通信技术的架构进行设计,暂时忘掉数据库等刚毕业的程序员的那种c/s编程观念。
  • 打赏
  • 举报
回复
如果你打算给500个人并发使用,肯定要考虑一个1000人并发的架构,而无需其考虑一个大致仅适合在internet上只有5个人并发的架构。
  • 打赏
  • 举报
回复
[Quote=引用楼主 hack95 的回复:]
1、Client端发送数据给Server端,然后由Server端操作数据库。
        我认为这种方式多了一个Server端,代码量增加,可靠性可能因此降低。
[/Quote]

这要看架构设计者是不是专业。

例如电信的系统,我们暂且不管数据库库连接数和安全问题,电信的服务器端往往是十几个其它的服务所所汇集的一个应用系统portal,而不是一个数据库这么简单。另外,数据被缓存起来,甚至(传统上认为)非要搞个内存数据库才觉得能够跟上服务要求的速度。而且,多服务器的负载均衡是很重要的课题。

所有这些架构都跟你从客户端远程打开一个数据库来发送sql命令的想法,格格不入。

搞过大系统设计的人,不论实际的系统是大是小,都会重视通信系统的设计,把数据库隐藏到跟客户端界面开发差不多的次要地位。
soaringbird 2009-08-14
  • 打赏
  • 举报
回复
钱多就第一种,钱少就第二种
柳晛 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hikaliv 的回复:]
至于第一种,可靠性降低的说法不知从何而来。[/Quote]

收发数据包的丢失问题。
hgw269 2009-08-14
  • 打赏
  • 举报
回复
宁可多写点代码,也不能让用户直接操纵数据库..
有个Server层,相对来说安全多了,能过滤掉很多不安全的数据.
光宇广贞 2009-08-14
  • 打赏
  • 举报
回复
不赞同第二种……首先考虑的便是安全性……我个人认为,用户终端提交的请求处理,应该放在BLL层去应答,绝对不能让用户直接和数据库进行交互。

至于第一种,可靠性降低的说法不知从何而来。我个人认为由SERVER来隔断用户与数据库的做法是正确且合理的。
Deathsign 2009-08-14
  • 打赏
  • 举报
回复
1、Client端发送数据给Server端,然后由Server端操作数据库。
我认为这种方式多了一个Server端,代码量增加,可靠性可能因此降低。

可以配合WEB SERVER和 REMOTING····

2.方案
这个绝对不可取,安全性极低
jhdxhj 2009-08-14
  • 打赏
  • 举报
回复
ding
  • 打赏
  • 举报
回复
学习,
wuyq11 2009-08-14
  • 打赏
  • 举报
回复
通过web services和remoting结合实现分布式架构
zz005 2009-08-14
  • 打赏
  • 举报
回复
学习

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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