代码改变世界

给自己科普一下SOA、AOP、ORM

2007-05-27 19:34  flyingfish  阅读(1673)  评论(3编辑  收藏  举报

注重行业业务的信息系统上学前的几年做过一些,在理论方面没什么建树,也没写过什么东西(那是还不用BLOG这个东西),但是一些技术还是知道点,没过几年差不多快忘光了。上学后作GIS方面的东西,对信息系统开发方面的一些方法论就没怎么关心,最近几天上网看了看好像又冒出很多概念,感觉快落伍了这里也给自己科普一下子。

主要阅读了以下文章:

沿着“重用”我们一路走来——SA、OO(DP)、Component、SOA、AOP

面向对象,面向服务

O/R Mapping乱弹

WS-Addressing 从理论到实践 --- SOA基础规范介绍

SAP自贴SOA标签

AOP是什么?

第三只眼看AOP

 

感受:

我的理解SOA就是把WebService技术的应用推到了软件工程的高度上的产生的一个概念(对于WebServices还是有点认识的,至少03、04年用WebServices技术做过点跨平台系统。当然不限于WebServices,用COBRA也可以实现SOA)。在对开放式的大型异构环境下的业务系统整合有巨大优势,也随便了解了一下SAP公司。怪不得这么火爆,500强80%都在用SAP的系统,作为全球最大的ERP供应商和第三大独立软件供应商在其SAP产品中全面采用SOA自然对业界影响非同小可。跟风的自然不少了,中国成为西方信息强国的跟屁虫实在是无法逾越的事实。

对于AOP感觉主要是对OOP不足之处的一个补充。Bruce Zhang给的日志的例子很到位的说明了这一点。

对于ORM所知寥寥,只是听搞java的同学大谈Hibernate,觉得像是个比较棒的东西,但是除过java之外的开发工具好像都没有比较好的类似框架,所以是只闻其名,并没有操练过。ORM到底给开发效率带来的多少提升,没有体会过不敢妄言。不过相信每种技术都有各自最适合的领域必然是各有所长。

对于R->O的影射用非Java的程序员想必是再熟悉不过了,确实有不爽的地方:写代码的人总是要去查数据字典、对数据类型作检查保护、程序员需要懂的知识要求全面(不仅要会oop语言,还要懂sql甚至扩展sql比如oralce的pl/sql和sqlserver的T-Sql存储过程、触发器等等)。不过R->O确有便利的地方,至少我觉得有这些好处:DBMS端的程序包(存储过程+函数+触发器,有的dbms也有对象的概念)对于完成输入输出极少而又涉及多个表逻辑附加的操作方面有很大优势,大部分操作在数据库端用扩展了的SQL集中完成,这对于业务数据的结构变更、性能改善、网络负荷的降低还是很有好处的,应用程序可以更多关注数据采集和呈现方面的控制。对于数据的重用也是有很大好处的,不可想象如果用了ORM后的数据库数据如何被另一个系统共享。

看来IT领域也是很时尚啊,新人们总是对新技术新名词趋之若鹜,真正去分析一下说来也不新鲜。从开始接触计算机到现在系统方面windows用来工作,linux用过一段,unix摸过几次,数据库方面sql,oracle,mysql,infomix或多或少都做过些开发,开发工具方面除过Java外的语言基本都用到了,从汇编到turbo C、VC、Delphi、C++Builder、Kylix再到C#、VB、Asp.net最后搞GIS又回到VC++,其间几乎每天都有新概念冒出来。新概念往往代表这新的方法论预示着新的技术革命,这些概念在工作学习中多多少少有接触,只是一直觉得时间紧张,不管是工作、学习、实习都好像没太多时间去有选择的升级一些方法论的理论。说到理论还是那句话“理论源于实践,理论又反过来指导实践”,所以做一些事情就应当补充点理论,然后反过来更好的做事。现在是时候补充一下了,不然再过半年毕业后估计就更加的没有时间学习理论啦。

工作中一直不认同两类人,一类是只会一味跟风高谈阔论而胸中无物光说不练的人,一类是只会写垃圾代码从来不重视方法论的人。在博客圆见识到一些务实又善于总结的人,真是的一个福音,感谢博客园的创建者。常来看看省去了去翻阅大部头书籍的时间,直接就汲取精华了。