송 종 혁Tech Sales ConsultantOracle Corporation
What’s New in Oracle9iAS Forms?Why upgrade Oracle Forms to the WEB?
Agenda
Oracle9i Forms 소개Web 환경의 Oracle9i Forms 구조Oracle9i Forms 신기능Oracle9i Forms로업그레이드What’s NEW in Oracle Forms 10g?
Agenda
Oracle9Oracle9ii Forms Forms 소개소개Web 환경의 Oracle9i Forms 구조Oracle9i Forms 신기능Oracle9i Forms로업그레이드What’s NEW in Oracle Forms 10g?
Why Oracle Forms?
500,000 – 1,000,000명의 Forms 개발자많은고객레퍼런스
– Boeing, Metro, Lockheed Martin, HP, Ericsson, Eurostar, …
Oracle E-Business Suite 11i의기반최근 2주간 3000건이넘는다운로드수큰개발자커뮤니티
– 2000 건/월 OTN 포럼등록
HistoryCharacter Mode (1980’s)Developer1.3.1 – SQL*Forms 3.0
Developer 2000 (1.6.1)Forms4.5 Reports2.5 Graphics2.5
Client / ServerWeb (since 1998)
Developer 2.1Forms5.0 Reports3.0 Graphics3.0
Developer 6.0Forms6.0 Reports6.0 Graphics6.0
Oracle Forms 6iOracle Reports 6i
Oracle9i FormsOracle9i Reports Web Only (2002)
Oracle9Oracle9ii Forms ServicesForms ServicesOracle9Oracle9ii Reports ServicesReports Services
Oracle9Oracle9ii Forms DeveloperForms DeveloperOracle9Oracle9ii Reports DeveloperReports Developer
Oracle9i Forms / Oracle9i Reports
Oracle9i Forms Developer 와Forms Services
Oracle9iAS Forms Services– Forms 애플리케이션을웹에서구동하기위한웹런타임환경
– 풍부하고, 확장가능한 Java UI– Out-of-the-box 확장성과성능– Any network– Java, XML, Web Services에접근하기위한개방된구조
Oracle9i Forms Developer– 빠르게애플리케이션을만들수있는개발환경
– 선언적인애플리케이션개발
– 다언어개발환경
Agenda
Oracle9i Forms 소개Web Web 환경의환경의 Oracle9Oracle9ii Forms Forms 구조구조
– Forms Connection 개요– Forms Service 혜택– 티어별역할
– Forms Listener Servlet– 애플리케이션서버와통합
Oracle9i Forms 신기능Oracle9i Forms로업그레이드What’s NEW in Oracle Forms 10g?
기존구조 (1) –중앙집중처리방식Forms Connection 개요
Forms 3.x 사용단일컴퓨터에서모든애플리케이션처리
– 데이타, 프리젠테이션, 비즈니스로직– 전적으로하나의장비에의지
코드의재사용, 유지, 변경의어려움제한된확장성, 가용성
기존구조 (2) –클라이언트/서버방식Forms Connection 개요
internet
Firewall/proxy
SQL/Data
Forms 4.x, 5.x, 6.x 사용PC 클라이언트, 데이타베이스서버“Fat”클라이언트
– GUI 프리젠테이션, 비즈니스로직, 데이타관련코드,트랜잭션처리코드의변경, 버전관리, 프로그램재분배와유지관리의어려움
Three Tier 구조Forms Connection 개요
Client Tier Middle Tier Database Tier
Three Tier 구조
Oracle9iAS HTTP ServerServlet Engine (OC4J)Forms ServicesForms Runtime Engine
Middle Tier
비즈니스로직실행
Database TablesStored PL/SQL proceduresStored Java ProceduresStored Forms Program Units
Database Tier
데이타저장
JVM을탑재한브라우저
Client Tier
UI 렌더링
Forms Connection 개요
Forms Services
1 단계: 시작 HTML 가져오기
URLURL입력입력
http://hostname:port/forms90/f90servlet?config=myapphttp://hostname:port/forms90/f90servlet?config=myapp
HTML시작페이지생성
패이지패이지 반환반환
HTML HTML 페이지페이지 다운로드다운로드
Forms Connection 개요
2 단계: 클라이언트다운로드
최근최근 구동한구동한 cachecache가가없으면없으면 애플릿애플릿 다운로드다운로드
다운로드다운로드Forms Services
<APPLET>CODE="oracle.forms.engine.Main"CODEBASE="/forms90/java"ARCHIVE="f90all.jar"…</APPLET>
Forms Connection 개요
자바자바 클라이언트클라이언트
3 단계: 런타임구동
Listener Servlet
RuntimeEngine
엔진엔진 할당할당
Java ClientJava Client는는서블릿을서블릿을 이용해서이용해서런타임런타임 엔진과엔진과 통신통신
Forms Services
자바자바 클라이언트클라이언트
Forms Connection 개요
자바자바 클라이언트클라이언트
4 단계: 로드, 실행
FMX로드로드
연결연결
RuntimeEngine
Forms ServicesListener Servlet
Forms Connection 개요
Metadata만다운로드Forms Service 혜택
Java로만구축된애플리케이션시나리오 #1:
전체애플리케이션로직다운로드
Oracle Oracle 99iiApplicationApplicationServerServer
Oracle9iAS Forms Services로구축된애플리케이션시나리오 #2:
Metadata만다운로드
Oracle Oracle 99iiOracle9Oracle9iiAS AS FormsFormsServServicesices
하나의애플릿으로다양한크기의애플릿랜더
Forms Service 혜택
SmallApplication
LargeApplication
Uses Applet
Uses SameApplet
최적화된성능Forms Service 혜택
자바자바 클라이언트와클라이언트와애플리케이션애플리케이션 서버간에서버간에
최적화된최적화된 통신통신
Message Diff’ingString BufferingEvent Bundling. . .
HighlyOptimized
Client Forms Services Oracle 9i
커뮤니케이션개요
Runtime
Oracle HTTP Server
Forms Servlet
Browser
FMXPL/SQL
Data Cache
Program Code
UI
PL/SQL Proc
티어별역할
SQL*Net
커뮤니케이션개요
Runtime
Oracle HTTP Server
Forms Servlet
Browser
HTTP
PL/SQL
Data Cache
Program Code
UIUI
UIUI
UIUI
UIForms Java Client
PL/SQL Proc
Java VMIE native or Jinitiator
or Java Plugin
티어별역할
SQL*Net
커뮤니케이션개요
Runtime
Oracle HTTP Server
Forms Servlet
Browser
HTTP
PL/SQL
Data Cache
Program Code
UIForms Java Client
PL/SQL Proc
Java VMIE native or Jinitiator
or Java Plugin
티어별역할
SQL*Net
Client tier
Runtime
Oracle HTTP Server
Forms Servlet
Browser
PL/SQL
Data Cache
Program Code
Forms Java Client
PL/SQL Proc
Java VMIE native or Jinitiator
or Java Plugin
티어별역할
Client tier: Forms UI 렌더링티어별역할
UI Java component 는오직렌더링엔진뿐
– 스크린상의페인트오브젝트
– 서버와통신
– 애플리케이션지식을모름
하나의애플릿이많은수의애플리케이션구동
– 더욱낮아진클라이언트메모리사용
– 더욱작아진다운로드크기
– 영구적으로자바클래스들캐시
– Java 1.3 지원매우최적화된네트워크사용
– 오직메타데이타만교환
Client tier: Forms UI 확장티어별역할
Pluggable Java Components (PJC)– 기존의오라클아이템인터페이스를자신의컴포넌트로교체
– Forms UI를회사의 look and feel에적용– 컴포넌트에기능추가 (예: 버튼에 Rollover 효과 )
Java Beans– 클라이언트에기능성을더함
– 클라이언트측의통합에사용
– 현존하는자바빈스재사용
– OTN에많은예제
Forms UI 확장: 예티어별역할
JavaBeans
Pluggable JavaComponent
(PJC)
Middle tier
Runtime
Oracle HTTP Server
Forms Servlet
Browser
PL/SQL
Data Cache
Program Code
Forms Java Client
Java VMIE native or Jinitiator
or Java PluginPL/SQL Proc
티어별역할
Middle tier: Business Logic 실행티어별역할
Middle Tier에서의 Forms Runtime– Application Code 실행– FMX 파일구동– PL/SQL 라이브러리에있는코드실행클라이언트에게 UI를랜더링하기위해메타정보보냄
Middle Tier상의서버측자바실행– Forms에서자바호출
Database tier
PL/SQL Proc
Browser
Forms Java Client
Java VMIE native or Jinitiator
or Java Plugin
Runtime
Oracle HTTP Server
Forms Servlet
PL/SQL
Data Cache
Program Code
티어별역할
SQL*Net
Database tier: 데이타접근티어별역할
SQL*Net 을이용하여데이타베이스에연결접근하는대상:
– 데이타베이스테이블
– Stored PL/SQL Procedures– Java Stored Procedures
Oracle9iAS Forms ServicesForms Listener Servlet
Ora
cle
HTT
P Se
rver
powe
red
by A
pach
e
Oracle9iAS V2
FormsRuntime engine
Forms Servlet
Forms Listener Servlet
Servlet engine
formsweb.cfg
default.env
HTML templatefiles
Forms JavaClient
Initial Application startup Applet/Server communication channel
Forms ServletForms Listener Servlet
HTML파일을시작시켜서동적으로 Forms 애플릿렌더링
– formsweb.cfg 구성파일로부터애플리케이션구성읽어들임
– HTML 템플릿파일과애플리케이션구성을병합자동으로브라우저의언어와클라이언트의타임존감지Single Sign-On 가능하게해줌(별도의애플리케이션수정불필요)Forms 애플리케이션세션생성애플리케이션을시작하는데에만사용
Forms Listener ServletForms Listener Servlet
서버와통신하기위해웹서버포트를사용하는표준서블릿
프락시와방화벽을통한인터넷배치를가능하게함
자바클라이언트가서버와통신하도록분배
사용자의환경에맞게환경설정
런타임프로세스구동
Single Sign-On 통합애플리케이션서버와통합
손쉬운 Single Sign-On – 현존하는 Forms 애플리케이션에대한수정이필요없음
Forms의루트 URL forms90/f90servlet이 mod_osso에의해보호
인증을위해 Oracle Single Sign-On Server 사용– 모든애플리케이션을하나의사용자이름과암호로사용
암호저장장소로 OID 사용
Oracle Enterprise Manager (EM)를통한완벽한관리
애플리케이션서버와통합
Forms Listener Servlet을포함한 EM지원Forms Process 모니터링
– CPU– Memory
EM 콘솔에서런타임진단가능
Oracle Enterprise Manager애플리케이션서버와통합
OC4J 통합애플리케이션서버와통합
Forms는 mod_oc4j를통해 OC4J를바인딩한다. OC4J는 Forms Servlet을실행하기위해서만실행됨OC4J의로드를줄이기위해정적인파일은Apache(OHS)에의해처리됨
– Jinitiator– f90all.jar, f90all.cab, f90all_jinit– Custom application archive file– Icon과 Image들
OC4J 통합이 out-of-the-box 기능으로지원
OC4J 통합애플리케이션서버와통합
JNDIJMS
JDBCJTA
JavaMailJAF
OC4J WebContainer
EJBContainer
mod
_oc4
j
Ora
cle
HTT
P Se
rver
powe
red
by A
pach
e
apj13HTTP
OC4J Server Process
Clie
nt .j
ar
Oracle9i Application Server
Forms Runtime Engine
Tcp/ip socket
Forms Servlet
Forms Listener Servlet
FormsClient
Agenda
Oracle9i Forms 소개Web 환경의 Oracle9i Forms 구조Oracle9Oracle9ii Forms Forms 신기능신기능
– 플랫폼통합
– Java와 XML의개방성– 개발생산성
Oracle9i Forms로업그레이드What’s NEW in Oracle Forms 10g?
Oracle9i Forms: 3 Goals
통합통합 개방성개방성
생산성생산성
플랫폼통합
애플리케이션서버통합– Forms Listener Servlet과 OC4J를이용한인터넷배치– Oracle Single Sign-on 서버를이용한 Single Sign-on– Oracle Internet Directory를이용한 LDAP지원– Enterprise Manager를이용한쉬운관리데이타베이스통합
– Character semantic 지원환경통합
– Timezone지원– 자동언어감지
Java와 XML의개방성
미들티어에서의개방성– 자바임포터사용해서자바클래스호출
클라이언트에서의개방성– 클라이언트에서 Java Beans통합– Pluggable Java Component(PJC)를이용한 Forms UI 확장– JDK 1.3 지원개발단계에서의개방성
– Java API를이용한 Forms 애플리케이션일괄변동수행– XML converter를사용해서 Forms 애플리케이션소스조작
개발생산성
애플리케이션테스팅과디버깅의생산성– 원격디버거를이용한쉬운 Forms 애플리케이션디버깅– 개발시브라우저에서개발폼구동
– 런타임향상
애플리케이션번역의생산성– 새로운번역툴: TranslationHub버전관리에서의생산성
– 버전컨트롤과효과적인분석을위한 Oracle SCM과자체통합
Agenda
Oracle9i Forms 소개Web 환경의 Oracle9i Forms 구조Oracle9i Forms 신기능Oracle9Oracle9ii FormsForms로로 업그레이드업그레이드
– 왜 Forms를웹으로구축해야하나?– Upgrade 절차– 웹을위한 Forms 구축– Forms Services 구성하기
What’s NEW in Oracle Forms 10g?
Web only
Forms 9i는Web-Only 릴리즈Forms 6i –클라이언트/서버환경과캐릭터모드를지원하는마지막버전
– 에러수정지원: 2004년 12월 31일까지– 연장지원: 2007년 12월 31일까지잘사용되지않는기능들제거됨
– http://otn.oracle.co.kr/products/forms– “Oracle9i Forms사라진기능들”
6i 에서만업그레이드가가능
왜웹으로구축해야하나?
AccessibilityAccessibility
Ease of Ease of MaintenanceMaintenance
Cost Cost EffectiveEffective
Single Single Sign OnSign On
Openness Openness with Javawith Java
Call Web Call Web ServicesServicesRun onRun on
InternetInternet
ReducedReducedNetworkingNetworking
구조Forms Listener Servlet구조는 Forms 애플리케이션이어떤네트워크상에서도구동되게함
Client Tier Application Tier Database Tier
HTTPHTTPServerServer
OC4JOC4JServletServlet EngineEngine
FormsFormsRuntimeRuntime
11
FormsFormsServletServlet
MOD_OC4JMOD_OC4J
FormsFormsListenerListenerServletServlet FormsForms
RuntimeRuntime22
Clie
nt s
ide
Fire
wal
lC
lient
sid
e Fi
rew
all
Serv
er s
ide
Fire
wal
lSe
rver
sid
e Fi
rew
all
Inte
rnet
Client 1
Client 2
내가해야할일?
Forms 6i에서만마이그레이션지원사라진기능제거 (9i)
– Obsolescence whitepaper– Migration Assistant웹에서지원되지않는기능제거
– Built-in, OCX, mouse event, .ico파일등등Oracle9iAS에애플리케이션구축
– 쉬운구성
– Recompile사용자에게 URL전달
업그레이드절차
Forms Builder (Interactive)Forms Compiler (Batch)Forms JDAPI (Programmatic/Batch)Migration Assistant (Optional)
업그레이드절차
Migration Assistant (Optional)
– OTN에서제공되는유틸리티(공식제품은아님)– 사라진기능을사용하면경고를주는마법사기반의인터페이스
– 자동으로 애플리케이션수정(가능한부분에한해)
– FMB파일을 Oracle9i Forms 포맷으로저장
Available on
OTN!Available on
OTN!
웹을위한 Forms 구축
기능에대한 4가지카테고리– 예상과는다르게동작하는기능들
– 다른관련있는기능들
– 웹에서동작하지않는기능들
– 플랫폼특정한이슈
생각했던것과는다르게동작하는기능들..Forms 는미들티어에서구동됨..클라이언트상이아님!!
Built-Ins– HOST – ORA_FFI– READ_IMAGE_FILE– TEXT_IO– TOOL_RES
Java Importer (ORA_JAVA)User Exits
생각했던것과는다르게동작하는기능들..대안들:미들티어에서동작해도괜찮은지..JavaBeansPluggable Java Components (PJC)Java Security Model
– 직접만든인증서로인증
– 인증기관으로부터인증서구매
다른관련있는기능들..
SYNCHRONIZE빌트-인– 클라이언트와서버간의라운드트립
– 과다한사용은불필요한네트워크트래픽발생
탭캔버스
타이머– Forms 클라이언트가타이머유지– 각각의발생되는타이머는네트워크라운드트립을발생시킴
– 예
1 timer/second x 500 동시사용자500 라운드트립/second
웹에서동작하지않는기능들
대부분의마우스이벤트는많은트래픽을발생시킬수있고무시됨
웹에서의아이콘은 GIF 나 JPG 포맷– ICO 포맷은빌더에서만현재까지는지원
VBX ControlsActiveX (OCX) Controls
– JavaBeans 가같은기능을할수있음OLE Container
– Forms에스프레드시트적용등등– 미들티어의외부 OLE 서버는동작가능
Sound ItemImage Control PalettesGET_FILE_NAME Built-in
플랫폼특정한기능들
HOST빌트-인– Unix와Windows에서의명령이서로틀리다.
beginhost(’dir > dirlist.txt’);
end;
대/소문자구별– Attached libraries, object groups, etc폰트
– 자바폰트와매핑
외부 OLE 서버– 프로그램적으로 OLE 상호작용지원 (Windows only)
Forms Service 구성하기
Oracle Universal Installer가설치시자동으로기본구성실행
– Oracle9iAS 자동구성
설치후, Forms만구성– formsweb.cfg– default.env– Registry.dat
구성후, 바로실행가능!!
Forms Service 구성하기
formsweb.cfgForms 애플리케이션에대한런타임파라미터지정
클라이언트/서버환경에서 command line option과비슷모든파라미터는 OTN의 Oracle9iAS Forms Services Deployment Guide 참조(http://otn.oracle.com/products/forms/pdf/B10170_01.pdf)
formsweb.cfg File…userid=form=text.fmxbackground=width=640height=480
[order]userid=order/order@orclform=ordersbackground=order.jpg
formsweb.cfg런타임파라미터
기본섹션에모든설정지정
애플리케이션섹션은기본적인설정을오버라이드
많은애플리케이션환경을가질수있다.
Forms Service 구성하기
Forms Service 구성하기
default.env런타임환경변수들지정
각각의애플리케이션이서로다른환경변수를가질수있다
formsweb.cfg File…userid=form=text.fmxbackground=width=640height=480envFile=default.env
[order]userid=order/order@orclform=ordersbackground=order.jpgenvFile=orders.env
orders.env File…ORACLE_HOME=C:\Oracle\Forms9iFORMS90_PATH=D:\Orders…
Forms Service 구성하기
Registry.daticon 경로지정클라이언트/서버환경에서 UI_ICON 환경변수와비슷
폰트매핑
Registry.dat File…default.icons.iconpath=D:\Word\Iconsdefault.icons.iconextension=gif…
Agenda
Oracle9i Forms 소개Web 환경의 Oracle9i Forms 구조Oracle9i Forms 신기능Oracle9i Forms로업그레이드WhatWhat’’s NEW in Oracle Forms s NEW in Oracle Forms 1010gg??
향후 Oracle Forms의방향
통합– 오라클스택안/밖과의통합상호작용
– 다른애플리케이션과의상호작용단순화
개발생산성– 개발자의개발생산성향상
10g의새로운기능
Forms와 Reports 단독설치Java 1.4 지원Forms Enterprise Manager 향상런타임 pre-startURL 보안Single Sign-On 향상Forms Developer에서이미지아이콘지원
새로운설치옵션
Forms와 Reports 단독설치– HTTP Server와 J2EE 엔진포함– Infrastructure는포함하지않음
OracleAS와분리된 CD로제공
Java 1.4 지원
클라이언트혹은서버상에서 Oracle9i Forms 는 Java SDK 1.4 지원J2SE 1.4의새로운기능과연동Sun Java Plugin 지원
런타임 Pre-Start
엔터프라이즈애플리케이션의주요한기능
– 미리정의된애플리케이션에대해미리시작되는 Forms 런타임엔진
– Oracle9iAS가시작될때미리시작되는Forms 런타임엔진
formsweb.cfg파일의새로운파라미터– prestartRuntimes = [false | true]– prestartInit = 처음시작되는런타임엔진수
– prestartMin = 미리시작될런타임엔진의최소수
향후의기능
JavaScript API성능튜닝유틸리티
BI Beans Graph 통합JDeveloper를이용한 PJC 개발지원WebServices Wizard …
Summary
광범위하게배치된애플리케이션을위한Forms 9i– Listener Servlet을이용한인터넷배치– LDAP과 Single Sign on 지원– Timezone지원– Character Semantic을이용한다중 Character Set 지원통합솔루션을위한 Forms 9i
– Java– Oracle9iAS
Forms 9i –웹배치애플리케이션구축을위한생산적인 iRAD툴