用户操作
[即时聊天] [发私信] [加为好友]
chinanavyID:navyforce
128209次访问,排名663好友0人,关注者12
爱我中华
navyforce的文章
原创 70 篇
翻译 0 篇
转载 81 篇
评论 28 篇
chinanavy的公告


BJ2008 - aw

日历:

月 [下月] [上月]
website page counter
本站资料大部分为网上收集,供自己和大家学习使用
最近评论
garbage04:很有用,谢谢
eagle78:www.pxzl.net上有最新的weblogic server培训资料
liu_xing_hui:大哥,你写的java方面的文章我都认真看了,剩下的文章我还在继续看,我发自内心的说写得非常好,我看到你是来自IBM,这也许是IBM人职业精神,我是今年刚走上工作岗位的java程序员,我的梦想是成为IBM人,请大哥给点意见,从现在起我应该怎么做?我期待你的回信 ,谢谢!邮箱:liu_xing_hui@126.com
jinguo2113:谢谢了!!!
fadey:请问如果用IP连接正常,但是用(local)却连接不上,提示“sql不存在或连接被拒绝”,会是什么原因呢。我碰到一个这样的情况,安装的时候选择的是命名实例,只有一个实例。
文章分类
收藏
相册
2004年
2005年
2006年
经典收藏
友情链接
arielxp
baggio785的专栏
Dazern's JAVABLOG
Dipper取其快乐
handy的见证实录#
何雄(Sean Ho)-程序设计与数据库技术(RSS)
编程夜未眠
风言吾者
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

转载 数据库时代的终结收藏

新一篇: weblogic调优 | 旧一篇: 初学者如何开发出一个高质量的J2EE系统

 

数据库时代的终结

板桥里人 http://www.jdon.com 2005/04/28

  以数据库为核心的软件时代已经过去,数据库时代早已结束,当我看到J2EE征途中那么多人在对象和数据库之间彷徨痛苦ing的时候,我想我该出来喊一声了。

  其实这句话在几年前肯定有人喊过,因为中间件时代的来临,实际意味着数据库时代终结,正所谓一山无二虎:如果你重视数据库,你的J2EE系统就无法完全OO,只有你忽视数据库,你的系统才有可能完全迈向OO,至于数据库性能调优等特定功能都可交由EJB容器或O/R Mapping工具实现。

  很多年前,包括我自己在内的大部分企业程序员都是从数据库开始我们的职业生涯,最早的是dBase/FoxPro,后来有了 SQL系列数据库, Oracle将数据库时代推向了顶峰。

  每当有一个新项目时,第一步就是首先设计出数据表结构(Table Schema),然后开始使用SQL语句实现业务逻辑,这种开发模式一直重复,就是后来加入了DelPhI/VB,他们也只是承担图形显示实现,这种C/S结构带来最大问题是:非常难于维护,修改起来,迁一动百。

  软件的生命在于运动,当它需要发展时,最棒的软件人员如果对他也束手无策,这是谁的悲哀?

  现在更多人开始接受B/S结构,但是他们中很多人还没有真正明白为什么需要B/S结构,B/S代表的多层架构才是真正目的(因此,伪多层的B/S系统遍地皆是)。

  多层架构实际是将以前系统中的显示功能、业务运算功能和数据库功能完全分开,杜绝彼此的耦合与影响,从而实现松耦合和良好的可维护性。

  一. 从设计上说:由于实现层次完全分离,业务运算功能成为一种中间功能(中间层),它不依赖具体的表现层技术(Jsp/Html applet等),也不依赖具体数据库技术(Oracle/SQL Server),业务运算功能运行在J2EE应用服务器中,当我们的业务运算功能不再依赖数据库时,是否意味着数据库已经不是重点?

  二. 当然,多层结构带来了性能问题:客户端访问数据库中的数据时,通常需要经过多个层次,非常耗费性能, 如何尽量减少数据库访问是J2EE应用系统首要解决的问题,使用存储过程并没有解决这个问题,存储过程的执行还是属于后端,并没有缩短客户端请求所要经历的坎坷路途。

  解决性能问题的根本解决之道是使用对象缓存,现在, 64位CPU提供的巨大内存空间为单台缓存计算提供了硬件基础,更重要的是,这种缓存计算是可伸缩的,通过集群的缓存机制(如JBossCache), 通过增加应用服务器的数量,可以提高整个业务逻辑层的缓存计算能力,抛弃过去那种为内存斤斤计较的老思维吧。

  三. 在系统分析之初是否首先需要数据表设计呢?回答是否定的, 以UML为代表面向对象的分析设计方法已经成为强大工具,随着面向模型驱动分析设计(MDA)的普及, 面向数据库分析方法正在逐步被抛弃,拥有深厚传统数据库分析习惯的程序员必须面对和接受这种挑战。

  纵观整个J2EE系统开发过程,数据库已经从过去的中心位置降为一种纯技术实现,数据库只是状态持久化的一种手段(文件是另外一种实现手段);什么是持久化?这是相对于内存缓存状态而言,持久化就是当内存断电情况下能永久保存状态数据,但是如果J2EE应用服务器是7X24小时集群运行;几乎永不当机,是否有持久化的必要呢?

  很显然,数据库已经沦为与操作系统中文件系统同样的层面,以它为中心的时代真的结束了,IBM早期将DB2数据库开源已经强烈向我们昭示这点。

  对于J2EE初学者来说,尽早抛弃过去的两种影响:过程语言编程习惯和以数据库为中心的设计习惯,从全新的面向对象角度(OOA、OOD和OOP、AOP)来设计开发你的J2EE系统,J2EE设计开发三件宝:Model、Patterns和Framework

  以上不只是理论,而是我每天正在做的,如果你也是或赞同请广为传播,唤醒更多彷徨痛苦的初学者。

