oracle applications framework是oracle的基于HTML的商务开发平台,OAF包括一系列的中间件运行服务和基于JDEVELOPER的设计时的扩展工具。
在互联网发展的开始几年,软件工业见证了快速发展的技术。这些技术已经成熟,但是仍然有诸多底层和复杂的技术需要学习和实现。在这种情况下,OAF作为一个开发和部署ORACLE EBS的基于HMTL应用的集成环境出现了。它具有以下特点:
1、为最终用户着想
从CS到多层结构的开发模式节省了很多成本,但效果仍不理想,基于HTML的应用很像老式的主机终端式的结构,操作在客户端,结果在中间层上。
一段时间后,用户界面交互性提高了,OAF已经保持了高效和用户界面交互性,例如PPR(部分页面更新),快捷键,快速选择列表,和利用LOV自动完成内容。另外,oracle聚集了大量的关注用户行为和心理的专家资源,开发发一系列标准的用户界面,就是通常所说的BLAF。BLAF是所有OAF的默认界面,但也可以根据用户的特定需求来定制。
2、企业级的性能和可伸缩性
OAF具有非常好的性能和可伸缩的目标,大多数ORACLE EBS页面对于大多用户的行为具有附加的反应,在用户第一次访问时,要用长一点的时间,但以后大多数信息会被中间层缓存,允许更快的响应,资源被保存在一个资源池中,并在内存和数据库之间交换数据。
3、面向开发者
OAF被设计成为MVC架构,为了避免开发者花大量精力快速更新的技术细节中,oracle采用了MVC架构,使用工业标准的XML格式来建立用户界面结构。在11.5.10中,ORACLE正在向所有的客户和合作伙伴推广使用OAF的好处。客户和合作伙伴可以使用OAF技术来丰富EBS的功能。
4、可定制的应用
oracle能够利用超过20年的建立和部署商业软件的经验,来架构OAF和持久节约的客户化。oracle关注这个目标并推出了可灵活定制用户界面和商业逻辑的解决方案。感谢面向对象的OAF的发明,应用定制和扩展的低成本和减少维护真正变为可能。
5、开放标准
oracle一直以来是工业标准的领先者并积极参与标准的制定,OAF技术已经驱动了一些工作标准并形成了标准。一些ORACLE技术架构师是很多工业标准委员会的成员。OAF是基于J2EE的标准,如:XML、HTML、JAVA、JSP、SQL和、WEB SERVICE。
OAF基于标准的J2EE的MVC设计工业标准,开发者使用JDEVELOPER来操作应用中的元数据,OAF使用有效的方式来执行应用。MVC架构是基于组件的设计模式,它在模型、视图、控制器之间使用接口。模型是应用实现商业逻辑的地方,视图是应用实现用户界面的地方,控制器是将用户操作转给商业逻辑的地方。
如下图:
OAF提供以下设计工具
1、 UML工具生成商业逻辑
2、 引导用户设计界面
3、 控制器生成代码
OAF模型是用BC4J实现的,BC4J提供了完美可用的J2EE设计模式的实现。通过调试JDEVELOPER中的测试代码和工具,开发组能快速并只需关注商业逻辑和用户界面,而不是手工设计、编码、调试plumbing code。
OAF视图是基于UIX的实现,Uix使用XML来描述组件结构并生成应用页面,UIX也提供了运行时的将元数据转成HTML的功能,以便于它能在浏览器或者移动设备上显示。元数据将UI加载到数据库中,叫做MDS(Meta data Service),在部署时和设计时一样完美。
OA控制器处理用户驱动和应用驱动交互,它是完全由JAVA实现的。页面流转是由控制器直接实现的,其它是则oracle工作流实现的,在将来的版本中,商业逻辑也将通过定义模型和视图来实现。
集成的开发环境
带有OA扩展的ORACLE9i JDeveloper是一个世界性的基于J2EE的集成开发环境,oracle的客户和第三方的咨询顾问使用相同的工具来建立完整的EBS应用。OA扩展工具提供了如易于使用的向导,结构化的导航,属性页等特性。这些特点可以使开发者致力于逻辑和用户界面上。JDeveloper提供了大量的工具如:UML构建器,代码提示,集成的调试,本地测试环境和文档生成器等。
持续的客户化和扩展
客户化是定制用户界面的外观,布局和页面的组件来配合商业和用户需求。如:客户化包括:
l 定制界面颜色
l 定制表列的显示顺序
l 定制结果集
可扩展性是通过客户化来扩展应用的功能而超出原有的功能。例如:
添加功能流
扩展或改写功能流
扩展或改写商业逻辑
OAF被设计成具有可持续的客户化和扩展的能力,通过声明结构和指定面向对象的实现来完成。
UI组件以元数据的形式存储在数据库中,客户化被翻译成元数据的改变量并分开存储,在运行时,所有的客户化元数据从数据库中加载并覆盖到基本的元数据之上,产品升级或打补丁只对基本的元数据有效,所以客户做的客户化会保留并正常工作。
一个最终用户可以只对指定的用户建立客户化,并只对认证的用户可见。例如:一个最终用户可以保存通过管理者查询员工并隐藏员工的生日的这样一个查询结果。一旦客户化视图保存为一个名称,用户以后可以再查看这个视图。
应用管理员和应用开发员可以灵活在不同的层面上来定制。他们可以将客户化在某个功能环境中应用到所有的用户,某个地区用户,某个组织的用户,某个职责的用户。不同的层次可以通过事先规定的先后顺序在同一时间应用。
使用整合的的OA扩展工具向导和客户化插件,就可以以较低的成本和维护实现不同的用户界面和商业逻辑的扩展。ORACEL EBS的客户继续得益于这些扩展工具提供的弹性域、工作流和商业事件。
OAF提供给开发者一系列的用户界面组件来建立更多的组合应用,开发者不必总是重复设计通用的用户界结构。而且,OAF的用户界面可以使开发者不必学习大量频繁变化的技术。
OAF用户界面组件包括简单控件如按钮输入框和组合组件如嵌套表格和结构表格。
用户界面交互性
OAF一直是HTML用户界面技术的倡导者,基于这一点,OAF有以下的特点:
1、 PPR,页面局部更新,通过PPT设计,页面的一部分更新,而不是整个页面更新。OAF支持以下的PPR动作:表格导航,表格排序,表列汇总,添加行,行或单元格的隐藏,组件的显示和隐藏,LOV的定位,子菜单的导航,甘物图的刷新和弹性域上下文的切换。另外,开发者可以可以声明在一些组件上启用PPR事件。例如:
l 配置选择下拉框来关联域的显示,选不同的值来确定是否可更新、必需或禁用。
l 配置文本框的值变化来关联域的显示,如,如果设置了供应商并切换到下一个域,关联的供应商地点自动显示。
l 配置选择主表的记录来自动查询和显示子表的记录。
2、 快捷键
OAF支持为指定的按钮设定快捷键,允许开发者为指定的用户动作来分配数字快捷键。
3、 加强的保存模式
当用户离开当前的数据修改(如点击当前事务外部的连接)时,OAF提供了默认的警告。开发者可以覆盖组件和默认事件
4、 智能下拉列表
OAF支持在静态的列表和查询列表中的客户化,下拉列表包括大多数通用的用户用来选择属性值的列表。用户可以通过点击列表中的新建来客户化显示在列表的中值,而且,用户可以客户化列表值的顺序和删除不常用的值,这个特点是和LOV相同的。
5、 LOV自动完成
值列表(LOV)用在列晴值比较长或者用户想在选值前执行查询时。在一些商业场合,特别是文书工作,用户使用一个小值集来更快的查询数据。如果用户在关联到LOV的域中输入部分值,OAF在LOV窗口显示之前执行一个查询。如果只查询到一条记录,OAF用这条记录自动完成剩余的部分,这样就不用显示LOV窗口了。
OAF应用可以抽象成一个同心圆的图。中心层是数据库,最外层是应用页面。中间是商业逻辑和用户接口层。这些层允许生成代码和实现组件,并在内层保持最大的重用性以便在外层访问。如:属性验证是在ENTITY OBJECT中实现的。所有的用户看到的可以指定和更新属性值的应用页面将接受指定的ENTITY OBJECT中的属性验证。在用户接口上,可重用的组件可以做为共享REGION保存在MDS中并被其它页面重用。管理员可以选择客户化共享的REGION从而影响所有相关的页面,或者只客户化当前页面的上下文中的共享REGION。
OAF提供给开发者一个简单的发布类似PORTAL组件的OAF组件的方法。ORACLE PORTAL提供了一个通用的、整合的访问所有数据的方法。ORACLE允许客户化组件和页面外观,也可以客户化显示在PORTAL中的REGION。所有你做的的客户化只在你显示同一个PORTAL的时候才会显示。
基于HTML的应用提供给用户和管理员很多方便,但特别注意必须确定这些应用的安全性。开发真正持续的HTML的应用是很困难的,要求开发者也是安全专家才行。实现上,大多数的应用开发员不是安全专家,也不需要是。应用框架用职责来确定HTML事务是认证的、专有的或者开放的。OAF提供了内嵌的HTML的保护,使应用开发员放心开发应用功能。另外,UI组件被定义在MDS中,而不是在代码中,这样OAF提供的安全保护能够保持数据状态而不用反复重写。
OAF应用使用标准的ORACLE9IAS/APACHE和ORACLE9I数据库,应用页面可以显示在IE5.0、NETSCAPE4.73、MOZILLA1.5或它们的更高版本中。中间层的数据可以部署到不同的平台如:LINUX、UNIX、WINDOWS中。
基于MVC的架构,OAF让开发者关注商业逻辑而不是技术。通过使用声明和向导编程技术,OAF允许非J2EE的开发者也能快速开发。基于OAF的应用提供了一致的最高级别的不带有客户端的用户交互经验。OAF开发它的声明和面向对象和架构提供了持久了客户化和可扩展的能力,OAF的特点是低成本、更好的用户经验和有竞争的问部署。