oop soa cbd

  • 面向对象编程(Object-Oreinted Programming) 是一种编程范式。指在设计程序时大量运用类实例对象的方式。OOP一旦在项目中被运用,就成了时刻要考虑的东西。
  • 面向服务架构(Service-Oreinted Architecture) 是将软件设计成一组可互操作的服务的一套原则或方法论。通常在考虑系统架构时才会触及SOA。
  • 基于组件开发(Component-Based Development) 是一种软件工程实践,设计时通常要求组件之间高内聚,松耦合。其接口可能是OO的,调用方式可能是以Service的方式。基于组件开发关注系统层次、子系统边界和子系统间通讯的的设计,处于代码层面但不像OOP的一样是时刻需要运用的东西。

面向XX就是为了解决系统成长过程中遇到问题,而采用的一些范式。
举例来说:你开始给一个企业做MIS系统。
当这个企业来很小的时候,用简单的面向对象编程,数据库+服务端+浏览器已经满足需求。不需要考虑面向组件开发和SOA.

慢慢的,这个企业长大了,当初简单的mis系统,变得越来越复杂和庞大。系统中有很多重复功能的代码。当这些功能模块的业务有变化时是你头疼的时候:代码中有很多地方要修改,遇到新员工,有时总是改不全。系统上线问题越来越多,需求响应时间也越来越长。经常被客户骂:他X的,这么简单的需求搞了半个月都上不了线。去年xxxxxxx两天就上线了。
此时,你会考虑怎么把系统中那些重复的代码统一起来。你会考虑到组件化,即“面向组件”。你把一个个比较独立的业务模块约定好接口,开发成组件。以后再有类似的功能模块,直接调用这个组件,即节省开发成本,又容易维护。

后来,企业变成了集团公司。已经上线了很多套各种各样的mis系统。虽然大部分系统都实现了组件化。但做为一个集团公司,仍然有很多共同的业务,不同mis系统中有很多功能重复的模块。此时又面临业务升级困难,难以使用的问题:一个需求可能要涉及很多套mis系统的升级。同时每套系统都有独自的界面,客户录入一个数据,要打开N个页面,要登陆N次,叫苦不迭。各种数据不一致的问题接踵而来。
SOA来啦。架构师把各个系统功能类似的模块抽象成服务,重复的模块再也没有了,不同系统间互相调用服务接口。以前要自己写一大堆代码,现在搞清楚接口,直接调用另一套Mis系统的服务接口就 OK了。也有了单点登陆,有了portal,有了搜索服务,有了知识库等等。

但是问题又来了:
总有一些很重要的服务,所有的系统都会依赖它,它出一点问题,所有系统都停转。你开始考虑双机,热备,负载均衡。
以前用的IBM的主机+Oracle数据库+EMC的存储,再后来买更贵的性能更好的。慢慢的你发现,企业挣的钱都他妈的给了IOE。你开始考虑分布式,开始考虑使用开源产品。

时间: 2024-11-08 13:14:04

oop soa cbd的相关文章

编程思想的理解(POP,OOP,SOA,AOP) x

http://blog.chinaunix.net/uid-29417436-id-4060980.html 1)POP--面向过程编程(Process-oriented programming ): 面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成.面向过程强调的是功能(加工),数据仅仅作为输入和输出存在.这种过程化的思想是一种很朴素和普遍的思想和方法,

编程思想的理解(POP,OOP,SOA,AOP)

http://blog.csdn.net/hawksoft/article/details/7021435 1)POP--面向过程编程(Process-oriented programming ):面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成.面向过程强调的是功能(加工),数据仅仅作为输入和输出存在.这种过程化的思想是一种很朴素和普遍的思想和方法,人类

编程思想(POP,OOP,SOA,AOP)

1)POP--面向过程编程(Process-oriented programming ): 面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成.面向过程强调的是功能(加工),数据仅仅作为输入和输出存在.这种过程化的思想是一种很朴素和普遍的思想和方法,人类很多活动都是这种组织模式,比如工厂生产,企业服务等.面向过程以数据的加工处理过程为主线,忽略了过程的所属.

《Java数据结构和算法》- 数组

Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new操作符: int [] objArray = null; // defines a reference to an array objArray = new int[100]; // creates the array, and sets objArray to refer to it 或使用等价的

基本OOP知识

从今天起,我开始总结高焕堂高老师的<android架构师之路>,尽量一个星期写三篇博文.相对而言,看文章比看视频能够快一点,不过看视频也是比较详细的,如果有兴趣的话,就跟着我的这个连载走下去吧.我记录下自己的理解,分享给更多需要的人.话不多说,今天开始第一篇,"基本OOP知识". 对于现行的编程语言来说,面向对象已经不再是一个让人难以理解的词汇.可是如何能将其中的思想完整的表达出来,这就是我们所需要在意的地方了.本篇希望,高焕堂老师能带给我们不一样的世界. 一.Orient

SOA 的基本概念及设计原则浅议

SOA是英文词语"Service Oriented Architecture"的缩写,中文有多种翻译,如"面向服务的体系结构"."以服务为中心的体系结构"和"面向服务的架构",其中"面向服务的架构"比较常见.SOA有很多定义,但基本上可以分为两类:一类认为SOA主要是一种架构风格;另一类认为SOA是包含运行环境.编程模型.架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命

SOA架构开发

SOA架构开发 SOA介绍 1.什么是SOA SOA是:面向服务的体系结构(Service Oriented Architecture)指的是一个系统的架构,他的研究领域是大型分布式系统的“架构”范式.而OOP指的是程序具体开发过程中的“编程”范式.再通俗一点说就是在一个具体的软件内我们谈论OOP,但是在讨论软件与软件,系统与系统的关系的时候我们会借助SOA的理念帮助我们处理他们(指各个系统)之间的关系. 2.SOA的核心理念 支持异质(异构) 不要奢望企业中的每个系统都是java平台的,不要奢

在java中,OOA是什么?OOD是什么?OOP是什么?

OOA Object-Oriented Analysis:面向对象分析方法 是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题.OOA与结构化分析有较大的区别.OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析. OOA(面向对象的分析)模型由5个层次(主题层.对象类层.结构层.属性层和服务层)和5个活动(标识对象类.标识结构.定义主题.定义属性和定义服务)组成.在这种方法中定义了两种对象类之间的结构,

OOP的三大特性------封装、继承、多态

封装 1.<1>类背后隐藏的思想是数据抽象和封装 <2>信息隐藏,隐藏对象的实现细节,不让外部直接访问到 将数据成员和成员函数一起包装到一个单元里,单元以类的形式实现 <3>将数据成员和成员函数包装进类中,加上具体实现的隐藏, 共同被称作封装,其结果是一个同时带有特征(比如车的价格 车牌号)和 行为(比如开车 停车)的数据类型 <4>定义类,定义其数据成员.成员函数的过程称为封装类 2.信息隐藏是OOP最重要的功能之一,也是使用访问修饰符的原因 信息隐藏的原