2014年7月28日星期一

最近架构随想

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
最近架构随想  阅读原文»

最近架构随想

今天新加坡放假,闲来无事就发一篇博客:一则总结归纳项目构架经验,审视并逐步提高自 己;再者分享最近学习所得,希望各位能讨论并给些建议。六月三十日从原来公司离职,七月一日入职新公司,不知不觉已经快一个月了。最近忙于学习新的行业知 识以及项目的重构设计,没有时间发博客,也没有时间回复邮件及博文评论,忘各位见谅!

今天发几张项目重构设计草图,如果大家对项目分层与文件夹结构比较感兴趣,可以参考几年前弦哥.Net项目分层与文件夹结构大全(最佳架子奖,吐槽奖,阴沟翻船奖揭晓),这次的架构方案基本是之前架构经验第一次在保险行业的使用,希望各位能积极探讨并给些意见!

根据个人经验,架构决定项目的成败以及高度,所以在编码之前一定要设计好项目的整体规划和架构。好的架构或者考虑比较全面到位的架构会极大的帮助团队,对项目起到灵魂的作用;糟糕的设计往往会把整个项目组带入泥潭或者恶性循环,对项目直接致命打击!

回归正题:

  • 整个架构分为Online(Web Application)和Offline(WPF Application)两部分。

  • Online(Web Application)需要支持不同的设备及浏览器,所以采用Bootstrap和 ASP.NET MVC with Razor作为View,KnockoutJs作为MVVM框架。UI Designer设计好UI,然后由前端工程师绑定相应的UI Model到UI,后端工程师则负责相应的OOAD以及业务处理。

  • Offline(WPF Application)需要在没有网络的情况下能正常工作,所以采用WPF XALM作为View,MVVM Light作为MVVM框架。UI和后端的处理以及任务分配和Online(Web Application)基本一致。

  • Services :设置了Switch功能,可以配置是否使用WCF或者Web API或者直接调用Dll。

  • Domain Model:始终是应用程序的核心,必须投入大量精力,按照面向对象的分析和设计 (OOAD) 进行设计同时按照OOP进行开发。

  • Infrastructure:主要包括数据访问组件、通用权限框架、异常和日志处理组件、IOC/AOP功能、缓存机制,邮件,配置等基础或常用功能。

  • 行业知识:由于项目牵涉到具体的行业(保险业),所以在业务流程中创建了Insurance Engine,专门处理保险相关的基础功能。

  • 权限系统:由于整个项目比较庞大,再加上其他系统也需要用到同样的权限判断,所以创建了一个新的权限数据库,用来存储及处理权限相关的所有数据及规则,所有用户则来源于三个数据源(SQL Server, DB2和Active Directory)。

  • Unit Test:每一层都有单独的单元测试,方便项目功能自测,维护,重构,升级以及管理。28-7-2014 12-31-12 AM

组件之间的详细关系如下:

28-7-2014 12-27-11 AM

各层之间的执行顺序如下:

28-7-2014 12-34-29 AM

  • 用户来源于三个数据源(SQL Server, DB2和Active Directory)。

  • 现实世界和系统通过角色进行关联,现实世界的用户及组的变化尽量不要影响到系统。

  • 一个用户可以有多个角色,一个角色也分配给多个用户。

  • 权限分为功能权限和数据权限。

  • 权限系统要提供给几套系统使用,全部的接口通过Service的形式提供出来。

security

由于时间有限,设计可能存在诸多不足之处,如果大家有不同的意见或者建议,不妨在评论中指出,以便互相学习且共同提高!

本文出自 "圣殿骑士" 博客,请务必保留此出处http://knightswarrior.blog.51cto.com/1792698/1531155

返回顶部

分析演示: RIP动态路由协议引发的HSRP收敛问题  阅读原文»

  • 本周内更新

分析演示: RIP动态路由协议引发的HSRP收敛问题

演示目标:

1 动态路由协议在某种程度上可以帮助HSRP收敛无跟踪的盲点

2 动态路由协议RIP可能引发HSRP收敛的问题

3 为什么同一子网的主机,有些收敛快,有些慢?

演示环境:1所示的环境

