帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
J2EE 应用程序开发:专业设计师的心得
作者:佚名 发布时间:2005-04-02 来源:不详
  OTN: 什么是 EAM 软件?
  Aaron:企业资产管理
是与工作管理相关的一些事
、订货和关键性能指示器的
个电灯泡灭了,最简单不过
存货中取出一个灯泡,等等
能的指示器,它使人们能够
及在日常工作事务的处理过
大量实物资产(就像可以在
是相当复杂的。它涉及的内容正
务。我们的典型客户就是那些使
工厂或电力供应公司。举一个简
的方法就是找个人来替换这个灯
。我已经设计好的产品之一名为
从数据库中挖掘出有用的数据,
程中哪些环节还可以变得更为有
某个工厂周围所看到的那种)的
像我们在 Ventureforth 所做的,
用我们的应用程序来管理工作定单
单的例子,如果工厂某个区域的一
泡。您必须发出一个工作命令,从
accuVista,该产品是一个关键性
来分析哪些区域可能会出现问题以
效。这些指示器对于那些必须管理
制造业客户尤为重要。
  

  
图 1:accuVista 体系结构

  该图表突出了该门户要实现各功能所需基本的硬件、软件和数据库组件。             

  OTN: 在设计 J2EE 应用程序过程中遇到过哪些大的挑战?

  Aaron: 最大的挑战之
照他们自己所希望的来配置
战之一就是要拿出这样一个
己所希望的来配置运行方式
一就是要拿出这样一个产品,该
运行方式。归根结底,就是要使
产品,该产品要是可扩展的并允
。” 
产品是可扩展的并允许不同客户按
得应用程序可定制。 “最大的挑
许不同客户来配置软件按照他们自


  我们之所以严格遵守 J
程序逻辑从用户界面中分离
件开发的整个生命周期,而
地说,这些产品可以运行在
地使用。
2EE 标准的原因就是,因为在构
出来以及在哪里存储数据等问题
且如果我们坚持遵循像 J2EE 和
各种不同的情况下,因为这些标

建可定制应用程序时,对于将应用
特别的重要。我们可以顺利完成软
XML这样的标准,我们就能够自信
准使组件得以合理地分离并被广泛


  作为一个设计师,同样重要地就是要
必须是安全的。它必须是一个高效的数据
兼数据储存器和商务组件二职,而用户界
时完成相应的工作。重要的一件事就是要
就不用将商务逻辑的编程嵌入到用户界面
正确的。这些都必须在置入到数据库之前
资源之前对数据进行验证。设计师要确保
确保从第一天起就要使用正确的方法。例如,数据库
库。它必须能以有效的方式恢复数据。它必须能够身
面必须能以用户喜闻乐见的方式呈现数据和信息并同
将商务逻辑和用户界面进行清晰的分离。这样一来,
,每时每刻都要检测那些数据对后台数据库来说是不
在服务器端进行。软件的中间部件可以在使用数据库
遵循这些正确的构建方法。

  另一大挑战就是我们几乎在每个项目
软件开发工作中—那就是,协作的问题。
售人员到真正构建产品的每个开发人员进
费一定时间用于软件和数据库的建模。要
前我也曾经作过开发,可以说坐在电脑前
宽眼界。
中都能见到的,而我也认为这确实存在于几乎所有的
协作就意味着要将每个人都集合在一起,必须与从销
行沟通。它还意味着要贯穿收集需求的全过程,并花
想确保开发团队始终保持协作并不是件容易的事。之
开发代码是件容易的事,但是如果没有协作就无法拓


  OTN: 这就是一个设计师得出的结论—需要进行协作?

  Aaron: 确实如此。作
用户之间的一个桥梁。设计
程序代码的程序员之间的桥
非常重要。设计师(建筑师
(建筑)工作的人员进行交
为一个设计师就意味着你要成为
师是进行实际商务操作的执行者
梁。打比方我们来建造一个房子
)要与高层人员、真正需要应用
流。
构建者和软件需求者—客户或终端
、提出需求的客户和将要真正构建
。在真正建造房子之前,设计蓝图
程序(或房子)的人员和进行构建


  OTN:在您开始实际编码之前都采用了哪些主要的设计技术?

  Aaron:非常重要的一个就是事例图
