对数据库、中间件和软件设计的认识

原创 2005年04月30日 02:31:00

对数据库、中间件和软件设计的认识

  软件开发的目的何在?

  请让我们带着这个问题阅读本文.

I.        数据库

出现的原因

数据库技术出现之前,数据的管理方式有两种,人工管理和文件系统.

在人工管理阶段,数据的定义和使用和程序是结合的相当紧密,并且用户要自己管理数据,也不能共享,计算机系统也不提供数据管理的功能.这样,数据就和程序不可分离,否则就无意义.也导致了程序和数据的重复性.

这样让人们很麻烦的技术,导致了开发新技术的欲望.(顺便说一下,麻烦是技术更新的动力!)

正是因为人工管理的缺陷,导致了文件系统的产生.

文件系统有着以下优势和特点:

a.      同时使用存储器可长期保存.

b.     数据的使用 方式发生变化,不用关心如何存储

和存储在什么地方,只要文件名即可使用

c.     文件的格式和用途的多样化

d.     数据可重复使用,不再和程序密不可分.

e.      对数据的操作以纪录单位.

同时,随着时代和应用的变化(数据量的增加),文件系统

暴露出了其劣势:

a.      数据冗余

b.     数据的不一致性

c.     数据之间的关系非常弱

d.     操作的复杂性---每换一次数据格式,负责管理数据的程序可能都要变 .

        这些问题,让人们非常头疼.因此在这个阶段充分发展了数据结构和算法后,为数据库技术的出现提供了一个良好的基础.

数据库的优势我就不再啰嗦.

但请不忘记,”数据库是为什么而产生?------------为了更方便的解决数据的存储问题,保存和管理数据是数据库的核心任务.

数据库不是核心问题了,但并不代表数据库就要没落.

在相当长的时间内,数据库还是会继续存在.

II.     中间件

出现原因

我认为,中间件是为统一的业务提供一个平台.一个业务可能的使用者非常广泛.手机 计算机 等都可能是一个业务的使用者.为了避免业务的重复开发,把业务从整个系统提取出来,单独管理,这是个很不错的主意.这样,把整个软件系统分割三部分,业务的前端(使用入口,可称为表示层),业务的后端(业务要操作的数据对象部分,可称为实体层).这也是分布式多层的含义(分布式的含义在这里体现的并不全面).也就是说为了更好的处理业务层,采用分工(分层)的方式,来细化软件的各个部分(可以让你想到社会的分工的细化),提供更强的服务.

中间件可以解决业务层的问题.

III. 软件开发

     1.软件开发什么呢?

软件开发,我认为主要目的有两个,一个是计算为中心的,一个是业务为中心.

 (1).计算为中心,主要体现在科学计算和航天等对数据计算机要求高的行业上,这里也基本上是以数据为中心.

 (2).业务为中心,主要是企业中的应用

 

 2.一般来讲,我们开发的主要对象一般是企业应用. 那么核心问题就是处理业务.那么可以这么说:

     如果整个业务没有业务数据或中间业务数据要保存,根本就不用什么数据库技术.很明显,软件可以没数据(这里特指,要保存到数据库或其他媒体上可重现的数据),但不能没业务---------虽然在现实中很少见到.

3.软件开发的目的和软件开发的核心

    通过以上的论述,软件开发的目的,是实现业务,这也是软件开发的核心-----------技术不是核心.只要能够满足条件的技术我们都能采用,不过,大部分会用那种效率高,功能强大的技术.

4.设计的原则和思想

   我们拿到一个需求,进行分析,设计,实现,测试,发布.但这个过程具体如何来走?是先数据库还是其他的?

   拿个例子: 比如牛奶的订单.

        我每天要订一份牛奶,5,每瓶1,要求是jsports牌的,时间是1.

        很可能我过俩月,不喜欢jsports牌了,喜欢kobye牌的.也就是说我这份订单可能要改变.那么牛奶提供商要保存我的订单记录.

         现在如果要处理我这个订单,那就要能够保存到数据库(一般方式).

      看一下我们的分析步骤,业务(干什么:处理订单)-------à处理的业务对象(或称为实体,订单)-à保存业务对象到数据库.

       按照正常顺序,我们是先接触到实体,而不是数据库.而且仅仅是因为我要保存实体的信息,才用到数据库-----------这就是数据库的位置和地位.

      对于设计来讲,是先对象,还是先数据库?

      我认为,应该是先对象.无论如何,即使再精通SQL,在处理一群由关系的实体对象和一堆让人搞了半天都搞不明白的SQL,我相信绝大部分人会选择前者-------人们更喜欢有逻辑关系的事物,他们能够更容易明白.

      另外,如果在进行数据库设计后,有种种原因,我不能使用数据库该怎么办?XML是个不错的选择.

      如果是以数据库为核心进行的设计,这个时候可能就麻烦了.

      而以实体对象关系为核心的设计,仅仅把保存的操作更换为另外的策略而已.

      因此,按照实体的实际关系,把他们有机的组织起来,这应该是设计的原则.这里实体的关系的重要性不言而喻------------在设计中一定要把握好.

       

IV.  结论

1.软件开发的核心

技术不是核心!

数据不是核心!

核心是--------业务!

2.设计的原则

  道法自然!遵循事物本来的样子!把他们按照其实际的逻辑关系合理的有机的组织起来!在这里,不能不提一下设计模式.经历了时间检验的设计模,应该在设计中发挥一定的作用.

3.其他问题

   软件系统可能有这样那样的问题,但核心是实现业务。

   在保证业务正确的实现情况下,才能去考虑其他问题。

先实现,再优化也许是个不错的方法。

要正确对待软件开发,不能为了技术。

 4.对技术的认识

软件是人力的延伸!

因此,技术是为人服务的.

具体到软件开发中,技术是为业务服务,无论是中间件,还是数据库(保存业务数据).

一种技可能在某段时间为主流,但也会落到历史的车轮之后.随着社会发展,分工的更详细,思想的认识更深刻,那就能导致更新的更简单的技术出现.

请记着:

    麻烦是技术更新的的动力.

    或更直接点:

    人的惰性是技术更新的动力.

关于数据库产生背景的更详细的论述,请参考:
http://www.ccw.com.cn/cio/research/info/htm2005/20050421_13L06.asp

数据管理技术发展的三个阶段

AgileEAS.NET SOA 中间件/敏捷软件开发平台

一、分布式消息总线      在很多MIS项目之中都有这样的需求,需要一个及时、高效的的通知机制,即比如当使用者A完成了任务X,就需要立即告知使用者B任务X已经完成,在通常的情况下,开发人中都是...

db2数据库与中间件

  • 2013年04月11日 10:56
  • 16KB
  • 下载

关于开发定位导航软件中间件的思考

目前世界上正在运行的称得上全球定位导航卫星系统(Global Navigation Satellite System, GNSS)的只有4个,也就是美国的GPS系统,中国的北斗系统,俄罗斯的GLONA...

方正中间件北京巡展 探讨软件行业联盟发展之路

据5月25日消息,方正集团旗下方正国际软件在北京中芯大厦举行中间件产品“方正飞鸿智能信息平台(FIX ES2007)”巡展,北京宇光四达、北大方正软件学院等方正飞鸿产业联盟成员代表及30多家软件企业代...

经典 数据库 中间件

  • 2012年11月10日 22:05
  • 213KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对数据库、中间件和软件设计的认识
举报原因:
原因补充:

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