Oracle Forms Services Architecture

摘要:
浏览器将其临时下载到用户的硬盘,并在网页打开时在本地运行。包含小程序的网页的HTML文件代码包含一对标记,如中间的和。当支持Java的web浏览器遇到这些标签时,它将下载相应的小程序代码并在本地计算机上执行小程序。查看EBSApplet初始页面的源代码,我们可以看到确实有一对标记,例如<applet>和</applet>。Code=“oracle.forms.engine.Main”是要运行的Java AppletClass。fndforms中的Java类代码基=“/OA_Java/”。jar,给出类存档的位置=“/OA_JAVA/oracle/apps/fnd/jar/fndforms.jar,/OA_JAVA/oracle/app/fnd/jal/fndforms18n.jar

Oracle Forms Services Architecture


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



Contents

Forms Services Architecture                                                                                                                                                                       1
Summary                                                                                                                                                                                                          1
Forms Servlet                                                                                                                                                                                                   1
Form Applet                                                                                                                                                                                                    2
Forms Listener Servlet                                                                                                                                                                                  3
Forms Runtime Engine                                                                                                                                                                                3
A Complete Process                                                                                                                                                                                      3
Reference                                                                                                                                                                                                          5
 

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

Oracle Forms Services Architecture第1张

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 的初始页面的源代码

Oracle Forms Services Architecture第3张

可以看到,确实是有 <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 文件

Oracle Forms Services Architecture第4张

<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 实际上EBS  Navigator的主界面

Oracle Forms Services Architecture第5张

Forms Listener Servlet

Form Listener Servlet也是一个 Java Servlet ,它运行在支持 Servlet引擎的 Web Server 中(例如OC4J )。 Form Listener Servlet负责管理每一个 Forms Runtime process ,通过Web Server 管理 Client Forms 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 that all 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 Server Form Servlet 接收请求之后,生成一个 HTML文件并传回到客户端 (生成的过程实际上是在静态网页的基础上加入和环境相关的变量 ),这个 HTML文件是包含 <Applet> 程序的,这个Applet 就是用来展示 Form的容器,同时应用程序的逻辑是执行在 Middle Server 层上。

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

Oracle Forms Services Architecture第6张

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

http://domain:port/forms/frmservlet

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

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

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

Oracle Forms Services Architecture第7张

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

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

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

Oracle Forms Services Architecture第8张

7] Forms applet展示加载的 Form.

8] Forms Listener Servlet通过 OC4J 或者HTTP Server 管理 Form Applet Form 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

免责声明:文章转载自《Oracle Forms Services Architecture》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue项目中生产环境禁用debugger,关闭console权限控制管理(用户与菜单项的关联)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

从零开始实现ASP.NET Core MVC的插件式开发(九)

标题:从零开始实现ASP.NET Core MVC的插件式开发(九) - 升级.NET 5及启用预编译视图 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/13992077.html 源代码:https://github.com/lamondlu/Mystique 适用版本:.NET Core 3.1, ....

oracle创建数据库和用户、表空间,管理表空间和数据文件简介

介绍 表空间是数据库的逻辑组成部分 从物理上将:数据库数据存放在数据文件中 从逻辑上将:数据库则是存放在表空间中 表空间由一个或是多个数据文件组成   数据库的逻辑结构 介绍: Oracle中逻辑结构包括表空间、段、区、块 说明: 数据库由表空间构成 而表空间又是由段构成 而段又是由区构成 而区又是由Oracle块构成     这样的一种结果,可以提高...

vue 查询分页

后端用的flask,前端vue,查询结果展示以及分页 如图: 代码如下: 前端: 1 <template> 2 <div> 3 <el-row> 4 <el-col :span="18"> 5 <el...

十、oracle 常用函数

一、字符函数字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:lower(char):将字符串转化为小写的格式。upper(char):将字符串转化为大写的格式。length(char):返回字符串的长度。substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个replace(char1, sear...

一次使用OCI的排错经历

作者:朱金灿 来源:blog.csdn.net/clever101 使用VS C++ 2005 + sp1和Oracle 10g的OCI库开发一个应用程序。 其中在连接数据库服务器调用OCIEnvCreate函数返回-1,开始百思不得其解,本想通过OCIErrorGet()函数获取相关错误信息。但听公司一位高手说,OCIEnvCreate函数调用失败,是无...

C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(ODP.net):http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html 首先...