让技术人员看得懂的流程(7)——部署模型(完结篇)

                    让技术人员看得懂的流程(7

                         ——部署模型(完结篇)   

在上一篇博文“处理模型”中已经提到:在“处理模型”阶段划分为子系统后,为下一阶段打下了基础。当时卖了个关子没说具体是什么,本博就来揭开它的面纱,这就是:“部署模型”。

l         “部署模型”阶段的任务

“部署模型”英文是“Deployment Model”,正好对应UML中的“Deployment Diagrams”,有的文章或者书籍也叫“物理模型”。我之所以没有用“物理模型”,是因为“物理模型”的概念容易误解大家认为这个阶段只需要关注物理设备,而“部署模型”相对更加全面。我们来看部署模型的任务:

1)  确定部署实体,即采用什么样的物理设备,例如PC机、服务器、小型机;

2)  确定部署方式,例如局域网部署,企业网部署,因特网部署;

3)  确定部署连接,即组网方案,设计如何将这些物理设备连接起来;

 

l         具体操作步骤

1)确定部署实体

在“处理模型”阶段我们已经将子系统划分出来了,但如果你的系统性能、可靠性等质量属性要求很高,那么就需要进一步考虑将子系统再“排列组合”,分布到不同的机器上去。

“排列组合”的原则还是和划分子系统的第四步一样:根据“高内聚、低耦合”的原则、以及性能、可靠性、可扩展性、可测试性等质量属性要求,将子系统划分到不同的机器上去。

简单的说就是“一台不够用两台,两台不够用三台;PC不够用工作站,工作站不够用小型机”。那么是不是机器数量越多越好,质量越高越好呢?也不尽然,因为还需要考虑成本的因素,这就需要架构师、设计师进行权衡了(可以参阅我的博文:《软件设计漫谈之一:什么是软件设计?》)。

2)确定部署方式

确定好“部署实体”后,就需要考虑部署方式,因为不同的部署方式决定了需要采用不同的网络设备和组网方式。

常见的部署方式有:局域网部署、企业网部署、因特网部署,下面简单的介绍一下:

1 局域网部署:俗称LAN,即机器都在一个局域网内部,通过HubLanswitch、网桥等连接,这是范围最小的一种部署方式;

2企业网部署:金融、电信、物流等稍微大的公司都会有企业内部网,企业网内部还会划分VPN等,通过路由器、交换机等进行连接,这是中等范围的部署方式;

3因特网部署:相信大家对这个都很熟悉,最常见的就是网站,如SinaCSDN等,需要向宽带服务商如电信等申请因特网IP地址,这是范围最广的一种部署方式;

具体采用哪种方式呢?其实很简单:客户会告诉你的:)

当然客户不会直接告诉你说“我们要采用企业网部署”,客户会在需求中隐含描述出来,比如说“分公司将数据发给总公司”,这句话就隐含了要采用“企业网部署”或者“因特网部署”这种方式。

3)确定部署连接

确定好部署实体和部署方式后,就需要考虑如何将这些机器连接起来了,即常说的组网,这时就是TCP/IP大显身手的时候,我们看看具体如何应用TCP/IP

1)确定IP地址:包括网段、子网掩码、每台机器的IP地址;

2)确定连接方式:单连接、双连接、四连接,至于八连接,好像还没有见过:)

3)确定连接设备:连接设备和部署方式有关,同时也和性能、可靠性有关。例如:局域网要求不高的可以用hub,要求再高点就要低端的Lanswitch了;企业网和因特网就需要路由器了。

 

千言万语不如一个样例,让我们来看看POS系统在“部署阶段”如何操作。在“处理模型”阶段我们已经划分出3个子系统了:商品管理系统、交易系统、信息系统,我们基于这3个系统进行简要分析:

1)确定部署实体

假设要买POS系统的超市的物流和库存是集中管理,而交易是由各个分店分散管理,那么“商品管理系统”和“信息系统”可以部署在同一台小型机上面(根据性能和可靠性等要求的不同,可能是两台、三台甚至更多,样例中我们假设一台就够了)。

“交易系统”由于是分散的,服务器配置应该就够了,每个分店一台。

2)确定部署方式

从需求可以很容易看出:POS系统最好采用企业网部署的方式,因为有分店、有总店,这些分店和总店是分散的。

3)确定部署连接

IP地址的分配根据具体情况分配即可。根据部署方式可以推断出需要采用路由器类型的设备进行连接,而为了保证交易系统的可靠性(总不能网线一断,超市就关门不做生意了吧),需要双连接甚至是四连接。

 

=========================连载完毕==================================

到这里这一系列就结束了,各位看官是否有所收获呢?

如果以下问题能够正确答复,恭喜你,说明你已经基本上掌握了面向对象设计全流程的处理:

1、客户的需求是描述性的,例如“我们需要一个POS机”,而代码是一个一个具体的类和函数,那么如何从描述性的语言最后转化到具体的类和函数呢?

2、具体语言的特性,例如JavaC++privateprotectedpublic这些属性是从哪里来的?什么时候设计的?

3、不管什么代码,最后都要运行在具体的平台上,如WindowsLinuxUNIX等,那么这些平台相关的进程、线程什么时候设计、如何设计?(不要说你所有的产品都是单线程或者单进程哈:-P

4、如果是稍微大一点的产品,需要运行在多台机器上,那么如何确定需要多少机器?如何分工?

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值