Oracle Forms Services Architecture

Oracle Forms Services Architectureweb


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網絡


graphic

Forms Servlet架構

Form Servlet是一個 Java Servlet,運行於 Oracle HTTP Server 中,用於爲客戶端建立動態 HTMLoracle

Form Appletapp

Form Applet是一個 Java Applet, 提供界面來展現 (交互 )Form Runtime Engine.dom

Applet採用 Java 建立的基於 HTML的程序。瀏覽器將其暫時下載到用戶的硬盤上,並在 Web 頁打開時在本地運行。含有 Applet 的網頁的HTML 文件代碼中部帶有 <applet></applet> 這樣一對標記,當支持 Java 的網絡瀏覽器遇到這對標記時,就將下載相應的小應用程序代碼並在本地計算機上執行該 Applet this

查看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

相關文章
相關標籤/搜索