??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久久久久久久妇女,一区二区三区波多野结衣在线观看 ,污视频在线观看免费http://www.aygfsteel.com/paulwong/category/50946.htmlzh-cnTue, 12 Oct 2021 16:21:33 GMTTue, 12 Oct 2021 16:21:33 GMT60Enterprise Architect VS Solution Architect VS Software Architecthttp://www.aygfsteel.com/paulwong/archive/2021/10/11/436007.htmlpaulwongpaulwongMon, 11 Oct 2021 07:29:00 GMThttp://www.aygfsteel.com/paulwong/archive/2021/10/11/436007.htmlhttp://www.aygfsteel.com/paulwong/comments/436007.htmlhttp://www.aygfsteel.com/paulwong/archive/2021/10/11/436007.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/436007.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/436007.html
  • Enterprise Architect
    定义企业的大概方?
    • Solution Architect
      定义pȝ使用哪些框架技?/li>
    • Software  Architect
      定义pȝ行ؓ(f)
    • Technical  Architect
      定义有关部v所使用服务?/li>

    https://stackoverflow.com/questions/524941/whats-the-difference-between-solutions-architect-and-applications-architect

    https://www.youtube.com/watch?v=zB9WuYE1REI


    paulwong 2021-10-11 15:29 发表评论
    ]]>
    怎么提高自己的系l架构水q?/title><link>http://www.aygfsteel.com/paulwong/archive/2021/08/04/435940.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 04 Aug 2021 03:05:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2021/08/04/435940.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/435940.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2021/08/04/435940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/435940.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/435940.html</trackback:ping><description><![CDATA[<a target="_blank">https://my.oschina.net/u/4662964/blog/5135740</a><br /><br /><img src ="http://www.aygfsteel.com/paulwong/aggbug/435940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2021-08-04 11:05 <a href="http://www.aygfsteel.com/paulwong/archive/2021/08/04/435940.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>!!!架构|站内容不错http://www.aygfsteel.com/paulwong/archive/2016/04/19/430154.htmlpaulwongpaulwongTue, 19 Apr 2016 09:54:00 GMThttp://www.aygfsteel.com/paulwong/archive/2016/04/19/430154.htmlhttp://www.aygfsteel.com/paulwong/comments/430154.htmlhttp://www.aygfsteel.com/paulwong/archive/2016/04/19/430154.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/430154.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/430154.htmlhttp://colobu.com/categories/%E6%9E%B6%E6%9E%84/page/2/

    paulwong 2016-04-19 17:54 发表评论
    ]]>
    应用pȝ架构http://www.aygfsteel.com/paulwong/archive/2014/12/04/421058.htmlpaulwongpaulwongThu, 04 Dec 2014 14:15:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/12/04/421058.htmlhttp://www.aygfsteel.com/paulwong/comments/421058.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/12/04/421058.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/421058.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/421058.html

    1Q业务架?
    业务架构是应用系l的业务范围的具体划分和体现。业务架构与要落地的系l^台无兟?br />业务架构的搭建,可以在概ND完成轮廓的搭徏Q对一些具体的l节Q可以没有,或将?x)存在。但是,要在架构搭徏q程中,把控着Q或设计者,要留有充分的包容余地?br />
    业务架构具体内容Q要有粗l业务流的体现。每个业务流肯定要行得通。对l合或交叉的业务要详细划分Q按通用性,或者特D性,划分为各自的子集?br />
    业务架构要包括应用系l项目的当前实施范围Q或要实施的范围?br />
    业务架构应该做到Q业务范围内容的增加Q不影响已经搭徏好的业务架构Qƈ且,比较Ҏ(gu)地融合到业务架构中?br />
    在业务架构搭E中Q对熟?zhn)的、惯例的业务用细业务按模块划分Q进行描q。对没有落地的业务内容,按粗业务进行模块划分描q。划分好的业务功能模块,在业务架构中是唯一的,不能重叠?br />
    2Q系l架?
    pȝ架构是业务架构落实到具体gq_的应用,gq_如HP-UX、RS6000、ES9000、AS400{等Q操作系l如UNIX、AIX?90 Zpȝ、OS400、LINUX{等?br />
    架构师的责Q是把业务架构的各个模块在一个单独硬件^CQ或一个整体,包括多个层次复杂的综合硬件系l^CQ把应用pȝ落实在最能体现硬件^台运行效率的地方?br />
    业务架构是有范围的,在现有状况下Q或来一定时间段Q实现的业务架构都会(x)满现有目需求?br />
    优秀的架构师Q整体观要非常强Q精通当今至一条行业技术方向和主要技术,熟?zhn)当今IT潮流gq_Q和在此之下的潮Y件实施技术?br />
    架构师不是万能的Q但是,在架构师的统帅下Q各分支的模块架构实玎ͼ要根据架构师规划和设计的pȝ架构轮廓q行实施Q具体模块实现要team leaderQ根据模块特征,做具体技术设计和实现?br />
    架构师职责之一Q就是把控应用系l项目实施规范?br />
    打个比方QIT架构师,像建筑M架构师,业务架构像一个徏{架构,比如一个社区的建筑规划Q哪里是居住区?哪里是电(sh)影院Q哪里是市Q等{,q些都是在社区徏讑ֈ期,架构师就要设计和规划廓。对具体l节操作Q比如社Z有一块区域要建筑一座楼房,W三层要实现中式复古装修Q第四层要实现欧式宫廷式装修Q等{,每一层都有各自熟(zhn)精通这斚w的team leader设计领导实施?br />
    架构师的职责之一Q就是会(x)懂得用hQ把各team leader攑֜最能发挥作用的地方?br />
    一个好的应用系l,不会(x)因ؓ(f)业务扩充或变化,而媄响应用系l运行和q行效率。不提倡打补丁的做法。功能唯一Q包括功能代码唯一Q是好的pȝ架构的保障,同时也是评h(hun)一个优U架构师的标准?br />
    3Q实施架?
    实施架构是系l架构具体实现手D,是体p项目实施提升效率的具体实施行ؓ(f)?img src ="http://www.aygfsteel.com/paulwong/aggbug/421058.html" width = "1" height = "1" />

    paulwong 2014-12-04 22:15 发表评论
    ]]>
    聊聊架构http://www.aygfsteel.com/paulwong/archive/2014/11/28/420835.htmlpaulwongpaulwongFri, 28 Nov 2014 15:06:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/11/28/420835.htmlhttp://www.aygfsteel.com/paulwong/comments/420835.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/11/28/420835.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/420835.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/420835.html
    从字面上理解Q系l架构是pȝ的框架结构,是系l进行抽象之后的一个草图。它包含了系l中各个抽象lg的协作方式?br />

    Z么需要架构?

    好的架构能够降低pȝ的创造和l护成本Q特别是l护成本。一个系l的创造成本低Q而维护的成本大,特别是互联网应用Q一般情况下把一个系l搞上线只需要一个月Q但是有的系l搞下线~需要几个月Q而维护则需要数q。好的设计师不会(x)在系l上U后对系l进行大的修改,从而减系l的l护成本?br />
    如果区分创造和l护两个阶段的话Q架构师分ؓ(f)pȝ架构师和l护架构师,架构新的pȝ的是pȝ架构师,而维护老系l的则是l护架构师,E序员大多数愿意做新pȝ不愿意维护老系l,因ؓ(f)感觉没什么技术含量,但是l护老的pȝ反而更难,因ؓ(f)老系l的重构和改q更加复杂,l护架构师不仅需要读懂老系l架构设计,q要在不影响老系l功能的情况下,q行功能新增和重构。我的一位同事在对一个旧的系l进行重构之前,M几个星期的代码,然后才开始设计改q方案?br />
    架构设计的目?br />
    设计的目标围l着降低成本q个需求进行。设计的目标非常多,不同的系l架构目标也不一_(d)但是我觉得比较重要的架构目标有以下几个,可扩展性,灉|性和可插入性?br />
    可扩展性,新的功能Ҏ(gu)加入到系l里Q降低创造成本?br />灉|性,一处修改不?x)L?qing)其他的地方Q降低维护成本?br />可插入性,同样的功能可方便的替换,降低创造和l护成本?br />那么如何实现q三个目?br />
    提高可扩展性:(x)把不易变的抽象出来。抽象层要比实现层要更稳定,抽象层的变化要少。把变化的集中v来,比如把容易变化的功能攑֜单独一个系l或者一个模块里?br />灉|性:(x)模块化,每个模块怺独立Q减模块之间的藕合度,修改不会(x)互相传递?br />提高可插入性:(x)模块化,服务化?br />如何开始架?br />
    当一块新业务攑֜你面前时Q如何进行系l架构?我觉得需要进行以下几个步骤的思考:(x)

    业务分析Q输Z务架构图Q这个系l里有多个业务模块Q从前台用户到底层一共有多少层?br />pȝ划分Q根据业务架构图输出pȝ架构图,需要思考的是这块业务划分成多少个系l,可能一个系l能支持多个业务。基于什么原则将一个系l拆分成多个pȝQ又Z什么原则将两个pȝ合ƈ成一个系l?
    pȝ分层Q系l是几层架构Q基于什么原则将一个系l进行分层,分成多少层?
    模块化:(x)pȝ里有多少个模块,哪些需要模块化Q基于什么原则将一cM码变成一个模块?img src ="http://www.aygfsteel.com/paulwong/aggbug/420835.html" width = "1" height = "1" />

    paulwong 2014-11-28 23:06 发表评论
    ]]>
    软g架构师应具备的十大特?/title><link>http://www.aygfsteel.com/paulwong/archive/2014/11/05/419524.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 05 Nov 2014 04:55:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2014/11/05/419524.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/419524.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2014/11/05/419524.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/419524.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/419524.html</trackback:ping><description><![CDATA[<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">如果有h问你Q作Z个Y件架构师需要哪些特质的话,你会(x)怎么回答Q从技术层面上Ԍ架构师的技术要求是首位的。除此之外在做h处事斚wQ更有魅力的架构师则更受Ƣ迎?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">最q有个同事问我,是什么成׃一个架构师。下文就是我的回{,适用于各个技术领域。其中我故意不考虑企业架构相关的问题?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; text-align: center; background-color: #f7f7f7;"><br /><img src="http://dl2.iteye.com/upload/attachment/0102/6732/a78cfb05-e246-37e5-a4e8-b5bbec50807e.jpg" style="border: 0px;" alt="" /> </div><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">1、了解相关领域的技术知?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">在你惌成ؓ(f)架构师的相关技术领域,必须具备扎实的专业知识和qh的本领?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">2、超强的分析、设计能?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">不管怎样Q具备很强的分析和设计能力都是必杀技。另外就是能够运用设计模式方式解军_U各L(fng)问题?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">3、编码与验证性测试(POCQ?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">熟?zhn)该组l整个技术栈Qƈ能用各层的技术熟l地~码?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能快速实现验证性测试?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">4、架构设计的实力</strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能ؓ(f)原始需求提供架构方案?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">考虑周全Q工具和框架的采用、安全性、性能和扩展性、依赖关pR集成、效益?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">熟?zhn)软g开发生命周期(SDLCQ:(x)需求、分析、设计、测试、打包、部|Ӏ?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">5、徏模语a或工?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能用不同的建模语言或工P向其他架构师、开发者、项目经理等人,阐述架构?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">6、架构框?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能证明架构的可行性,包括其业务、应用、数据、基讄斚w?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">了解TOGAF和ZACHMAN框架更好了?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">7、沟通能?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能与开发h员、测试h员、商业分析师、上U经理沟通无阻,无论在口头上和书面上?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">8、布?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能讲解该行业的市场、技术知识?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能ؓ(f)全队提供培训评?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">9、销售、甚臛_?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">能参与售前工作(其对于软g服务业)Q制定技术方案、用各U预工具估计方案的规模和成本、与销售对象互动?nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><strong style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">10、演讲技?/strong> <br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.200000762939453px; background-color: #f7f7f7;">优秀的演讲技巧,有助于以下活动:(x)华丽的计划书和技术文、PPT演讲、布道?/span><img src ="http://www.aygfsteel.com/paulwong/aggbug/419524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2014-11-05 12:55 <a href="http://www.aygfsteel.com/paulwong/archive/2014/11/05/419524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>架构师的职责http://www.aygfsteel.com/paulwong/archive/2014/08/05/416607.htmlpaulwongpaulwongTue, 05 Aug 2014 10:35:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/08/05/416607.htmlhttp://www.aygfsteel.com/paulwong/comments/416607.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/08/05/416607.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/416607.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/416607.html    q来看到CSDN上有个CTO׃部,里面聊得是不亦乐乎。我怀着无比崇敬的态度Q拜M一下牛Z的发a?br />
    里面有个哥们发v一个话题:(x)

    “CTO, 你多久没有写E序了?”?br />有h回答Q?#8220;不写代码的CTO,属于......q公叔R题大?”?br />
    看到q里Q我p紧撤了,怕忍不住反驳几句Q反而遭到牛Z的群D。试惻I一个上点规模的IT公司Q还得靠CTO来写E序的话Q那是不是才叫问题大了呢。当Ӟ我没有做qCTOQ所以我有我的不同看法,而且q愿意表辑և来,无知者无畏。我情愿怿Q我所理解的CTO跟这位CTO所理解的是两回事。所以我惻I如果有h能把CTO的职责给标准化了Q也许就不会(x)有这么多的争Z?br />
        同样的道理,关于架构师的定义Q大家也有着不同的理解。什么是架构师?架构师有哪些职责Q我觉得有必要提前明一下,要不然大家沟通v来也?x)生类似问题,子说子理Q卯说卯理,但是压根说得不是一码子事?/div>
     
    0.1 什么是架构?/strong>

    曄有这么个D子Q?/div>
    Ԍ(x)我已l应聘到一家中型Y件公怺Q今天上班的时候,全公司的人都来欢q我?/div>
    乙:(x)慕ingQ都什么h来了Q?/div>
    Ԍ(x)CEO、COO、CTO、All of E序员,q有?x)计、司机都来了?/div>
    乙:(x)哇,他们太重视你了,人才啊,q么多hq接你!
    Ԍ(x)没有啊,׃个hQ?/div>
    乙:(x)靠,#%K?%...

        很多的创业公司,一n兼数职的情Şq是很常见的。至,我是l历q的Q一个h包办了所有的开发过E,q测试我都做了,l对的一条龙Q但是经常踩钢丝、骑独轮车M(x)有失的时候,l果有一ơ,从我手里发出ȝ光盘母盘Q含有病毒僵,以至于被q收回已l推上市场的2万张光盘Q从那之后,我的心脏开始变得无比坚强,现在是整个后台服务都瘫痪了Q我也只是微微一W。其实,一个hw兼架构师和E序员,甚至多种角色Q没什么不妥,后面q会(x)讲这个话题,q种现象不是中国特色Q跟国外是完全接轨的。我曄跟米国的一个工E师在msn中聊q类似的话题Q发C们的路子跟咱们没什么不同,在ITq个行业Q我们跟世界的差距只?天,他们刚弄出来的新东西Q我们这里第2天保准见得到?/div>

        架构师这个称g是拍脑袋惛_来的Q是有国际标准(ISO/IEC 42010Q可查的。架构师是Y件开发活动中的众多角色之一Q它可能是一个h、一个小l,也可能是一个团队。微软对架构师有一个分cd考,我们参考一下,他们把架构师分ؓ(f)4U:(x)企业架构师EA(Enterprise Architect)、基l构架构师IA(Infrastructure Architect)、特定技术架构TSA(Technology-Specific Architect)和解x案架构师SA (Solution Architect)。微软的q个分类是按照架构师专注的领域不同而划分的?/div>

        EA的职责是军_整个公司的技术\U和技术发展方向。盖茨给自己的Title是首席软g架构师,|易丁磊也喜Ƣ这么称D己,实际上就是EA角色QIA的工作就是提炼和优化技术方面积累和沉淀(wn)形成的基性的、公q、可复用的框架和lgQ这些都是一个技术型公司传承下来的最宝贵的胦富之一Q特定技术架构师TSAQ他们主要从事类似安全架构、存储架构等专项技术的规划和设计工作;SA的工作则专于解决Ҏ(gu)的规划和设计Q?#8220;解决Ҏ(gu)”q个词在中国已经C严重泛滥的程度,大忽(zhn)们最喜欢把它挂在嘴边。所谓解x案,是把品、技术或理论Q不断地q行l合Q来创造出满用户需求的选择。售前工E师一般都是带着它到客户那里d挥的?/div>

        大公怼(x)把各U类型的架构师分得很清楚Q小公司一般就不那么讲I了Q架构师多数是是IA+TSA+SAQ一人包打天下,所以说大公司出专才Q小公司出全才?/div>

        实际工作中,我们也经怼(x)见到另一U比较简单的分类方式Q把架构师分Y件架构师和系l架构师。Y件架构师基本上是TSA+IAQ这也是E序员最Ҏ(gu)H破Q最可能C的一条道路,比如JAVA架构师、DotNet架构师、LAPM架构师等{,我后面所讲的内容都是与Y件架构师的相关的话题。系l架构师实际上是SA+TSAQ更着力于l合q用已有的品和技术,来实现客h望的需求。系l架构师要求通晓软、硬件两斚w的知识,所以它的知识体pȝ对庞杂。关于系l架构师的话题,我们可以E后再作讨论?/div>
     
    0.2 架构师的职责

          架构师需要参与项目开发的全部q程Q包括需求分析、架构设计、系l实现、集成、测试和部v各个阶段Q负责在整个目中对技术活动和技术说明进行指导和协调?nbsp;
    架构师主要职责有4条:(x) 

    1、确认需?/span>
        在项目开发过E中Q架构师是在需求规D明书完成后介入的Q需求规D明书必须得到架构师的认可。架构师需要和分析人员反复交流Q以保证自己完整q准地理解用户需求?/div>

    2、系l分?br />

        依据用户需求,架构师将pȝ整体分解为更的子系l和lgQ从而Ş成不同的逻辑层或服务。随后,架构师会(x)定各层的接口,层与层相互之间的关系。架构师不仅要对整个pȝ分层Q进?#8220;U向”分解Q还要对同一逻辑层分块,q行“横向”分解?/div>
        软g架构师的功力基本体现于此Q这是一相对复杂的工作?/div>

    3、技术选型


        架构师通过对系l的一pd的分解,最lŞ成了软g的整体架构。技术选择主要取决于Y件架构?/div>
    Web Serverq行在Windows上还是Linux上?数据库采用MSSql、Oracleq是MysqlQ需要不需要采用MVC或者Spring{轻量的框Ӟ前端采用富客L(fng)q是瘦客L(fng)方式Q类似的工作Q都需要在q个阶段提出Qƈq行评估?br />
    架构师对产品和技术的选型仅仅限于评估Q没有决定权Q最l的军_权归目l理。架构师提出的技术方案ؓ(f)目l理提供了重要的参考信息,目l理?x)从目预算、h力资源、时间进度等实际情况q行权衡Q最l进行确认?/div>

    4、制定技术规D?/span>
       
        架构师在目开发过E中Q是技术权威。他需要协调所有的开发h员,与开发h员一直保持沟通,始终保证开发者依照它的架构意囑֎实现各项功能?/div>
       
        架构师与开发者沟通的最重要的Ş式是技术规D明书Q它可以是UML视图、Word文档QVisio文g{各U表现Ş式。通过架构师提供的技术规D明书Q保证开发者可以从不同角度去观察、理解各自承担的子系l或者模块?/div>
    架构师不仅要保持与开发者的沟通,也需要与目l理、需求分析员Q甚至与最l用户保持沟通。所以,对于架构师来Ԍ不仅有技术方面的要求Q还有h际交方面的要求?/div>


    0.3 架构师的误区

    1、架构师是目l理


        架构师不是项目经理。项目经理侧重于预算控制、时间进度控制、h员管理、与外部联系和协调等{工作,具备理职能。一般小型项目中Q常见项目经理兼架构师?/div>

    2、架构师负责需求分?br />

        架构师不是需求分析员。需求分析h员的工作是收集需求和分析需求,q与最l用戗品经理保持联pR架构师只对最l的需求审核和认Q提出需求不清和不完整的部分Q他?x)跟需求分析员时刻保持联系。架构师是技术专Ӟ不是业务专家?/div>

    3、架构师从来不写代码

        q是一个尚存争论的问题。目前有两种观点Q?/div>
    观点1Q架构师不写代码Q写代码U体力活Q架构师写代码大材小用。架构师把UML的各U视图交l开发h员,如果有不明确的地方,可以与架构师随时沟通?/div>
    观点2Q架构师本来自于E序员,只是比程序员站的层面更高Q比E序员唯一多的是经验和知识Q所以架构师也免不了写代码?/div>

        我个得这两种说法是与架构师的n和所处的环境有关?/div>

        架构师首先是一个技术角Ԍ所以一定是来自于技术h员这个群体,比如pȝ架构师,多是来自于运lh员,可能本n代码写得q不多,或者说写不出来很漂亮的代码。Y件架构师多是来自于程序员Q有着E序员的血l和情怀Q所以在目开发过E中Q可能会(x)写一些核心代码。我们的理想是架构师不用写代码,但事实上有时候过于理惟뀂架构师写不写代码,可能取决于公司的规模、文化、开发h员的素质{现实情c另外,架构师也不是跟程序员界限分得那么清楚Q按照能力也有高中低之分Q写不写代码不是区分两者的Ҏ(gu)标准?/div>

    0.4 架构师的基本素质

    周星驰有个片子《喜剧之王》,剧中的a天仇整天揣着本《演员的自我修养》,一个好演员不仅需要天赋,也需要一定的理论指导Q无师自通的人毕竟是数。架构师的成长过E也是这栗从普通程序员到高U程序员Q再到架构师Q是一个经验积累和思想升华的过E。经验积累是一个方面,素质培养是另一个方面,两者相辅相成,所以我觉得有必要把架构师的所要具备的素质|列一下,作ؓ(f)E序员努力的方向?/div>

    1、沟通能?/span>

        Z提高效率Q架构师必须赢得团队成员、项目经理、客h用户认同Q这需要架构师h较强的沟通能力。沟通能力是人类最普遍性的素质要求Q技术h员好像容易忽略,x为架构师׃能忽略。千万不要抱着q样的观念:(x)怀才跟怀孕似的,旉久了M(x)被h发现的。还是天桥上卖大力丸的哥们说得对Q光说不l假把式Q光l不说傻把式。看看你周围的头头脑脑们Q哪一个不是此中高手,我们千万不要鄙视Q认是阿谀奉承、投机钻营,凡事都要看到U极的一面,“沟?#8221;的确是一U能力。我认ؓ(f)自己是一个略内向的hQ因为我是农村出来的孩子Q普通话都说不好Q以前或多或带有点自卑感,qL着是金子M(x)发光Q所以在职业生中吃了不亏。现在,我深深懂得了沟通的重要性,我会(x)很主动地跟同事们Q跟老大们不定时地沟通,感觉工作h畅多了?/div>

        q一条我认ؓ(f)最为重要,所以排在首位。我甚至认ؓ(f)下面几条都可以忽略,唯一q一条得牢记Q而且要常常提醒自己?/div>

    2、领D?/span>

        架构师能够推动整个团队的技术进展,能在压力下作出关键性的决策Qƈ其贯彻到底。架构师如何来保证这U执行力Q这需要架构师h领导能力?/div>

        架构师的领导能力的取得跟目l理不太一栗项目经理主要负责解册政管理,q种能力与技术关pM大,他有人权和胦权,再扯上一?#8220;领导”的虎皮,采用“胡萝卜加大棒”的方式,基本上可以保证执行力。架构师在项目里面可能更多地使用非正式的领导力,也就是我们常说的影响力,里面包括个h力、技术能力、知识传递等{?/div>

    3、抽象思维和分析能?/span>

        架构师必d备抽象思维和分析的能力Q这是你q行pȝ分析和系l分解的基本素质。只有具备这L(fng)能力Q架构师才能看清pȝ的整体,掌控全局Q这也是架构师大局观的形成基础。你如何具备q种能力呢?一是来自于l验Q二是来自于学习(fn)。架构师不仅要具备在问题领域上的l验Q也需要具备在软g工程领域内的l验。也是_(d)架构师必能够准得理解需求,然后用Y件工E的思想Q把需求{化和分解成可用计机语言实现的程度。经验的U篏是需要一个时间过E的Q这个过E谁也帮不了你,是需要你ȝ历的。但是,如果你有意识地去培养Q不断吸取前人的l验的话Q还是可以羃短这个周期的。这也是我写作此pd的始动力之一?/div>

    4、技术深度和q度

       架构师最好精?-2个技术,具备q种技术能力可以更加深入的理解有关架构的工作原理,也可以拉q和开发h员的距离Qƈ形成团队中的影响力?/div>

       架构师的技术知识广度也很重要,需要了解尽可能多的技术,所谓见多识q,只有q样Q才可能l合各种技术,选择更加适合目的解x案。有的h_(d)架构师技术广度的要求高于技术深度的要求Q这是很有道理的?/div>

    总而言之,一句话Q架构师是项目团队中的技术权威?/div>

    paulwong 2014-08-05 18:35 发表评论
    ]]>三层架构?qing)其优缺?/title><link>http://www.aygfsteel.com/paulwong/archive/2014/07/09/415633.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 09 Jul 2014 09:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2014/07/09/415633.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/415633.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2014/07/09/415633.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/415633.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/415633.html</trackback:ping><description><![CDATA[三层架构(3-tier application) 通常意义上的三层架构是整个业务应用划分ؓ(f)Q表现层QUIQ、业务逻辑层(BLLQ、数据访问层QDALQ。区分层ơ的目的即ؓ(f)?#8220;高内聚,低耦合"的思想?br />  Q、表现层QUIQ:(x)通俗讲就是展现给用户的界面,即用户在使用一个系l的时候他的所见所得?br />  Q、业务逻辑层(BLLQ:(x)针对具体问题的操作,也可以说是对数据层的操作Q对数据业务逻辑处理?br />  Q、数据访问层QDALQ:(x)该层所做事务直接操作数据库Q针Ҏ(gu)据的增添、删除、修攏V更新、查扄?br />注:(x)Q内聚:(x)一个模块内各个元素彼此l合的紧密程度;耦合Q一个Y件结构内不同模块之间互连E度的度量)<br /><br />优缺?br />  优点Q?br />  1、开发h员可以只x整个l构中的其中某一层;<br />  2、可以很Ҏ(gu)的用新的实现来替换原有层ơ的实现Q?br />  3、可以降低层与层之间的依赖;<br />  4、有利于标准化;<br />  5、利于各层逻辑的复用?br /> 6、扩展性强。不同层负责不同的层面,如PetShop可经q简单的配置实现Sqlserver和oracle之间的{换,当然写好了也可以实现B/S与C/S之间的{?br /> 7、安全性高。用L(fng)只能通过逻辑层来讉K数据层,减少了入口点Q把很多危险的系l功能都屏蔽了?br /> 8、项目结构更清楚Q分工更明确Q有利于后期的维护和升<br /><br />  ~点Q?br />  1、降低了pȝ的性能。这是不a而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必通过中间层来完成?br />  2、有时会(x)DU联的修攏V这U修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,Z证其设计W合分层式结构,可能需要在相应的业务逻辑层和数据讉K层中都增加相应的代码<br /> 3、增加了代码量,增加了工作量<br /><br /><br />三层架构是:(x)<br /><br />一Q界面层<br />界面层提供给用户一个视觉上的界面,通过界面层,用户输入数据、获取数据。界面层同时也提供一定的安全性,保用户不用看到不必要的机密信息?br /><br />二:(x)逻辑?br /><br />逻辑层是界面层和数据层的桥梁Q它响应界面层的用户hQ执行Q务ƈ从数据层抓取数据Qƈ必要的数据传送给界面层?br /><br />三:(x)数据?br />数据层定义、维护数据的完整性、安全性,它响应逻辑层的hQ访问数据。这一层通常由大型的数据库服务器实现Q如Oracle 、Sybase、MS SQl Server{?br /><br />------<br /><br />从开发角度和应用角度来看Q三层架构比双层或单层结构都有更大的优势。三层结构适合体开发,每h可以有不同的分工Q协同工作效率倍增。开发双层或单层应用Ӟ每个开发h员都应对pȝ有较q理解Q能力要求很高,开发三层应用时Q则可以l合多方面的人才Q只需数人对pȝ全面了解Q从一定程度工降低了开发的隑ֺ?br />三层架构属于瘦客L(fng)模式Q用L(fng)只需一个较?yu)的盘、较?yu)的内存、较慢的CPU可以获得不错的性能。相比之下,单层或胖客户寚w器的要求太高?br />三层架构的另一个优点在于可以更好的支持分布式计环境。逻辑层的应用E序可以有多个机器上q行Q充分利用网l的计算功能。分布式计算的潜力巨大,q比升CPU有效?br />三层架构的最大优Ҏ(gu)它的安全性。用L(fng)只能通过逻辑层来讉K数据层,减少了入口点Q把很多危险的系l功能都屏蔽了?br />另外三层架构q可以支持如下功能:(x)Remote Access(q程讉K资料)Q例如可透过Internet存取q程数据库;High Performance(提升q算效率)解决集中式运?Centralize)?qing)主从式架?Client-Server)中,数据库主机的q算负担Q降低数据库L的Connection LoadQƈ可藉由增加App Server处理众多的数据处理要求,q一点跟前面讲到的分布式计算提高q算能力是一个道理;Client端发出Request(工作要求)后,便可ȝQ交由App Server和DataBase Server共同把工作完成,减少Client端的{待旉Q这个功能我觉得应用场合不是很多Q自己感受也不是很深刻,从理Z是成立的?img src ="http://www.aygfsteel.com/paulwong/aggbug/415633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2014-07-09 17:24 <a href="http://www.aygfsteel.com/paulwong/archive/2014/07/09/415633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转(探讨分布式系l与集群的区别)http://www.aygfsteel.com/paulwong/archive/2014/05/23/414022.htmlpaulwongpaulwongFri, 23 May 2014 05:27:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/05/23/414022.htmlhttp://www.aygfsteel.com/paulwong/comments/414022.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/05/23/414022.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/414022.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/414022.html单说Q分布式是以~短单个d的执行时间来提升效率的,而集则是通过提高单位旉内执行的d数来提升效率?/p>

      例如Q如果一个Q务由10个子dl成Q每个子d单独执行需1时Q则在一?a target="_blank" rel="nofollow" style="padding: 0px; margin: 0px; color: #ff8373; outline: 0px; font-size: 12px;">服务?/a>上执行改d需10时?/p>

      采用分布式方案,提供10?a target="_blank" rel="nofollow" style="padding: 0px; margin: 0px; color: #ff8373; outline: 0px; font-size: 12px;">服务?/a>Q每台服务器只负责处理一个子dQ不考虑子Q务间的依赖关p,执行完这个Q务只需一个小时?/p>

      而采用集方案,同样提供10台服务器Q每台服务器都能独立处理q个d。假设有10个Q务同时到达,10个服务器同时工作,10后Q?0个Q务同时完成,q样Q整w来看,q是1时内完成一个Q?

      集群概念

      1. 两大关键Ҏ(gu)?/strong>

      集群是一l协同工作的服务实体Q用以提供比单一服务实体更具扩展性与可用性的服务q_。在客户端看来,一个集就象是一个服务实体,但事实上集群׃l服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:(x)

      · 可扩展?-集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集,从而增强集的性能?/p>

      · 高可用?-?通过服务实体冗余使客L(fng)免于L遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了Q另一个服务实体会(x)接管p|的服务实体。集提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性?/p>

      2. 两大能力

      Zh可扩展性和高可用性特点,集群的必d备以下两大能力:(x)

      · 负蝲均衡--负蝲均衡能把d比较均衡地分布到集群环境下的计算和网l资源?/p>

      · 错误恢复--׃某种原因Q执行某个Q务的资源出现故障Q另一服务实体中执行同一d的资源接着完成d。这U由于一个实体中的资源不能工作,另一个实体中的资源透明的l完成Q务的q程叫错误恢复?/p>

      负蝲均衡和错误恢复都要求各服务实体中有执行同一d的资源存在,而且对于同一d的各个资源来_(d)执行d所需的信息视?信息上下?必须是一L(fng)?/p>

      3. 两大技?/strong>

      实现集群务必要有以下两大技术:(x)

      · 集群地址--?由多个服务实体l成Q集客L(fng)通过讉K集群的集地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集的一个基 本特征。维护集地址的设|被UCؓ(f)负蝲均衡器。负载均衡器内部负责理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的{换。有的负载均 衡器实现真正的负载均衡算法,有的只支持Q务的转换。只实现d转换的负载均衡器适用于支持ACTIVE-STANDBY的集环境,在那里,集群中只?一个服务实体工作,当正在工作的服务实体发生故障Ӟ负蝲均衡器把后来的Q务{向另外一个服务实体?/p>

      · 内部通信--Z能协同工作、实现负载均衡和错误恢复Q集各实体间必L帔R信Q比如负载均衡器Ҏ(gu)务实体心x试信息、服务实体间d执行上下文信息的通信?/p>

      h同一个集地址使得客户端能讉K集群提供的计服务,一个集地址下隐藏了各个服务实体的内部地址Q得客戯求的计算服务能在各个服务实体之间分布。内部通信是集能正常q{的基Q它使得集群h均衡负蝲和错误恢复的能力?/p>

      集群分类

       Linux集群主要分成三大c? 高可用集, 负蝲均衡集群Q科学计集?Q高可用集群( High Availability Cluster)Q负载均衡集?Load Balance Cluster)Q科学计集?High Performance Computing Cluster)

      具体包括Q?/p>

      Linux High Availability 高可用集:(x)普通两节点双机热备Q多节点HA集群QRAC, shared, share-nothing集群{;Linux Load Balance 负蝲均衡集群QLVS{?...QLinux High Performance Computing 高性能U学计算集群QBeowulf c集?...Q分布式存储Q其他类linux集群Q如Openmosix, rendering farm {?.

      详细介绍

      1. 高可用集?High Availability Cluster)

      常见的就?个节点做成的HA集群Q有很多通俗的不U学的名Uͼ比如"双机热备", "双机互备", "双机".

      高可用集解决的是保障用L(fng)应用E序持箋对外提供服务的能力?(h意高可用集群既不是用来保护业务数据的Q保护的是用L(fng)业务E序对外不间断提供服务,把因软g/g/Zؓ(f)造成的故障对业务的媄响降低到最程??/p>

      2. 负蝲均衡集群(Load Balance Cluster)

      负蝲均衡pȝQ集中所有的节点都处于活动状态,它们分摊pȝ的工作负载。一般Web服务器集、数据库集群和应用服务器集群都属于这U类型?/p>

      负蝲均衡集群一般用于相应网l请求的|页服务器,数据库服务器。这U集可以在接到hӞ查接受请求较?yu),不繁忙的服务器,q把h转到q些服务器上。从查其他服务器状态这一点上看,负蝲均衡和容错集很接近Q不同之处是数量上更多?/p>

      3. U学计算集群(High Performance Computing Cluster)

      高性能计算(High Perfermance Computing)集群Q简UHPC集群。这c集致力于提供单个计算机所不能提供的强大的计算能力?/p>

      高性能计算分类

      高吞吐计?High-throughput Computing)

       有一c高性能计算Q可以把它分成若q可以ƈ行的子Q务,而且各个子Q务彼此间没有什么关联。象在家搜寻外星? SETI@HOME -- Search for Extraterrestrial Intelligence at Home )是q一cd应用。这一目是利用Internet上的闲置的计资源来搜寻外星人。SETI目的服务器一l数据和数据模式发给Internet?参加SETI的计节点,计算节点在给定的数据上用l定的模式进行搜索,然后搜索的l果发给服务器。服务器负责从各个计算节点q回的数据汇集成完整?数据。因U类型应用的一个共同特征是在v量数据上搜烦某些模式Q所以把q类计算UCؓ(f)高吞吐计。所谓的Internet计算都属于这一cR按?Flynn的分c,高吞吐计属于SIMD(Single Instruction/Multiple Data)的范畴?/p>

      分布计算(Distributed Computing)

      另一c计刚好和高吞吐计相反,它们虽然可以l分成若qƈ行的子Q务,但是子Q务间联系很紧密,需要大量的数据交换。按照Flynn的分c,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴?/p>

      4. 分布?集群)与集的联系与区?/strong>

      分布式是指将不同的业务分布在不同的地斏V而集指的是几台服务器集中在一P实现同一业务。分布式中的每一个节点,都可以做集群。而集ƈ不一定就是分布式的?/p>

      举例Q就比如新浪|,讉K的h多了Q他可以做一个群集,前面放一个响应服务器Q后面几台服务器完成同一业务Q如果有业务讉K的时候,响应服务器看哪台服务器的负蝲不是很重Q就给哪一台去完成?/p>

      而分布式Q从H意上理解,也跟集群差不多, 但是它的l织比较松散Q不像集,有一个组l性,一台服务器垮了Q其它的服务器可以顶上来?/p>

      分布式的每一个节点,都完成不同的业务Q一个节点垮了,哪这个业务就不可讉K了?/p>

    paulwong 2014-05-23 13:27 发表评论
    ]]>
    大型电(sh)商系l架构解?/title><link>http://www.aygfsteel.com/paulwong/archive/2014/01/17/409055.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 17 Jan 2014 04:00:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2014/01/17/409055.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/409055.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2014/01/17/409055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/409055.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/409055.html</trackback:ping><description><![CDATA[<a target="_blank">http://www.infoq.com/cn/presentations/decrypt-the-architecture-of-large-e-commerce-system?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global</a><img src ="http://www.aygfsteel.com/paulwong/aggbug/409055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2014-01-17 12:00 <a href="http://www.aygfsteel.com/paulwong/archive/2014/01/17/409055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大型|站技术架构读书笔?/title><link>http://www.aygfsteel.com/paulwong/archive/2013/11/09/406160.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 09 Nov 2013 03:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2013/11/09/406160.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/406160.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2013/11/09/406160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/406160.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/406160.html</trackback:ping><description><![CDATA[大型|站l历的技术架构演变:(x)<br /><ol><li>应用服务器、数据库服务器和文g服务器都安装在同一C?/li><li>应用服务器、数据库服务器和文g服务器分别安装在不同L</li><li>增加了分布式的缓存服务器</li><li>应用服务器增加了好几収ͼ变成集群</li><li>增加了CDN和反代理服务器</li><li>数据库服务器变成M形式的服务器</li><li>数据库服务器变成分布式的服务器,文g服务器也变成分布式服务器<br /></li><li>NOSQL分布式数据库和搜索引擎的引入</li><li>应用服务器虽然是多台Q但都是部v了同一应用Q这时将应用拆分Q每台服务器部v不同的拆分应?/li><li>虽然应用已经拆分Q但每个应用都是从页面管到数据库Q这时l拆分,存取数据库的部份独立,面部䆾<br />也独?/li></ol>架构模式<br /><ol><li>分层Q代码放在不同的cM</li><li>分割Q应用放在不同的JVM?/li><li>分布式,部v在不同的物理?/li><li>集群Q同一个应用部|到不同的主机,可以负蝲均衡</li><li>~存QCND加速、反向代理、本地缓存、分布式~存</li><li>异步Q消除高q发</li><li>冗余Q多处备?/li><li>安全?/li></ol><img src ="http://www.aygfsteel.com/paulwong/aggbug/406160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2013-11-09 11:34 <a href="http://www.aygfsteel.com/paulwong/archive/2013/11/09/406160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>architecture requirementhttp://www.aygfsteel.com/paulwong/archive/2013/06/25/400924.htmlpaulwongpaulwongTue, 25 Jun 2013 01:03:00 GMThttp://www.aygfsteel.com/paulwong/archive/2013/06/25/400924.htmlhttp://www.aygfsteel.com/paulwong/comments/400924.htmlhttp://www.aygfsteel.com/paulwong/archive/2013/06/25/400924.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/400924.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/400924.htmlResponsibilities:
    • Provide high level technical architecture, design documents and build of business applications and supporting functions based upon customer’s requirements.
    • Produce a detailed functional design document to match customer requirements
    • Co-operate with the customer’s technical architect to produce a technical specification for custom development and systems integration requirements.
    • Ensure delivered solutions are realized in time frame committed
    • Participate and lead the project meetings and present the solution with the customer if needed
    • Review the work of other team members and ensure it meets the required standards
    • Work with team members of the team to improve their technical and functional knowledge and skills.
    • Act as a mentor to all team members on their assigned project tasks.
    • Drive new business growth and customer success by providing business expertise.
    Required Qualifications:
    • Graduated from University or equivalent.
    • 5-7+ years of relevant experience in software development.
    • Must have hands-on expertise in the following technologies: Java/J2EE, Spring framework, Hibernate, Web Service (SOAP and RESTful), database (Oracle, SQL, PL/SQL, stored procedures)
    • Have good knowledge in web-based systems architecture, service-based architecture, enterprise application architecture.
    • Ability to understand the business requirements and converting them into solution designs
    • Have excellent English written and oral communication skills, including conducting presentations to customers.


    paulwong 2013-06-25 09:03 发表评论
    ]]>Architecture Representation http://www.aygfsteel.com/paulwong/archive/2013/05/21/399551.htmlpaulwongpaulwongTue, 21 May 2013 03:02:00 GMThttp://www.aygfsteel.com/paulwong/archive/2013/05/21/399551.htmlhttp://www.aygfsteel.com/paulwong/comments/399551.htmlhttp://www.aygfsteel.com/paulwong/archive/2013/05/21/399551.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/399551.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/399551.htmlThe architecture representation will basically adopt the 4 + 1 View Model as 
    recommended, to organize the architectural description from different perspectives, each 
    of which addresses a specific set of concerns: 
    • Requirement View – describes the software requirements, functional and 
    non-functional, illustrated by significant use cases and scenarios. 

    • Logical View – describes the object model of the design, the system 
    decomposition into layers and subsystems, and the dependencies between them. 

    • Process View – describes the concurrency and synchronization aspects of the 
    design. 

    • Implementation View – describes the software’s static organization in the 
    development environment. 

    • Deployment View – describes the mapping of the software onto hardware. 

    • Data View – describes the database design for the software. 

    It allows various stakeholders to find what they need in the software architecture. System 
    engineers can approach it from the logical view, process view and deployment view. DBA 
    can approach it from the data view. Project managers and software configuration 
    managers can approach it from the development view.


    Demo:
    • CUHK RFID - White Paper 

    • Middleware Quick Start Guide 

    • Tag Capturer Quick Start Guide 

    • Middleware System Design Document 

    • Tag Capturer System Design Document 

    • Middleware Test Cases 

    • Middleware Test Plan 

    • Middleware Source Code 


    paulwong 2013-05-21 11:02 发表评论
    ]]>企业信息理pȝ JeeSitehttp://www.aygfsteel.com/paulwong/archive/2013/02/24/395664.htmlpaulwongpaulwongSun, 24 Feb 2013 08:45:00 GMThttp://www.aygfsteel.com/paulwong/archive/2013/02/24/395664.htmlhttp://www.aygfsteel.com/paulwong/comments/395664.htmlhttp://www.aygfsteel.com/paulwong/archive/2013/02/24/395664.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/395664.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/395664.htmlJeeSite是一?nbsp;开源的企业信息理pȝ 基础框架。主要定位于“企业信息理”领域Q可用作企业信息理cȝl、网站后台管理类pȝ{。JeeSite是非常强调开发的高效性、健壮性和安全性的?/p>

    JeeSite是轻量的,单易学,本框架以Spring Framework为核心、Spring MVC作ؓ(f)模型视图控制器、Spring Data JPA + Hibernate作ؓ(f)数据库操作层Q此l合是Java界业内最l典、最优的搭配l合。前端界面风格采用了l构单、性能优良、页面精致的Twitter Bootstrap作ؓ(f)前端展示框架?/p>

    JeeSite 已内|?/strong> 一pd企业信息理pȝ的基功能Q目前包括两大模块,pȝ理QSYSQ模块和内容理QCMSQ模块。系l管理模块,包括企业l织架构Q用L(fng)理、部 门管理、区域管理)、菜单管理、角色权限管理、字典管理等功能Q内容管理模块,包括内容理Q文章、链接)Q栏目管理、站点管理、公qa、文件管理、前 端网站展C等功能?/p>

    JeeSite提供了常用工兯行封装,包括日志工具、缓存工兗服务器端验证、数据字典、当前组l机构数据(用户、区域、部门)以及(qing)其它常用工L(fng)。另外还提供一个基于本基础框架?nbsp;代码生成?/strong> Qؓ(f)你生成基本模块代码,如果你用了JeeSite基础框架Q就可以很快速开发出优秀的信息管理系l?/p>

    Z选择

    1. 使用 Apache License 2.0 协议Q源代码完全开源,无商业限制?/li>
    2. 使用目前最L的J2EE开发框Ӟ单易学,学习(fn)成本低?/li>
    3. 数据库无限制Q支持MySql、Oracle、SQL Server、H2{数据库?/li>
    4. 模块化设计,层次l构清晰。内|一pd企业信息理的基功能?/li>
    5. 权限控制_֯l致Q对所有管理链接都q行权限验证Q可控制到按钮?/li>
    6. 提供基本功能模块的源代码生成器,提高开发效率及(qing)质量?/li>
    7. 提供常用工具cd装,日志、缓存、验证、字典、组l机构等Q常用标{(taglibQ,获取当前l织机构、字典等数据?/li>
    8. 完全兼容目前最行览器(IE6、IE7+、Firefox、ChromeQ?/li>

    使用技?/h2>

    1、Services相关

    • Core FrameworkQSpring Framework 3.1?/li>
    • Security FrameworkQApache Shiro 1.2?/li>

    2、Web相关

    • MVC FrameworkQSpringMVC 3.1?/li>
    • Layout DecorationQSiteMesh 2.4?/li>
    • JavaScript LibraryQJQuery 1.7?/li>
    • CSS FrameworkQTwitter Bootstrap 2.0.4?/li>
    • JavaScript/CSS CompressorQYUI Compressor 2.4?/li>
    • Front ValidationQJQuery Validation Plugin 1.9?/li>

    3、Database相关

    • ORM FrameworkQSpring-Data-JPA 1.2、Hibernate 4.1?/li>
    • Connection PoolQBoneCP 0.7
    • Bean ValidationQHibernate Validation 4.3.0?/li>
    • CacheQEhcache 2.6?/li>

    4、Tools 相关

    • CommonsQApache Commons
    • JSON MapperQJackson 2.1
    • Bean MapperQDozer 5.3.2
    • Full-text searchQHibernate Search 4.2QApache Lucene 3.6Q、IK Analyzer 2012_u6中文分词
    • Log ManagerQLog4j 1.2

    安全考虑

    1. 开发语aQ系l采用Java 语言开发,h卓越的通用性、高效性、^台移植性和安全性?/li>
    2. 分层设计Q(数据库层Q数据访问层Q业务逻辑层,展示层)层次清楚Q低耦合Q各层必通过接口才能接入q进行参数校验(如:(x)在展C层不可直接操作数据库)Q保证数据操作的安全?/li>
    3. 双重验证Q用戯单提交双验证Q包括服务器端验证及(qing)客户端验证,防止用户通过览器恶意修改(如不可写文本域、隐藏变量篡攏V上传非法文件等Q,跌客户端验证操作数据库?/li>
    4. 安全~码Q用戯单提交所有数据,在服务器端都q行安全~码Q防止用h交非法脚本及(qing)SQL注入获取敏感数据{,保数据安全?/li>
    5. 密码加密Q登录用户密码进行SHA1散列加密Q此加密Ҏ(gu)是不可逆的。保证密文泄露后的安全问题?/li>
    6. 强制讉KQ系l对所有管理端链接都进行用戯n份权限验证,防止用户

    快速体?/h2>
    1. 具备q行环境QJDK1.6、Maven3.0、MySql?/li>
    2. 修改src\main\resources\application.properties文g中的数据库设|参数?/li>
    3. Ҏ(gu)修改参数创徏对应MySql数据库?/li>
    4. q行bin\resresh-db\refresh-db.bat脚本Q导入表l构?qing)演C数?/li>
    5. q行bin\jetty.batQ启动服务器Q第一ơ运行,需要下载依赖jar包,误心{待Q?/li>
    6. 最高管理员Q用户名Qthinkgem 密码Qadmin



    paulwong 2013-02-24 16:45 发表评论
    ]]>架构的性能要求http://www.aygfsteel.com/paulwong/archive/2012/08/30/386630.htmlpaulwongpaulwongThu, 30 Aug 2012 13:26:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/08/30/386630.htmlhttp://www.aygfsteel.com/paulwong/comments/386630.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/08/30/386630.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/386630.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/386630.html

    、性能要求Q?br />Ø 支持同时在线用户量(讉K|站面Q:(x)10000Z上;
    Ø 支持q发量:(x)5000Q?br />Ø 高峰负蝲时的q_响应旉Q指每秒q发讉K?000以上Q:(x)
    u 面讉K旉Q用户实)Q?-5U;
    u q行操作cd应时_(d)用户实测Q?0000个用户量Q:(x)1U?10U?br />Ø 日常q行时的q_响应旉Q?br />u 面讉K旉Q用户实)Q?-3U;
    u q行操作cd应时_(d)用户实测Q?00000个用户量Q:(x)1U?6U?br />Ø 有效q行旉Q?br />u 7x24时Q?9%Q?br />u 每年因系l本w问题导致的宕机ơ数Q?#8804;4Q?br />u 因系l本w问题出现故障时的恢复时_(d)(x)≤24时?br />
    q种要求有h能做得到吗?



    paulwong 2012-08-30 21:26 发表评论
    ]]>
    ZJava技术的大型|站架构Ҏ(gu)(?http://www.aygfsteel.com/paulwong/archive/2012/08/21/385977.htmlpaulwongpaulwongTue, 21 Aug 2012 14:20:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/08/21/385977.htmlhttp://www.aygfsteel.com/paulwong/comments/385977.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/08/21/385977.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/385977.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/385977.html M架构可以Z Struts 1.X/2.XQ当然有很多更好的控制层框架供选择Q以快速敏捷ؓ(f)准则吧?
    抽象出核心库装 控制器和中间层的操作?
    在大规模集群环境下,session复制?x)引起严重的性能问题。考虑?集群~存 + cookie验证 代替session实现权限控制吧?

    2、Cache?br /> 配置 Memcache l成集群~存
    ?Memcache 客户端进行封?
    Memcached 节点l成池,调用C意QopList (BizName, {略 ...)
     
    3、中间层
    “中间?#8221;可以理解为基于应用和数据之间的层ơ。它被设计用来ؓ(f)Web应用提供Q数据缓??对应用透明的数据访?#8212;—卛_用不需要考虑数据表拆分的问题。以服务的方式提供对存储层的高性能调用以及(qing)分布式计。可供选择的框Ӟ(x)ICE 、Hadoop 直接ZMemcache开发(减少复杂度,推荐Q?

    4、存?br /> 推荐MySQLQ理由:(x)免费Q经q实跉|验,有大量成熟的案例、解x案、技术支持?br /> 规模:(x)一?data table l护存储服务器阵列,内容 -> mount ……
    大规模:(x)Master-Slave模式+MySQL ProxyQ实现数据库d分离。在中间层的包装下,可做如下扩展Q以支持更大规模的数据存取:(x)
    数据?表水qx分,?User -> User33% + User33% + User34%
    数据?表垂直拆分,?User -> UserBaseInfo + UserAddrInfo
    也可考虑使用 LongStore (龙存) 解决Ҏ(gu)Q由龙存理存储阵列……
     
    5、部|?br /> 划分子域名,每个子域名一个Web应用包,互不q扰
    静态资源(css, js, image ...Q用专门的静态服务器

    6、负载均?br /> 规模:(x)DNS轮询?br /> 大规模:(x)F5Q?2*X 台F5服务器,F5是L4/L7层交换机Q每台至可处理200万连接(与服务器内存有关Q?br /> Ngnix是L7层交换,LVS负蝲均衡也是一U方?br /> 
    7、Web中间仉择
    Tomcat - 最?00q发
    Apache - 最?000q发
    Ngnix - 优于Apache
    采用Ҏ(gu)QNgnix + Resin Q理由:(x)
    Resin提供更ؓ(f)快速的servlet引擎 - 选择Resin?
    gzip问题 - Resin在单独处理gzip时存在内存溢出的隐?zhn)Q因此要加一?Ngnix?
    Ngnix 能减单独用Resin时的内存占用 - Resin建立1000个连接?000个线E;加Ngnix后,透过?#8220;异步q接”?#8220;建立长连?#8221;机制使Resin内存压力大大减小?
    Ngnix 针对Linuxpȝ有性能优化措施 - 0 Copy, send file ...
    因此采用Q? Ngnix + 1 ResinQ一对一?br /> 静态服务器采用QSquid + Apache, why? because Squid has cache ability ...
    新变?- Nginx?.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL?qing)相关组合当作KeyQ用md5~码哈希后保存在盘上,所以它可以支持LURL链接Q同时也支持 404/301/302 q样的非200状态码。虽然目前官方的Nginx Web~存服务只能为指定URL或状态码讄q期旉Q不支持cMSquid的PURGE指o(h)Q手动清除指定缓存页面,但是Q通过一个第三方的Nginx模块Q可以清除指定URL的缓存?br /> Nginx的Web~存服务主要由proxy_cache相关指o(h)集和fastcgi_cache相关指o(h)集构成,前者用于反向代理时Q对后端内容源服务器q行~存Q后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一栗?br /> 最新的Nginx 0.8.31版本Qproxy_cache和fastcgi_cache已经比较完善Q加上第三方的ngx_cache_purge模块Q用于清除指定URL的缓存)Q已l可以完全取代Squid。有的网站已l在生环境使用?Nginx ?proxy_cache ~存功能过两个月,十分E_Q速度不逊于 Squid?br /> 在功能上QNginx已经具备Squid所拥有的Web~存加速功能、清除指定URL~存的功能。而在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在反向代理、负载均衡、健h查、后端服务器故障转移、Rewrite重写、易用性上QNginx也比Squid强大得多。这使得一台Nginx可以同时作ؓ(f)"负蝲均衡服务??Web~存服务?来用。以下是配置片段供参考:(x)
    view plaincopy to clipboardprint?
    http   
    {  
       ...  
       client_body_buffer_size  512k;  
       proxy_connect_timeout    5;  
       proxy_read_timeout       60;  
       proxy_send_timeout       5;  
       proxy_buffer_size        16k;  
       proxy_buffers            4 64k;  
       proxy_busy_buffers_size 128k;  
       proxy_temp_file_write_size 128k;  
       ... 
       #注:(x)proxy_temp_path和proxy_cache_path指定的\径必d同一分区  
       proxy_temp_path   /data0/proxy_temp_dir; 
       #讄Web~存区名UCؓ(f)cache_oneQ内存缓存空间大ؓ(f)200MBQ?天清理一ơ缓存,盘~存I间大小?0GB?nbsp; 
       proxy_cache_path  /data0/proxy_cache_dir  levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=30g;  
    }  
    server  
    {  
       ...  
       location /  
       { 
         #如果后端的服务器q回502?04、执行超时等错误Q自动将h转发到upstream负蝲均衡池中的另一台服务器Q实现故障{UR?nbsp; 
         proxy_next_upstream http_502 http_504 error timeout invalid_header;  
         proxy_cache cache_one; 
         #对不同的HTTP状态码讄不同的缓存时?nbsp; 
         proxy_cache_valid  200 304 12h;  
         proxy_cache_valid  301 302 1h; 
         #以域名、URI、参数组合成Web~存的Key|NginxҎ(gu)Key值哈希,存储~存内容CU缓存目录内  
         proxy_cache_key $host$uri$is_args$args;  
         proxy_set_header Host  $host;  
         proxy_set_header X-Forwarded-For  $remote_addr;  
         proxy_pass http://backend_server;  
         expires      1d;  
       } 
       #用于清除~存Q假设一个URL为http://192.168.1.44/test.txtQ通过讉Khttp://192.168.4.44/purge/test.txt可以清除该URL的缓存?nbsp; 
       location ~ /purge(/.*)  
       { 
         #讄只允许指定的IP或IPD|可以清除URL~存?nbsp; 
         allow            127.0.0.1;  
         allow            192.168.0.0/16;  
         deny            all;  
         proxy_cache_purge    cache_one   $host$1$is_args$args;  
       }     
       #扩展名以.php?jsp?cgil尾的动态应用程序不~存?nbsp; 
       location ~ .*\.(php|jsp|cgi)?$  
       {  
         proxy_set_header Host  $host;  
         proxy_set_header X-Forwarded-For  $remote_addr;  
         proxy_pass http://backend_server;  
       }  
    }
    同时Q对于媄响页面展现的静态资源,例如Qcss, js {可以放在具有优质带宽的IDCQIDC=互联|数据中心,优质/高速的带宽也比较贵Q正所谓一份h(hun)׃分货Q;其他的静态资源,如图片等可以攑֜h相对低廉的IDC中,以域名区分两U静态资源,节省每一分钱?br /> 
    8、网l拓扑图
              / Ngnix - 1:1 - Resin
    F5 --
              \ Squid - 1:n - Apache

    9、监控统计^?br /> 业务l计 - 用户讉Kl计
    软g性能 - 应用pȝ监控Q例如:(x)h响应旉……
    g/|络性能 - Ganglia监控

    10、其它要?br /> IE览器对同一域名Q包括子域名Q只能徏?个连接,q接多了只能排队……
    双F5架构Q两台职能划分不同,镜像Q心x?#8230;…
    Raid存储阵列……
    Linux操作pȝ?qing)其优?#8230;…

    paulwong 2012-08-21 22:20 发表评论
    ]]>
    MW记-架构2http://www.aygfsteel.com/paulwong/archive/2012/07/23/383786.htmlpaulwongpaulwongMon, 23 Jul 2012 09:58:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/07/23/383786.htmlhttp://www.aygfsteel.com/paulwong/comments/383786.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/07/23/383786.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/383786.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/383786.html改善非功能需求的最?jng)_?/strong>

    冗余
    负蝲均衡
    方式有网l切换、集管理、基于DNS配置的切?br />法有随机算法、选择响应旉最快的法、选择负蝲最ȝ法、重型算?br />p|转移

    集群
    服务器l成一l,来统一q行理Q检Y、硬件的p|Q处理系l的p|转移Q自动因p|事g而重?br />
    集群配置方式
    两节炚w、集对、Ring、N+1、N to N

    改善性能
    性能有两个关键点Q?br />处理旉Q从计算、数据调度、缓存和|络传输
    d旉Q来源于资源竞争和另一程的依?br />
    处理措施
    使用好的法或适用的技?br />引入q行计算、限制ƈ发请求以避免pȝq度使用、TIME OUT措施

    高可?/strong>
    可用是指随时才能讉KQ不能访问的原因是硬件、网l、服务器软g、和应用lg的失败;
    如果一个应用组件不能提供够快的响应时间也是指不可用了Q这是指pȝ正常q行情况下,׃正在同时处理很多d而导致的延时?br />
    改善措施
    集群中的复制Q有z跃式的复制Q发l所有节点,节点都同时进行运,但只采用其中一个作为响应;被动式的复制Q只有主节点响应hQ其他节点与主节点同步?br />
    扩展性改?/strong>
    扩展的原因通常是因为需求的变更。最重要的目标是改善pȝ开发以适应快速的变化?br />
    可采取的Ҏ(gu)有:(x)
    定义清晰的范围、预知可能的变更Q如果界面技术,隔离q一区域使其不能波及(qing)到其他地方)、用高质量的对象模型(使用MVC模式来解耦界面组件和业务lgQ?br />
    伸羃性的改善
    垂直伸羃Q增加处理器或内存等Q对pȝ是透明的;
    水^伸羃Q增加服务器Q必避免对服务器物理位|的依赖?br />
    架构中的?/strong>

    两层l构的系l?/strong>
    指C/S架构的程序。通常指包含了展示和业务逻辑的客L(fng)和服务器上的数据库。展C和业务逻辑紧密l合?br />
    优点
    安全是一点,׃q些pȝ是位于防火墙后面Q员工不能用不安全的的PC。性能通常比较好,如果公司不用比较老的很少内存的电(sh)脑的话?br />
    ~点
    可用性是一个缺点,因ؓ(f)如果一个元件不能工作的时候,整个pȝ变得不可用?br />伸羃性是一个问题,׃l一能够增加的元件是数据库?br />Z能增加新功能Q你很明显会(x)影响到其他元Ӟ扩展性不行?br />可管理性也是一个问题,监控所有正在运行客L(fng)的PC是不可能的?br />可维护性和可扩展性一栗?br />可靠性不是一个优Ҏ(gu)~点Q由于请求增加时Q所有的q些h来到数据库,所有的数据库能处理增长的交易吞吐量?br />
    三或多层架构的系l?/strong>
    三层架构由WEBQ业务逻辑和资源层l成。多层架构的pȝ有WEBQ业务逻辑Q整合和资源层。在非功能需求方面,三层和多层架构的pȝ拥有相同的优点和~点?br />
    优点
    当将展示层逻辑从PC客户端移到服务器端,而能被集时Q׾~性被改善了?br />׃集群层能够提供失败{ULӞ可用性也有所改善?br />׃功能被分解到不同的层中,扩展性也有所改善。你可以更改表现层又能得对业务逻辑影响最?br />对于可维护性也是这栗?br />׃各层是部|在服务器上Q得监控各个元件变得更Ҏ(gu)Q这样可理性也提高了?br />分层对于安全性可以做得更多,但必d心对性能造成影响?br />性能可能是优Ҏ(gu)~点。主要还是优点,当分割线E到各服务器上时Q如果你要在服务器间传送大数据Ӟq时可能?x)变成缺点了?br />
    ~点
    多层pȝ原生是比较复杂,多层架构的系l其实是没有所谓的~点。虽然这栯Qƈ不会(x)׃你有了多层设计,你就有了很好的架构。必记得不要过度用层数?br />

    架构是一pd的得系l能够由一l具有自q上下文的单的子系l组成的l构规则?br />
    性能是指pȝ的响应时_(d)如必d3U内响应?br />
    伸羃性是指当讉K量增加时可以增加冗余的组Ӟ部v到增加的服务器上Ӟ原系l无M更改。C/Sl构的系l,׃pȝ安装在客L(fng)Q就不能作这U׾~?br />
    扩展性,是指增加或修改功能时对现有的pȝ不会(x)构成影响。如MODEL1的情形,pȝ没有分层Q所有代码؜在一P更改时会(x)互相影响?br />
    可靠性,是指讉K量增加的时候,事务有保证。通常数据库对增加的请求,事务的保证方面已l是有所处理了?br />
    可用性,是指pȝ中的某个元gp|Ӟpȝq能讉K。如果是C/S架构的系l,无法分层Q某个元件出现问题时Q系l就不可用了?br />
    可维护性,是指调整现有的系l流E,不会(x)影响到其他元件?br />
    可管理性,是指能监控系l׾~能力,可靠性,可用性,性能和安全?br />
    安全性,是指pȝ能够L非法讉K?/div>

    paulwong 2012-07-23 17:58 发表评论
    ]]>MW记-架构http://www.aygfsteel.com/paulwong/archive/2012/07/19/383514.htmlpaulwongpaulwongThu, 19 Jul 2012 08:19:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/07/19/383514.htmlhttp://www.aygfsteel.com/paulwong/comments/383514.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/07/19/383514.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/383514.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/383514.html
    架构是pȝ的结构,是一U机制?br />
    架构是pȝ的结构。你建立架构来解释将来系l的l构和这U结构如何支撑业务需求和非功能需求。你可以定义q种l构作ؓ(f)一U机Ӟpȝ如何用来解决一些普遍问题。这个机制有能力以统一的方式支持业务需求。例如,持久化机制必被pȝl一使用Q这意味着QQ何时候系l如果要做持久化Q必M同样的方式。将持久化机制定义后Q你提供了一U默认的所有设计h员必遵循的方式。这些架构体Ӟ如持久化、分布式、通讯、交易管理和安全是你徏立系l的基础Q而且必须得徏立的?br />
    什么是建立架构呢?是你徏立的W合pȝ中规定的非功能需求的基础。例如,pȝ中说明对用户的反应时间不能超q?U,你徏立的软g基础必ȝ合这个需求。这同时也意味着你已l给设计人员一个允总们设计和~码来徏立系l时而不必担心这些非功能需求。一个关于架构中比较真实的问题是Q架构的建立什么时候停止,设计程什么时候开始?对于每个pȝ没有最l答案。这个架构和设计的问题可以被ȝh和控制。架构定义了会(x)建立什么,设计了你怎样建立pȝ的外框。一个或数人关注全景来控制架构的流E,其他多数人关注如何实现全景是设计所要控制的。架构师设计架构Q设计团队在q个架构中用它来达成pȝ的全部目标。因此,如果你正在ؓ(f)有经验的设计人员建立架构Q你׃必象为缺经验的设计人员那样提供可能详的文?br />
    当你在徏立架构来没跟pȝ的非功能需求时你通常不会(x)有无限制的资金来购买g、Y件和开发资源,因此你必Mɾpȝ能在有限的预中很好的运行。例如,当你只有一台电(sh)脑来支撑内部用户Ӟ你怎样建立可拓展的pȝ来满互联网时代Q没有资金来购买软g产品Ӟ你怎样建立架构Q这些就是架构师们徏立系l架构时面对的问题的例子。你?x)面临很多困隄选择Q和做很多取舍来解决q类问题。由于你作了取舍Q很重要的是取舍你必ȝ文档说明Q得开发h员能够理解ؓ(f)什么要作这个取舍,q样你就不会(x)收到来自开发h员的问题了。如果你军_使用ORACLE在系l中Q你必ȝ文注明Z么要选择ORACLE而不选其他数据库。你建立架构时的取舍x非功能需求。大多数pȝ没有_的资金来满所有的非功能性需求。作为架构师Q你必d^衡非功能需求和预算之间的矛盾。如果要?4*7的高可用光是购买g花掉了你全部的预,那就是说没有多余的钱来购买应用服务器来维护非功能需求了Q你必调整你的Y件架构了。调整依赖于你正在徏立架构的pȝ和与投资人的关系?br />
    二、架构师角色

    架构师必d有以下特炏V?br />
    架构师必L一个全面的Q成熟的Q有l验的,受过教育的,学习(fn)q速的Q一个领D,很好的沟通,和在必须时候作出困隄军_。全面的是指Q架构师必须h业务和问题领域的工作知识。他们能够通过l验和教育获取这些知识。另外架构师也必d有广阔的技术知识。一个好的架构师能够评估所有可能的Ҏ(gu)不管使用何种技术?br />
    架构师要做些什么?架构师与资深开发h员有什么不同?q些都是一些常问的问题。设计师考虑一个用h下一个按钮时会(x)发生什么,架构师则考虑成行千上万的用户按下一个按钮时会(x)发生什么。架构师要减dpȝ相关的风险。技术风险可能是未知的、未证明的或未测试的。风险来自非功能需求,有时也可能来自业务需求。不哪U风险,都很Ҏ(gu)地尽早地在徏立架构阶D|个风险?br />
    架构师必领导开发团队保证设计师的开发h员根据这个架构一构徏pȝ。关于取舍必M出困隄军_Q作为领D,是作决定的人。ؓ(f)了领导项目团队,架构师必L一个好的沟通者,包括d写。通常是通过虚拟模型和群l讨论。如果架构师不能很好的沟通,设计师和开发h员也怸能正地构徏pȝ?img src ="http://www.aygfsteel.com/paulwong/aggbug/383514.html" width = "1" height = "1" />

    paulwong 2012-07-19 16:19 发表评论
    ]]>
    什么是高内聚、低耦合Q?/title><link>http://www.aygfsteel.com/paulwong/archive/2012/04/16/374780.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 16 Apr 2012 14:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2012/04/16/374780.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/374780.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2012/04/16/374780.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/374780.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/374780.html</trackback:ping><description><![CDATA[起因Q模块独立性指每个模块只完成系l要求的独立子功能,q且与其他模块的联系最且接口单,两个定性的度量标准――耦合性和内聚性?<br /><br />耦合性也U块间联pR指软gpȝl构中各模块间相互联pȝ密程度的一U度量。模块之间联p越紧密Q其耦合性就强Q?br /><br />模块的独立性则差。模块间耦合高低取决于模块间接口的复杂性、调用的方式?qing)传递的信息?<br /><br />耦合性分c??#8213;―?: 无直接耦合;数据耦合;标记耦合;控制耦合;公共耦合;内容耦合; <br />1 无直接耦合: <br />2 数据耦合: 指两个模块之间有调用关系Q传递的是简单的数据|相当于高U语a的g? <br />3 标记耦合: 指两个模块之间传递的是数据结构,如高U语a中的数组名、记录名、文件名{这些名字即标记Q其实传递的是这个数据结构的地址; <br />4 控制耦合: 指一个模块调用另一个模块时Q传递的是控制变量(如开兟뀁标志等Q,被调模块通过该控制变量的值有选择地执行块内某一功能; <br />5 公共耦合: 指通过一个公共数据环境相互作用的那些模块间的耦合。公p合的复杂程序随耦合模块的个数增加而增加?<br />6 内容耦合: q是最高程度的耦合Q也是最差的耦合。当一个模块直接用另一个模块的内部数据Q或通过非正常入口而{入另一个模块内部?<br /><br />内聚性又U块内联pR指模块的功能强度的度量Q即一个模块内部各个元素彼此结合的紧密E度的度量。若一个模块内各元素(语名之间、程序段之间Q联pȝ紧密,则它的内聚性就高?<br /><br />内聚性匪c??#8213;―?: 偶然内聚;逻辑内聚;旉内聚;通信内聚;序内聚;功能内聚; <br />1 偶然内聚: 指一个模块内的各处理元素之间没有M联系?<br />2 逻辑内聚: 指模块内执行几个逻辑上相似的功能Q通过参数定该模块完成哪一个功能?<br />3 旉内聚: 把需要同时执行的动作l合在一起Ş成的模块为时间内聚模块?<br />4 通信内聚: 指模块内所有处理元素都在同一个数据结构上操作Q有时称之ؓ(f)信息内聚Q,或者指各处理用相同的输入数据或者生相同的输出数据?<br />5 序内聚: 指一个模块中各个处理元素都密切相关于同一功能且必顺序执行,前一功能元素输出是下一功能元素的输入?<br />6 功能内聚: q是最强的内聚Q指模块内所有元素共同完成一个功能,~Z不可。与其他模块的耦合是最q?<br /><br />耦合性与内聚性是模块独立性的两个定性标准,Y件系l划分模块时Q尽量做到高内聚低耦合Q提高模块的独立性,计高质量的Y件结构奠定基?<br /><br />有个例子很容易明白:(x)一个程序有50个函敎ͼq个E序执行得非常好Q然而一旦你修改其中一个函敎ͼ其他49个函数都需要做修改Q这是高耦合的后果?<br />一旦你理解了它Q你~写概要设计的时候设计类或者模块自然会(x)考虑?#8220;高内聚,低耦合”?<img src ="http://www.aygfsteel.com/paulwong/aggbug/374780.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2012-04-16 22:37 <a href="http://www.aygfsteel.com/paulwong/archive/2012/04/16/374780.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>架构师的素质http://www.aygfsteel.com/paulwong/archive/2012/03/19/372163.htmlpaulwongpaulwongSun, 18 Mar 2012 18:21:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/03/19/372163.htmlhttp://www.aygfsteel.com/paulwong/comments/372163.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/03/19/372163.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/372163.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/372163.html

    1 架构师是技术领对{?/strong>
    架构师必要有技术,而且q是领导。架构师要带领自己团队完成自qdQ完全凭借自q能力做事情,完全是匹夫之勇,Ҏ(gu)不提倡?

    2 架构师理解Y件流E?/strong>
    架构师必M解Y件流E,否则无法驱动整个团队前进Q如果一个架构师不熟(zhn)开发流E,无法协调产品U相关h员进行高效工作,也无法指导团队成员完成自q工作。所以来说架构师一般不是空降兵Q除非是全新的部门)Q因为空降兵一般不?x)熟?zhn)新公司的开发流E,即是同一个行业的Q各个公司的差别q是很大。所以说听说某某L某公司做首席架构师或者首席科学家Q一般是高风险的事情Q即使他对这个行业很了解?

    3 架构师必ȝ(zhn)业务领域?/strong>
    如果一个架构师不熟(zhn)自q行业Q做的架构就是纸上谈兵,熟?zhn)业务领域的架构师Q才能很好的理解需求,做出合适的Ҏ(gu)。互联网和网l安全是完全不同的两个方向,即你熟(zhn)里面的各种具体技术,但是以互联网的架构来做网l安全品,肯定?00%的失败?
    我做PKI的时候,目最初的使用.netQ用微软的crytoAPIQ开发的很顺利。后来来了一位新的架构师Q觉?net不能跨^収ͼ军_?用javaQ做Z品后Q发现找不到arm cpu的jdkQ用^台有限。再ơ决定用openssl做,最后这个项目以p|而告l。后来我惌arm cpu都是嵌入式设备用的,Ҏ(gu)没有M嵌入式设备提供CA服务?

    4 架构师必要有广度的知识?/strong>
    架构师考虑的问题必d面,必须了解的要q,具体的细节可以不xQ因为细节变化很快。很多具体技术h员出w的架构师,只关注于具体的细节,某些斚w做的很好Q整体的性能很差?
    下面q个目的成功可以理解ؓ(f)一个笑话。某公司的两个部门都做cE序的,A部门做的q_使用的x86和mipsQB部门使用q_是x86?armQ后来A部门的一个模块要lB部门用,最后发现根本不能运行。最后A部门发现armq_使用big endian模式Q这样A部门?0多名员工Q检查代码中所有非零整敎ͼl过C月苦战,才修改完毕。其实解x法很单,因B部门的代码也是首先在 x86做的Q做的时候他们考虑了cpu的endian模式。这q不能说B部门架构师很牛,从另一个方面说他的无知。因为板子有跳线Q专门切换cpu的是 big endianq是little endianQ这样两个部门都可以不修改程序?

    5 架构师必L写程序的高手?
    架构师一般都?发h员出w,一般都是团队的核心。优U的架构师应该了解团队使用各种技术,有了q些知识Q才能和开发h软进行有效沟通?
    有一个项目架构用xml做配|,因ؓ(f)病毒库很庞大Q最后导致xml ?0多兆Q服务端的javaE序使用dom q行qo(h)的时候,30兆xml加蝲很慢Q频J出现out of memory。这个项目后来搁。根据以前的l验发现 msxml加蝲30多M的xml 不过几秒Q而且msxml的xpath速度很快Q后来专门ؓ(f)此写了JNI处理xml的?

    6架构师是优秀的沟通h员?/strong>
    架构师一定要?x)忽?zhn),臛_要扯淡。架构师不但要指导本部门员工的工作,也要协调其他部门的资源,q要向用h集需求,制定规格说明书,重要的把用户的不合理要求砍掉Q合理需求遵循自q思\

    paulwong 2012-03-19 02:21 发表评论
    ]]>
    软g架构那点事儿Q二Q?/title><link>http://www.aygfsteel.com/paulwong/archive/2012/02/26/370801.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 26 Feb 2012 12:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2012/02/26/370801.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/370801.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2012/02/26/370801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/370801.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/370801.html</trackback:ping><description><![CDATA[什么才是Y件架构呢Q这是一个让的事情Q其实呢我觉?#8220;软g架构”臛_应该是一个动词,而不是一个专有名词。那么什么才是架构呢Q按照我个h的理解,架构q玩意简U不单?#8220;架构”的过E是一个把抽象转化为具体,其中的美妙不?x)低于设计师创造艾菲尔铁塔那般的感受。架构的q程?x)让你变得偏执、疯狂。至在短时期内?x)?f)之寝食难安。那时时候你的世界之后架构二字了。有炚wQ希望耐心看完~~?哈哈Q?br /><br />QPSQ尽架构是与编E语a无关的事情,目前采用Java语言作ؓ(f)例子Q?br /><br />好了Q很多hdq里?x)怀疑,NJ2EE业界行的那些SSH、SSI 不是架构吗?我的回答?#8220;NO”Q如果硬要如架构沾边的话Q那也充光是一个架构最最低的一U。在现在的我看来Q那些只不过是一些开源框架的单集成,毫无技术含量可aQ对于架构者本言Q那是通过固化的配|把q些开源框架进行一定程度的_合Q其能互相配合完成工作。当然不是否认这个配|的q程Q但是这个过E是机械化的学习(fn)Q丝毫看不到自己的想法,q时的想法都被固化的配置所代替。想当年 偶也是这样子走过来的Q所以说呢,现在的我不敢谈论架构的内涵,仅仅是表辑և我对架构的一些想法。文以记之?br /><br />好了Q经qSSH单的_合之后Q感觉自己很伟大Q而且看是跃跃Ʋ试的样子,拿来做项目,q是必经的一部,从程序员到架构是一个设想与实践相结合的一个过E。你自己架构的东西必通过目的实践,才能了解是否有改q的余地。我是比较幸q的Q一直以来很多项目都是我架构之后在实践呢Q在q里感谢那些曄呆过的公司。是他们l的q_才让我有今天坐在q里写文章的冲动。很多h在用简单粘合的SSH框架L构你的项目,你会(x)发现那玩意不适合做项目,太原始了Q仿?jng)回C矛_时代Q当然当时你的水q估计也是才进化到铁器时代吧?br /><br />W二阶段了,开始尝试修改SSH搭徏的框Ӟ新在而言q是?#8220;框架”来ŞҎ(gu)较的贴切一炏V通过一轮或者几轮的目实施Q你?x)发现其实SSH{这些也不是很完,臛_q有很多地方可以改进Q这时你已经不再满于SSH的简单那_合了,开始尝试去修改加工SSH的粘合。增加一些与SSH直接交互的隔d代码Q这样一来自己项目的代码q净了很多,SSH从入侵式到非入R式(不可?00%Q,q已l是一个了不v的飞跃了。你发挥了作Zh主观能动性的权利Q现在你收获了。那攚w的SSHl箋目到项目中d践,也许攚w后的架构在当时的你看来已经很完了。勇者无惧,GoingQ开始第二阶D늚试水Q感觉很好吧Q现在的你也?dng)R大一点了Q不再从单一的技术去看待目了,开始考虑目的开发计划了Q有了后则一层的考虑说明你是一位勤奋好学的好孩子,已经不再是单U的Coder了,面对计划Q在看看自己的架构的“框架”Q时间紧q啊。用q玩意尽目前代码尤雅了很多Q但是对于项目小l成员的开发进度还是帮助不大,大家需要学?fn)的东西太多了,Spring、Struts、Hibernate ....... q对于经验不是很丰富的程序员而言Q简直就是噩梦。考虑到这一点,你就开始进入第三阶D늚q化?br /><br />W三阶段Q开始思考屏蔽各U框枉成带来的复杂性,让不懂SSH框架的h也可以快速上手用,Z辑ֈq一点,又开始废寝忘食的框架重构Q增加更多隔d的代码。这时的框架有点架构的味道了Q重构之后的你会(x)z洋得意Q认是很完美的了Q又d颠的拿去目实战了,q时发现你隔M后的反而适得其反Q百思不得其解啊Q什么情况呢Q因Z对粘合的框架内核机制不了解,q时的你要虚心学?fn)那些开源框架了Q必L源码U别的阅读,了解他们的内核机Ӟ才能写出更好的隔dQ面对大量的源码Q必L个入口吧Q下面我单吧Spring的入口告诉大Ӟ(x)首先是Spring的Ioc容器Q这是核心,主要是看init bean以及(qing)loadbean的这点内Ҏ(gu)_NQAop的话比较深入了,单一点就是采用动态代理方式实现AOPQ在高的就是采用CgLib的动态代码切入实现。学好这两个之后。在学习(fn)Spring MVC 了,q是一个难点,你要吧Mvc的解析流E整理好了,在从每一个环节思考架构ؓ(f)和要多一个这L(fng)环节。(Struts1 太简单了QStruts2太复杂了Q。言归正传了Q经历一轮源码的z礼Q你p换骨了,SSH对你而言 使用h游刃有余了。你再也不用为框架不熟?zhn)费力了,q是的你充满了自信,短期内不再关注学?fn)框架了Q更多的旉分配l了架构。这时应该进入第四阶D了?br /><br />W四阶段Q开始用全新的眼光以?qing)思维ȝ合SSHQ不错,很多以前的用不当现在都让你L的化解,而且开始考虑使用SSHҎ(gu)的一些优势去化的你的架构。现在的你开始考虑的不是开始了Q而是如何保证代码的质量问题了Q如何保证呢Q好吧,N导申误源测试吧Q对不vQ测试团队是很昂늚Q公司很会(x)配备试团队的,自测Q小弟们才不?x)如此上心呢Q未雨绸~吧。架构时候ؓ(f)何不架构一套基于SSH的单元测试框架进来呢Q好处呢可以q容器L试功能,Z框架的单元测试进入了你的思考范围。等从思考到完全融入架构的时候,你有q入一个新的阶D了。编写测试架构就是ؓ(f)了提高工作效率,目前面向Web的开发,很多试都需要依赖容器,每次启动容器调试是何{的低效啊。好了集成了自己的测试框Ӟ弟们高兴了。也?x)对你刮目相看,臛_~写单元试是一个程序员的义务,保证自己的代码的E_性,现在你轻松了Q每天吧弟的成果用写的单元试q行一ơ。没问题了,不错。下班?br /><br />W五阶段Q也许这一阶段你的架构开始稳定,很长一D|间都?x)固化不变,也许到达了一个瓶颈了。单位来了狠多项目,每次你都构徏一个基成,1?2?。。。Nơ,O-MyGodQ你开始讨厌这U重复的的劳作了Q得Q这是你的责任,你是公司的技术一把手Q这些肯定有你来做。这是你开始考虑吧基层与业务层开始解耦。解耦出来的东东作ؓ(f)单独的一个项目存放,自己手动l护Q以?qing)版本控制。新建的目都依赖你的基目在做业务开发,现在感觉好多了,不用在ؓ(f)目每次都搭Z。看着别h在忙Q你在一Ҏ(gu)烟偷着乐吧。新在的你体?x)到一丝分ȝ快感。这不是是所谓的E序的解耦吗Q这不过你解耦的比较d了,从功能和物理上都实现了解耦。恩体会(x)到设计模式的优美了,q是你也?x)才会(x)发自内心的去迷恋设计模式。这些设计模式是前辈们精华的抽象Q不同的模式用于解决各种现实的业务徏模。学?x)是一回事Q灵zL握是另外一回事。关于设计模式,是必l的q程。不仅仅是学?x),关键是灵zM用。在合适的场景下选用合适的模式Q才是正解?br /><br />W六阶段了,通过之前的积累,你已l开始迈向架构的W一步了Q之前都是ؓ(f)q一步的U篏。好比是砍柴Q之前都是磨刀了,现在才开始踏上砍柴的路途,哼着儿歌、一路进发。现在刀不是问题了,估计之前的砍柴都是刀不好Q注意力都在刀上了Q现在刀是没问题了,开始{Ud观察柴了Q什么柴比较好,砍哪里可以一刀成功Q这些多是经验。映到软g目是Q开始关于业务徏模,不同行业的业务都有其自n的特性,如何针对q些Ҏ(gu)的业务特性去架构框架呢,在之前的隔离层上在封装一层业务支撑体p,q个体系可以良好的ؓ(f)业务pȝ提供强大的动力。通信、政府、金融、医疗、企业、税务、电(sh)商。。。。等{,每种行业有有其自w的业务特色Q干zd吧,都发现架构的不了,那就l箋完善吧。coding~~~~~好了,针对业务的支撑层也开发完毕了。通过实践q行不错。。。。?q时你的框架成了公司的某一业务U的开发^C 。。。。如果l留在公司,你也怼(x)不断完善其业务徏模的支撑体系。可惜,你可能换工作Q换工作意呌换行业。之前积累的业务体系完全行不通啊~~~?zhn)剧了Q没办法Q从弟开始做起吧Q虚心学?fn)业务基 。。。?br /><br />W七阶段Q蟩槽太多也不是坏事Q经历了几个不同的业务线Q你敏锐的嗅觉开始体验到一些独立与业务之外的程序处理规则。如何能搭徏一套快速满不同业务徏模的基础模型出来Q说到底业务C底层q是各种程Q只是每个流E节点处理的内容不同Q不是工作流Q但有其思想Q。这时候,你考虑的问题已l不是业务徏模了Q而是业务之外的东东,q个时候你?x)忘记SSHq些所谓的框架Q这些都是具体的形式体现Q现在你需要的是高度的抽象Q抽象业务之外,程图是你研I的核心Q因ZQ何程序其实都可以用流E图去表qͼ如何开发一套流E配|解析引擎呢Q神码业务都是流E上的一个节点而已。只要业务流E化Q按照我的配|写入,那么他就可以q行。见׃是山的境界吧哈哈~~?Cq一步了Q感觉架构才是正的开始了。当然框架是抛不开的,现在面(f)的问题就是如何利用既有成熟的框架是完成你的这些构惻I现在的框架开始考虑自己的分层了Q内核层、安全层、缓冲层、ORM层、异常处理机制、国际化机制{等Q是不是一伟大的工程呢,也许Spring是q样子走q来的。完成了q一阶段的修点{那么你q不满吗?恩的有点就是说不出来,L有点不满뀂现在开始讨论更深层ơ的话题<br /><br />W八阶段Q架构是有了Q你的项目规模也来大了,用这个玩意的Z来多了,现在考虑的是如何把你的框架能快速推q,市场是检验品最好的标尺。是否具有可用性。是否能量E序员(入门U)Q是否能保证代码的质量、是否能保证出现问题的快速定位,是否能够满业务扩张的需求、是否满x能的要?#8230;……………….. 咛_~~一口气说完 太篏了!Q这些问题是现在需要考虑的问题了。现在架构的推广不仅仅是你的团队在用Q也许其他团队也在用Q可惜他们无法得C的亲授,肿么?开始文化、标准化、提供实例DemoQ这些够了吗Q对?q不够,100个程序员?00中独立风格的~程方式Q那意呌?00个风险的存在Q你的架构如何屏蔽或者降低这些风险呢Q答案呢Q就是要用你的架构去诱导他们量~码风格一致。其好处不言而喻啊,l一的编码风格意呌每个E序员都是^{的Q从目角度考虑Q那是把h的风险降低了Q包括离职风险)。带来的另外一个好处就是Review代码的快Pl一风格的编码无需讲解 ……. 自己体会(x)吧。说再多也是没用q个要亲自体?x)的。到了这一阶段感觉自己是什么?在雕琢一个艺术品Q哈哈~?q个时候更加需要实践,d善你的架构。因为现在你的架构是真正的架构吧。这个需要天时地利h和多斚w的支撑。能辑ֈq一步的E序员需要的不仅仅是自己的努力了Q也需要公司的大环?#8230;…………….. q就是ؓ(f)何什么程序员需要找适合自己发挥的^台。公司成了员工技术发展的桎梏。其l果是让其q_Q或者释攑֎更宽q的I间。哇塞。好长久的文章啊。读者看到这里,需要休息休息了Q找几张女囄看看吧~~~也许我的文章让你费力了。现在OK了吗Q架构可以了吧。恩 q是有差距的?br /><br />W九(ji)阶段Q见山是山,再次回归目中来Q项目的目的是什么,盈利。这是最本质的东ѝ偏执也好、狂热也|。这是一条基准,q背q一原则的Q何架构都是失败的架构。盈利不是结果,而是目每一步风险规避的U篏。架构这是需要考虑的就是如何让架构能在每一阶段都能起到规避风险的功能呢Q这是一个比较空z的概念。但是这是必考虑的,涉及(qing)到架构Q何一个细微之处的调整。从目开始到投到维护。。。。这个过E,架构如何能保证每一阶段的风险规避呢。或者提供解决风险的更好的方?………………………..<br /><br />上述为架构师修炼的过E,架构是具有中国特色的架构。不同于国外Q一些老外闲的蛋疼ȝIӞ我们都是苦逼的目中提D己,利用8时睡觉Q?时工作之外的时间去完成q一修炼Q上面的文字也是本h的程序开发的成长历史Q抛砖引玉吧~~希望能对开?#8220;架构”你提供一些参考。最后浓~几个字Q算是文章的目的Q?br /><br />盈利、重构、坚??img src ="http://www.aygfsteel.com/paulwong/aggbug/370801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2012-02-26 20:47 <a href="http://www.aygfsteel.com/paulwong/archive/2012/02/26/370801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软g架构那点事儿Q一Q?/title><link>http://www.aygfsteel.com/paulwong/archive/2012/02/26/370800.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 26 Feb 2012 12:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2012/02/26/370800.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/370800.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2012/02/26/370800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/370800.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/370800.html</trackback:ping><description><![CDATA[关于标题Q我也开始附庸文雅了。哈哈!话说软g架构是本些年的一些积累,在此做一点分享,希望对即做架构或者是正在架构?ITer 一些参考,也许见解薄Q还望大家多多包涵,如有异议Q可U聊Q禁止拍砖?<br /><br /><br />说v架构可不是一件简单的事情Q他是一个很庞大的系l骨Ӟ但是面对到手的Y仉求,你是如何设计一个合理的架构呢?原来架构q玩意也是分W一步、第二步、第三步 ........ 以此cLQ不能急于求成Q这样容易扯着蛋。要做到手中无剑Q心中有剑的境界Qƈ非一朝一夕的努力Q需要长期项目的实践Q经历无数次的失败与重构之后再能叩开“软g架构”q个大门的一丝门~,从来一H汪z?br /><br /><br />拿到一个Y件的合同或者是用户的最原始的需求,很多架构师的W一直觉是x软g本n的功能,有哪些功能,适合采用哪些技术选型。这对于大多Ch而言Q的是没有错误。但是在q之前还一炚w要去做的事情 ...... 不知道大家想C吗?架构是基于什么环境呢Q这一点在架构之前不知道读者现在是否思考过q个问题。所谓的架构首先要了解Y件运行的软硬件以?qing)网l环境。之后明了q一Ҏ(gu)能考虑下一步的事情Q否则就有点闭门造R的感觉了?<br /><br /><br />好了Q说到运行环境,q是p从硬件环境与软g环境分别对待了,例如Q?<br /><br />1、硬件是采用几层架构啊,是采用集还是单机部|呢Q?典型的网l架构是Http服务?+ Web服务?+ 数据库服务器 。比较厉害的是q些都放在一个机器上 哈哈~~?br /><br />2、Y件运行的|络环境如何Q是Z局域网q是公网呢?是否存在隔离的情?br /><br />3、硬件是什么机器呢QIBM刀?q是 AIXpd?<br />4、系l的灑֤讑֤是什么,如何q作<br /><br />......... {等诸如此类的硬件环境首先要了解?br /><br /><br /><br />g明确了,下来考虑软g环境<br /><br />1、Y件运行的环境?Window 、Linux、Unix Q是32?/q是 64?br /><br />2、Y件运行的Web服务器神?WebSphereQWeblogic、Jboss、Tomcat、GlashFishq是别的Q版本号是多,支持的J2EE规范是多?br /><br />3、JVM是什么版本,是全新部|?q是复用甲方已经存在的Y件环境呢Q?<br />4、Y件是否与其他软g有数据交互,交互采用什么介?br /><br />5、采用什么数据库Q版本是多少Q?br /><br />.......... q些是作Y件环境需要考虑的一些基性的问题 <br /><br /><br />通过上述单的文字Q好像大家有Ҏ(gu)白了吧,其实q种事情Q很单的Q只要^时多注意点就O(jin)K了,否则{开发后ȝ场实施才发现什么都不配套啊。如果在架构开始之前,你已l关注这一点了Q恭喜了 说明你已l具备作为架构师最L(fng)的嗅觉了?br /><br />上述的那些问题或多或媄响架构本w,架构是基于单是基于集,q是两种q然不同的架构模式,很多天真的童鞋认?单机与集架构差不多Q复制一套在部v一台机器就O(jin)K了。其实则不然。二者存在太多的不同了,我D一些简单的例子哈:(x) <br /><br />在Java行业Q很多开源Y件用很频繁Q这些开源Y件本w集成了CacheQ用于提高性能Q单pȝ是单行的时候,一切都正常Q做了集出现问题了。Cache 惹得,因ؓ(f)你的集群q没有把框架内部自带的缓存集化Q还是保持各自独立的状态,一用户通过A服务器修改了内容Qƈ且刷CCacheQ但是作为集的B服务器感知不到A对Cache的变化,依旧从自w的~存中获?#8220;脏数?#8221;Q这时其他用讉KB服务器读到的|其实是A用户通过A服务器修改之前的倹{很l吧。希望能理解。瓦咔咔~~~这是架构如果采用cache 需要重写自qCache框架Q必d蔽开源项目中自带的CachedQ否则出了问题都让你莫名其妙Q?<br /><br /><br />数据库部|是单机q是双机Q是热备q是冷备Q数据访问需要读写分dQ如果硬件不支持数据库热切换Q如何采用程序实现数据库的热切换Q这些都是架构层ơ的需要直接面对的问题Q?架构师们 你们心里有底吗?<br /><br /><br /><br />与甲方内部的其他pȝ是采用什么通信方式QSocket、WS、RMIQ访问的pȝ之间是否有防火墙隔离Q采用什么技术可以穿透防火墙L呢?<br /><br /><br /><br />以后的系l如何快速部|到对甲方的真实环境中,是手动部|还是Ant自动部vQ如何做到持l集成?发送错误如何回退Q?br /><br /><br /><br />......................... 现在是不是觉得有点复杂呢Q其实没关系Q成长有两种Q一U是汲取别h成功的经验{Zؓ(f)自己的能力,另外一U是试p|Q从l历p|中成长,本h呢二者兼有,前几q都是从p|中成长,但是随着旉的推U,发现q样的代L(fng)的是很大。开始虚心学?fn)前人的l验Q从而{化ؓ(f)自己的知识?<br /><br /><br />掌握软gq行的Yg环境是作为架构的W一步,切记切记Q?br /><br /><br /><br />上述文字Q仅仅是作ؓ(f)软g架构之前需要考虑的一些大概,q有很多l节其实我也不是很了解,如有补充请回帖瓦咔咔~~~~ 软g架构 是一件艺术品~~?q是我对架构的感性认识?br /><br /><br /><br />每次架构完我都会(x)在一D|间把它当作是完美的艺术品L赏,q了新鲜期后Q发现很多问题,直接重构 q样循环不已 ............. 每次的P?都让自己收获很多Q? <img src ="http://www.aygfsteel.com/paulwong/aggbug/370800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2012-02-26 20:44 <a href="http://www.aygfsteel.com/paulwong/archive/2012/02/26/370800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">Ϸ</a>| <a href="http://" target="_blank">Ұ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ȷ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ĺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">޵</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɫ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">Ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ͼľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʩ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ũ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ȩ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ٰ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>