走在架构师的大道上 Jack.Wang's home

Java, C++, linux c, C#.net 技术,软件架构,领域建模,IT 项目管理 Dict.CN 在线词典, 英语学习, 在线翻译

BlogJava 首页 新随笔 联系 聚合 管理
  195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks

架构师篇

架构师篇
     摘要: 软件架构设计编档之参考文件  阅读全文
posted @ 2009-10-21 20:04 Jack.Wang 阅读(7208) | 评论 (1)  编辑

posted @ 2009-05-30 13:06 Jack.Wang 阅读(5038) | 评论 (0)  编辑

posted @ 2009-05-30 10:03 Jack.Wang 阅读(3196) | 评论 (0)  编辑

     摘要: 目前磁盘存储市场上,存储分类(如下表一)根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器;开放系统的存储分为:内置存储和外挂存储;开放系统的外挂存储根据连接的方式分为:直连式存储(Direct-Attached Storage,简称DAS)和网络化存储(Fabric-Attached Storage,简称FAS);开放系统的网络化存储根据传输协议又分为:网络接入存储(Network-Attached Storage,简称NAS)和存储区域网络(Storage Area Network,简称SAN)。由于目前绝大部分用户采用的是开放系统,其外挂存储占有目前磁盘存储市场的70%以上,因此本文主要针对开放系统的外挂存储进行论述说明。 表一: [url=http://www.wangchao.net.cn/bbsdetail_1782308.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/121  阅读全文
posted @ 2009-04-20 22:18 Jack.Wang 阅读(3220) | 评论 (0)  编辑

     摘要: 描述了一经典的架构设计过程,并在此基础上提出了四层驱动设计模型,在CKM项目中初次进行了实践,想看的可以下载看看  阅读全文
posted @ 2009-03-03 23:45 Jack.Wang 阅读(5545) | 评论 (6)  编辑

     摘要: 分层是软件架构的基本理论。任何软件在逻辑上都可以分层,也可以适当的映射到物理层次上,至于怎么分,分多少层,要不要分等要看你的软件领域(每个领域都有一些现成的架构模式可以参考,所谓领域架构),在拿到需求的时候我们习惯上进行水平和垂直的分割,其实分层技术也是一种基本的架构模式  阅读全文
posted @ 2009-02-21 21:48 Jack.Wang 阅读(3866) | 评论 (2)  编辑

     摘要: 在描述大而复杂的软件中,最复杂的抽象层次就是软件架构。因此,在这个抽象层次我们能更好的理解构件组装原理和交互方式。软件架构被认为是软件开发方面的驱动力,他允许指定每层那些方面和模型需要依照架构来设计。早期的架构描述语言 ADL,比较独立,侧重结构抽象层次而忽略行为描述层次、观念层次和元模型层次。这篇文章描述了适当的“理性的”软件架构视图并用 C3 元模型描述(最小的并且完整的描述语言),我们提供了一个机制集合以处理不同层次的不同级别,我也提出了一新的用C3元模型描述的连接件的增强定义。  阅读全文
posted @ 2009-01-30 17:43 Jack.Wang 阅读(7086) | 评论 (2)  编辑

     摘要: 知识管理是伴随知识经济出现的一种创新管理,知识管理要综合运用战略、组织、流程、技术、变化等多种措施和管理工具,以富有效率的方式动员组织拥有的一切资源来实现其管理目标。
  阅读全文
posted @ 2009-01-13 22:03 Jack.Wang 阅读(2312) | 评论 (0)  编辑

     摘要: 基于构件的开发(CBD)观念已广泛应用于软件开发中,便于构件的重用。众所周知的CBD体系结构有 ActiveX, CORBA, RMI以及 SOAP 等。文章主要通过与传统软件开发方法的比较研究支持基于CBD的实践,同时也评价了面向对象的过程模型以及提出了一种新型的基于 CBD 的软件开发过程模型,并探讨了仓储的重要概念。  阅读全文
posted @ 2008-12-28 13:31 Jack.Wang 阅读(4820) | 评论 (0)  编辑

     摘要: 最大化的重用,在体系结构风格和构件方面形成了经验库,指导后续软件开发。可真正实现快速软件开发,特别是在特定领域中的应用!  阅读全文
posted @ 2008-12-27 22:15 Jack.Wang 阅读(3956) | 评论 (0)  编辑

     摘要: 这篇文章说的很好,和大家分享一下,可能一些实战的朋友并不喜欢这种理论的东西,可以不看,这篇文章把软件体系结构和建筑学类比,形象化了体系结构设计。文章提到算法和数据结构有扩张和取代SA的可能,个人觉得有点欠妥,算法和数据结构毕竟是解决细粒度的问题,而体系结构最初从算法和数据结构脱离出来,形成一抽象的分析层次,就是因为软件越来越复杂,单凭算法和数据是很难解决问题的。算法数据结构和体系结构应该是属于不同的层次解决不同的问题罢了。文章也提到了黑盒复用和白盒复用的概念,强调了软件体系结构设计的意义。不过个人并不同意“软件体系结构是一个高层次上的抽象,它并不涉及具体的系统结构(比如B/S还是C/S),也不关心具体的实现。”笔者这句话,B/S和C/S 其实是一种设计风格,是软件体系结构的设计模式,其实模式的目的就是重用。在实际的架构设计中你不仅要可虑体系结构设计风格、框架以及复用构件等等,你也要考虑实现的技术和关键点的决策,这些都是需要在开发前期确定的。所以软件体系结构是高层抽象是不关心实现,但是他要涉及到具体的系统结构。
  阅读全文
posted @ 2008-11-30 20:35 Jack.Wang 阅读(3729) | 评论 (3)  编辑

     摘要: 由于工作和学习的需要,强制自己这2到3个星期看完40篇论文  阅读全文
posted @ 2008-11-16 16:34 Jack.Wang 阅读(3250) | 评论 (2)  编辑

     摘要: 当架构模型进行迭代的过程中,必然伴随着对模型进行修改和改进。我们如何防止对模型的修改,又如何保证对模型进行正确的改进?  阅读全文
posted @ 2008-11-16 12:09 Jack.Wang 阅读(3472) | 评论 (0)  编辑

     摘要: 分层对现代的软件开发而言是非常重要的概念。也是我们必须学习的知识。分层的总体思路并没有什么特别的地方,但是要和自己的开发环境、应用环境结合起来,你还需要付出很多的努力才行。

在完成了分层之后,软件架构其实已经清晰化了。  阅读全文
posted @ 2008-11-14 21:14 Jack.Wang 阅读(4881) | 评论 (6)  编辑

posted @ 2008-10-26 00:00 Jack.Wang 阅读(2539) | 评论 (0)  编辑

     摘要: 近来读了一篇《怎样成为优秀的软件模型设计者》的文章,感触颇深。仔细对比分析,发现原来我自己和周围的软件开发人员平常的一些自认为对的做法,有很多是有问题的。  阅读全文
posted @ 2008-10-15 15:01 Jack.Wang 阅读(4849) | 评论 (6)  编辑

     摘要: 可伸缩性有时候被叫做“非功能性需求”,言下之意是它与功能无关,也就比较不重要。这么说简直错到了极点。我的观点是,可伸缩性是功能的先决条件——优先级为0的需求,比一切需求的优先级都高。


希望以上最佳实践能对你有用,希望能帮助你从新的角度审视你的系统,无论其规模如何。
  阅读全文
posted @ 2008-10-12 12:42 Jack.Wang 阅读(2426) | 评论 (0)  编辑

     摘要: XXX 作为一名架构师从程序员转到分析设计员再就爬到了架构师群体。当然架构师也分很多种比如应用级架构师,信息架构师等,从应用级架构师又可进一步发展到企业级架构师和平台架构师。当然你可能对这些不以为然,但这却是一个架构师的发展之路。本笔记是在XX培训时的体会,说实话本人在这领域也是菜的要死,不过我的研究方向是这个,以后继续努力,请大牛们多多指导。  阅读全文
posted @ 2008-10-09 19:06 Jack.Wang 阅读(4061) | 评论 (4)  编辑

     摘要: 很多人都看过 DDD, 从2002 年开始在中国开发者社区已经炒的沸沸扬扬,但直到现在有多少家公司是这么做的?实话,我自己没用DDD,也是用数据库驱动开发的,即以数据设计为中心,至少从思想上是这样的。虽然我上一个公司的开发模式是用----- 用例模型-》服务对象-》业务对象-》数据对象----这样一个过程。但分析的实质还是以数据设计为中心,只能说是弱弱的DDD吧,批着DDD,实则是以数据库中心。
  阅读全文
posted @ 2008-10-08 16:08 Jack.Wang 阅读(1763) | 评论 (1)  编辑

     摘要: 网络上对 restlet 的评判褒贬不一,有的说框架封装的很好,很有弹性,有的说 rest 架构风格本身是一种简单的风格,restlet 过设计以使编程过于复杂,其实我倒不觉得 restlet 有什么复杂,相反很简洁明了,不论他的类结构还是整个体系结构,个人很喜欢,昨天晚上匆匆看看他的文档和实例,很不错!本笔记对入门足以!  阅读全文
posted @ 2008-10-08 10:40 Jack.Wang 阅读(29651) | 评论 (4)  编辑

     摘要: “依赖”是和“变化”紧密联系在一起的概念。由于依赖关系的存在,变化在某处发生时,影响会波及开去,造成很多修改工作,这就是依赖的危害。可以说,变化是始作俑者,依赖是助纣为虐。  阅读全文
posted @ 2008-10-05 12:47 Jack.Wang 阅读(737) | 评论 (0)  编辑

     摘要: 前几天看完了《领域驱动设计》这本书,本来想写点东西,看到已有兄弟撰写,贴过来分享一下。当然上面也只是浅显的谈论了下领域设计的基本内容以及自己的想法,很不错。可能很多朋友有些迷惑,个人觉得举一个实际开发项目例子,一步一步的讲明,可能会更好些。现在正准备稿件中...  阅读全文
posted @ 2008-09-30 16:50 Jack.Wang 阅读(3294) | 评论 (10)  编辑

     摘要: 今天下午做了这幅脑图,为便于显示,切成了四个部分,描述了我对架构师能力的基本理解。

这四幅图不见得能阐述架构师能力的全部,但我尽量给出范围和有用的建议,希望能对大家有所启发和裨益。
  阅读全文
posted @ 2008-09-26 14:50 Jack.Wang 阅读(1422) | 评论 (0)  编辑

     摘要: 反模式作为一种新视角模式,在表述和指导开发上与传统设计模式不同,他先提出模式的反面案例,而后在给出重构方案,这在指导开发人员(尤其是新手)不无裨益。本系列笔记为个人学习总结,也希望没有接触过反模式的朋友们一起学习进步。  阅读全文
posted @ 2008-09-25 16:09 Jack.Wang 阅读(1751) | 评论 (1)  编辑

     摘要: 反模式作为一种新视角模式,在表述和指导开发上与传统设计模式不同,他先提出模式的反面案例,而后在给出重构方案,这在指导开发人员(尤其是新手)不无裨益。本系列笔记为个人学习总结,也希望没有接触过反模式的朋友们一起学习进步。  阅读全文
posted @ 2008-09-23 14:39 Jack.Wang 阅读(2074) | 评论 (0)  编辑

posted @ 2008-09-18 10:18 Jack.Wang 阅读(1933) | 评论 (2)  编辑

     摘要: 由于[GOF95]是论述软件模式的著作的第一本,也是OO设计理论著作中最流行的一本,因此有些人常常使用设计模式(Design Pattern)一词来指所有直接处理软件的架构、设计、程序实现的任何种类的模式。另外一些人则强调要划分三种不同层次的模式:架构模式(Architectural Pattern)、设计模式(Design Pattern)、成例(Idiom)。成例有时称为代码模式(Coding Pattern)。
这三者之间的区别在于三种不同的模式存在于它们各自的抽象层次和具体层次上。架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质和力学。架构模式的好坏可以影响到总体布局和框架性结构。设计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。代码模式(或成例)是特定的范例和与特定语言有关的编程技巧。代码模式的好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总  阅读全文
posted @ 2008-09-17 09:51 Jack.Wang 阅读(1086) | 评论 (0)  编辑

     摘要: 对软件体系结构风格的研究和实践促进了对设计的复用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。体系结构风格的不变部分使不同的系统可以共享同一个实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容易地理解系统的体系结构。例如,如果某人把系统描述为"客户/服务器"模式,则不必给出设计细节,我们立刻就会明白系统是如何组织和工作的。  阅读全文
posted @ 2008-09-16 10:26 Jack.Wang 阅读(2061) | 评论 (0)  编辑

     摘要: 最近好多朋友问我关于 SSO 的问题,其实市面上有很多成型的产品,SSO 理论本身也提和好多年了,下面是我以前写的一篇文章《基于 Web 的单点登录理论研究》里的一部分关于跨域和票据设计问题,相信对问我的朋友们有些帮助。
  阅读全文
posted @ 2008-09-15 18:43 Jack.Wang 阅读(6425) | 评论 (4)  编辑

     摘要: 目前软件体系结构的现状如何呢?软件体系结构的发展趋势又是什么呢?这就是本文要介绍的内容。

目前,软件体系结构尚处在迅速发展之中,越来越多的研究人员正在把注意力投向软件体系结构的研究。用于对软件体系进行规格描述的模型、标记法和工具仍很不正规。尽管这些不正规的模型是有用的,为使之更为精确和健壮,在很多方面的研究工作还需要继续进行。
  阅读全文
posted @ 2008-09-14 21:22 Jack.Wang 阅读(1064) | 评论 (0)  编辑

     摘要: 最近晚上抽出点时间写了这篇文章,关于 Flex 开发方面的语言和架构,按照严格分层,高解耦合性并结合 Flex 技术实验了一个用户管理小模块,案例不是目的。本文第一部分介绍 Flex 相关技术以及 ActionStript3.0 语言。第二部分介绍开发实例的开发过程,代码可以下载。由于本人 flex 经验不足,在以后的工作中会不断补充。  阅读全文
posted @ 2008-09-11 19:03 Jack.Wang 阅读(5980) | 评论 (4)  编辑

     摘要: 每次设计新东西的时候,总要到 google 是去找或参考设计模式的书,比如 GOF 的。有时努力的去找些简单的模式卡片似乎很难,不过终于找的了,是位外国朋友做的,目前只是 GOF 的23个模式图例,其他的经典模式,我会陆续补上。  阅读全文
posted @ 2008-09-03 10:50 Jack.Wang 阅读(1247) | 评论 (2)  编辑

posted @ 2008-08-23 23:08 Jack.Wang 阅读(455) | 评论 (1)  编辑

     摘要: 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。  阅读全文
posted @ 2008-08-07 09:16 Jack.Wang 阅读(3918) | 评论 (3)  编辑

     摘要: SOA作为一种IT架构已经广受业界追捧,几乎所有的大厂商都加入了有关SOA的开发之中.有关SOA将能够带来的激动人心的一切,也在这几年的宣传中众所周知.如何转向SOA,如何实现SOA,成为讨论得最多的话题.  阅读全文
posted @ 2008-08-06 11:50 Jack.Wang 阅读(482) | 评论 (0)  编辑

     摘要: 一年闪光似的就过去了,至今依旧保留着老师接受我做为弟子时的那份激动,很感激王老师在这一年给我的关怀与帮助,让我学到很多很多。因为我是从公司里出来的,学习目标很明确,技术上我有较强的自学能力,管理上我比较欠缺,所以这一年刻意学了些管理方面的知识,比如和余世维博士学习企业管理;和曾仕强学习中国式管理等等。总之,这一年进步很快,加上自己的努力,在技术,基本知识以及管理方面都有很大的进步,也受到同学和老师的表扬,在技术上:J2EE 13 种技术,尤其是 EJB,JMS,RMI,CORBA等中间件的学习,分布式数据处理,流媒体技术(实做一流媒体播放器),SOA,架构体系,以及Linux, C++, C#.net,DCOM 等等的学习使我的知识面更广了。基础知识:学习了算法分析,工程数学,最优化,数据挖掘,分布式数据处理,中间件,管理经济学,高级计算机网络,高级软件开发过程等基础知识。管理方面,除了和老师学习项目管理之外,每天都看视频,有的可以使我联想起以前的工作经验,使我受益匪浅  阅读全文
posted @ 2008-07-05 22:51 Jack.Wang 阅读(4019) | 评论 (19)  编辑

     摘要: 对于String s = "haha" ,它的虚拟机指令:
0: ldc #16; //String haha
2: astore_1
3: return
对于上面虚拟机指令,其各自的指令流程在《深入JAVA虚拟机》这样描述到(结合上面实例):
ldc指令格式:ldc,index
ldc指令过程:
要执行ldc指令,JVM首先查找index所指定的常量池入口,在index指向的常量池入口,JVM将会查找CONSTANT_Integer_info,CONSTANT_Float_info和CONSTANT_String_info入口。如果还没有这些入口,JVM会解析它们。而对于上面的hahaJVM会找到CONSTANT_String_info入口,同时,将把指向被拘留String对象(由解析该入口的进程产生)的引用压入操作数栈。
astore_1指令格式:astore_1
astore_1指令过程:  阅读全文
posted @ 2008-06-17 13:49 Jack.Wang 阅读(4722) | 评论 (0)  编辑

posted @ 2008-06-17 13:24 Jack.Wang 阅读(1474) | 评论 (0)  编辑

     摘要: 分布式系统其实就是进程集,进程之间本质上是通过消息传递的,只不过在我们这个抽象层次,看到的都是对象,似乎就像单进程引用一样,很多技术比如 CORBA, RMI, DCOM, EJB 都抽象到了对象这一层,屏蔽了底层细节! 既然分布式都是一样的,那么为什么有这么都技术,一. 应用的领域不同。二. 抽象的层次不同,其实人们为什么去抽象一些东东,应该是关注点的转移,比如 SOA 的提出,就是将对象或组件的关注点转移到了业务这个层面!
  阅读全文
posted @ 2008-06-01 20:09 Jack.Wang 阅读(12866) | 评论 (16)  编辑

posted @ 2008-05-30 17:39 Jack.Wang 阅读(4513) | 评论 (0)  编辑

     摘要: 去年由于项目的需要,研究了下软件架构设计,读了些书和论文,以前认为架构师做的工作不太多,看完之后,感觉自己和架构师还有一段路程,笔者认为架构师不仅要熟悉技术和业务,更重要的是要有自己的思想,架构设计在我看来,他不是技术,而是一种艺术。我喜欢艺术,我热爱架构,以前在自己的学习道路上总是渺茫,似乎现在找到了方向。  阅读全文
posted @ 2008-05-29 13:03 Jack.Wang 阅读(13957) | 评论 (7)  编辑

     摘要: 今天偶尔在 rocket (http://www.blogjava.net/rocket/archive/2008/05/25/202709.html)的 blog上看到这篇随笔,
《感慨于我们的技术土壤》,颇有感触,和大家分享一下。
  阅读全文
posted @ 2008-05-28 13:20 Jack.Wang 阅读(1238) | 评论 (0)  编辑

posted @ 2008-05-25 10:46 Jack.Wang 阅读(2321) | 评论 (2)  编辑

     摘要: 本文通过对JVM的体系结构的深入研究以及一个Java程序执行时虚拟机的运行过程的详细分析,意在剖析清楚Java虚拟机的机理。  阅读全文
posted @ 2008-05-23 19:37 Jack.Wang 阅读(20385) | 评论 (5)  编辑

posted @ 2008-05-21 20:39 Jack.Wang 阅读(6758) | 评论 (3)  编辑

     摘要: 要开发出用户满意的软件并不是件容易的事,软件架构师必须全面把握各种各样的需求、权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足。本文从理解需求种类的复杂性谈起,通过具体案例的分析,展示了如何通过RUP的4+1视图方法,针对不同需求进行架构设计,从而确保重要的需求一一被满足  阅读全文
posted @ 2008-05-11 19:32 Jack.Wang 阅读(2011) | 评论 (0)  编辑

     摘要: 最近做项目准备引入 CRC 模型,可以很好的加强用户和开发方的沟通,以便准确的获得需求。  阅读全文
posted @ 2008-05-11 09:18 Jack.Wang 阅读(1773) | 评论 (0)  编辑

     摘要: 先推荐一本书:《软件架构设计》温昱著。今天刚拿到这本书,非常高兴。这本书非常好,它对软件架构描述得非常清晰,理论包含了很多实践的例子,看上去很爽呀,嘿嘿。
  阅读全文
posted @ 2008-05-10 09:19 Jack.Wang 阅读(5576) | 评论 (5)  编辑

     摘要: 今日去导师公司拜听了 H3C 产品经理的 IP 存储方案报告,真是受益匪浅。最近也在搞系统架构
方面的东西,真是颇有体会,不由之中想在这里总结下,以备翻看。  阅读全文
posted @ 2008-05-05 19:42 Jack.Wang 阅读(1413) | 评论 (2)  编辑

posted @ 2008-05-05 12:56 Jack.Wang 阅读(6311) | 评论 (5)  编辑

posted @ 2008-04-27 21:10 Jack.Wang 阅读(12991) | 评论 (4)  编辑

     摘要: 作为应用系统的负责人,一直被要求"要少花钱多办事"----用更少的硬件,更少的网络带宽,以及更短的时间完成更多的任务。J2EE通过提供组件方式和通用的中间件服务是目前首选的最优方式。而要能够构建一个具有高性能和可扩展性的J2EE应用,需要遵循一些基本的架构策略  阅读全文
posted @ 2008-04-23 22:18 Jack.Wang 阅读(3068) | 评论 (12)  编辑

posted @ 2008-04-23 22:05 Jack.Wang 阅读(2474) | 评论 (5)  编辑

posted @ 2008-04-10 10:59 Jack.Wang 阅读(129217) | 评论 (63)  编辑

     摘要: 猜想  阅读全文
posted @ 2008-03-27 10:30 Jack.Wang 阅读(1680) | 评论 (2)  编辑

     摘要: 根植于技术,高于技术思考能力  阅读全文
posted @ 2008-03-20 09:23 Jack.Wang 阅读(3234) | 评论 (6)  编辑

posted @ 2008-03-18 13:18 Jack.Wang 阅读(3629) | 评论 (5)  编辑

     摘要: 大型高并发高负载网站的系统架构  阅读全文
posted @ 2008-03-09 20:16 Jack.Wang 阅读(804) | 评论 (0)  编辑

     摘要: N条1000M光纤,N个服务器级的硬盘组成阵列, 当然快!  阅读全文
posted @ 2008-03-09 17:41 Jack.Wang 阅读(5885) | 评论 (1)  编辑