2023年11月28日发(作者:)

ebs系统架构简介1——三层结构上篇

Applications DBA 基础》3- 4 系统架构及基本系统管理知识

1. 系统架构介绍

==============

Oracle applications 主要包括⼀个⽂件系统⼀个数据库

⽽⽂件系统包括:forms(⽤来交互和更新数据)、reports(⽤来显⽰标准的输出数据)、⼀致性程序(提供了⼤容量、⾮交互的数据更新

操作)、程序和sql脚本(管理这个系统)、htmljava(⽤来显⽰⽤户界⾯和实现商业应⽤)

数据库包括:数据对象(表、索引等)、代码对象(sqlplsql块,过程、函数、触发器)

分层架构分析:

1Desktop Tier

Oracle applications 的架构是 multi-tier 的。不同层有不同的 components 如下:

Desktop Tier 上既有 典型的HTML界⾯⼜有传统的 FORMS 界⾯ FORMS界⾯通过Forms client Applet Java client Applet的⼀种)与

应⽤服务器联系,下载 有关的JAR file。原来的11i 需要 Oracle 专⽤的JVM Jinitiator R12 中只需要标准的 J2SE plugin JVMJAR

⽂件包含了所有需要的类⽂件,⽤来显⽰ebs所有描述性的form表单。

对于form 客户端的applet,⼀般常⽤的jar⽂件在第⼀次session的时候就会下载到本地;但是对于不常⽤的jar⽂件,使⽤的时候才会下载下

来。所有下载下来的⽂件都会cache到本地的客户端,以供后续的会话使⽤,具体的cache⽬录如下:Documents and

SettingsApplication DataSunJavaDeploymentcache 我⾃⼰的在这个⽬录⾥:

C:UsersliuAppDataLocalLowSunJavaDeploymentcache

R12中,我们可通过java插件的控制台(从哪个java图标点——打开控制⾯板——⾼级——java控制台)

所有对jar⽂件的更新都会被安装到应⽤层,然后才会被⾃动下载到客户端那⼀层。

2Application Tier

对应地, Application Tier,既有web 服务器,J2EE 服务器,也有传统的 FORMS/Reports 服务器。当然,还有 batch job ⽤的

Concurrent Manager。所以我们可以认为oracle application Tier包括了如下四个服务:

·Web services

·Forms services

·Concurrent Processing server

·Admin server

笼统的看,应⽤层扮演了两个⾓⾊:

1,、集群化不同的服务器(这⾥不是指硬件,是指提供服务的程序如:并⾏处理服务器(concurrent processing server))和服务组来完成

商业逻辑;

2、管理Desktop database层的会话交互。

R12 如下 三个 Oracle HOME:

1. RDBMS _HOME: 这是 后台数据库⽤的。(我们稍后介绍)

2. 10.1.2 ORACLE_HOME ⼜叫做Tools, C, or Developer ORACLE_HOME 主要是给 FORMS REPORTS ⽤的。(相当于 11i

8.0.6 ORACLE_HOME。)

3. 10.1.3 ORACLE_HOME :⼜叫做 Web or Java ORACLE_HOME, 主要是给web server (Apache) JAVA OC4J )⽤的。( 相当于

11i iAS ORACLE_HOME

当看完上⾯的图⽚的时候你可能并不是很清晰到底10.1.2 10.1.3这两个ORACLE_HOME⽬录⾥到底有什么,或者说到底是什么样⼦,我

secureCRT的⼀个⼩⼯具叫secureFX可以打开linux下的⽂件⽬录结构图:

这样我们⾮常清晰的认识到了这两个ORACLE_HOME⽬录所负责的功能。

2.1 、基于html的应⽤

2.1.1 10.1.3⽬录

还没有讲完,我们单独拿出10.1.3这个oracle home来讲⼀下起其内部机构:

web services是指处理来⾃客户端的请求的⼀个组件(与他处于平⾏关系的是forms reports的组件,在10.1.2),包括下⾯三个部分:

Web Lisener(就是HTTP Sserverapache提供的)

OC4J(⽤来运⾏java程序的容器)

OPMNoracle process manager

基于html的应⽤有如下特点:

1、没有form界⾯;2、纯htmljavascript开发;3、通过执⾏java代码动态⽣成html页⾯;4、对固定的页⾯层,使⽤元数据数据字典;5

通过直接连接web服务器操作。

oracle applications server 可以分为oracle http serverj2ee的容器:

其中oracle http server 通俗的理解就是⼀个web listener,并且添加了⼀些组件,提供了信息传递到j2ee容器的功能, ⼀般就是apache

web服务器。。。

j2ee的容器分为两种:⼀种叫web container⽤来运⾏jsp servelet的,能够提供请求的分配,请求并发控制,请求⽣命周期管理。提供了请

求连接到jdbc 的⼀些组件等。。

还有⼀种叫:EJB(enterprise java bean) 它管理着所有的j2ee的应⽤程序(这些应⽤程序对数据库进⾏商业逻辑的操作)

oracle application Server 包含了下⾯三个驱动器,这些驱动器提供了到oracle数据库的⾼扩展⾼可靠的连接:

1oracle JDBC driversoracleJDBC驱动器,除了提供标准的JDBC api⽀持,还提供扩展的oracle指定的数据类型加强了性能。

2J2EE Connectors:是j2ee平台的⼀部分,提供了⼀个基于java的解决⽅案,连接不同的应⽤程序服务器和企业信息系统。

3DataDirect Connect Type 4 JDBC drivers:数据直接的JDBC驱动,对于连接⾮oracle数据⽤的。

2.1.2 oracle application framework 应⽤程序开发框架):

