Upload
dothuy
View
230
Download
5
Embed Size (px)
Citation preview
1
COBOL COBOL によるによるによるによるによるによるによるによるWebWebシステムシステムシステムシステムシステムシステムシステムシステム開発手法開発手法開発手法開発手法開発手法開発手法開発手法開発手法
日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社日本オラクル株式会社マーケティング統括本部マーケティング統括本部マーケティング統括本部マーケティング統括本部テクノロジーセンターテクノロジーセンターテクノロジーセンターテクノロジーセンター
OASソリューショングループソリューショングループソリューショングループソリューショングループ
2
Agenda
COBOLカートリッジ登場の背景カートリッジ登場の背景カートリッジ登場の背景カートリッジ登場の背景
COBOLカートリッジ概要カートリッジ概要カートリッジ概要カートリッジ概要
業務アプリケーションの業務アプリケーションの業務アプリケーションの業務アプリケーションのWeb化化化化
Oracle Application Server導入のメリット導入のメリット導入のメリット導入のメリット
アーキテクチャ– COBOL Director
– COBOL WRBAPI
サンプル
まとめ
3
今今今今 情報システムに求められているもの情報システムに求められているもの情報システムに求められているもの情報システムに求められているもの
迅速なシステム開発(スピードが命)
多数のユーザを桁違いの低コストでサポート
管理コストの大幅な削減
安定性・堅牢性
低リスク
インターネット技術への対応は?
インターネット技術の発展により、従来あった、時間的、空間的な制約から解放され、非常に柔軟なシステムを構築することが可能になっています。しかしその反面、『メガコンペティション』と呼ばれる世界的な競争により、情報システムに求められる要件も大きく変わってきています。
•まず第1にスピード。システムを作り上げ、早急にそのサービスを提供できるかどうかが企業の競争力を大きく左右するようになりました。どのようにして早急にシステムを作り上げるかを考える必要があります。
•第2に、従来のような個人や部門レベル、つまり数人から数十人をサポートできるシステムではなく、広く全社的、企業間、コンシューマをサポートする必要に迫られています。そこでは2桁も、3桁も大きいユーザをサポートする必要があります。しかもそれを従来では考えられないような圧倒的に低いコストで実現しなければ、この『メガコンペティション』を勝ち抜けません。
•管理コストを削減することは全体的なコスト(TCO)を削減するにあたっては大きな要素です。それには従来のような多数の部門へ小さなサーバをばらまくといったやり方を根本的に変える必要があります。
•しかもそれらを満足させた上で、システムは安定したものでなければならないという要求は今までと同様求められています。
•また開発にあたっては低リスクな手段をとって確実にシステムを完成させなければなりません。
•更には、インターネットに代表されるような日々進化している技術にどう対応するかも根本的なニーズです。
4
開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ
膨大な既存資産を生かせないか?膨大な既存資産を生かせないか?膨大な既存資産を生かせないか?膨大な既存資産を生かせないか?
– システム、ライブラリ、人的資産システム、ライブラリ、人的資産システム、ライブラリ、人的資産システム、ライブラリ、人的資産
– ノウハウノウハウノウハウノウハウ
– ビジネスロジックビジネスロジックビジネスロジックビジネスロジック
どうやってどうやってどうやってどうやってInternet Computingへ対応するのかへ対応するのかへ対応するのかへ対応するのか
– すべて一から勉強しなおし?すべて一から勉強しなおし?すべて一から勉強しなおし?すべて一から勉強しなおし?
– まだノウハウがないよ!まだノウハウがないよ!まだノウハウがないよ!まだノウハウがないよ!
– 資産は捨てなければならないの?資産は捨てなければならないの?資産は捨てなければならないの?資産は捨てなければならないの?
– 今すぐ対応だって?今すぐ対応だって?今すぐ対応だって?今すぐ対応だって?
前ページのような情報システムに求められる要件を満たすためにシステム開発者はさまざまな悩みを抱えています。
企業には既に多くのシステムがあり、資産(システム、ライブラリだけでなく人的なものも含む)を多く抱えています。また開発のノウハウもこれまでのプロジェクトで蓄積され、ビジネスロジックを記述した既存のシステムは、それ自体が企業の資産です。
インターネット技術を基にしたコンピューティングスタイルへ対応するために、さまざまな新技術を新たに一から勉強し直す必要に迫られています。
これらの新技術を身に付けるためにはそれなりの時間がかかるだけでなく、これまで蓄積されたシステム開発で得たレベルのノウハウへ達するには更に時間がかかります。そもそも企業には前述したような膨大な資産があるのになぜこれらを有効に使うことができないのでしょうか?資産やノウハウを必要なところに必要な形で有効に使って今すぐ対応する手段はないのでしょうか?
5
COBOLの再評価の再評価の再評価の再評価
既存資産・ノウハウの有効活用既存資産・ノウハウの有効活用既存資産・ノウハウの有効活用既存資産・ノウハウの有効活用
言語仕様の国際標準化言語仕様の国際標準化言語仕様の国際標準化言語仕様の国際標準化
プラットフォーム互換性プラットフォーム互換性プラットフォーム互換性プラットフォーム互換性
ビジネスプロセス記述のしやすさビジネスプロセス記述のしやすさビジネスプロセス記述のしやすさビジネスプロセス記述のしやすさ
保守性保守性保守性保守性
優れた機能優れた機能優れた機能優れた機能
– 金額計算、帳票印刷金額計算、帳票印刷金額計算、帳票印刷金額計算、帳票印刷 etc.
Java ? C ?, C++ ?,COBOL ?VB ?etc
ここで話題を少し変え、言語に注目してみます。JavaやCといったさまざまな言語の中で、COBOLのもつ以下のような特長が最近見直され、COBOLに対する評価が再び高まってきています。
COBOLを使用することにより、これまで蓄積された膨大な資産、人的リソース、ノウハウを有効に活用でき、人的リソースの再教育の必要がありません。
COBOLはANSIやX/Openに代表されるような機関により国際標準が定められており、さまざまな開発・実行環境間で互換性があるだけでなく、さまざまなプラットフォームでも高い互換性が保たれています。
COBOLはC、C++、Javaといった言語と違い、通常の英文に近い文法を持っており、ビジネスプロセスを記述しやすいという特性を持っています。
そのため他人が書いたソースも読みやすく、他の言語に比べ、プログラム全体のロジックを理解しやすいという特長を持っています。
さらに、他言語にはあまり見られないCOBOL自体の持つ機能、たとえば優れた金額計算機能や、帳票印刷機能なども評価されています。
6
COBOLマーケットの現状マーケットの現状マーケットの現状マーケットの現状
富士通
Mic
rofo
cus
日立製作所
NEC
96(実績)97(実績)
0
2000
4000
6000
8000
10000
12000
14000
98(販売目標)
COBOLコンパイラの販売実績(本)
0
FY97 FY98 FY99
Pro*Cobolの販売実績
出展: 日経ウォッチャー 98/8/21号
実際COBOLマーケットはここ数年急激な勢いで拡大しています。
左の図はここ数年のオープンシステム環境におけるCOBOLコンパイラの販売実績です(98年度は各社の販売目標)。これからわかるように各社のCOBOLコンパイラの販売は、年率20%以上の高い伸びを示しています。
次にOracleデータベース環境におけるCOBOL活用の状況を見てみましょう。
右の図はPro*COBOL(これはCOBOLを使ってOracleデータベースににアクセスするプログラム用のプリコンパイラです)の販売実績の推移を示しています。都合上細かい数字までは申し上げることは出来ませんが、この図からわかるようにOracleデータベース環境においても、年率2ケタ以上の高い伸びを続けています。
7
COBOLマーケットの現状マーケットの現状マーケットの現状マーケットの現状(つづきつづきつづきつづき)
NT時代の開発ツール時代の開発ツール時代の開発ツール時代の開発ツールCOBOLの可能性を探るの可能性を探るの可能性を探るの可能性を探る(アスキーNTアスキーNTアスキーNTアスキーNT 1998/9月号月号月号月号)
COBOLが好調なのは「が好調なのは「が好調なのは「が好調なのは「2000年特需」ではない年特需」ではない年特需」ではない年特需」ではない(DDJ 1998/8月号月号月号月号)
表舞台に帰ってきた表舞台に帰ってきた表舞台に帰ってきた表舞台に帰ってきたCOBOL(日経オープンシステム日経オープンシステム日経オープンシステム日経オープンシステム1999/5月号月号月号月号)
COBOLの再評価の再評価の再評価の再評価
適材適所な使用適材適所な使用適材適所な使用適材適所な使用(COBOL、、、、Java、、、、C、、、、C++、、、、VB etc.)
また、雑誌などでもCOBOLが取り上げられ、そこでCOBOLに対する再評価がなされています。
最近では日経オープンシステム5月号においてオープンシステムCOBOLの売り上げの高い伸びの理由が分析されています。
このようにCOBOLはここ数年再び注目され、オープン環境でも高い評価を受けています。
もちろん、COBOLが万能であるというつもりはありません。Java、C、C++等の言語も含めそれらの優れた点を理解し、それらを場面に合わせて適切に使い分けてシステムを構築することが肝要です。
8
Solutionは?は?は?は?
既存資産・ノウハウを有効に利用しつつ、既存資産・ノウハウを有効に利用しつつ、Internet ComputingInternet Computingに容易に対応するに容易に対応する
Oracle Application Server4.0Oracle Application Server4.0
Oracle COBOLOracle COBOLカートリッジカートリッジカートリッジカートリッジカートリッジカートリッジカートリッジカートリッジ
ITITに今に今に今に今に今に今に今に今 求められる求められる求められる求められる求められる求められる求められる求められるニーズニーズニーズニーズニーズニーズニーズニーズ 開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ開発者の悩み・ニーズ COBOLCOBOLの見直しの見直しの見直しの見直しの見直しの見直しの見直しの見直し
以上のように、
「情報システムに今求められているニーズ」、それを解決するために「開発者が直面している悩み」、一方でCOBOL自身の見直し、このような背景をベースに、今求められているコンピューティングスタイルInternet Computingに容易に対応するためのソリューションとは何でしょうか?
それは日本オラクルが提供する
「「「「Oracle Application Server 4.0対応対応対応対応 Oracle COBOLカートカートカートカートリッジ」リッジ」リッジ」リッジ」
です!
ではこれからOracle COBOLカートリッジの概要、開発方法などについてみていくことにしましょう。
9
Oracle COBOL カートリッジとはカートリッジとはカートリッジとはカートリッジとは
Oracle Application Server COBOL実行環境
OracleApplicationServer
既存システム
既存COBOLアプリケーション
COBOLカートリッジカートリッジカートリッジカートリッジ
COBOLアプリケーションアプリケーションアプリケーションアプリケーション
作成/移植
COBOL開発環境
連携
既存既存既存既存既存既存既存既存COBOLCOBOL資産・ノウハウを有効に活用して、インターネット資産・ノウハウを有効に活用して、インターネット資産・ノウハウを有効に活用して、インターネット資産・ノウハウを有効に活用して、インターネット資産・ノウハウを有効に活用して、インターネット資産・ノウハウを有効に活用して、インターネット資産・ノウハウを有効に活用して、インターネット資産・ノウハウを有効に活用して、インターネット////////
イントラネットを活用したシステムの容易な構築が可能イントラネットを活用したシステムの容易な構築が可能イントラネットを活用したシステムの容易な構築が可能イントラネットを活用したシステムの容易な構築が可能イントラネットを活用したシステムの容易な構築が可能イントラネットを活用したシステムの容易な構築が可能イントラネットを活用したシステムの容易な構築が可能イントラネットを活用したシステムの容易な構築が可能
インターネット
イントラネット
OracleApplicationServer COBOL カートリッジは、COBOLによるWebアプリケーションを構築するためのプラットフォームを提供します。
COBOL カートリッジは、OAS上で動作し、OASの提供するLoadBalancing、FailureRecovery機能によって大規模で信頼性の高いシステムの構築を可能にします。
既存のCOBOLアプリケーションやデータベースを利用した、COBOLによるWebアプリケーションが構築可能となります。
10
業務アプリケーションの業務アプリケーションの業務アプリケーションの業務アプリケーションのWeb化化化化
CO
BO
L
CO
BO
L
カートリッジ
カートリッジ
HTMLページ
HTTP
作成作成作成作成作成作成作成作成//移植移植移植移植移植移植移植移植
OracleApplicationServer
新規業務新規業務新規業務新規業務新規業務新規業務新規業務新規業務
アプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーション
連携新規Database
既存システム
既存COBOLアプリケーション
連携
既存Database
既存業務既存業務既存業務既存業務既存業務既存業務既存業務既存業務
アプリケーションへのアプリケーションへのアプリケーションへのアプリケーションへのアプリケーションへのアプリケーションへのアプリケーションへのアプリケーションへのラッパーラッパーラッパーラッパーラッパーラッパーラッパーラッパー
既存業務既存業務既存業務既存業務既存業務既存業務既存業務既存業務アプリケーションのアプリケーションのアプリケーションのアプリケーションのアプリケーションのアプリケーションのアプリケーションのアプリケーションの移植移植移植移植移植移植移植移植 移植
既存システム
既存COBOLアプリケーション
既存Database
入出力部分の変更
COBOL カートリッジのイントラネット業務として三つの適用形態が考えられます。
1、COBOLに詳しい技術者がいる、COBOLによる開発経験者がいる、および、有用なCOBOL ライブラリが作成されているなど、ホストやオフコンで培われた既存COBOLノウハウがある場合には、これを有効に活用してCOBOLによる新規Web業務アプリケーションの構築ができます。
2、既存基幹業務アプリケーションと連携する情報系業務アプリケーションの作成など、従来システムやC/Sシステム上の既存COBOL業務アプリケーションは残し、付加的に別業務をWeb業務アプリケーションとしてCOBOLで開発することが可能となります。
3、既存C/S方式業務アプリケーションをWeb化するなど、従来システムやC/Sシステム上の既存COBOL資産を有効に活用して、既存システムをWeb業務アプリケーションとして移植することが可能になります。これによりClientにはブラウザさえあれば動作するシステムが構築できます。 ただし、C/S形式の入出力部分については、ブラウザとの入出力の形式に変更が必要になります。
11
Oracle Application Server導入のメリット導入のメリット導入のメリット導入のメリット
Machine1OracleApplicationServer4.0OracleApplicationServer4.0
その他プロセス、デーモン
…………
……
……
……
業務アプリケーション
CO
BO
L
カートリッジ
PL/SQLカートリッジ
プロセス管理プロセス管理プロセス管理プロセス管理プロセス管理プロセス管理プロセス管理プロセス管理
業務アプリケーション
CO
BO
L
カートリッジ
業務アプリケーション
CO
BO
L
カートリッジ
耐久性耐久性耐久性耐久性耐久性耐久性耐久性耐久性
業務アプリケーション
CO
BO
L
カートリッジ
自動回復自動回復自動回復自動回復自動回復自動回復自動回復自動回復
管理機能管理機能管理機能管理機能管理機能管理機能管理機能管理機能
Machine2
OAS分散Node負荷分散負荷分散負荷分散負荷分散負荷分散負荷分散負荷分散負荷分散
Machine3
OAS分散Node
OASは開発者に何を提供するのか?
・OAS上でアプリケーションが稼動することにより、アプリケーションの問題によるマシンのダウンからマシンを保護します。また、FailureRecovery機能によってアプリケーションのダウンの自動回復を行います。
・OASの提供する管理機能によって、アプリケーションの起動、停止やプロセス数の制御に関するプログラミングの必要がありません。OASは、ブラウザからのアクセスがあると自動的にアプリケーションプロセスを起動、もしくは既に起動してあれば再利用して実行します。一度起動したプロセスは、何度も再利用されます。これによりプロセスの起動、停止のオーバーヘッドが軽減されCGIより良いパフォーマンスが得られます。
・OASの提供する分散機能によって、簡単に複数マシンへ負荷の分散が可能です。
12
COBOLカートリッジ競合比較カートリッジ競合比較カートリッジ競合比較カートリッジ競合比較
国内アプリケーションサーバベンダー COBOL/IIOP COBOL/WebNEC WebComputing Application Server ○ ×Fujitsu Interstage ○ ×Hitachi Hitachi Application Server ○ ×
アプリケーションサーバベンダー COBOL/IIOP COBOL/Web
ORACLE Oracle Application ServerORACLE Oracle Application Server △(計画中) ○IBM WebSphire × ×BEA WebLogic × ×Netscape Netscape Application Server × ×Inprise Application Server × ×SilverStream × ×
他社のアプリケーションサーバのCOBOL対応状況についてみてみましょう。
最近、このアプリケーションサーバと呼ばれる市場に対して各社とも力を入れており非常にホットな状況になっています。
COBOLへの対応については、国内ベンダーにおいては主にIIOPによるCORBAベースのソリューションとなっております。
一方、アプリケーションサーバ市場を牽引している海外メーカーの製品の場合、COBOLに直接対応しているものは今のところ、Oracle Application Serverのみです。
オラクルは先ほど述べたような、情報システムに今求められているニーズを真剣に捉えており、、既存の資産を有効に生かしてシステムを構築できるソリューションを適切な時期に適切な形で提供していきたいと考えております。
Oracle COBOLカートリッジの場合は、システム構築が容易なHTMLベースのソリューションを提供しているのが特長です。もちろんIIOPによるCORBA環境に対応することも現在計画中です。
アプリケーションサーバと呼ばれる製品群の中でCOBOLにきちんと対応しているのはOracle Application Serverのみということになります。
13
COBOLカートリッジ対応環境カートリッジ対応環境カートリッジ対応環境カートリッジ対応環境(予定予定予定予定)
対応予定プラットフォーム NT/Solaris
対応予定OAS 4.0.8.1
対応予定コンパイラ– NT富士通Power COBOL 97 / 日立COBOL85マイクロフォーカスCOBOL / NEC COBOL85
– SolarisSun 日本語COBOL / 日立COBOL85
14
アーキテクチャアーキテクチャアーキテクチャアーキテクチャ
WR
BX
WR
B A
PIs
COBOLDirector
COBOLWRB API
COBOLアプリケーション(.DLL,.so)
COBOL カートリッジ
作成作成作成作成作成作成作成作成
EntryPoint
CallBacks
Pro*COBOL等で連携
既存COBOLアプリケーション
連携
帳票帳票出力
実行
Call
HTML
COBOLカートリッジは開発者に何を提供するのか?
・COBOLによってWeb業務アプリケーションが作成できます。
開発者は、実行したいプログラムをDLL(Solarisではshared library)として作成するだけです。
OAS ManagerのCOBOL ParameterにDLL名、入り口名(EntryPoint)を指定するだけで実行することが可能となります。
・ブラウザからの入力を取得したり、ダイナミックなHTMLを生成するCOBOLWRBAPIルーチンが提供されるので、COBOLでブラウザへの表示やブラウザからの入力を簡単にプログラミングできます。
COBOLカートリッジの構成
COBOL カートリッジは、COBOL Directorと呼ばれる部分とCOBOL WRBAPIルーチンと呼ばれる部分から構成され、OAS上にインストールするだけで容易に使用することが可能となります。
COBOL Directorは、Oracle Application ServerのC カートリッジで作成されています。COBOL Directorは、開発者の作成したCOBOLアプリケーションを実行します。
COBOL WRB APIはC カートリッジで提供されているWRB APIsをラッピングし、COBOLプログラムから簡単に利用できるようにするライブラリです。
15
アーキテクチャアーキテクチャアーキテクチャアーキテクチャ- COBOL Director-
WR
BX
COBOLDirector
Entry Point
CallBacks
WRB APIsCOBOL WRBAPI
起動起動起動起動起動起動起動起動
認証認証認証認証認証認証認証認証
ExecExec
終了終了終了終了終了終了終了終了
initInstance User_InitPGM
初期化処理初期化処理初期化処理初期化処理初期化処理初期化処理初期化処理初期化処理・Database connect・作業用メモリ確保
COBOLアプリケーションアプリケーションアプリケーションアプリケーション
作成
shutdownInstance User_TermPGM 終了処理終了処理終了処理終了処理終了処理終了処理終了処理終了処理
・Database disconnect・作業用メモリ開放
認証処理認証処理認証処理認証処理認証処理認証処理認証処理認証処理
・認証ロジックauthorize User_AuthorizePGM
exec User_ExecPGM 業務処理業務処理業務処理業務処理業務処理業務処理業務処理業務処理
・ビジネスロジック
COBOL Directorは、開発者の作成したCOBOLアプリケーションを実行します。アプリケーションプロセスの起動、終了、業務アプリケーション実行前の認証、業務アプリケーション本体の実行の4つのタイミングで、各COBOLプログラムを呼び出してくれます。開発者は、上記の4つのタイミングで実行したいプログラムをDLL(Solarisではshared library)として作成し、COBOLカートリッジに設定するだけです。
初期化処理、終了処理では、COBOLカートリッジプロセスの起動時、終了時に1回行えば良いような処理を行うように作成します。
認証処理はアクセス毎に呼ばれます。認証処理でtrueが返った場合のみ業務処理が実行されます。
業務処理は、URLで仮想パス+DLL名/入口名で指定されたものが実行されます。該当するものがなかった場合には、User_ExecPGMに指定されているものが実行されます。これにより、動的に実行するプログラムを選択することができます。
User_*PGMは、OAS ManagerのCOBOL ParametersにDLL名(solarisではshared library)と入口名で指定します。
※業務処理以外はすべてオプションで、省いてもかまいません。業務処理以外はCOBOL カートリッジ1つにつき1つ指定します。業務処理についてはURLの指定によってどのプログラムを実行するか変更できます。
16
アーキテクチャアーキテクチャアーキテクチャアーキテクチャ- COBOL WRBAPI-
COBOLCOBOLアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションCALL “COBW3_PUT_HTML” USING COBW3.
WRB APIs(C言語)
COBOL WRB API(COBOL)
Call
対応するWRB APIをコール
WRB APIsについて
C カートリッジが提供するWRB APIsは、OASが提供するサービスにアクセスするためのAPI群です。基本APIとサービスAPIに分類できます。
・基本API:リクエストに関する情報の取得(HTTP・ヘッダーデータ、CGI環境変数、問い合わせ文字列など)、クライアントの認証、セッションの管理、設定ファイルの読み込みおよびクライアントへのデータの返信を行うことが出来ます。
・サービスAPI:Loggerサービス、Inter-Cartridge Exchange(ICX)サービスにアクセスできます。EnterpriseEditionでは、トランザクションサービス、コンテンツサービスなど追加サービスが含まれます。
COBOL WRBAPIについて
COBOL WRBAPIルーチンは、OASのC カートリッジが提供しているWRBAPIsをCOBOL言語から使いやすいようにラッピングしたCOBOLのライブラリです。
COBOL WRBAPIルーチンを使って、クライアントから受信したデータの中から必要な文字列を抽出したり、クライアントに1行または1ファイル単位でHTMLデータを送信することが可能となります。
ブラウザとのやり取りを行うCoreAPIの他、Session API, ICX API、LoggerAPI、Tx APIを提供します。
17
アーキテクチャアーキテクチャアーキテクチャアーキテクチャ- COBOL WRBAPI-
COBOL WRBAPICORE:ブラウザからの情報の入出力などの基本機能ブラウザからの情報の入出力などの基本機能ブラウザからの情報の入出力などの基本機能ブラウザからの情報の入出力などの基本機能
– ブラウザからの入力、ブラウザへの出力、テンプレートブラウザからの入力、ブラウザへの出力、テンプレートブラウザからの入力、ブラウザへの出力、テンプレートブラウザからの入力、ブラウザへの出力、テンプレートHTMLの変換などの変換などの変換などの変換など
SESSION:Webブラウザと特定のブラウザと特定のブラウザと特定のブラウザと特定のCOBOLアプリのセッションを管理アプリのセッションを管理アプリのセッションを管理アプリのセッションを管理
– セッション制御、タイムアウト制御、セッションコンテキスト制御セッション制御、タイムアウト制御、セッションコンテキスト制御セッション制御、タイムアウト制御、セッションコンテキスト制御セッション制御、タイムアウト制御、セッションコンテキスト制御
ICX:同一マシン及び他マシン上の他カートリッジとの接続を実現同一マシン及び他マシン上の他カートリッジとの接続を実現同一マシン及び他マシン上の他カートリッジとの接続を実現同一マシン及び他マシン上の他カートリッジとの接続を実現
– ICX接続環境制御、リクエスト内容・環境設定、レスポンスデータ処理な接続環境制御、リクエスト内容・環境設定、レスポンスデータ処理な接続環境制御、リクエスト内容・環境設定、レスポンスデータ処理な接続環境制御、リクエスト内容・環境設定、レスポンスデータ処理などどどど
LOGGER:ログ取得関数ログ取得関数ログ取得関数ログ取得関数
TX:トランザクション機能をサポートトランザクション機能をサポートトランザクション機能をサポートトランザクション機能をサポート
– トランザクション制御トランザクション制御トランザクション制御トランザクション制御
•CORE:リクエストに関する情報の取得(HTTP・ヘッダーデータ、CGI環境変数、問い合わせ文字列など)、クライアントの認証、クライアントへのデータの返信を行うことが出来ます。 これにより、ブラウザから送信されたデータを取得し、その値を判断したり、加工して、ブラウザへ動的なページを生成できます。
•SESSION:セッションの管理を行うことが出来ます。 このセッション機能を利用することにより、COBOLアプリケーションプロセスとブラウザを一対一に対応づけることが可能です。ショッピングカートなど、対話的な入力を行いながら、データを引き続いて持ちつづける必要のあるアプリケーションが簡単に構築できます。
•ICX:OAS上にある他のカートリッジをコールできます。 既にOAS上に構築されているアプリケーションをCOBOLアプリケーション内から、利用することが可能になります。
•LOGGER:ログを取ることが出来ます。 ログは、wrb.logもしくはDatabase、または、指定したファイルへ書き出すことが可能です。
•TX:トランザクション機能が利用できます。
•複数データベースへの更新を一つのトランザクションとして発行できます。
•ブラウザの複数ページにまたがるトランザクション処理ができます。例えば、旅行のチケット(往復の旅券-宿泊施設)の予約を行うアプリケーション等が構築できます。
18
サンプルサンプルサンプルサンプル
新規顧客登録
入力処理
SampleApplication
結果
ここでは、簡単なサンプルを紹介します。新規顧客情報を入力するようなアプリケーションをイメージしてください。
このサンプルでは、新規顧客の名前などを入力し、入力されたデータを確認のため表示するといった流れです。
実際の業務アプリケーションでは受け取ったデータを、そのまま表示したりしないで、データベースの検索や更新、または、データの計算等を行い、その結果を表示するなどといった処理を行うでしょう。
19
サンプルの技術的ポイントサンプルの技術的ポイントサンプルの技術的ポイントサンプルの技術的ポイント
COBOL アプリケーションへのアクセス
COBOL アプリケーションの作成(データ入力、取得)
– データ入力のページの作成
– 入力データの取得
COBOL アプリケーションの作成 (表示)
– HTMLの動的な生成
– 結果表示のページのテンプレートの作成
– テンプレートの文字列との置き換え
OASへ登録
20
WindowsNT
http://hostname:port/sample/cobol/PPTSAMPLE.DLL/PPTSAMPLE
Solaris
http://hostname:port/sample/cobol/pptsample.so/PPTSAMPLE
HP-UX
http://hostname:port/sample/cobol/pptsample.sl/PPTSAMPLE
COBOLアプリケーションへのアクセス
ホスト名 ポート番号 仮想パス 実行するCOBOLアプリケーション
入力
SampleApplication
ブラウザから作成したCOBOLアプリケーションを利用するには、上記のようなURLを指定します。仮想パスは、OAS Managerで任意に指定できますが、必ず末尾は“/COBOL”、または“/cobol”である必要があります。COBOLDirectorが“/cobol”以降をparseして、実行するCOBOLアプリケーションを選択しています。実行するCOBOLアプリケーションは、“DLL名/入り口名”で指定します。※DLL名はSolarisでは*.soと指定します。入口名はEntryPointとも呼ばれます。
21
COBOLアプリケーションの作成(データ入力、取得)
例えば、顧客名のデータの入力と取得
入力
<input type="text" name="CUSTOMER-NAME">
CUSTOMER-NAME=“冬月 孝造”
送信
処理
SampleApplication
COBOL WRB APIで取得(COBW3-GET-DATA)
例として、顧客名の入力とサンプルアプリケーション側での顧客名の取得をどのように行うのか説明します。
入力ページはHTMLで書かれたものをブラウザで表示します。INPUTタグによって、テキストを入力できるようになります。ここでは、顧客名を冬月 孝造と入力し、送信ボタンを押したとします。
CUSTOMER-NAME=“冬月 孝造”というデータがOASへ送信されます。
OAS側では、COBOL WRB APIでその値を取得します。
22
COBOLアプリケーションの作成(データ入力、取得)
Webページエディタで入力ページを作成。(HTML)……
<p>新規顧客を登録します。<br></p>
<form action="/sample/cobol/PPTSAMPLE.DLL/PPTSAMPLE"method="POST">
<table border="0"><tr><td><font size="4"><strong>新規顧客</strong></font></td></tr>
<tr><td>氏名:</td><td colspan="2">
<input type="text" size="35"
name="CUSTOMER-NAME" value="">
</td></tr>
……
……
入力ページを、HTMLエディタで作成します。テキストエディタですべて書いてもかまいません。
FORMタグのAction属性には、作成するサンプルアプリケーションを実行するようにURIを指定します。
INPUTタグのNAME属性に指定した名前は、サンプルアプリケーションで入力データを受け取るときに指定します。
23
COBOLアプリケーションの作成(データ入力、取得)
データ取得
– サンプルのソースコードより抜粋– 顧客名の受け取り000540* ブラウザから送信されたNAME-VALUEの取得
000550
000560 MOVE "CUSTOMER-NAME" TO COBW3-SEARCH-DATA.
000570 CALL "COBW3_NAME" USING COBW3.
000580 MOVE COBW3-GET-DATA TO CUSTOMER-NAME.
入力ページで、INPUTタグのNAME属性に指定した名前“CUSTOMER-NAME”をCOBW3-SEARCH-DATAにセットします。
次にCOBW3-NAMEをCALLします。
COBW3-GET-DATAに送られてきた値がセットされますので、これをSTRAGE SECTIONで宣言した変数に転記します。これで、受け取った値を自由に処理することができます。
24
HTMLの動的な生成– テンプレートを作成し、一部を置換する
– HTMLすべてを生成する
COBOLアプリケーションの作成 (表示)
SampleApplication
置換
SampleApplication
生成
COBOLカートリッジでは、ブラウザへの返信としてHTMLを生成する方法が2つあります。
•テンプレートを作成し、一部を置換する
このサンプルでは、こちらの方法を利用しています。
•HTMLすべてを生成する
このサンプルでは詳しく説明しませんが、HTTPヘッダーおよび、HTML すべてをアプリケーション内で生成する方法があります。COBOL APIの COBW3_PUT_TEXTを使用します。
25
COBOLアプリケーションの作成 (表示)
例えば、顧客名の表示
<td>
//COBOL//
CUSTOMER-NAME
//COBOL//
</td>
<td>
冬月冬月冬月冬月 孝造孝造孝造孝造
</td>
置換
COBOL WRB API・・・・COBW3_CNV_SET・・・・COBW3_PUT_HTML
サンプルアプリケーション(COBOLアプリケーション)
結果表示のテンプレート 実際に表示する結果ページ
HTML Source(一部)HTML Source(一部)
1、結果を表示するページのテンプレートを作成します。入力のページを作成したときと同様にHTMLエディタで作成しても、テキストエディタで作成してもかまいません。
そのテンプレートのなかで、COBOLアプリケーションによって動的に置き換える部分を
//COBOL//変換名//COBOL//
と書きます。
2、COBOLアプリケーションでCOBOL WRBAPIをCALLして、置換する値を指定します。
3、置換されたHTMLがブラウザへ返信されます。
例
顧客名の表示では、
//COBOL// CUSTOMER-NAME //COBOL//の部分を、入力された名前“冬月孝造“に変換しています。
こうしてCOBOLアプリケーションによって動的に置換したものがブラウザに返信されます。
26
COBOLアプリケーションの作成 (表示)
結果のページのテンプレート
– Webページエディタで結果のページのテンプレートを作成(HTML)
<tr><td>氏名:</td>
<td colspan="2">
//COBOL//CUSTOMER-NAME//COBOL//</td></tr>
……
……
ここではファイル名はPPTSAMPLETMPL.HTMLとした。
結果を表示するページのテンプレートを作成例です。
テンプレートのなかで、COBOLアプリケーションによって動的に置き換える部分を
//COBOL//変換名//COBOL//
と書きます。ここで変換名は、複数の個所を置換する場合に、どこを置き換えるのかを一意に指定するのに使用します。
例えば、”//COBOL//CUSTOMER-NAME//COBOL//”の部分を置き換えたいときに指定する文字列は“CUSTOMER-NAME”となります。
右下の画像は、テンプレートをそのまま表示させた場合です。結果の表示がどういったものになるかの概要をアプリケーションが作成される前から知ることができます。
27
COBOLアプリケーションの作成 (表示)
テンプレートの文字列との置き換え
– サンプルのソースコードより抜粋(顧客名の表示部分)001050* 出力HTML生成
001060 MOVE "CUSTOMER-NAME" TO COBW3-CNV-NAME.
001070 MOVE CUSTOMER-NAME TO COBW3-CNV-VALUE.
001080 CALL "COBW3_CNV_SET" USING COBW3.
………………
………………
001560 MOVE "PPTSAMPLETMPL.HTML"TO COBW3-HTML-FILENAME.
001570 CALL "COBW3_PUT_HTML" USING COBW3.
置換
顧客名を表示するために”//COBOL//CUSTOMER-NAME//COBOL//”の部分を置き換えます。
1060行目:変換名“CUSTOMER-NAME”をCOBW3-CNV-NAMEにセットします。これで”//COBOL//CUSTOMER-NAME//COBOL//”の部分を置き換えることを宣言したことになります。
1070行目:変数CUSTOMER-NAMEをCOBW3-CNV-VALUEにセットします。これで、”//COBOL//CUSTOMER-NAME//COBOL//”の部分に変数CUSTOMER_NAMEの内容を置き換えることになります。
1560行目:COBW3-HTML-FILENEMEに置き換え元のファイルを指定します。ここでは、前のページで作成したテンプレート “PPTSAMPLETMPL.HTML”を指定しています。
1570行目:COBW3_PUT_HTMLをCALLして、置き換えを実施します。
28
OASへの登録への登録への登録への登録
OASへ登録します
OAS Managerから、作成したサンプルアプリケーションを登録します。
COBOLカートリッジをOASにインストールすると、アプリケーションの追加の画面で、リストボックスに“COBOL Web“が追加されて、選択できるようになります。
一番左奥に表示されている画面で、リストボックスで“ COBOL Web”を選択しています。これで、COBOLカートリッジを選択したことになります。
30
OASへ登録へ登録へ登録へ登録(つづきつづきつづきつづき)
OASへ登録します
登録が終わったらOASを再起動する
COBOL Cartridge特有のパラメータ設定です。
最低限以下は設定しなければなりません。
・COBOL_PATH
作成したCOBOLアプリケーションが置いてある場所を設定します。
・System_InitPGM
使用するCOBOLランタイムを初期化するのに必要なプログラムを指定します。
・System_TermPGM
使用するCOBOLランタイムを終了するのに必要なプログラムを指定します。
・Env_Variable
使用するCOBOLランタイムの環境設定を行うファイルを指定します。
31
まとめまとめまとめまとめ
Oracle Application Server COBOLカートリッジを利用することによって...
COBOLによる開発ノウハウ、既存資産を有効活用
COBOLによる Webアプリケーションの開発が容易– 管理、分散、障害回復等に関してコーディングの必要なし
– COBOL WRB APIによってCOBOLでブラウザとの入出力に関するアプリケーションを容易に作成
OASの持つ高度な機能を利用した大規模で信頼性の高いシステムを開発可能– 負荷分散、障害回復、プロセス/スレッド管理
それでは最後にこのセッションのまとめをしたいと思います。
Oracle Application ServerとCOBOLカートリッジを利用することにより、既存のCOBOLの資産、ノウハウを活かしながらWebシステムを構築することができ、情報システムに求められている大きなニーズに的確に対応することが出来ます。
従来のWebシステムではCGIなどを利用した非効率な方法しかなく、また負荷分散や障害回復を行うためにはすべてコーディングする必要がありました。Oracle Application Serverを利用することにより、プログラマはこれらシステムレベルの詳細について気にする必要はなくなり、ビジネスロジックを実現することに集中することが出来ます。
各種のサービス(ブラウザとの入出力を行うもの、セッション管理、カートリッジ間通信のICX、ログ機能、トランザクション管理)などためのAPIが用意されているため、高度なWebシステムを簡単に開発することが可能です。
また、Oracle Application Serverが提供する機能
負荷を分散する機能
プロセスの障害からの自動回復
プロセス管理
などにより大規模で信頼性の高いWebシステムを開発、効率的に運用することができます。
32
Oracle Application Server 4.0Oracle Application Server 4.0COBOLCOBOLカートリッジカートリッジカートリッジカートリッジカートリッジカートリッジカートリッジカートリッジ
「The Internet Changes Everything」(インターネットはすべてを変えます)、そのインターネット技術にに基づき、拡張性、信頼性、TCOの削減などを実現するOracle Application Server、そして既存の資産を有効に活かしてすばやく次世代のコンピューティングスタイル(Internet Computing)に基づいたシステムを構築することを可能にするOracle COBOLカートリッジ。
Oracle Application ServerとOracle COBOLカートリッジにご期待ください。