在引入DORADO时,开发商可能并不希望自己的业务逻辑层的实现代码与之发生耦合。因此往往需要在原有的核心代码与第三方产品之间建立一个胶合层,利用这层代码完成对第三方产品的集成工作。这里的胶合层应该是轻量的、灵活可配的。在实现此胶合层的过程中,Spring作为一个成熟的、被广泛认可的IOC框架应当是一个很自然的选择。另一方面,随着技术的发展,基于Struts、WebWork、Spring、Hibernate、iBatis等开源框架的开发模式正被越来越多的开发商所接受。当他们又要引入一个DORADO来增进前台的展现能力时往往会无从下手,弄不清框架中的各个部件应该如何与DORADO协调合作。MARMOT填补了这个空缺,使DORADO与各种后台框架能够很好的进行协调配合。
MARMOT提供了DORADO展现层中间件与后台业务逻辑层框架的无缝整合方案,并提供源代码。如果与项目需求匹配度高,可以直接使用MARMOT,如果有差距,可以在其基础上修改,或者至少可以当成一个范例来看。
具体说来MARMOT是包括展现中间件dorado、业务对象层框架Spring、数据持久层框架,流程引擎、权限框架、企业服务总线,以及报表工具、门户引擎、规则引擎、页面控制层框架等以松耦合集成形式形成的大型Web应用系统的开发平台与运行平台。
在MARMOT没有出现时,我们可以把下图想象成传统开发模式与DORADO之间的关系。
(图:尚未集成的框架)
如图所示,其中的Business Logic代表开发商现有的业务逻辑代码。而DORADO包含了服务端引擎和客户端引擎两部分,这两个部分是密切相关,相互配合的,他们共同完成了表现层的功能。与业务逻辑的对接将主要通过与DORADO Server Engine之间的交互来完成。
基本的集成思路大致如下。
(图:基本的集成思路图)
如上图,DORADO Server Engine与Business Logic直接的通过Spring来起到承上启下的作用。而在DORADO的Server Engine和Client Engine之间我们也可以看到一些变化,那就是控制层的引入。
对于AJAX应用而言在操作的过程中客户端存在着大量的远程过程调用(RPC),这里的RPC并不是我们通常意义上所说的Server-Server的远程调用,而是指从浏览器客户端到服务端,利用JavaScript中的iFrame或XMLHttpRequest完成的方法调用。这些来自客户端的RPC请求,需要类似Servlet这样的对象来接收和处理。在上图中可以看出,我们利用了开源控制层框架(Spring MVC、Struts、WebWork)来处理这些请求。使用这种方式主要基于如下的考虑:
l 这些是应用非常广泛的产品,开发商原有的开发框架中极有可能已经使用了其中的某一个,在这种情况下没有必要为RPC请求单独注册一组Servlet。
l 目前的技术人员可能已经常常熟悉其中的某种框架,他们可以在MARMOT中直接选择他们熟悉的框架来使用,这有利于他们更快的了解MARMOT运转机制。
这些框架往往都提供了很完善的配置方案和扩展机制。例如其中的Spring MVC和WebWork都能很好的利用AOP机制来辅助功能扩展。
回到前面的话题,在集成Business Logic、Spring、DORADO、Controller的过程中我们需要一些代码和配置来完成整个工作。MARMOT为我们填补了这些空缺。
(图:MARMOT在集成过程中的作用)
MARORT应用框架正是基于上述基础架构之上开发的一套包含WEB应用系统常见功能的应用框架,开发人员可以将MARMOT作为软件开发的基础,对于MARMOT没有的功能,开发人员也可以方便的进行扩充。
表现层框架是展现中间件dorado。dorado支持OPOB设计模式、迭代式表现层MVC架构与视图建模,丰富的控件库Widget Lib由BRICH引擎统一驱动,内置AJAX通讯引擎、数据抽象集合是其一大特色、此外还提供国际化、表现层角色控制、外观皮肤切换等辅助功能。对于复杂页面,传统JSP中代码很长很复杂,不利于项目开发,更不利于上线后的维护。基于dorado的复杂页面,JSP中只保留TagLib的声明代码与排版代码,复杂的部分被剥离出来放到一个XML中。一些特效,如表格行通过鼠标drag&drop进行表格行拖动,已在控件中实现,开箱即用。因此基于dorado建设J2EE Web应用,开发迅速,维护方便。
业务对象层框架选择的是Spring。Spring是基于依赖注入(DI)设计模式等设计的BO层框架,采用XML格式的文件来指定业务对象之间的关系。Spring的作者在编写Spring之前先是写了一本书介绍其设计思想,这种“兵马未动粮草先行”的做事风格值得称道。
数据持久层框架是对象关系映射框架,对JDBC进行轻量级的对象封装,负责Java对象和关系数据库之间的映射的ORM,使用对象编程思维来操纵数据库,自动化或半自动化地完成数据持久化功能、POJO 与SQL之间的映射关系等。通常采用XML格式的文件来指定对象和关系数据之间的映射,在运行时,根据这个映射文件来生成各种SQL语句,使应用程序可以在不同数据库平台下迁移。数据持久层框架选择的是Hibernate与iBatis。前者是“全自动”ORM 实现,后者是半自动的。
权限框架选择的是Acegi。Acegi是为基于Spring的应用提供的声明式安全框架。它通过在Spring的应用上下文中配置一系列的Bean完成安全设置,完成利用了Spring提供的依赖注入和IoC编程方式。为了保证Web应用的安全需求,Acegi使用过滤器拦截servlet请求,并执行认证来执行安全措施。 Acegi通过安全方法级调用来执行更低层次的安全需求。通过使用Spring的AOP,Acegi使用代理对象来确保用户有适当的权限来调用被保护的方法。无论是较高层次的Web应用的安全,还是较低层次的方法级安全,Acegi都可以通过四个主要组件完成安全需求。 Security Interceptor 用于拦截那些需要访问受保护资源的请求。 Authentication Managers 用于验证主体的身份,如principal(典型的如用户名)和Credentials(典型的如密码)。能过验证,可以证明Who are you 。 Access Decision Mangers 用于决定已验证通过的principal是否有访问受保护资源的特权。 Run-as Managers 用于在通过验证和并得到授权之后,对访问资源进行更多的安全约束。
流程引擎既可以WfMC标准,也可以是BPEL标准。WfMC(Workflow Management Coalition,工作流管理联盟)是创建于1993年8月,由工作流软件供应商、用户、大学以及其他研究团体共同组成的一个非盈利性的国际组织。其任务是制订标准推动工作流管理的应用和发展,统一工作流软件术语,加强工作流产品供应商之间的协同工作与联系。WfMC对工作流(Workflow)的定义是:自动运作的业务过程的部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。BPEL(业务流程执行语言Business Process Execution Language)是一门用于自动化业务流程的形式规约语言。 用XML文档写入BPEL中的流程能在Web 服务之间以标准化的交互方式得到精心组织。这些流程能够在任何一个符合BPEL规范的平台或产品上执行。通过允许顾客们在各种各样的创作工具和执行平台之间移动这些流程,BPEL使得他们保护了他们在流程自动化上的投资。WfMC更接近于人机交互,倾向于审批流转型Workflow;BPEL更接近于数据与服务,倾向于自动执行型Business Process。近年来支持BPEL标准的厂商在其产品中增加了Human Task,以适用审批型需求。
企业服务总线选择的是IBM WebSphere Process Server。ESB (Enterprise Service Bus,企业服务总线)是为分散服务提供交互、组合和治理,是实现SOA的基础架构。ESB支持多类信息服务(multiple messaging services),提供不同格式数据的转换引擎,事件通知功能及注册及储存(registry/repository)功能。
报表工具、门户引擎、规则引擎、页面控制层框架等都可以根据实际需求灵活选择。
分享到:
相关推荐
总的来说,"quadratic"是一个基于JavaScript的在线工具,它利用了Web技术的便捷性,帮助用户快速求解二次方程,展现了JavaScript在教育和实用计算方面的应用潜力。通过深入理解JavaScript以及Web开发的基本原理,...
借位规则“借一当二”则是在减法中,借位相当于加上二的负幂次。 `phpbin.php`可能是该在线转换工具的核心代码,使用PHP语言编写。PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,可以嵌入到HTML中。在这个...
- **JAVA语言的应用范围**: Java广泛应用于各种领域,包括Web开发、移动应用开发、大数据处理、云计算服务等。 - **JAVA开发环境的安装和配置详解**: - **下载JDK**: 可以从Oracle官网或其他可信源下载适合您操作...
- **应用场景**:在游戏开发、电影制作以及教育软件中广泛应用。 #### Application software(应用软件) - **定义**:专为执行特定任务而设计的软件程序。 - **例子**:文字处理软件、电子表格应用程序等。 #### ...
- **Flex4**:一种用于构建桌面和移动设备上的高性能、跨平台的富客户端应用程序的软件开发框架。Flex4提供了一套强大的工具集,用于创建用户界面、处理数据绑定和事件驱动的操作。 - **MXML**:Flex的应用程序通常...
ASP.NET 是微软开发的一种用于构建 Web 应用程序的框架,它基于.NET ...随着对C#的掌握,你将能够更好地利用ASP.NET框架构建高效、可靠的Web应用程序。明天将继续探讨WEB控件,它们是构建交互式网页的关键工具。
HotJava 浏览器是 Java 应用的一个早期示例,它展示了 Java applet 在网页上的动态展示效果,这也推动了 Web 技术的发展。 **1.2 Java 语言的特点** - **面向对象**:Java 是一种完全的面向对象的语言,支持封装、...
计算机二级等级考试主要涵盖计算机基础知识、办公软件应用、数据库操作、编程语言理解等多个方面。以下是对部分题目及其涉及知识点的详细解析: 1. Word中的Ctrl+V键与工具栏上的粘贴功能相同,这是基本的剪贴板...
由于其源代码开放,用户在下载后可以根据自己的需求进行二次开发,轻松添加更多自定义功能。 Visual Basic是Microsoft公司推出的一种面向对象的编程环境,它以直观易学著称,尤其适合初学者学习编程。在VB中,我们...
Java的类库丰富,适合开发各种类型的应用程序,包括桌面应用、Web应用以及移动应用等。 接下来,我们要探讨的是这个简易版多项式计算器的核心功能。多项式是指由常数、变量以及它们之间的加、减、乘、幂运算组合而...
计算机二级等级考试试题涵盖了许多IT基础知识,主要涉及编程语言、操作系统...以上内容详细解释了计算机二级等级考试中的部分知识点,涵盖了编程语言的语法、网络协议、数据库操作、软件开发原则和网页制作等多个领域。
20. 记账凭证录入:二次录入技术中,第二次录入主要数据是为了验证和确认数据的准确性。 21. 直接工资费用核算:原始凭证可能包括考勤、产量、工时记录以及代扣款通知单等。 22. 系统开发流程:初步实现方案的拟定...
- **应用场景**:在数据库应用、Web服务器等领域中,合理设计缓存策略可以显著提升系统响应速度。 ##### 1.6 存储设备形成层次结构 - **核心概念**:不同类型的存储设备根据其访问速度和成本被安排在层次结构中。 ...
它结合了多种语言的优点,如C++的性能与Java的健壮性,特别适用于构建Windows桌面应用程序、Web应用、游戏(特别是Unity引擎中的游戏开发)、服务端应用等。 #### 二、控制台应用程序基础 **案例1**:基于控制台的...
- Web应用程序开发,如使用Node.js进行后端开发。 - JavaScript还具备良好的跨平台兼容性,能够在多种浏览器和设备上运行。 这些知识点涵盖了计算机基础知识、编程语言、数据库管理等多个方面,对于准备计算机二级...
C#是一种由微软开发的面向对象的编程语言,广泛应用于Windows应用程序、游戏开发、移动应用以及Web服务等多个领域。在这个源码中,我们将看到如何利用C#的基础语法、控制结构和图形用户界面(GUI)来构建一个简单的...
HTML5是一种强大的网页开发技术,尤其在图形渲染方面有着显著的优势。...向量是物理学和数学中的基本概念,在二维和三维...理解并熟练运用向量运算,能够帮助开发者更好地掌握HTML5图形编程,创造出更多创新的Web应用。
C#是一种面向对象的、类型安全的、现代的编程语言,广泛应用于Windows平台、Web开发以及游戏开发等领域。通过这个实验,你可以深入理解C#的基础语法、事件处理以及控制台应用程序的开发。 首先,让我们来了解C#中的...
Python在软件开发领域扮演着重要角色,它被广泛应用于Web开发、数据分析、人工智能、自动化脚本等多个领域。Python的跨平台特性使其可以在Windows、Linux、Mac OS等操作系统上运行,其丰富的第三方库如Numpy、Pandas...
它具有丰富的类库和强大的跨平台能力,适用于开发桌面应用、Web应用和移动应用等多种类型项目。 2. **计算器设计**:计算器通常包含数字键盘、运算符键以及清除、等于等辅助键。在Java中,这些功能可以通过控制台...