架构师要了解那些??

一. 架构师?

1.1 架构设计涉及范围图

    如图所示架构设计说涉及到的范围,首先是对架构支撑的底层平台选择,目前业界流行和通用的就是.Net平台和Java平台(J2EE);然后在平台支持之 上做技术相关架构设计(主要会采用面向对象OO,面向方面编程AOP以及面向服务架构设计SOA等思想),在SOA推广上IBM和SUN两家公司尤为突 出;在业务不断的变化中、架构的更新中,找到变化中不变的东西,并针对服务、架构制定一系列规范对架构进行有效的管理和成为架构设计的原则;当然,最上层 就是善变的业务架构层。

1.2 一个优秀的架构师需要了解的知识

  1. 操作系统OS:能对操作系统内核有很好的了解和认识,从中吸取设计理念;推荐可以找一个小的linux版本代码阅读内核的实现,去理解“简单”的代码怎样去完成不简单的事情
  2. 虚拟机技术:去了解虚拟机的实行原理和它所做的工作,如Java的JVM、和.Net的CLR, CLR提交到欧洲标志组织可以阅读文档ECMA-335-CLI
  3. 计算机语言:一个好的架构师对计算机语言应该有深刻的认识,建议熟悉过程路径:C -> C++ -> C# ,Java
  4. 开源资源:当然多研究开源架构是提高的必要途径,理解开源架构中设计的思想以什么样的设计思想为出发点,比较它们每个版本升级中的设计变化;资源:JBoss、Spring等Java开源框架,.net方面有5大实用案例架构、以及ASP.NET Starter Kit等,和MS:Enterprise library;

        JBOSS 4.0:包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。完整的纯Java的数据库引擎,(Java消 息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持,但是他的面向方面设计(AOP)是它真正突 出的部分。JBOSS的AOP架构负责处理AOP,使用了一组命名概念,比如"interceptor," "pointcut," 和 “introduction”。一个interceptors编码“拦截器”(intercepts),它把一个对象放到一个被拦截的类中等。

        Spring是一个轻量级容器,非侵入式,ioc容器,它所带的包装器使许多不同的服务和框架更易于使用。轻量级容器接受任何JavaBean,而不是只 接受特定类型的组件。要了解Spring同时就应该了解Eclipse、Struts、Hibernate之间的衔接应用 Spring: A Developer's Notebook

        ASP.NET Starter Kit: ASP.NET官方网站推出的一整套ASP.NET解决方案的Demo;是提供给ASP.NET初学入门者的教材!包括了门户、商业站点、社区站点、报表、时间跟踪排程、问题跟踪这6套系统。 在这里,随便也提一下WSS/SPS,具有微软官方支持,是成熟的产品,是通过Web Part扩展的,Web Part将会是ASP.NET发展的一个领域,使 用Web Part进行页面的定制是更加人性化的,拖拉的所见即所得效果是Portal Start Kit无法达到了。WSS"SPS是扩展性非常好的系统平台,WSS"SPS的工作区可以无限向下添加,集成Office 2003、Exchange、Biztalk、Content Manager Server......而Portal Starter Kit仅仅是一个单纯的网站演示,虽然也能够布局定制,但仅此而已。

二. 还是需求

    万水千山始于脚下,需求始终是一切的第一步!

    从两种软件类型入手分别谈一谈,其中采集需求的方法和注意点

2.1 企业信息化软件

    企业信息化软件,及软件的最终用户是一个企业,企业希望通过软件项目的采购来达到企业内部管理等流程的信息化;采集这类需求通常有两种情况,其一:

2.1.1 甲方驱动

    如ERP,甲方非常了解要他们需要一个什么样的软件,或者通过软件来达到一个什么样的效果。其中从甲方采集需求的采集点注意一下不能遗漏:

  • 中层领导:--> 从他们这采集业务的流程,因为他们是对甲方公司业务流程最熟练的
  • 现场人员:--> 从他们这采集业务规则
  • 高层领导:--> 这个很重要,从他们这采取决策规则,及可以让软件实现知识发现,即以后可成为软件的一个亮点即对公司决策的支持
  • 信息人员:--> 操作规范,可以提供易用性

    乙方需要参加的人员:

        架构师(实力所服,让对方放心),需求分析师,开放人员(实现需求的原型化),

            UI原型需求化:有三个好处, 需求固化、设计规则明确、开放复用

2.1.2 乙方强势论

    由于甲方需求不明确,而乙方在此行业中资历深厚,了解行业标准,这种非常好做事就不多说了。

2.2 需要采集中注意项

1.需求采集的起点:

  • 找到所有执行者
  • 找到组织机构
  • 业务流程

2.需求管理, 这个是必不可少的;

    需求稳定化,乙方提供需求详细规格说明书

    同时,制定词汇表,如图

3.掌握中间语言,及快速得了解行业规范

2.3 商业化软件

    需求采集为行业商用软件,要做到:

收集行业中所有企业得需求

行业规范,最好就是成为行业的领头人成为标准的制定者--> 业务原型

同时要考虑到市场因素,以及竞争对手、市场亮点(有必要时可能采用保存亮点的方式)

也要考虑环境因素,硬件、社会等

三. 领域分析

    通过领域分析,获得领域模型;这节内容涉及到UML建模、建模流程、用例切片归包、DSL规范定义领域语言等等一些比较晕的内容!!

领域模型: 切词(名词实体)

           实体关系 -->类图 、E-R

           实体约束规则(要求精确度)

其中涉及到工作流分析, 以及工作流所涉及到的技术,建议研究工作流: 其一,Vista平台的WWF,其二,开源框架OsWorkflow; 其下图有利于我们理解工作流设计:visual studio 2005中插件DSL支持

3.1 最小建模技术

    对于大多数问题而言,只需要20%的UML就可以完成80%的建模工作,所以只需要以下建模中的关键三个元素:

四. 少不了的设计模式

    具体的这个就不多说了,应该是不是的对设计模式进行温习、多阅读一些设计模式论文及应用场景实践。使用时注意考虑以下重要几点:

4.1 设计模式应用场景

    既是处理变化 --> 原构件基础上增加变化

                --> 替代构件

4.2 设计模式的弱点

    增加复杂度、 性能有损耗、 模式有可能选择不当、 装配不当、 增加测试难度

4.3 面向对象开放技术今天的核心基础

核心基础: 组件技术、 UML建模技术

组件技术: 大型项目和系统的必经之路

-》需要支持多平台:SOA、 ESB-连接组件

-》拥有大量组件:重用、MDA(模型驱动开发)-快速、廉价组件

-》响应日益复杂的业务操作

-》框架: .net, Java

五. AOP面向方面编程

    在架构设计中也要引用AOP设计思想,在整个架构设计过程中横切关注点来达到面向方面编程,现实框架某些功能的统一处理,减少重复。AOP强调通过面向方面的思维方式来进行有效的架构设计,所以AOP设计 ≠ AOP技术, AOP技术是面向方面设计AOP的最佳实现。开源AOP架构研究推荐: JBoss4.0

 架构师进行架构设计,要心中有此轴向图从而做到不同纬度对架构进行充分的设计考虑。

六. 架构设计

6.1 主要架构模式

 流程处理模式: 以算法和数据结构为中心,由一系列处理步骤、相邻步骤用数据流管道连接。主要用于批处理系统软件

、C/S模式、MVC模式、分层模式

七. SOA

   SOA(Service Oriented Architecture 服务导向架构),是一种应用程式架构的概念,将应用程式及资源以重复使用的服务方式呈现,使用标准化的借变相互沟通,借此提供更高弹性、更高效率、及资讯 整合的IT环境。SOA是一种用于建构分散式系统的方法,它可以将应用程序以服务的方式提供给终端使用者,也能建构成其他的服务。透过SOA,我们可以将 单一的软件开发成为可提供其他应用系统使用的基本元件。

    要理解SOA,更重要的得研究ESB(Enterprise Service Bus)企业服务总线,请看另一篇文档的详细介:SOA-ESB企业服务总线概念; 这里就不熬述了


开源框架:
ASP.NET Commerce (CSVS) Installer v1.0.msi
ASP.NET Community (CSVS) Installer v1.0.msi
ASP.NET Portal (CSVS) Installer v1.0.msi
ASP.NET Reports (CSVS) Installer v1.0.msi
ASP.NET TimeTracker (CSVS) Installer v1.0.msi
En_VsSDKApril2006.iso

 

posted on 2009-03-09 11:06  starspace  阅读(398)  评论(0编辑  收藏  举报

导航