`
JaNer
  • 浏览: 44914 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

菜鸟也谈架构之C/S三层架构的轮回

阅读更多
菜鸟也谈架构

本人06年毕业 一直做JavaWeb应用的项目 大大小小做了5、6个吧

感觉B/S结构的应用 项目实施下来都不是很理想 虽然都验收了 但我觉得这些项目也顶多能给个百分制及格分 60分

主要弊端:

(1)实时响应速度差
    (尽管已经做了集群、机器是小型机)

(2)人机交互能力太弱,有些特殊的地方还不得不借助鸡勒技术ActiveX和Applet。使得B/S仅有的一点点部署方便的优势荡然无存。
     (尽管现在已经有很多RIA技术手段,比如EXT、Flex等~ 但都有各种问题。论证下来实施这些技术还是性价比不够理想。)

我的想法:

C/S三层架构应该要轮回崛起了。
理论上说,B/S其实也是属于C/S三层架构的应用。但他的C这一层实在让人不爽。

扪心自问,你为什么要选择B/S来做行业应用系统(特质运行在专用网里的特定行业应用系统)
(1)、为了跟时髦。觉得JavaEE(B/S)代表了时尚潮流,代表了先进。
     扯淡。JavaEE并非就得把C做成浏览器应用。评价系统优劣最直接的三要素:方便、快捷、稳定(我一客户和我说话聊的,我决定很有道理)
(2)、为了数据和业务逻辑集中,实现部署、升级的方便。
     这恐怕是针对C/S原始2层架构而言.而且是因为你技术部到位不能做到完美的自动升级而把这一功能通过b/s模式变相解决吧。至于数据和业务逻辑的集中如果是C/S三层架构的话,B/S根本没有这一优势可言。C/S三成架构一样可以做到。
(3)、为了应用服务器集中、方便做集群和各种负载均衡。
    C/S三层一样可以。

居然如此:我们为什么还要选择B/S 。

我的想法:
做一个c/s三层架构。总的方向还是基于Java。

方案一:用SWT/Jface和EclipseRCP技术做为UI层技术。实现一个纯粹的UI客户端。通过RPC调用JavaEE应用服务器发布的方法进行业务处理。此方案的问题:选择一种高性能且易于异构系统集成的RPC方法。(初定的方法是使用httpinvoker作为架构内部的RPC调用,并支持 webservice满足其他异构系统调用需求)不知道hprpse是否能同时兼顾高性能且易于异构系统集成?

方案二:用SWT/Jface和EclipseRCP技术做为UI层技术。实现一个纯粹的UI客户端。然后自己实现一个类似中间件或者应用服务器概念的东西,但不走http协议。考虑其他通信方式。我的业务逻辑组件也不希望再借助于Java应用服务器。而是直接将我的业务逻辑组件发布到这个中间件上作为服务提供给客户端调用。这只是偶的想法,不知具体怎么实现 不知道hprose是否能再这方面做点什么?
分享到:
评论
21 楼 nathanlee 2009-12-11  
lvgang 写道
如 facebook 的 thrift,google 的 protocol buffer 以及 hadoop 的 avro,关于这些序列化框架的性能,google code 上有一个专门的项目做 benchmark,不妨到 google code 上搜一下


thrift-protobuf-compare
http://code.google.com/p/thrift-protobuf-compare/

Serialization Time:


Deserialization Time:


Serialization Size:



andot 写道
你最后说的两个方案都是 hprose 目前和将来要解决的问题。

有没有hprose VS. avro的比较结果?

20 楼 超级潜水员 2009-12-11  
真TM扯,连为什么BS会替换CS都没搞明白。
CS需要安装客户端及客户端的版本更新是个大问题。

隐掉吧!!!
19 楼 wang_esther 2009-12-11  
这种想法我们也做过,我更倾向于基于消息的而不是基于RPC的。楼主说的不使用http协议真是让人无法理解。应该把服务端架构做好,客户端可以选择的技术很多,不同的应用可以选择不同的客户端技术,只有更适合的没有更好的。
18 楼 prowl 2009-12-11  
B\S的优势在于不用装客户端
17 楼 aoliwen521 2009-12-11  
BS就是节约客户端。而且一升级,集体升级了。
使软件成为了一种服务,
用范伟的话说:
只要告诉我密码,我就能用。

不过从速度和灵活性上,跟cs差距太大了。
16 楼 tao2552 2009-12-11  
一句话:这个世界不是你说对了算,也不是我说了算,是用户说的算,用户看到B/S就痴迷了。
15 楼 lvgang 2009-12-11  
lz 的两个基于cs的方案挺不错的,我曾经也参与过类似的项目的,这里我补充一点!
1. 客户端使用 Eclipse rcp
2. 部署使用 java web start 来实现自动部署
3. client 和 server 通信可以选择一些跨平台跨语言的序列化或rpc框架,如 facebook 的 thrift,google 的 protocol buffer 以及 hadoop 的 avro,关于这些序列化框架的性能,google code 上有一个专门的项目做 benchmark,不妨到 google code 上搜一下

其实如果client 和 server 都使用 java 的话使用 java 本身的序列化以及网络功能来实现并不困难,效率也不错。
14 楼 xzqttt 2009-12-11  
JaNer 写道
菜鸟也谈架构

本人06年毕业 一直做JavaWeb应用的项目 大大小小做了5、6个吧

感觉B/S结构的应用 项目实施下来都不是很理想 虽然都验收了 但我觉得这些项目也顶多能给个百分制及格分 60分

主要弊端:

(1)实时响应速度差
    (尽管已经做了集群、机器是小型机)

(2)人机交互能力太弱,有些特殊的地方还不得不借助鸡勒技术ActiveX和Applet。使得B/S仅有的一点点部署方便的优势荡然无存。
     (尽管现在已经有很多RIA技术手段,比如EXT、Flex等~ 但都有各种问题。论证下来实施这些技术还是性价比不够理想。)

我的想法:

C/S三层架构应该要轮回崛起了。
理论上说,B/S其实也是属于C/S三层架构的应用。但他的C这一层实在让人不爽。

扪心自问,你为什么要选择B/S来做行业应用系统(特质运行在专用网里的特定行业应用系统)
(1)、为了跟时髦。觉得JavaEE(B/S)代表了时尚潮流,代表了先进。
     扯淡。JavaEE并非就得把C做成浏览器应用。评价系统优劣最直接的三要素:方便、快捷、稳定(我一客户和我说话聊的,我决定很有道理)
(2)、为了数据和业务逻辑集中,实现部署、升级的方便。
     这恐怕是针对C/S原始2层架构而言.而且是因为你技术部到位不能做到完美的自动升级而把这一功能通过b/s模式变相解决吧。至于数据和业务逻辑的集中如果是C/S三层架构的话,B/S根本没有这一优势可言。C/S三成架构一样可以做到。
(3)、为了应用服务器集中、方便做集群和各种负载均衡。
    C/S三层一样可以。

居然如此:我们为什么还要选择B/S 。

我的想法:
做一个c/s三层架构。总的方向还是基于Java。

方案一:用SWT/Jface和EclipseRCP技术做为UI层技术。实现一个纯粹的UI客户端。通过RPC调用JavaEE应用服务器发布的方法进行业务处理。此方案的问题:选择一种高性能且易于异构系统集成的RPC方法。(初定的方法是使用httpinvoker作为架构内部的RPC调用,并支持 webservice满足其他异构系统调用需求)不知道hprpse是否能同时兼顾高性能且易于异构系统集成?

方案二:用SWT/Jface和EclipseRCP技术做为UI层技术。实现一个纯粹的UI客户端。然后自己实现一个类似中间件或者应用服务器概念的东西,但不走http协议。考虑其他通信方式。我的业务逻辑组件也不希望再借助于Java应用服务器。而是直接将我的业务逻辑组件发布到这个中间件上作为服务提供给客户端调用。这只是偶的想法,不知具体怎么实现 不知道hprose是否能再这方面做点什么?







你的第二套方案不使用http,首先防火墙就是个问题,想使用别的通信方式,你招人估计3个月都招不到合适的
13 楼 lzmhehe 2009-12-11  
cs 结构系统集成不是一般的麻烦,一个典型的应用人家要上portal你会怎么做,

我记得天津移动明确指出,不建议使用cs结构

你指出的两点弊端,我也不认可
引用
(1)实时响应速度差
    (尽管已经做了集群、机器是小型机)


你说的响应速度差,是指http协议,冗余的地方多,还是指Tcp三次握手浪费
你使用google,使用百度,什么时候觉得慢


引用
(2)人机交互能力太弱,有些特殊的地方还不得不借助鸡勒技术ActiveX和Applet。使得B/S仅有的一点点部署方便的优势荡然无存。

为什么没有说flex和silverlight,更何况合理的使用ajax大部分人机交互的问题都能解决

12 楼 whaosoft 2009-12-11  
cs的 哎很久没做啦 很想很想他
11 楼 lixiaofeng-3 2009-12-11  
用Java Web Start做项目的飘过
10 楼 Sunny_kaka 2009-12-11  
以flex为代表的富客户端还是挺强大的.
没必要非做成C/S
9 楼 vvggsky 2009-12-11  
B/S 优势大大的

最起码几亿人不要重新安装客户端了
8 楼 downpour 2009-12-11  
选择B/S架构可能更多考虑到的是集中服务的模式。毕竟一台一台机器去安装客户端,实施起来不是特别方便。
7 楼 andot 2009-12-11  
littlegang 写道
hprose又不是只lz说的,不是那个1楼的讲的起劲麽


嗯,lz 提问中提到了 hprose,而 hprose 正好是我们公司的产品。我来回答没什么不妥吧。讲的起劲也是错吗?
6 楼 littlegang 2009-12-11  
hprose又不是只lz说的,不是那个1楼的讲的起劲麽
5 楼 mycybyb 2009-12-11  
hprose 是什么啊?
百度和javaeye上都搜不到,楼主怎么知道的。
晕倒,又搜到了。
4 楼 legend 2009-12-10  
GRDJE 写道
托吧。。。。。

枪吧。。。。。。
3 楼 JaNer 2009-12-10  
晕死 第一次被人说成托~~~~~~~~~
2 楼 GRDJE 2009-12-10  
托吧。。。。。

相关推荐

    B/S 三层的电子商城源码

    【B/S 三层架构详解】 B/S架构,全称为Browser/Server(浏览器/服务器)架构,是一种基于互联网的软件开发模式。在这个架构中,用户通过Web浏览器与服务器进行交互,而业务逻辑和数据存储则主要在服务器端处理。B/S...

    三层小实例 适合菜鸟

    在IT行业中,三层架构是一种常见的软件设计模式,尤其在ASP.NET开发中被广泛采用。这个“三层小实例 适合菜鸟”教程显然是为了帮助初学者理解并应用这种架构。三层架构是一种将应用程序分为三个逻辑层的方法,分别是...

    菜鸟物流大数据技术架构.pptx

    菜鸟物流大数据技术架构正是为了解决这个问题,通过智能数据平台,推动合作伙伴之间的高效协作和协同,提供健壮的实时数据服务层,服务菜鸟内外各种数据产品。 菜鸟大数据建设演进从手工作坊到数据体系化,经历了多...

    从菜鸟到测试架构师——一个测试工程师的成长日记

    入职的第一天,他对软件测试这个领域知之甚少,认为测试就是寻找产品中的错误。但在与导师凯文的交流中,他逐渐了解到软件测试的真正含义和复杂性。 软件测试实际上是软件开发过程中的一个重要环节,它不仅仅是找出...

    菜鸟工具(http://c.runoob.com/)!

    菜鸟教程(Runoob)提供的免费网上编译器! 包含C++ C C# HTML/CSS/JavaScript PHP Python等许多语言的编译器! 还有画图 进制转换等常用工具! 还有资源共享! 欢迎来到(http://c.runoob.com)!

    菜鸟实时数仓技术架构演进.docx

    【菜鸟实时数仓技术架构演进】 在互联网行业中,数据已成为企业的重要资产,尤其是在物流供应链领域,如菜鸟网络。实时数仓技术架构的演进对于提高数据处理速度、降低成本、确保数据一致性至关重要。菜鸟的技术团队...

    Winform通讯录(三层架构)

    简单的通讯录项目(C#+winform+SQL2005数据库,适合菜鸟学习),可实现增删改查功能,新增了设置头像、更改透明度、点击显示与收起列表等功能!!! 呵呵,小弟小试牛刀,希望各位同僚多多指教!!

    c语言菜鸟必看代码20/c代码

    c语言菜鸟必看代码c语言菜鸟必看c语言菜鸟必看代码代码

    SqlServer+jsp+mvc三层架构实现的易买网购物商城平台

    【SqlServer+jsp+mvc三层架构实现的易买网购物商城平台】是一个综合性的电商系统,采用了先进的技术栈,包括SQL Server数据库、JavaServer Pages(JSP)和Model-View-Controller(MVC)设计模式。这个平台旨在提供全...

    菜鸟实时数仓技术架构演进.pdf

    【菜鸟实时数仓技术架构演进】 随着互联网行业的飞速发展,实时数据处理的重要性日益凸显。菜鸟网络作为物流供应链的核心企业,对数据处理的实时性和准确性有着极高的要求。传统离线数仓已经无法满足这样的需求,...

    企业IT架构转型之道.pdf

    中台架构的核心价值体现——服务重用、数据层、会员中心、商品中心、交易中心、评价中心、安全支撑、菜鸟物流、搜索中心、数据服务中心、营销中心、共享服务体系构成中台核心能力监控、报警、故障处理系统、升级应用...

    菜鸟驿站包裹管理系统.zip

    《菜鸟驿站包裹管理系统——C语言实现详解》 在信息技术飞速发展的今天,各种管理系统已经成为企业和组织提高效率的重要工具。在本案例中,我们将探讨一款基于C语言编程的“菜鸟驿站包裹管理系统”,它主要用于帮助...

    菜鸟末端业务技术架构治理实践

    菜鸟网络在末端业务领域的探索和实践是其技术体系中最为突出的部分之一。末端网络指的是货物配送到达最终用户手中的物流环节,这个过程往往涉及到复杂而多变的场景,对物流效率和配送成本有着直接影响。菜鸟网络通过...

    C语言入门教程菜鸟到专家

    ### C语言入门教程:从菜鸟到专家 #### C语言简介 C语言是一种广泛使用的通用编程语言,由贝尔实验室(AT&T)的丹尼斯·里奇(Dennis Ritchie)于20世纪70年代初开发。它最初是为了构建UNIX操作系统而设计的,但...

    北大青鸟易买网项目采用三层架构思想

    【标题】"北大青鸟易买网项目采用三层架构思想"揭示了这个项目的核心设计原则,即三层架构。三层架构是一种常见的软件开发模式,尤其在企业级应用中广泛使用。这种架构将应用程序分为三个主要部分:表现层...

    下一代分布式体系架构的理念与演进

    - **Before 1999**:主要采用C/S架构,随着Java及RMI/EJB 1.0的推出,服务端远程调用技术得以发展。 - **1999-2005**:B/S架构兴起,伴随着J2EE企业级组件技术(如EJB 2/JMS/JTA)的广泛应用,负载均衡技术也开始...

Global site tag (gtag.js) - Google Analytics