发表于 @ 2006年03月10日 11:44:00|评论(loading...)|编辑

新一篇: weblogic调优 | 旧一篇: 初学者如何开发出一个高质量的J2EE系统

评论

#joyfire 发表于2006-03-18 19:47:00  IP: 61.49.125.*
TrackBack来自《》

本周收藏.2006.03.18
#UltraCat 发表于2006-03-11 14:56:00  IP: 222.245.4.*
呵呵,这个楼主放心,现在连ACCP(北大青鸟)3.0版的第二学期就已经开始三层架构的B/S开发了(界面层:ASP,业务逻辑层:COM组件加存储过程,数据库层:SQLSever),你说的这些对这些学员来说都是像太阳东升西落一样理所当然的事,据说新的4.0版第一学期连一点结构化编成的东西都不教了,上手就是面向对象,VB和C++的课程全部砍掉,比我们这批3.0还BT。
#lonelybug 发表于2006-03-12 04:20:00  IP: 24.77.155.*
任何东西没有绝对的存在与不存在。如果说,数据库的中结时代到来,那么OO数据库本来就是一种数据库,OO只是一重在分析,解剖真正世界中的事物和问题的一种思想,并不是像搂住所说的OO来临就可以终结一些东西。数据库依然需要。最简单的例子,如果NBA篮球三的,任何数据都用OO DATA来实现,那数据挖掘和最后全面的运动员的统计数据就不会出现了,虽然OO database是一重对OOP很好的支持,也就是说,你实现什么对象,就可以永久化什么对象,但是,很多时候,数据还是数据,只不过被包含在对象中!

另外我想说一下,ACCP的学员面向的事立刻进入企业级软件设计的人员,说不好听了,就是培养有可能成为系统分析师的程序员,就好像培训流水线的工人一样,如果说直接OO就来教学,对这种面向市场来说无可厚非,但是想要从一个“工人”变成真正的设计者,或者工程师,就要靠自己钻研底层的东西,搞清楚,什么是基本,任何东西,都是从最基础的东西而演变的,不知道何来,又如何知道何从呢?!就算最pure OO的语言也适用结构化的编译器实现的!我相信JAVA的编译器绝对不会是OO的语言实现的。也更不可能是JAVA实现的。

学生么,最什么只要做到,最精,就是最好。行行出状元么!哈哈!
#. 发表于2006-03-13 11:03:00  IP: 218.25.194.*
楼上说的好,支持你,不过不知道你是不是个系统工程师呢?
#路过的人 发表于2006-03-13 15:37:00  IP: 59.40.41.*
板桥里人的文章一直很好玩,好玩啊,好玩而已!
#Fellow 发表于2006-03-14 08:45:00  IP: 218.13.32.*
别把题目写得太夸张了,应该是“以数据库为核心的开发模式”这一时代的终结。
#nomagic 发表于2006-03-14 09:06:00  IP: 218.82.138.*
面相对象有时候也要适可而止,不要为了面相对象而面相对象,一切要以项目综合成本为基础。不过说起来容易,做以来未必容易,有时候尺度难以把握。
#系统框架师 发表于2006-03-15 05:37:00  IP: 207.61.130.*
实际上目前仍然是以数据处理为中心, 将来也是这样.
J2EE 是一个平台, 将数据库的数据与用户经过商业逻辑连接.
如果在 INTERNET 上能实现 CLIENT/SERVER 那才是理想. 但是目前技术还达不到. 人们仅仅实现了一点象 AJAX 的功能就欢欣鼓舞.
#treeroot 发表于2006-03-16 13:49:00  IP: 61.144.207.*
晕,真是危言耸听
#nanjingjiangb 发表于2006-03-25 18:56:00  IP: 218.94.52.*
好像,有点太偏激了!
#wonder 发表于2006-04-03 00:46:00  IP: 219.236.74.*
胡扯,去看看软件网站,去看看各公司的业务系统,再去看看控制软件领域。 那个就被你一句话终结了。

连软件的根本价值在那里都不知道,真是无知。
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © chinanavy