将要这样做。其他人也将要那样做。”你
程图。之后,确定问题就非常重要,一旦
须问自己,我将如何对此进行建模?非常
在建模的时候将全部问题都考虑在内,建
一点对软件组件也很适用。重要的不仅仅
作也非常重要,只有这样整个软件开发团
行的方式。”而进行商务组件和 Java 开
,这就是我们要做的软件。这就是它的运
—顾名思义,“这将说明如何使用该应用程序。用户
必须要能看懂用来描述事件是如何在系统中推进的流
我完成了事例,就确定了系统如何运转。现在,我必
重要的是,要从数据建模到确保数据的完整性,必须
模必须遵循规范,要保证建模方案日后的可用性,这
是在构建之前首先决定你将要构建什么,相互间的协
队才会对数据模型达成一致:“这就是数据和软件运
发的 J2EE 开发人员看到后,也会欣然赞同:“好的
行方式。现在,我可以开始着手构建软件了。”

  这好象是电影中的情景
的样子。我认为,建模结构
视化来说非常重要。这是 J
户界面的分离。在实际构建
在的问题。
。他们将某个东西称作故事板,
(电影或某个软件部件的研发方
2EE 应用程序开发的重要一课,
已经进行到一定深度之前,使用

该图板在实际拍摄之前将展现影片
式),对于在构建之前能够将其可
因为你想要保持商务逻辑代码和用
事例图和建模将帮助你及早发现潜

  

  
图 2:事例图

  事例图提供了关于 acc
经理或工厂管理人员都会对
uVista 门户应用程序是如何被
产品是如何运转有个大致的了解
使用的高层视图。开发人员、产品


  OTN:Oracle 的 BC4J 对这种框架对开发的帮助您怎么看待?

  Aaron:BC4J 是中间件
为它优秀的特性实在太多了
,这是从用户验证到数据更
入数据库的所有信息都转化
的一个杰出部件,它有很多优点
。但是,最主要的一点就是 BC4
新都能用到的、中间件的一个大
成大写,你可以在中间层使用 B
,很难说它最棒的优点是什么,因
J 将用户界面从数据库中分离出来
型重要部件。因此,如果你想将进
C4J 来强制实现。

  此外,当前非常重要的一点就是资源
该层否则数据不会直接放入到数据库中,
于中间层,所以使我们获益非浅。我们可
则。
的使用。BC4J 允许中间层验证,这就是说除非通过
而且由于我们有几个应用程序必须协同工作而且集成
以在将任何数据推入到数据库中之前设定一些认证规


  BC4J 还存储有关组件的元数据,标
BC4J 组件,因为我们希望我们软件中的
单以恢复某个报表,我们希望能够从一个
,因为可能会有一些敏感数据,所以这些
签等 UI 类型的控件等。我们还可以快速创建大型的
报表功能是动态的。例如,如果我们打算推入一个表
选择下拉框或单选按纽中列出的不同数据中进行选择
数据可能要根据登录的用户从数据库中选出,。

  OTN:您提到应用程序可定制的重要性。BC4J 是怎样帮助您确保应用程序的灵活性呢?

  Aaron: 在 BC4J 框架
客户定制应用程序。在软件
费者中选择;我更愿意从客
BC4J 作为一个框架可以获
点在 BC4J 出现之前是很难
下,底层的商务组件可以脱离元
开发中,这是一个飞跃。因此,
户中选择。”那么我们就可以将
得这一元数据并使用它。这就象
作到的。
数据独立运行,宿怨才能使用户或
如果用户说:“好的,我不想从消
此作为元数据存储到数据库中,而
是拥有了动态的商务逻辑,而这一


  BC4J 可以使我们保持
这确实是一件繁重的工作。
对象之间存在父子关系的框
基于用户。一旦用户登录,
BC4J 框架轻松地访问到所
灵活性的另一个特性就是我们不
为此,我们不必经常书写 SQL
架。例如,我设计的软件 accuV
我们就会根据我们所拥有的数据
有的用户对象。
再需要低级的大量的 SQL 语句,
查询语句,而且 BC4J 允许使用与
ista,是一个门户,因此一切都得
模型来运行,该模型可以通过


  OTN: Oracle JDeveloper 是如何在应用程序元数据管理方面给予您帮助的?

  Aaron:Jdeveloper,通过视图对象
性,这样你就可以将一条 select 语句放
对该视图有所帮助的属性。这有助于定制
。更为杰出的一点是安装的用户还可以进
框架使得我们能够作到这一点。
在这些对象中存储属性。多数 BC4J 对象可以设置属
在那里,该语句将对数据库进行操作并动态创建一列
应用程序,而且真的对使用我们产品的用户有所帮助
行更新,这样可以动态更改他们的应用程序。BC4J

  

  
图 3:UML 报表模型

  此外 Jdeveloper 的最