oracle applications framework

oracle应⽤程序开发框架是基于html的开发平台,它是由⼀个: 基于java的应⽤程序层框架和相关的服务 组成,其设计的初衷是⽤来快速的

部署基于html的应⽤程序。

BC4Jbusiness component for java):被包括在JDeveloper中,⽤来创建javabusiness组件,以表⽰商业逻辑;它还提供了⼀个“java

对象 的映射机制。允许应⽤商业逻辑和⽤户界⾯的分离。

最后,我们在整体回顾⼀下HTML 页⾯服务的各个组件如何协同⼯作:

1)⽤户从浏览器⾥点击了⼀下⼀个按钮,这个按钮对应着⼀个函数功能。

2)浏览器转换成URL的访问请求到web listener

3web listener 去找OC4J(servelet的引擎),说客户要你执⾏某程序,或逻辑运算,并返回给客户结果。

4Servelet会通过jsp程序去ebs的数据库的 metadata dictionary(元数据字典)取出⼀些表的数据,构造HTML页⾯。

5HTML页⾯通过web server 返回给⽤户。

那么我们会继续往下想,JSP页⾯是怎么获得的ebs的数据呢?我们从上⾯的第4条继续引申:

1AOL/J先确认⽤户要访问的page

2page 的定义信息(也就是元数据的UI定义信息(metadate UI definition))从数据库层的元数据仓库(metadata Repository)传送到应

⽤层。

3)保存了应⽤逻辑和访问数据库的 BC4J对象 被实例化。

4java的控制编程组件 根据动态UI规则来⽣成页⾯的定义

5UIX(HTML UI Generator)解释页⾯的定义,根据UI标准创建响应的html,发送到浏览器。

2.2 Forms的服务

R12 还有⼤量的 FORMS 界⾯,所以 在服务器上也有 Forms Services

Forms Services 由如下4个组件:

1Forms Servlet

当⼀个⽤户开始了⼀个Forms的应⽤程序,Forms Servlet就是⽤来建⽴最初始的连接,它给客户端返回HTML⽂件,这些HTML⽂件中含有Forms Client

applet(Applet是⼀种特殊的Java程序,它本⾝不能单独运⾏,需要嵌⼊在⼀个HTML⽂件中,借助浏览器或Appletviewer来解释执⾏)

2Forms Client Applet

是在客户端浏览器⾥运⾏的⼀个java applet,它为相应的Forms 运⾏时进程(Runtime Process)提供了⽤户界⾯。

3Forms LIstener Servelet运⾏在OC4J servelet container中的servelet,它负责如下⼏件事,1、管理每个客户端的Forms运⾏时进程的

⽣命周期;2、管理每个客户端连接到运⾏时进程的⽹络连接;3、通过Oracle Net 这种⽹络基础与oracle数据库进⾏交互;4、缓存客户端

需要的数据,⽐如从数据库⾥取出了好多⾏,可以⼀⾏⼀⾏的发到客户端,其余的先缓存在这⾥⾯。

使⽤forms listener servlet有如下的好处:

1)重建删除的连接

2)少量的机器和多⼝暴露在防⽕墙外,简单的防⽕墙和代理(proxy)服务器的配置

3)在internet上更强健和安全的部署

4Forms Runtime ProcessOracle Application Server⾥运⾏的⼀个进程,这个进程维护者客户端applet和数据库的交互。

Oralce Application Server Forms Services Architecture:

我们通过分析⼀个请求的过程,来熟悉⼀下Forms Services 的结构:

1)⽤户打开浏览器,并且为Forms 应⽤程序点了对应的URL地址。

