软件架构-基于现实情况



     虽然软件是虚拟世界的,但它的存在与运行却依赖现实世界,现实世界是软件虚拟世界的基础。对于单机版软件来说,它依赖计算机本身的环境,包括硬件配置和软件基础,例如,一个因特尔芯片,单核1g42g的差别很大,内存512M2g的差别很大等等,这些现实因素都切实的影响着软件的运行。对于互联网软件来说,除了依赖计算机本身的性能和软件基础外,还有个影响它运行的重要因素——网络。

网络,就范围分,大约有三种:局域网,广域网,虚拟专网;就工作形式分,有两种:有线网络和无线网络。

局域网,是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。计算机之间通过物理连接互通(路由器或者交换机作为媒介),其特点是,速度快,延迟小,可靠性高,免费。所以,当软件运行在局域网内的时候,可以放松一些对带宽和延迟的考虑,对数据传输也比较宽容。通常的部署模式是,局域网内服务器集群,然后通过公网ip对外暴露服务。

广域网,就是我们通常所说的Internet,它是一个遍及全世界的网络。由于编辑全世界,就存在物理距离远,中继点多,用户多,构造复杂等问题。其特点是:范围大,距离原理,数据需要多交换,速度低,带宽相对小,数据延迟大,成本昂贵等特点。广域网的数据交换由电信部门完成,为此,你需要支付费用。由于外界需要给你分配唯一的标识,那么你需要支付标识费用(静态IP)。所以,广域网的网络资源相当昂贵。

虚拟专网,说就是利用公用网络架设专用网络通过数据加密,在公网营造类似局域网的网络空间。其兼具局域网和公网的特征,比如内网的可访问性(访问某台计算机如同访问局域网的某台计算机),但是其运行在公网上,相比局域网,需要经过更多次数据交换,所以数据延迟大,但较公网小(原因是电信部门专门预留了带宽),网速也介于局域网和公网之间。由于虚拟专网需要租用电信部门的固定带宽,所以成本更加昂贵。

明确网络之间的区别,而选用合适的实现机制是很重要的。合理使用网络资源,不仅可以降低成本,也可以提高软件运行的可靠性。某大型项目,要将全国数据实时汇总到数据中心,为此向电信申请了专网服务。而实现者被告知,专网的和局域网一样,于是实现者按照局域网的特点,在数据汇总的时候使用了t3协议和EJB重量级组件,当时本人很惊讶,为什么在公网使用私有协议,而且使用重量级的EJB组件,得到的答复是“方便,和局域网一样,都这么用”,本人心想,都这么用吗?过了一段时间,到了部署生产的时候,问题出现了,t3协议和EJB初始化的大对象无法在很短时间内完成,初始化需要20分钟,而且没有EJB的缓存机制,更糟糕的是,网络存在不稳的情况,在初始化没完成而网络却断了,然后重新初始化,如此反复,不听的循环,和僵死一样,使得根本无法完成业务...... 于是,优化工作来了,让对方缩减路由级数,尽量使数据经过最短路径,压缩数据包,缓存EJB对象等等,可惜效果并不明显,离用户要求的并发数有很大距离, 最后,不得不放弃t3协议和EJB组件,转而使用轻量级协议HESSIAN......,但这个过程花费了巨大的人力物力和财力,坏的影响已经造就。

试想,如果当初能基于现实,详细了解软件运行的环境的话,或许结果很不一样。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值