有助于协作,因为你还可以
Java 文档注释。就协作来
晰地看到软件是如何操作的
一位 CEO,只需看一看这些
佳特性之一就是可根据模型设计
通过 UML 建模工具提交 Java
讲,这对于我们是一个很棒的特
,而且你也不必是一个 J2EE 开
组件是如何相互作用的,这是一
进行代码生成的 UML 工具。这将
文档,并生成一段代码和所有的
性。很直率地讲,从 UML 可以清
发人员。你可以是一位 COO 或是
个非常大的优点。
  

  
图 4:实体关系 UML 模型

  实体关系UML模型可以
据完整性问题得到可视化的
提供 Java 和数据库开发人员之
描述。 
间的协作并能够轻松地使软件和数


  OTN: 您能否就您的产品给我们一个体系结构上的概要描述?

  Aaron: 没问题。该项目被称为 acc
有一个企业资产管理数据库,该数据库通
,也是一个工作管理软件。实际上是存储
需的所有工作定单类型的信息、所有资产
uVista。其体系结构也是非常直观的。在后台,我们
常运行在 Oracle 上。此产品称作 EMPAC 或 Maximo
所有应用程序数据的地方,以及 accuVista 运行所
信息和购买定单类型数据也都存放在这里。

  然后我们有一个 accuV
元数据用于装载门户的地方
可能是某些特定类型的事务
存储在 accuVista 元数据
ista 报表库,该库存在于各自
,这样用户就可以登录进来查看
,比如说,象配色方案或是他们
库中的所有内容,以及报表定义
的数据库中。这就是存放报表相关
他/她的特定报表。他们要看到的
所需应用程序的特定视图。这就是
和用户对该报表所拥有的权限。

  我们在运行 Crystal Reports 应用
报表返回给用户。我们将 BC4J 作为中间
行了标准化,但是现在我们已经移入到 O
且因为 accuVista 是一个 J2EE 应用程
已经有了一个 Java 应用服务器,我们就
程序的服务器上有一个报表服务器,该服务器可以将
层,商务逻辑应用程序框架。最初,我们对 Jrun 进
racle 应用程序服务器,并将其作为我们的标准。而
序,且将 BC4J 用作它的 J2EE 框架,所以如果客户
能将我们的应用程序部署在上面。

  在 Web 层,我们通过
— 我们所有的商务组件都
体系结构,因为通常一个产
署作为 EJB,因此这是可以
Apache Web 服务器来运行,并
在 BC4J 层,运行在 Java 服务
品将拥有一组体系结构。但是得
向客户提供的另一个商务逻辑层
且还能够支持 Oracle 应用服务器
器上。总之,这是一个非常独特的
益于 BC4J,我们还提供了一个部

  

  
图 5:体系结构

  aaccuVista n 层结构
(使用 BC4J 作为主干)和
可以划分为 4 个逻辑层:客户
数据存储层。
端层、报表/呈现层、商务逻辑层

  OTN:有哪些需求限定了您在体系结构上的设计呢?

  Aaron:该应用程序必须可扩展、可
代码的修改进行更新。还必须是可伸缩的
群是五个用户还是成千上万的用户。很明
此为了拥有一个瘦客户端支持 Web 的应
个胖客户端模型。这样做的最大优点就是
户端工作站上进行。
自定义的标签具有灵活性。在需要时还必须能够根据
。该应用程序必须可适用于每个用户群,无论此用户
显,还必须能够部署一次就能够在任何地方运行。因
用程序,我们将其构建于 J2EE 模型之上,而不是一
更新和安装都可以在一个地方完成,而无须在每个客


  OTN:在对 Oracle JDeveloper 和 BC4J 进行标准化之前,您经过哪些类型的评估?

  Aaron: 我们查阅了各
进行分析和比较,并看那里
始运用该工具。JDeveloper
Oracle 实例,而且简单点
拥有一个运行着的应用程序
据库。要从本质上快速拥有
种不同的体系结构和工具。我们
有哪些类型的向导,以及某些人
给我们印象最深的就是它对开
击几下就可以生成一个商务组件
,该应用程序已经拥有这样的商
一个不含 SQL 硬编码的用户界
下载了很多工具,并从成本角度来
如何迅速地达到目的的。马上就开
发人员的支持以便简单地指向
,然后生成一个 Web 客户端,并
务逻辑,它不会将数据自动推入数
面。

  此外,坦白地地讲,我们不想处理的