2HTTP Listener 解释这个URL并显⽰⼀个HTML页⾯,这个页⾯包含⼀个 applet 标签,描述了指向浏览器的Forms Java ClientURL

Forms Servlet动态的去创建HTML页⾯

The HTTP Listener interprets the URL and displays an HTML page containing an tag that describes the Forms Java Client to the

browser. The URL calls the Forms servlet to create the HTML page dynamically.

3)客户端接收到HTTP Listener 传送过来的HTML⽂件,这个HTML⽂件⽀持请求的信息 定位java类⽂件,这个java类⽂件构造Forms Java

Client;这个HTML⽂件也包含了请求的forms 应⽤程序的信息,传递给Forms Session的参数(如登录信息等)。

The client receives the HTML file served

by the HTTP Listener. The HTML file supplies the information required to locate the Java class files that make up the Forms Java Client. The HTML file also contains information about the requested Forms

application, as well as parameters that get passed to the Forms session, such as login information.

4)浏览器下载Forms Java Client 并启动Java Applet

5Forms Java Client Applet 通过HTTP ListenerForms Listener Servlet 发送⼀个请求,去启动⼀个Forms Session

6Forms Listener Servlet收到Forms Java Client发送的请求后,为这个请求启动⼀个Forms Runtime Process

7Forms Runtime Process 把来⾃客户端的HTML⽂件指定的模块,还有库⽂件和菜单项等 获得过来。任何的Forms Java Client Forms

Runtime Process的交互都是通过Forms Listener Servlet的。

8)⽤户被提⽰输⼊数据库的登录信息,连接到数据库服务器的连接建⽴。

9)现在⽤户可以⽤Forms Application 对数据进⾏操作了。

2.3Concurrent Manager

并发管理器(concurrent manager)是并发处理的基础核⼼,承担了⼯作的计划和执⾏,它的本质是:

⼀个在oracle Application 中登记的可执⾏的程序库,作为操作系统的⼀个进程运⾏,运⾏的操作系统进程称为⽬标进程(target

processes,⼀般叫做worker),在同⼀时间⼀个⽬标进程可以启动⼀个并发程序。

并发管理器,可以运⾏任何的并发程序,或指定待定的并发程序,通过⼯作班次(work shift来指定运⾏的⽇期和时间。

主要负责处理 batch job ⽐如复杂的报表,涉及⼤量更新的处理等。⽤户在前台提交请求 concurrent request),请求会写到 数据库的

表上去,然后,Concurrent Manager 就会读表,⼀个⼀个的进⾏处理。

EBS 有三个⾮常重要的master concurrent magagers

Internal Concurrent ManagerICM):它控制所有的其他的manager,可以说他就是⽼⼤,它在所有的manager运⾏之前运⾏。ICM主要的

⼯作就是启动或者关闭其他的concurrent managers,或者重新启动那些失败的managers

Standard ManagerSM):运⾏那些不在特定manager⾥运⾏的reportsbatch jobs,那哪些是specific concurrent manager呢?包括:

Inventory ManagerCRP Inquiry ManagerReceivables Tax Manager

Conflict Resolution Manager CRM):⽤不相容规则去检查并发程序的定义,然⽽,ICM也可以被配置的,接管CRM的⼯作去解决冲

突。

TransactionManager ⽤来⽀持同步请求处理。通过使⽤管道的⽅式来同步客户端和服务器之间的通信,使⽤

FND_ONOUS功能来实现

Concurrent request log output file 通过 Report Review Agent $FND_TOP/bin/FNDFS)送到 FORMS Services,再有

FORMS Services 传给 ⽤户的 browser

Report Review Agent的详细内容可参看

The Basics About Report Review Agent (FNDFS) on 11i (Doc ID 111383.1)》。

2.4Admin Server

admin server是指⽤来维护数据库和数据模型的那个节点。

1.使⽤adpatch⼯具应⽤数据库层操作的补丁(d-driver)。(貌似这句话说的有问题,以我现在的理解,adpatch只是针对应⽤的各个模块的,

opatch才是针对三个oracle home的)

2.使⽤adadmin⼯具维护应⽤数据。


本文发布于:2023-11-28,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何打开jsp文件

发布评论

评论列表(有0条评论)
    福州电脑网_福州电脑维修_福州电脑之家_福州iThome

    福州电脑网_福州电脑维修_福州电脑之家_福州iThome

    福州电脑维修网(fzithome.com)专业的电脑维修,笔记本维修,上门维修各种电脑,笔记本,平板等,快速上门.电脑知识频道内容覆盖:计算机资讯,电脑基础应用知识,各种电脑故障维修学习,电脑外设产品维修维护,病毒,软件,硬件,常识.