应用服务器通常是介于网站服务器(Web Server)与数据库之间的一种运作机制,能够动态产生不同网页,经由网站服务器送至一般浏览器。Enhydra作为应用服务器,可分为三部分:
  ‧Multiserver:执行Enhydra应用程序的单独网站服务器,也可与其它网站服务器如 Apache 一起使用;
  ‧Application Framework:提供Enhydra 应用程序执行所需服务架构的Java程序集(Java Classes),以及‧Enhydra Tools:用来开发Enhydra应用程序有关Enhydra应用程序的执行组件与Enhydra Framework的关系如下图(取自Lutris Enhydra Getting Started手册):
Enhydra应用程序的三阶层
  一个Enhydra应用程序基本上可划分为三层(layers):呈现层presentation layer)、商用层(business layer,在此直译为商用层,未必跟商业扯上关系)与数据层(data layer)。此三层会依Enhydra应用程序而包含一个或多个组件(Object),分别为呈现组件(Presentation Object, PO)、商用组件(Business Object, BO)与数据组件(Data Object, DO)。这些组件会由Enhydra在建立 Enhydra 应用程序时归入各别的目录中,以方便模组化处理。例如使用Enhydra指令 newapp myapp会产出以下的目录结构:myapp
  |
  +------myapp
  |
  +-------presentation
  |
  +-------business
  |
  +-------data
 
Enhydra应用程序之MVC层次架构
  Enhydra应用程序此一MVC(Model-View-Control)层次架构,并不是新的观念。像是 XML与XSL或CSS的搭配,便有异曲同功之妙。
  在此层次架构之下,Enhydra应用程序的开发与分工更可达到事半功倍的效率。怎幺说呢?网页设计人员专注于Enhydra应用程序的版面设计,并将结果放在Presentation 的目录;同样地,有关逻辑判断的应用程序,乃交由程序设计师负责,并将程序放在 Business目录;若有数据库等存取问题,数据库设计人员便将相关Query程序置于Data 目录。Enhtdra应用程序的开发小组成员可独立作业,个别的程序或网页画面修改,都不至于影响其它成员的工作成果。
  Enhydra又可建立良好的开发环境,快速产生应用程序雏型。例如在Linux作业环境之下,任一程序或网页修改后,只要敲打make,便可马上重建应用程序。
  Enhydra Application应用程序开发方法论在Enhydra Getting Started手册中,Lutris 公司针对Enhydra Application应用程序开发,设计了一套简化程序开发方法论(methodology)Structured Delivery Process(SDP)。此一程序包括五个步骤:Requirement definition, Functional specification, Design andstoryboard, Development and testing和Deployment。虽然在设计行事历应用程序时,未必需要走完五个步骤,不过却也不失为练习的好方式。
1. Requirement definition(需求定义)
  在一般工作场所中,都常常需要了解公司或部门一周里将要进行的工作,如开会、产品介绍、教育课程、采购、面试等等。最直接的方式便是设计一周行事历,提供工作同仁相关信息,并能提供同仁搜寻某一特定事件。
2. Functional Specification(功能规格)
  ‧同仁不需特别权限能够阅读、张贴与搜寻行事历上的消息;
  ‧同仁能够修改或删除自己张贴的消息;
  ‧一周行事历每则消息包含:日期、主题、地点和张贴人;
  ‧行事历应用程序需保有数据库以提供搜寻功能
3. Design and storyboard(设计流程)
4. Development, Testing and Deployment(开发、测试与运作)
  前面提过,Enhydra应用程序分为三层,我们将先从呈现层着手

解决方案 »

  1.   

    我是个新手,看了文档后得出一个结论,不知对不对,请高手指点:
    enhydra是一个集成了web server,application server以及项目管理功能的工具,但是它主要面向开发工作,不能被用于做正式的server,因为它的server是面向低访问量的开发工作的,功能较弱,这是它与weblogic的不同点。所以严格地讲,enhydra不是一个server,而是一个项目开发和管理系统。另,还有一个问题:所谓中间件,我以前一直理解为是一些bean或bean的组合,用来完成某项通用性较强,适合复用的任务的。但是enhydra是如此庞大一个系统,仍然是个中间件?这是不是说明我以前的对于中间件的观点范围太狭窄了?  谁能给我一个中间件的准确定义呢?