Oracle Forms Services Architecture


Oracle Forms Services Architecture


Author:PTIAN(tianpan@gmail.com)
Creation Date:05/01/2012
Last Updated:
Version:
Status:



Contents

Forms Services Architecture1
Summary1
Forms Servlet1
Form Applet 2
Forms Listener Servlet3
Forms Runtime Engine3
A Complete Process3
Reference5

Forms Services Architecture

Summary

Oracle EBS Form架构(Forms Services Architecture)是典型的三层,所有客户端触发的Trigger的处理都发生在DB层和应用服务器层。Forms Services Architecture主要包括四大组件:the Forms Servlet, the Java Applet(Forms Client), the Forms Listener Servlet, and the Forms Runtime Engine


graphic

Forms Servlet

Form Servlet是一个Java Servlet,运行于Oracle HTTP Server中,用于为客户端创建动态HTML

Form Applet

Form Applet是一个Java Applet,提供界面来展示(交互)Form Runtime Engine.

Applet采用Java创建的基于HTML的程序。浏览器将其暂时下载到用户的硬盘上,并在Web页打开时在本地运行。含有Applet的网页的HTML文件代码中部带有<applet></applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet

查看EBS Applet的初始页面的源代码


可以看到,确实是有<applet></applet>这样一对标记,

code="oracle.forms.engine.Main"是要运行的Java Applet Class,

这个Java类在fndforms.jar中(fndforms.jar会在Applet启动前预加载)

codebase="/OA_JAVA/",给出Class所在的位置

archive="/OA_JAVA/oracle/apps/fnd/jar/fndforms.jar, /OA_JAVA/oracle/apps/fnd/jar/fndformsi18n.jar,….”是指Applet运行前,需要预加载的jar文件


<PARAM name=serverArgs value="module=/slot/ems2384/appmgr/apps/apps_st/appl/fnd/12.0.0/forms/US/FNDSCSGN….>说明,Applet打算加载的第一个Form文件是FNDSCSGN.fmb

打开FNDSCSGN.fmb就可以看到,这个form实际上EBSNavigator的主界面


Forms Listener Servlet

Form Listener Servlet也是一个Java Servlet,它运行在支持Servlet引擎的Web Server中(例如OC4J)。Form Listener Servlet负责管理每一个Forms Runtime process,通过Web Server管理ClientForms Runtime Process的交互。

Forms Runtime Engine

Form Runtime Engine是运行于App Server上的一个进程,这个进程是有Form Listener Servlet触发的。Forms Runtime Engine是真正处理所有业务逻辑和Form功能的地方。fmx,plx,mmx这些“可执行文件”就是被Form Runtime Engine调用的。

It is important to understand thatall of the Forms logic is executed by the Forms Runtime Engine running on this middle tier.That is, the Forms Runtime Engine opens the appropriate FMX file, connects to the database and executes the Form.No logic executes on the client.Only what Oracle classes as UI information is sent to the client. Each major action on the client, such as navigating between Form fields, choosing an item from a list, etc, incurs a round trip to the Application server in order to be processed by the Forms Runtime Engine.

--Oracle Web Forms(http://doc.xmarc.net/xmarc6/es/Fire/fug/webforms.htm)

A Complete Process

大体过程:首先用户通过浏览器输入Application的网址(eg. http://domain:port/forms/frmservlet),然后HTTP ServerForm Servlet接收请求之后,生成一个HTML文件并传回到客户端(生成的过程实际上是在静态网页的基础上加入和环境相关的变量),这个HTML文件是包含<Applet>程序的,这个Applet就是用来展示Form的容器,同时应用程序的逻辑是执行在Middle Server层上。

接下来是一个详细的运行时过程


1]在浏览器中输入URL,准备访问Form应用

http://domain:port/forms/frmservlet

2]中间层的HTTP服务器接收到用户请求之后,再通知Form Servlet

3] Forms Servlet为客户端动态产生一个HTML页面,这个页面包含启动Form的所有信息。

就像之前提到的,可以打开这个HTML页面源代码,就可以看到里面的细节。


4]如果是第一次登陆的话,想要运行HTML中的Applet,就必须先通过HTTP Server下载相应的jar文件(HTML页面的源代码中archive部分)

5] Applet启动后(一般会先运行FNDSCSGN.fmb(Navigator Form))Applet这是会通知Forms Listener ServletForms Listener Servlet然后会在中间层启动一个Forms Runtime Engine Session

6] Forms Listener Servlet建立一个Form Runtime Engine的连接, Form Runtime Engine会连接数据库并且加载运行时文件(fmb,plx,mmx文件)


7] Forms applet展示加载的Form.

8] Forms Listener Servlet通过OC4J或者HTTP Server管理Form AppletForm Runtime Engine的交互。


Reference

J2EE, Web Services, and Internet Applications

http://docs.oracle.com/cd/B10464_05/core.904/b10375/webstapp.htm


Oracle Web Forms

http://doc.xmarc.net/xmarc6/es/Fire/fug/webforms.htm

转载请注明出处:http://blog.csdn.net/pan_tian/article/details/7645710


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值