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

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

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 层上。

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

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 Servlet, Forms 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 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的更多相关文章

  1. Oracle Forms 10g Tutorial Ebook Download - Oracle Forms Blog

    A step by step tutorial for Oracle Forms 10g development. This guide is helpful for freshers in Orac ...

  2. How To Install Oracle Forms 12c On Windows 7

    Below is the step by step guide to install Oracle Forms 12c on Windows 7. To install Oracle Forms 12 ...

  3. Upload Files To FTP in Oracle Forms D2k

    Upload Files To FTP in Oracle Forms D2k Use following procedure to upload files to Ftp.   PROCEDURE ...

  4. Download Oracle Forms 6i

    To download Oracle Forms Developer 6i from Oracle click this link http://download.oracle.com/otn/nt/ ...

  5. Number To Indian Rupee Words in Oracle Forms / Reports

    Convert numbers to Indian Rupees format in Oracle Forms / Reports.Create the below mention function ...

  6. Creating Custom Login Screen In Oracle Forms 10g

    Below is the example plsql unit to validate login credentials and after successful validation open a ...

  7. Writing Text Files On The Client in Oracle Forms 10g

    Below is the example to write file on client in Oracle Forms 10g with webutil library package.Note:  ...

  8. Displaying Window In Center In Oracle Forms 6i

    Center window automatically  in Oracle Forms 6i, use the following procedure by passing window name ...

  9. Adding List Item Element At Runtime In Oracle Forms

    Add combo list / drop down list item element at runtime in Oracle forms.SyntaxPROCEDURE ADD_LIST_ELE ...

随机推荐

  1. Canvas实现3D效果-可旋转的立方体

    摘要:Canvas画布是一个二维平面,如何展示出3D效果?通过将三维空间中的Z轴抽取出来,将图像的点投影到与Z轴垂直的平面上,在通过旋转等变换效果,我们就能实现3D效果. 一.建立坐标系 1)立方体坐 ...

  2. Android Design Support Library使用详解——TextInputLayout与TextInputEditText

    TextInputLayout 在谷歌的Material Design中,文本输入是这样表现的:当用户点击输入框想要输入文字时,如果输入框是空的,那么它的提示文字(hint)就会变小并且同时移动到输入 ...

  3. Winform DevExpress控件库(二) 使用SplashScreenManager控件定制程序加载页面

    SplashScreenManager控件:主要作用是显示在进行耗时操作时的等待界面: 位于 工具箱 -> Navigation & Layout(导航栏与布局类控件) 目录下: 在工具 ...

  4. [LaTeX] box algorithm adjustbox subfigures, textwidth

    algorithm \begin{figure}[!t] \vspace*{\dimexpr\fboxsep+\fboxrule} \fbox{% \parbox{\dimexpr\linewidth ...

  5. 使用Kubernetes需要注意的一些问题(FAQ of k8s)

    本篇文章并不是介绍K8S 或者Docker的,而仅仅是使用过程中一些常见问题的汇总. 重启策略:http://kubernetes.io/docs/user-guide/pod-states/, 对于 ...

  6. Web自动化框架LazyUI使用手册(4)--控件抓取工具Elements Extractor详解(批量抓取)

    概述 前面的一篇博文详细介绍了单个控件抓取的设计思路&逻辑以及使用方法,本文将详述批量控件抓取功能. 批量抓取:打开一个web页面,遍历页面上所有能被抓取的元素,获得每个元素的iframe.和 ...

  7. ActiveMQ + NodeJS + Stomp 极简入门

    前提 安装ActiveMQ和Nodejs 测试步骤 1.执行bin\win32\activemq.bat启动MQ服务 2. 打开http://localhost:8161/admin/topics.j ...

  8. Dynamics CRM2016 Supported versions of Internet Explorer and Microsoft Edge

    在CRM2016发布在即之时,让咱们看下新版的CRM对IE及Edge的支持 这次和以往不同,官方给出的不只是IE几以上支持,IE几以下不支持,而是有一个对应的系统列表,具体看下表. 当然你也可以说我I ...

  9. FFmpeg源代码简单分析:avformat_write_header()

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  10. 4.2、Android Studio压缩你的代码和资源

    为了让你的APK文件尽可能的小,你需要在构建的时候开启压缩来移除无用的代码和资源. 代码压缩可在ProGuard中使用,可以检测和清除无用的类,变量,方法和属性,甚至包括你引用的库.ProGuard同 ...