从流水程序到SOA

原创 2011年02月27日 11:58:00

从流水程序到SOA

 

咱就从函数代码开始谈起,更史前的Goto和汇编代码咱就不谈了。

 

函数和变量写多了,自然也就发现有些函数和变量互相粘在一起很高耦合,而与其它的一些却没多达关系,于是为了显性化让其他的开发人员知道哪些函数和变量确实关联性很紧密,于是创造了类。面向对象在80年代的国外代码开发界颇为流行。

 

但接口思想的风潮在90年代刮起了。起闹的原因就是类被滥用,子类不断继承,发现随着企业业务发展变化,父类中实现的功能已经无法适合新时代业务了,现今业务和过去业务差异很大。而因为万丈高楼不能动父类中的方法功能了,否则子类就都瘫痪了。为了避免这个问题,就不让父类负责功能了。所以大量出现虚方法的父类,只有一个空的函数申明,函数里什么也没有。到最后发现只需要申明一下就可以,连函数这个空壳也不需要了,于是正式提出接口。

 

到了90年代中期,IT软件开发公司越来越专业了,大量企业IT部门不再自己开发软件而转为购买专业软件公司的软件。这样企业IT部门的IT人员对编程对技术越来越远,渐渐偏向了业务。企业IT部门谈业务流程和业务输入输出,IT公司谈对象,这就接不上去。于是IT开发公司发明了面向组件的业务分析方法、设计方法、开发方法。不要谈对象识别、对象分解、对象继承、对象调用关系,只谈你需要什么功能。功能用接口来表明能干什么,但这些接口是在内部被哪些类实现的,类之间的关系到底怎么回事,都不用解释给企业IT部门。这是企业IT部门和专业软件公司第一次以业务视角来谈软件。

 

到了2000年以后,互联网兴起。XML从HTML中脱胎而出,HTML专门发展成为可视化界面展示技术,XML走向纯粹数据表示,但都是文本型,便于通过HTTP在互联网上传输。IT人员为了程序更灵活,于是让接口申明也不用代码表示了,直接用XML表示了。接口中需要的参数,如传入一个订单需要修改,那么这个订单数据也被XML表示。另外,这些接口方法怎么串联在一起执行一个完整的业务流程,也用XML表示了。至于XML怎么和代码动态绑定在一起,那就让底层技术去想吧。于是,IT公司和企业IT部门只要一起谈某个业务的处理流程、每步处理方法、处理的输入和输出就OK。把这些谈好的画出来,存储的时候保存成XML格式就OK,就如同咱们OFFICE2007就可以把EXCEL另存为XML格式一样。从这样来看,现在的IT软件开发公司和企业IT部门已经越来越一致的以业务来谈,而不是以技术来谈。一致面向业务来谈、XML式定义与动态绑定而不用去管用什么具体技术来实现这些功能,这是最关键的特征进步。这就是SOA。

 

从一步步来看,软件公司的开发人员的需求分析方式、软件设计方式、代码开发实现方式都已经变化很多了。面向业务流程和业务数据来谈,接口定义,内部实现具体编码类就OK。底层框架真正负责这些XML接口定义和具体组件的绑定、创建、销毁、内存回收、并发、池化、序列化、访问安全、事务保证。这个底层就是中间件。过去有EJB中间件服务器、COM+中间件服务器(MTS)、CORBA中间件服务器。现在加入了功能接口、业务数据的动态XML绑定以及业务流程的动态解释执行,就被升级命名为ESB,意思就是希望通过XML定义和传递,来达到不同技术的组件(EJB、COM+、CORBA)都能互通。这和XP升级到VISTA或WIN7一样的,都是继承性发展过来的。但就是叫不同的名字,就要把WIN6叫做VISTA,就要把WIN5叫做XP。

 

