应用软件系统架构设计的“七种武器”

应用软件系统架构设计的“七种武器”

对于软件架构这一概念,有太多的版本,目前在业界由大师级人物或组织提出的对这一概念的阐述就超过十种以上,我个人比较赞同RUP(Rational Unified Process)中对软件架构的定义,即软件架构包含了关于以下问题的重要决策:

软件系统的组织;

选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为;

如何组合这些元素,使它们逐渐合成为更大的子系统;

用于指导这个系统组织的架构风格:这些元素以及它们的接口,协作和组合。

本文我们并不是要探讨软件架构的定义,只是想基于上面这种定义来谈谈在软件系统架构设计的过程中,我们会常常用到的一些“武器”。

●长生剑:UML(UML2)

UML(Unified Modeling Language)这一建模语言已经成了软件设计人员的必备工具,几年前就曾有过“苦干年之后,不通UML者无法染指软件开发”的言论,虽然从目前来看,UML的应用还并未达到如此程度,但使用UML最大的好处在我看来就是减少了沟通的成本,让我们把一些想法能够很清晰直观的表达出来,在设计的过程中,使用得较多的是用例图,类图,组件图,部署图和时序图。当下,各种设计和建模工具对UML都有良好的支持,UML本身也是一门不断发展的语言,现在UML2已经成为主流。UML本身也极为简单,对于初学者来说可能有些概念比较难懂,可以结合实际的程序来理解,这样会事半功倍,但我认为也不会太高深,熟练使用就达到了应有的境界。

剑谱:

UML官方网站 /

《UML基础、案例与应用(第3版)》,此书作为UML入门较为适合,书中也以详实案例来教会我们怎么使用UML。

●孔雀翎:Office

架构设计的成果就是两项重要的产出物,一是框架代码,二是架构设计文档。在架构设计文档中,除了包括一些UML图之外,还有一些UML无法表示的图表,采用Office来制作和撰写这份文档再合适不过,最常用的就是Word,Excel和Visio。

掌握这门“武器”不难,可利用这门武器把各类文档写好就难了,除了专业能力,良好的文字表达能力也是十分重要的,一个成熟的架构设计师在我看来应该也能写得一手好文章,最基本的要求就是能够准确的表达你想要表达的意思。

秘籍:

《Word排版艺术》,在大陆十分有名的台湾IT作家候捷的作品(之所以这样说是我曾经跟我们公司在台北的同事聊起过此人,几乎没人知道此人),此书一度借着他的名气卖得很火,因为他出书很多,在这方面也有很多优秀的经验,值得借鉴。

●碧玉刀:IDE(IBM RSA或Borland Together)

通常我们所说的IDE(Integration Development Environment)是指集成开发环境,在这里我借用这个词,指的是集成设计环境。随着软件业的发展和进步,支持一整套开发流程的

全系列软件越来越多,越来越好,这其中以IBM Rational Software Delivery Platform最为突出,RSA(Rational Software Architect)就是其中一项,作为建模工具,对领域模型的设计,UML及SOA(Service-Oriented Architecture)等都有较好的支持,同时可以与RMC(Rational Method Composer)结合,充分发挥MDA(Model Driven Architecture)的思想,把RUP流程发挥到极至。

不过发现RSA也有不好用和不听话的时候,最新的RSA V7.0里面的反向工程就不是很好用,反向过来后很多关系消失了。

Together作为老牌儿的建模工具,也有着先进的思想和设计,其核心包括四个方面:只维护单一模型库(Live Source技术);符合最小的元模型;扰乱改变模型;支持持续的质量测量。同时,对正反向工程也有良好的支援。也正是因为其有自己的思想和独特的一套,Borland公司也才会将其并入旗下。

刀譜:

IBM RSA之《教学指导》,Eclipse平台都有这东东,大家自己去发掘吧,通俗易懂。 IBM RSA相关的Redbook(http://www./),大名鼎鼎的红宝书,相信入行不久就一定会知道的(其实在大学的时候就人有看什么GRE的红宝书,TOEFL的红宝书,估计红宝书一词来源于此)

《Getting Started Guide for Borland Together 2006 for Eclipse》官方教你怎么玩转Together,权威信不用质疑,英文版,但看起来并不难懂。

●多情环:架构设计类经典书籍

架构设计类好书不多,但也不是没有,我也没有认真读过几本,但觉得有那么两本还值得推荐:《Pattern Of Enterprise Application Architecture》,Martin Flower的经典之作,几乎是架构设计人员的必读之书,详细论述了企业应用各layers上的模式和设计思想;

《Large-Scale Software Architecture》,告诉你什么样的人才是架构师,然后以构件为粒度深入探讨架构的方方面面,同时用UML呈现,也是一份UML在架构设计中应用的最佳实践;《J2EE Core Pattern》,设计Java平台应用系统的经典参考书,对GOF(Gong Of Four)的设计模式在Java中的应用和扩展进行了深入的讨论,看看你的设计中可以运用其中的哪些核心模式。

秘籍:

有一套适合自己的学习知识的方法,对于IT行业的人来说,要看的书籍和资料远远超过其他行业,面对如此繁杂的知识,要有自己的方法学会去整理,要做到看必有收获,否则不如去温习古龙或是金老爷子的小说。我常常喜欢用Mind Manager等软件把读书笔记和心得记录下来,也常常回过头来看看这些笔记,以前喜欢手抄,信奉什么好记心不如乱笔头,但后来发现有些落后,不能与时俱进,方式肯定会被淘汰,人自然也会被踢出局。 ●霸王枪:Internet/Intranet

当今时代,离开网络这条枪对于IT从业人员来说寸步难行,大多公司目前都还没有自己完善的Intranet,公司知识库的资料与Internet的资源相比可谓是小巫见大巫,但千万不要忽视了公司通过SEPG(Software Engineering Process Group)或相似职能部门积累起来的知识,这些东西往往关注于行业,领域或适合于你所在公司的实际状况,从这个方面考虑的话,其力量超越Internet,是很好的模板。常常我们会遇到自己不能解决的问题,这个时候就需要去网上百度一下;在架构设计文档中,我总喜欢弄个术语表,而对于有些术语的解释,你会发现百度原来也是一本好辞典。

枪谱:

百度,谷歌

利用搜索引擎,可以快速的获得自己需要的资料,大幅提高效率,也不至于让你淹死在浩如烟海的信息海洋中。

之所以将百度写在前面,是因为我的个人习惯,常常在搜索的时候会优先考虑用百度,在百度搜不到的情况下才去谷歌,百度出来的大都是中文资料,对于母语是中文的人来说,会提高我们的阅读速度和理解效率,命中率较高,较好的分词技术,值得推荐。谷歌当然不错,相信不用多说。

●离别钩:评审

邀请你公司的架构设计同行,资深技术专家,公司领导,或行业中的其他专家,还有你的PM(Project Manager),充分利用团队的力量,对于你所做的架构设计的初稿进行评审,在评审前先把重点部分,特别是你想跟大家一起讨论更好解决方式的部分整理成简单的演示文稿(PPT)发给大家,同时把详细资料也发给大家,请大家在有空的时候提前了解。在评审会议时,要先向与会人员介绍一下项目背景,需求,千万不要忘了非功能性需求(包括性能,安全,可扩展性等方面),然后再从重点的议题开始与大家一起讨论,这样可提高效率。 秘籍:

虚心听取各方面意见。评审时大家会提出各种各样的问题,有时候可能会提出各种让你很生气的问题,这个时候一定要克制住自己的情绪,虚心的听取他们提出的建议,对各种问题进行解释,让他们真正明白你的意思,同时也从他们那里获取有用的建议。

●拳头:激情

这也是与人最密切相关的一样武器,拳头是你身体密不可分的一部分,激情也是你思想密不可分的一部分,要想把架构设计做好,有做好一件事的激情是必不可少的,你要对新知识,新技术充满好奇心,要有创新精神,在前人的基础上,结合自己的所学去进行一些小的创新,其实人类的进步也就是靠这样的一次次的小创新,以最大程度的确保架构的稳定性和可扩展性,同时也尽可能的提高程序开发的效率。

秘籍:

确定自己的发展方向就是做一个技术专家。如果你对自己的职业规划有一些想法,不妨可以考虑一下这个方向,国外的很多大师级的人物因技术牛而成就了卓越的事业,国内目前也有向这个方向发展的趋势。

认为做一个技术专家与向管理方向发展并不冲突,技术专家也可以是管理行家,软件行业的很多人都是“技术优则管理”,否则你在管理者的位置上却不懂得基本的技术,在各方面都会遇到绊脚石,也没有人真正的服你。

正如古龙所说,“武器是死的,人却是活的”。“武器”是否能令你觉得神奇刺激,主要还得看使用它的是什么人,虽然架构设计不是人人都可以做的,但我相信这几种武器通过大家自己的努力一定可以掌握。

 

第二篇:系统架构设计

宽广智通

GAI网站一期项目

系统架构设计

版本<1.0 >

系统架构设计

1

宽广智通

目录

1、 文档简价 ............................................................................................................................... 4

1.1、

1.2、

1.3、

2、 编写目的 ............................................................................................................... 4 适用范围 ............................................................................................................... 4 名词术语 ............................................................................................................... 4 架构原则/策略 ..................................................................................................................... 5

2.1、设计思想 ...................................................................................................................... 5

2.2、实现策略 ...................................................................................................................... 5

2.3、架构模式 ...................................................................................................................... 6

3、 需求概述 ............................................................................................................................... 6

3.1、展现给网站用户相关信息 .......................................................................................... 6

3.2、编辑和管理网站相关信息 .......................................................................................... 7

3.3、自动计算和处理网站相关信息 .................................................................................. 7

4、概念设计 .................................................................................................................................... 8

4.1、网站用例 ...................................................................................................................... 8

4.2、网站管理用例 .............................................................................................................. 9

5、逻辑设计 .................................................................................................................................. 10

5.1、逻辑分层 .................................................................................................................... 10

5.2、结构关系图 ................................................................................................................ 11

6、物理设计 .................................................................................................................................. 11

6.1、物理结构 ..................................................................................................................... 11

7、数据视图 .................................................................................................................................. 12

8、性能设计 .................................................................................................................................. 13

2

宽广智通

8.1、表示层性能设计 ..................................................................................................... 13

8.2、应用层性能设计 ..................................................................................................... 13

8.3、数据层性能设计 ..................................................................................................... 14

9、可靠性和容错性设计 .............................................................................................................. 14

9.1、各首页面静态化 ........................................................................................................ 14

9.2、网站容错跳转 ............................................................................................................ 14

9.3、错误信息邮件通知 .................................................................................................... 14

3

宽广智通

1、 文档简价

1.1、 编写目的

本文档将从构架方面对系统进行综合概述,其中会使用多种不同的构架视图来描述系统的各个方面。它用于记录并表述已对系统的构架方面作出的重要决策。

本文档主要描述GAI网站一期系统的架构设计目标及详细需求,并制定架构设计原则,依据这些原则从集成架构、端-端架构及组件架构三方面描述GAI网站一期系统的技术体系架构。

1.2、 适用范围

本文档适用设计人员、开发人员、项目管理人员查看。

1.3、 名词术语

系统架构设计

4

宽广智通

2、 架构原则/策略

2.1、设计思想

该系统在设计上采用分布式结构, 在逻辑和物理上把系统分成了“首页”、“指数”、“股票”、“基金”、“新闻”、“研究报告“、”教育“、”外汇,黄金“。

由于证券实时数据在中国,而数据库在德国,采用国内用Window服务+德国用Web Service的方式来同步证券实时数据。

系统在开发时遵守“通用逻辑结构”原则。

2.2、实现策略

1、复用优先于购买,购买优先于编码实现;

5

系统架构设计

宽广智通

2、使用可靠的框架,提高开发效率以及稳定程序; 3、使用通用的设计模式,提高代码的复用和结构性; 4、针对接口编程;

2.3、架构模式

结构模式:三层结构 分布式系统:Web Service,外观、工厂模式、服务模式 交互系统:MVC

3、 需求概述

提供外国了解中国证券市场信息的一个接口,并且编辑和管理相关信息。

3.1、展现给网站用户相关信息

3.1.1、股票

3.1.2、基金

3.1.3、债券

3.1.4、指数

3.1.5、黄金 外汇

3.1.6、新闻

3.1.7、研究报告

3.1.8、教育

3.1.9、宏观数据

6

宽广智通

3.2、编辑和管理网站相关信息

3.2.1、新闻、研究报告、教育

3.2.2、宏观数据 3.2.3、上市公司信息、基金基本信息、指数基本信息翻译

3.3、自动计算和处理网站相关信息

3.3.1、从中国同步证券实时数据到德国服务器 3.3.2、计算股票阶段收益 3.3.3、获取世界经典指数数据 3.3.3、处理新闻、研究报告、教育等信息

7

宽广智通

4、概念设计

4.1、网站用例

系统架构设计

8

宽广智通

4.2、网站管理用例

系统架构设计

9

宽广智通

5、逻辑设计

5.1、逻辑分层

? 表示层

表示层为客户端提供对应用程序的访问。这一层是作为GAI网站一期系统解决方案文件中的 Web 项目实现的。Web 层由 ASP.NET Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。

? 业务外观层

业务外观层为 Web 层提供证券、新闻等信息。这一层是作为 GAI网站一期系统解决方案文件中的 BusinessFacade 项目实现的。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。除了低级系统和支持功能之外,对数据库服务器的所有调用都是通过此程序集进行的。

? 业务规则层

业务规则层是作为GAI网站一期系统解决方案文件中的 BusinessRules 项目实现的,它包含各种业务规则和逻辑的实现。业务规则完成如缓存股票数据、读取上市公司信息等。

? 数据访问层

数据访问层为业务规则层提供数据服务。

系统架构设计

10

宽广智通

5.2、结构关系图

首页GAI网站登录管理网站国内同步证券实时...指数用户管理股票外汇和黄金内容管理基金研究报告新闻教育

业务外观股票基金新闻宏观数据财报等等

数据访问

DFR数据库DFR数据库GAIDB数据库GAIDB数据库

6、物理设计

6.1、物理结构

服务器:中国和德国各一台;

IIS服务:德国服务器提供IIS服务

数据库:德国服务器提供SQL Server数据库

11

翻译频道管理宏观数据管理同步接口规则服务业务规则ISI数据库ISI数据库同步证券实时数据...股票阶段和股票历...ISI新闻和研究报告...

宽广智通

7、数据视图 详见数据库设计文档

系统架构设计

12

宽广智通

8、性能设计

系统架构设计

8.1、表示层性能设计

8.1.1、界面数据缓存 8.1.2、静态页面缓存 8.1.3、分页数据请求 8.1.4、JS数据组装,减少请求次数

8.2、应用层性能设计

8.2.1、资源池服务 8.2.2、流量控制 8.2.3、会话管理 8.2.4、缓存管理 8.2.5、负载均衡(暂未考虑)

13

宽广智通

8.3、数据层性能设计

8.3.1、数据库调优 8.3.2、优化表设计 8.3.3、划分活动库和历史库

9、可靠性和容错性设计

9.1、各首页面静态化

网站各首页都生成了静态页面,可以提高首页的访问速度和容错性。

9.2、网站容错跳转

网站容错框架会捕获出错信息,并跳转到设定页面。

9.3、错误信息邮件通知

出错误信息发送到设定邮件。

14

相关推荐