背景说明:从实践的角度来讲,在需要部署HSRP进行三层冗余的环境中,通常物理链路也是成环的,那么这种环境中,进行网络设计时需要特别注意动态路由协议的选择,以及评估和预测可能引发的各种收敛问题,明确到底是HSRP在为用户网络在实现冗余,还是三层的动态路由协议在为用户实现冗余,如果发生收敛问题,比如:收敛慢,是什么原因导致问题的发生,以及如何对这些问题进行修复。

wKioL1PVrzrRSlrdAAHW20eTNFk295.jpg

演示步骤:

第一步:在如1所示的网络环境中为所有的三层设备启动RIPv2的动态路由协议,具体配置如下所示,确保各个路由器的动态路由学习正常,这是整个演示环境的基础保障。

路由器R1RIP配置:

R1(config)#routerrip

R1(config-router)#noauto-summary

R1(config-router)#version2

R1(config-router)#network 192.168.1.0

R1(config-router)#network 192.168.4.0

R1(config-router)#network 172.16.0.0

R1(config-router)#exit

路由器R2RIP配置

R2(config)#routerrip

R2(config-router)#version2

R2(config-router)#noauto-summary

R2(config-router)#network 192.168.2.0

R2(config-router)#network 172.16.0.0

R2(config-router)#exit

路由器R3RIP配置:

R3(config)#routerrip

R3(config-router)#version2

R3(config-router)#noauto-summary

R3(config-router)#network 192.168.1.0

R3(config-router)#network 192.168.4.0

R3(config-router)#network 192.168.2.0

R3(config-router)#network 30.30.30.0

R3(config-router)#exit

完成上述配置后路由器R1的路由器表如2所示。

wKioL1PVr22QG1RCAAPOR7yXGv8972.jpg

注意:R1的路由表中有一条暂时没有显示,被隐藏的到 30.30.30.0RIP路由,这条路由器R1通过下一跳是R2172.16.1.2来到达30.30.30.0的路由,它为什么会被隐藏,因为RIP以跳数来评估路由的度量,通过192.168.4.3192.168.1.31跳,而经过R2172.16.1.2来到达30.30.30.0的路由是2跳,所以它暂时被隐藏,那么在一种情况下该路由器会出现,那就是下一跳192.168.4.3192.168.1.3这两条路由失效时,到此为后面的问题做出了预设。

现在将路由器R1R2E1/0接口规划到HSRP热容组1,虚拟IP地址是172.16.1.254,要求R1为活动路由器,并配置两台路由器的抢占功能,具体配置如下所示:

注意:暂时不去配置任何接口跟踪!

路由器R1HSRP配置:

interface Ethernet1/0

ipaddress 172.16.1.1 255.255.255.0

standby1 ip 172.16.1.254 * 配置HSRP的虚拟IP地址

standby 1 priority 110 * 配置优先级为110,确保R1HSRP组中的活动路由器

standby 1 preempt * 配置抢占功能

路由器R2HSRP配置:

interface Ethernet1/0

ipaddress 172.16.1.2 255.255.255.0

standby 1 ip 172.16.1.254

standby 1 preempt

为什么不为R2配置优先级?

默认优先级为100,为了确保能让R1(优先级110)成为活动路由器,所以没必要去配置R2的优先级,使用保持默认的100

提出一个问题:现在到第一步的配置为止,如果路由器的S2/0E1/1端口出现故障,请问HSRP的活动路由器是否会从R1切换到R2,流量是否会被R2所接管,在主机上能否成功的ping30.30.30.1?

第二步:在路由器R1上制造故障去shutdown路由器R1S2/0E1/1接口

R1(config)#intes2/0

R1(config-if)#shutdown *关闭S2/0

R1(config-if)#exit

R1(config)#intee1/1

R1(config-if)#shutdown *关闭E1/1

R1(config-if)#exit

系统提示:两个接口的管理属性为down

*Jul 24 11:24:11.047: %LINK-5-CHANGED: InterfaceSerial2/0, changed state to administratively down

*Jul 24 11:24:11.055: %LINEPROTO-5-UPDOWN: Lineprotocol on Interface Serial2/0, changed state to down

wKioL1PVr7uTboZbAAKCCuqiqLA436.jpg

阅读更多内容

没有评论:

发表评论