诺铁

构客网首页  博客  论坛

 
  用户信息
 
帐号:  新手必读
密码: 保存密码
 
  分类列表
全部类别(4 篇)
我的文章(4 篇)
  按月归档
2007年-11月(4 篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

人的组织

发布时间:2007年12月14日 作者:诺铁

阅读次数:991次 类别:我的文章 永久链接 Trackback 3条评论
        人是一种很普通的生物,也是很神奇的生物。
        一个人专心的在证券市场看大屏幕,突然手被烫了一下,手立刻缩回来,同时转过身去对后面吸烟的人怒目而视------如此简单的反应,很多企业组织却做不到。
 

       组织的发展如同生物进化一般,从小到大,从简单到复杂。早期的生物不具备中枢神经系统,他们的特点是应激性,身体各部都会对刺激作出自发的、极为迅速的反应。  这也很适合身处复杂、多变、竞争剧烈环境下的较小的企业,因为它的各部门,各业务线都可以迅速的作出反应回应市场的变化。 但它也有明显的缺点,“一个人专心的在证券市场看大屏幕,突然手被烫了一下,手立刻缩回来”,但是人还不知道手被烫了,还在专心的看大屏幕,如果后面吸烟的人是有恶意的。。。。。。,更重要的是组织间的协调存在困难。
        高级的生物具有中枢神经和大脑,他们应对刺激的方式与低等生物不同,叫做反射,但是对于组织来说,又要警惕另一个危险,“一个人专心的在证券市场看大屏幕,突然手被烫了一下”,过了5分钟,这人发现手被烫了,转过身去看,而手还没缩回来,已经烫的冒烟了。。。。。。我很怀疑这个人能活到几岁。
        对于发展到一定程度的组织来说,仅靠应激性是不够的、危险的、混乱的,将各子系统连接起来的、了解全局的、能够对刺激立刻做出反应并且上报给大脑中枢的神经系统是极其关键的一环。
        观察一个业务复杂、变化剧烈、子部门繁多的软件开发组织的一点感触。

引用生物学上的名词解释 出处 http://www.wz22.net/keyan/ShowArticle.asp?ArticleID=1091
         应激性:是生物体对刺激(如光、温度、声音、食物、化学物质、机械运动、地心引力等)所发生的反应,是生命的基本特征之一,生物体对刺激能够发生反应需一 定的结构来完成。单细胞生物没有神经系统,是通过原生质来完成的,多细胞动物主要是通过神经系统来完成,也可通过体液调节来完成。

       反 射:是通过神经系统对外界各种刺激发生反应,称为,它是通过反射弧(其全部结构包括感受器→传入神经→神经中枢→传出神经→效应器)来完成的。反射是应激 性的一种形式,范围较窄,仅指多细胞动物(包括人)才能具有,隶属于应激性的范畴。植物没有神经系统,没有反射活动,但有应激性,如对光、肥、水、地心引 力等反应表现出的向光性、趋肥性、趋水性、向地性、背地性等反应,它是通过激素调节等方式来完成的。


单元测试的虚与实

发布时间:2007年12月14日 作者:诺铁

阅读次数:119次 类别:我的文章 永久链接 Trackback 

仍然是“单元测试还是集成测试”,“什么时候用mock object”,这个老话题。对这个东西的理解见仁见智,不必求同。
首先,单元测试是设计技术,不是测试结束,是写在接口定义好,代码实现前的,在这个前提下讨论。

 

在设计的过程中,有些东西是实的,有些东西是虚的,参见下图

UI---JSP也好,swing也罢
DB---mysql,oracle,包括dal,dao层
框架---spring,hivemind,或其他种种

以上这些只是些许例子。这些东西是实的。
在你的设计空间里,你所有的构思、你的想象、你的设想,那是虚的(无贬义)。

这样就简单了,实的实测,虚的虚测。
UI的测试就直接跑起来去操作,数据库、DAO测试,用DBUNIT或者操作完了去看数据库(不必强求自动化)。 spring用它自己的AbstractDependencyInjectionSpringContextTests去测测看组件装配的对不对。

虚的用mock object,可用的库也不少,easymock真的很easy,测试单个接口很方便。   mock是“伪”的意思,正好跟“虚”配一对。

在理清概念、设计出接口后,实际实现前,用一堆mock的实现去跑一跑看行不行的通,是不是有什么潜在的问题等,非常有帮助,这是模拟执行的概念了。

对实的东西进行实的测试,使整个应用建筑在坚固的地基上,对虚的东西进行虚的测试,放飞思想的翅膀,在落地前,你可以有充分的自由改变轨迹、追求完美。

设计空间.jpg
 描述:  
 文件大小:  57 KB
 看过的:  文件被下载或查看 51 次

设计空间.jpg
下载

换个角度看SOA

发布时间:2007年12月10日 作者:诺铁

阅读次数:1802次 类别:我的文章 永久链接 Trackback 10条评论
我的观点是SOA前途无量,但SOA不是给小实体企业和小软件公司的,要在中国流行尤其困难。以下试论证之。

   

    (各种数据资料收集中,盼有资料的朋友不吝提供)

    在一个持续两年的SOA工具开发项目中参与了其中一年半的时间,现在也颇有些想法想要写一写。即使在我们这个开发队伍中,真正对SOA的将来充满信心的也不过包括我在内的一二人而已。接触的大部分开发人员或者觉得SOA高深莫测,或者觉得不过是大公司又搞出的一个“大词”,推销东西而已。

    为什么大公司热衷不已,且业界也是热闹无比,但我们很多开发人员却兴趣寥寥?我觉得,那是因为这个概念本身就不是要推销给小型企业和小型软件开发公司的。

    有资料说,国内大部分企业活不过五年,而且总体来说信息化程度非常之低,而国外有几十年,上百年历史的大型企业则很多,这些大型企业很早就开始信息化,在几十年的时间里,他们积累了大量的技术资产(各种信息系统,业务系统)。也同时产生了信息孤岛问题和遗留系统改造升级的大量需求。这些大企业的几十甚至上百个独立运行的系统建立于不同的年代,采用不同的技术,运行在不同的平台上,集成的困难非常大。这些企业也是国外大软件商和软件服务商的主要客户群体,以前看到过一份资料,系统集成和系统改造的业务在国外大型软件供应商的业务中占相当大的一个比例(TODO:数据数据!)。而国内大部分软件商和软件开发人员则面对一个又一个新项目,大部分都是新系统上线的业务。这一点上之差别极大。

     因为有这样的业务特点,所以国外大厂商不断提出“跨平台,跨语言”的技术架构和编程模型,从CORBAEJBSOA无不打出这样的旗帜,而这一点对大量开发新系统的国内市场来说,吸引力显然没有那么大。

    另一方面,这些大型企业内存在大量遗留系统,如果不能够解决信息孤岛问题,那么他们会逐渐成为企业的负担,而如果能够解决这个问题,就能够把这些技术资产“盘活”,使他们真正成为企业的财富,焕发出新的生命力。

    SOA架构提出系统“服务化”,SCA架构又提出了服务组件模型,提出可以将组件部署为服务,服务又可以组合为更大的服务等等,其实这样的思路乍看上去跟CORBAEJB也差不了多少。但关键在于这里的服务也好,组件也好,指的不是技术模块,而是业务模块。事务处理,O/R MAPPING,事件处理等等技术模块属于基础设施,在客户眼里毫无意义,而业务服务,比如“查询某用户余额”,“查询某商品库存”,“查询某用户消费记录”等等这样的业务服务对企业的业务管理人员却是含义丰富且极具价值的。通过将技术“服务化”,技术资产成为业务人员可以理解的业务资产,业务分析人员可以将业务服务组合开发出新的业务,也可以很清楚的知道企业现在拥有哪些业务服务(资产),想要推出一个新的业务还需要增加或修改哪些业务服务。对于大企业来说,他们拥有的技术资产非常丰富,一旦将这些原来几乎无法管理的技术资产整理(包装)成粒度大小合适,可以很方便访问和管理的服务组件,再加上可以动态调整和监控的流程(bpel, bpm等,在我看来SOA就是流程+服务),这些大企业就可以将之转化为强大的竞争优势,他们将即拥有强大的力量,又拥有灵活的身手,套句时髦话:“大象也能跳舞”。目前鼓吹SOA的开发商和支持SOA的企业基本都属于“大企业”这个群体,屁股决定脑袋。

   以上是从业务上说。

    从技术上说,SOA将带来软件开发方法上的一些变化。软件开发有自顶向下和自底向上两种思路,现在一般都是两种的结合而有所侧重。几年前我搞过XPCHINA论坛,介绍和讨论极限编程,那时我认为自底向上,通过重构逐渐产生架构是最有效率的开发方法,现在经过十年的软件开发实践,我现在是架构驱动、逐步求精开发方法的拥趸。传统的SOA实现方式(我是指BPEL+Webservice)在合适的开发工具(BPEL流程设计、模拟执行等)的支持下,为架构驱动、自顶向下的开发方法提供了非常好的支持,并且非常有利于人力资源的分层配置。对于新推出的SCA架构,我刚开始研究,还未深入,初步感觉更偏向组件化,是另一种(与EJB相比)跨平台,跨语言的组件架构。对开发方法的支持更平衡一些,自顶向下,自底向上皆可。但不论那种实现方式,都需要有强有力的、有整个企业大局观的架构师来领衔才能真正发挥其效力。而国内中小型软件企业恰恰非常缺乏架构师,国内有大量优秀的高程,在我看来他们与架构师的差距就在于大局观,而偏偏很多人就跨不过去这个不高的坎。眼睛里盯着一个功能的人和眼睛盯着一个应用的人和眼界覆盖全企业的人会看到不同的东西,有不同的需要。

    以上从技术上和开发人员的特点上看。

    最后一个方面,中国经济发展非常迅速,那些打不到单子,难以生存的软件企业且不提,有单子在做的软件企业都是忙不过来,首先感到的是开发效率不足的痛苦,而解决开发效率问题的妙药不是SOA,而是组件化


    总结,国内中小软件企业,他们的客户还不需要SOA,他们自身还在解决开发效率问题和培养架构师。但是环境迟早会改变的,SOA淡化了技术资产和业务资产的边界,SOA提供可灵活修改的,可组合服务,可调整流程的技术架构,这些优势终将反应在市场上。


诺铁 的博客开张啦

发布时间:2007年11月21日 作者:诺铁

阅读次数:59次 类别:我的文章 永久链接 Trackback 
我的博客开张了,欢迎你时常过来做客,大家多多交流哦。我会把一些新鲜有趣的东西记录下来一块与你分享。也希望你记住我的地址,你可以把她添加到你的收藏夹,也可以把她复制下来告诉你的朋友们。让大家一起分享吧