Jdeveloper 中,它已经为我们解决了这
很大的帮助。我们还在应用程序中加入了
我们能够在商务组件内,以显示在 GUI
制所有代码。这样的代码已经存在于商务
就是低端的 JDBC,或是管道的一系列连接类型。在
个问题。在提高生产力这个方面,它确实给予了我们
许多可定制的附件,而且 BC4J 和 JDeveloper 使得
中的方式进行定制等。我们不必在实际用户界面中定
逻辑中。

  另外,在 Oracle 应用服务器的众多
器之间进行负载均衡。如果一个服务器由
的任务继续执行。
特性中,我们所喜欢的特性就是服务器群和不同服务
于某个特定原因而宕机,另一个服务器就会接收相应


  在后台,Oracle 数据
条数据的表。但是在对 BC4
用了 BC4J后,就使得我们
担心上千用户所需的上千数
库具有很好的伸缩性,可以处理
J 进行标准化之前,我们遇到的
可以再次利用已经断开的连接,
据库连接。
从只有几十条数据的表到拥有上亿
挑战之一就是连接合并。当我们采
这真的太棒了,因为我们再也不必


  OTN:您能不能谈谈,如
什么样的呢?
果您没有选择 Oracle JDevelop

er 和 BC4J,您的开发体验又会是


  Aaron:好的,我想我们的性能可能
们会有双倍的工作量。我想 BC4J 和 Jde

会降低,特别是在建模需求收集事例的方面。我想我
veloper 这样的框架,使我们的项目在时间上减半。


  JDeveloper 向导使得我们能够快速
的忙。通过使用三层体系结构,实现成本
地启动和推进。此外,JDeveloper 指南也帮了很大
也大幅度降低了。

  此外,设想一下如果我
用程序必须直接连接到数据
到下一个版本。从理论上讲
这是一笔巨大的成本,因为
麻烦的事。
们不采用三层体系结构会怎样。
库。假设,如果我们有 1,000
你必须到 1,000 台机器前,带
你可能必须外派系统工程师对某

如果是一个胖客户端设计,那么应
个客户端都需要进行更新才能升级
上 CD,用 CD 完成所有的安装,
些问题加以确认,这可能是一件很


  使用这个三层体系结构
件部署到一个服务器并立刻
览器,不是进行 SQL 调用
包括连接合并功能。因此,
,造成性能上的损失和类似
,商务组件和 Web 组件都位于
同时访问到成千上万的用户。另
,也无需创建数据库连接。这些
我们不必担心 300 个数据库连
性质的事情发生。
一个 war 文件中,你可以将该文
一类事情就是用户,通过 Web 浏
都是通过商务逻辑层来完成,其中
接会意外断开或丢失其中某些连接


  OTN: 您有什么建议愿意向开发人员和其他设计师讲吗?

  Aaron:我想说,协作
可以有效地与掌握各种技能
的框架,直接地讲,通过你
一切—从最初的需求一直到
多数开发人员是相当善于协
,我们可以从中查找一个错
样的问题,我们就可以进行
是一个关键,特别是在软件开发
的人来协同工作,而且能够向人
的方法,其他每个人可以来做些
开发。以及开发人员之间的相互
作和相互帮助的。说到这一点,
误,并获得有关该错误的各种论
一次对话,这确实能够使我们能
中。选择一个好的工具,通过它你
们展示通过你的这个工具,通过你
什么。我的意思是可以看到和想到
协作。很多时候,人们会走弯路。
OTN 对我们来说是一个巨大的帮助
坛的讨论。如果有些人曾经遇到同
够相互帮助。
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·结合struts和hibernate谈J2EE架构  (2005-04-02)
 ·理解类加载器:J2EE 环境下的 lo  (2005-04-02)
 ·移动技术促进人和网络互动:.NET  (2005-04-02)
 ·.NET和J2EE架构之战 正在升级  (2005-04-02)
 ·将J2EE平台提升到一个新的高度  (2005-04-02)
 ·J2EE Design Patterns  (2005-04-02)
 ·如何实现一个与数据库表字段松耦  (2005-04-02)
 ·solaris上开发J2EE应用中文问题的  (2005-04-02)
 ·J2EE应用系统内部的Web Services  (2005-04-02)
 ·最佳J2EE方案讨论之O-R Mapping  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统