在10年前,很多人问过我:“你的软件是三层的吗?你的软件是面向组件的吗?”。好像意味着面向组件就可以灵活组装软件。现在又有人问我:“你的软件是面向SOA的吗?”。我在想,我的软件UI界面是XML描述的、Report是XML描述的、功能函数是XML申明的、业务处理流程也是XML定义的,数据也是XML定义的,而且也是工具来画出来保存成XML而无需手工直接编写XML。但就是这样也不是普通人员能够搞的,几千个业务数据定义、几千个功能函数、复杂的业务处理流程,不是熟练手天天搞是很难直接下手修改并且调试确保正确的。从本质来说,XML不就是把写死的代码换成有固定规格的文本了么?在程序员眼里,源代码也是ABCD的文本,XML也是ABCD的文本。

SOA演进到微服务

引言:“微服务”是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用“微服务”的资源却很少。本篇文章中,会介绍微服务架构(Micros...
  • cws1214
  • cws1214
  • 2016年08月25日 14:52
  • 1054

从All-In-One到SOA——技术及架构的演进过

首先要完成业务拆分、服务规划,前期规划的好,后期的开发、维护成本能降低很多。同时也要考虑到未来业务变化,尽管我们不能预计到可能会发生哪些变化,但是我们可以从架构设计上尽量做到灵活、适应能力强,能够再最...
  • lincaiyun
  • lincaiyun
  • 2016年12月17日 08:39
  • 281

从SOA到微服务

SOA 微服务 Spring-boot
  • fyxxq
  • fyxxq
  • 2016年04月05日 10:14
  • 811

从UML到SOA

  本文介绍如何利用IBM Rational Software Architect 7.0.0.2或之后的版本中包含的UML-to-SOA转换工具,将软件服务的UML模型转化为具体领域的面向服务体系架...
  • hu_zhenghui
  • hu_zhenghui
  • 2008年07月30日 21:24
  • 1149

从SOA到云计算

    曾经有过世界性的探讨,计算机将来是否可以超越人的智力,机器人是否可以反过来统治人类,当人把自己的感情能力也赋予给计算机,计算机也有了“生命”,那么机器人也可以拥有人的权利吗?计算机作为人类的辅...
  • hu_zhenghui
  • hu_zhenghui
  • 2008年08月23日 17:50
  • 519

从面向对象到SOA

《.NET 4.0面向对象编程漫谈》选登   从面向对象到SOA     本文所介绍的内容适用于.NET技术初学者获得对小型软件面向对象开发全过程的直观了解。   ...
  • lvjin110
  • lvjin110
  • 2013年08月17日 03:01
  • 565

从spring到SOA

在面向对象方法中,系统的功能是通过一组相互协作的对象来实现,对象之间的协作通过对象间的相互关联来实现。 这种关联通常表现为对象或接口的引用,在早期的面向对象方法中,对关联对象的使用都是在代码中以编码方...
  • celineshi
  • celineshi
  • 2006年08月04日 17:03
  • 1011

从EAI到SOA

写在前面SOA现在越发闹腾的厉害了,各种宣传越来越多,都把SOA吹上天;到底SOA是什么,有啥神奇之处,真的想宣传说的那么好吗?看了种种文章,只是越发混沌。罢了,俺做技术的,商业上的宣传,俺不在意。既...
  • SmartTony
  • SmartTony
  • 2007年08月24日 11:43
  • 995

原始架构到soa架构的演变

单一应用架构  当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 垂直应用架构  当访问量逐渐增...
  • qq_39470733
  • qq_39470733
  • 2017年08月27日 11:42
  • 80

从OLE到SOA,SOA其实很简单

阿三看到一个非常有兴趣的网页,想把它保存下来。于是,阿三点击“文件->另存为”,选择“网页,全部(*.htm,*.html)”。Ok,阿三的硬盘上多了一个a.html文件和一个a文件夹,里面保存了这个...
  • kongls08
  • kongls08
  • 2012年12月03日 13:37
  • 645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从流水程序到SOA
举报原因:
原因补充:

(最多只允许输入30个字)