以数据库为核心的软件时代已经过去,数据库时代早已结束,当我看到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。
分享到:
相关推荐
sqlce数据库小巧,性能优于access数据库,而且在silverlight,asp.net,winform和wpf中,可用linq语言,这些都是access数据库不具备的。不要以为操作sqlce数据库很简单,特别是在winform中,没有一定的技术,添加、...
一个用于 InfluxDB 时序数据库的 ORM,终结没有 InfluxDB ORM 的时代。常用操作一把梭,支持 php-fpm、Swoole 环境,一键轻松切换。可以用于所有传统框架、所有 Swoole 框架中!
ACCESS数据库密码破解版软件,是免注册,而且是专门针对ACCESS数据库设计开发的一款方便使用的密码破解软件。
商业透明度晴雨表:为廉价数据时代的终结做准备-经济学人智库-201903.pdf
被大青鸟 S2ATM取款机 S2数据库阶段项目,很干净的,很标准的注释.值得学习,参考
共享软件时代的终结一文提出的观点是否正确,大家 仍然可以讨论
p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结者 p2p 终结者p2p 终结者p2p 终结者 p2p 终结者p2p 终结者 p2p 终结者 p2p 终结...
《数据库习题答案》B卷终结版2[收集].pdf
网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者网吧终结者
达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子...
编写程序:输入任意文法,统计Vn,Vt Vt表示为终结符,Vn表示非终结符 汇编原理的第一个代码实现
执法案件管理系统-数据库设计 执法案件管理系统 数据库设计 执法案件管理系统-数据库设计全文共24页,当前为第1页。 执法案件管理系统-数据库设计全文共24页,当前为第2页。 执法案件管理系统-数据库设计全文共24页...
易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游还原终结者易游...
资料-无绳灯泡美国问世插座时代有望终结.zip
P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04P2P终结者 4.04
我们开发板在设计的时候,目的是为了匹配更多的外设,让客户可以进行更好的学习,但在实际开发时,很多外设是用不到的,反而会增加成本、...更多学习资料可以到迅为官网下载,或关注迅为电子官方公众号回复终结者下载。
商业透明度晴雨表:为廉价数据时代的终结做准备(英文)-2019.3-22页.rar
终结性考试说明 终结性考试是在形成性考核的基础上,对学生学习情况和学习效果进行的一次全面检测。 终结性考试采用综合大作业的方式,考试内容在在学习网上公布,学生在规定时间内完成,在学习网上传考试结果,教师...
会计实务:海淘网站"避税"时代将终结-.pdf
驱动防火墙终结者 驱动驱动防火墙终结者 防火墙终结者 驱动防火墙终结者 驱动防火墙终结者