• 検索結果がありません。

COBOLロジックのコンポーネント 化 コンポーネント 化 の 実 例 COMラッピング.NETマネージドコードからCOBOLの 利 用 Webサービスへの 展 開

N/A
N/A
Protected

Academic year: 2021

シェア "COBOLロジックのコンポーネント 化 コンポーネント 化 の 実 例 COMラッピング.NETマネージドコードからCOBOLの 利 用 Webサービスへの 展 開"

Copied!
32
0
0

読み込み中.... (全文を見る)

全文

(1)

COBOLによる

による

によるWebサービスコンポーネント開発

による

サービスコンポーネント開発

サービスコンポーネント開発

サービスコンポーネント開発

2001年

年 12月

月 12日

マイクロフォーカス株式会社

マイクロフォーカス株式会社

マイクロフォーカス株式会社

マイクロフォーカス株式会社

小林

小林

小林

小林 純一

純一

純一

純一

記載された会社名、製品名はそれぞれ各社の商標または登録商標です。

(2)

COBOLロジックのコンポーネント化

COBOLロジックのコンポーネント化

コンポーネント化の実例 – COMラッピング

.NETマネージドコードからCOBOLの利用

(3)

アプリケーション開発の背景

● 迅速な開発への要請

社会情勢の変化

(

法改正、他業種参入、

…)

企業統合

商品競合力・差別化

「数年」から「数ヶ月」へ

● システムの柔軟性への要請

ロジック変更への柔軟性

プレゼンテーション変更への柔軟性

システムのオンラインメンテナンス

● 既存資産を活用したコンポーネント開発

(4)

アプリケーション開発の背景

● コンポーネント化技術の浸透

– COM+, .NET, SOAP, J2EE, CORBA

● プログラミング言語に対するトランスペアレンシが

実現された

● プログラミング言語の選択基準の変化:

テクノロジーによる要請

テクノロジーによる要請

テクノロジーによる要請

テクノロジーによる要請

開発対象アプリケーションの特性による要請

開発対象アプリケーションの特性による要請

開発対象アプリケーションの特性による要請

開発対象アプリケーションの特性による要請

(5)

オープンシステムにおけるCOBOL

● メインフレームオルタナティブとしてのWindows、UNIX

– COBOLバッチプログラムの高い移植性

● アプリケーションサーバーとしてのWindows、UNIX

– ホスト集中型の従来型アプリケーションとの親和性

● COBOLの一般的特性

– 高い可読性、保守性、生産性、均質な品質

● 40年間で証明された開発方法論としてのCOBOL

● COBOLプログラマの高い資質

クライアント クライアント クライアント クライアント プレゼンテー プレゼンテープレゼンテー プレゼンテー ーション ーション ーション ーション アプリケーションサーバー アプリケーションサーバー アプリケーションサーバー アプリケーションサーバー サービス サービスサービス サービス ロジック ロジック ロジック ロジック ロジック ロジック ロジック ロジック サービス要求 サービス要求 サービス要求 サービス要求 サービス要求 サービス要求 サービス要求 サービス要求 データアクセスデータアクセスデータアクセスデータアクセスデータアクセスデータアクセスデータアクセスデータアクセス

サーバーサイドでのビジネス

サーバーサイドでのビジネス

サーバーサイドでのビジネス

サーバーサイドでのビジネス

ロジックに

ロジックに

ロジックに

ロジックにCOBOLの活用を

の活用を

の活用を

の活用を

(6)

アプリケーションサーバー アプリケーションサーバー アプリケーションサーバー アプリケーションサーバー

COBOLロジックのコンポーネント化

ビジネスロジック ビジネスロジック ビジネスロジック ビジネスロジック EVALUATE SHOR WHEN ADD-VA PERFORM AD WHEN DELETE PERFORM DE COMPUTE INHE = YEARS-GIVE / ( 12 + IND IF ( CUSTOMER-> ‘20011212’ ) AND COM+ ラッピングラッピングラッピングラッピングラッピングラッピングラッピングラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング ラッピング .NET Framework Javaクラスクラスクラスクラス Enterprise Java Bean CORBA オブジェクト オブジェクトオブジェクト オブジェクト クライアント クライアント クライアント クライアント プレゼンテー プレゼンテープレゼンテー プレゼンテー ーション ーション ーション ーション サー ビス 求 サー ビス 求 サー ビス 求 サー ビス 求 サー ビス 求 サー ビス 求 サー ビス 求 サー ビス

• 多言語

多言語

多言語

多言語

•HTML

•ASP

•JSP

•VisualBasic

•C#

….

• ヘテロ

ヘテロ

ヘテロ

ヘテロ

プラットフォーム

プラットフォーム

プラットフォーム

プラットフォーム

•Windows

•UNIX

•Linux

•モバイル端末

モバイル端末

モバイル端末

モバイル端末

….

強固なビジネスロジックをどこからでも、誰からでも

強固なビジネスロジックをどこからでも、誰からでも

強固なビジネスロジックをどこからでも、誰からでも

強固なビジネスロジックをどこからでも、誰からでも…

(7)

COBOLロジックのコンポーネント化

コンポーネント化の実例 – COMラッピング

コンポーネント化の実例 – COMラッピング

.NETマネージドコードからCOBOLの利用

(8)

COBOLとCOMの相互利用

COBOLによる

による

による

による

COM

コンポーネント

コンポーネント

コンポーネント

コンポーネント

市販コンポーネント

市販コンポーネント

市販コンポーネント

市販コンポーネント

COMオブジェクト

オブジェクト

オブジェクト

オブジェクト

COMクライアント

クライアント

クライアント

クライアント

COBOL

プログラム

プログラム

プログラム

プログラム

VB、

、VC++

プログラム

プログラム

プログラム

プログラム

ASP、

、WSH

スクリプト

スクリプト

スクリプト

スクリプト

INVOKE文

VBScript、

、JavaScript

メソッド呼び出し

メソッド呼び出し

メソッド呼び出し

メソッド呼び出し

(9)

COBOLロジックのCOMラッピング

● Object COBOLで記述したクラスをCOMコンポーネントとしてリンクし、登

録する

● Micro Focus Net Expressの装備するクラスウィザードで半自動生成可能

● タイプライブラリも自動生成

● 自己登録型DLLを作成

● スレッドモデルの指定が可能

● 既存COBOLロジックに対しては、スレッド競合を回避するアパートメントシン

グルを推奨

● COBOLによるCOMデータ型へのマッピング

● Variant、SafeArray

● COBOLによるCOM例外処理

● RaiseExceptionメソッド

● レジストリ登録も自動生成

(10)

COBOLとCOMの実現例

Net Express

クラスウィザードによる

クラスウィザードによる

クラスウィザードによる

クラスウィザードによる

COMコンポーネント生成

コンポーネント生成

コンポーネント生成

コンポーネント生成

(11)

クライアント

クライアント

クライアント

クライアント

Webブラウザ

ブラウザ

ブラウザ

ブラウザ

Windows

Microsoft IIS

ASP文書

文書

文書

文書

HTMLテキスト

テキスト

テキスト

テキスト

問い合わせ文字列

問い合わせ文字列

問い合わせ文字列

問い合わせ文字列

HTMLテキスト

テキスト

テキスト

テキスト

HTML

文書

文書

文書

文書

COBOLロジック

ロジック

ロジック

ロジック

COMコンポーネント

コンポーネント

コンポーネント

コンポーネント

(12)

ASP + COBOL COM

<HTML>

<HEAD><TITLE>ASPからCOBOLのCOMコンポーネントを呼び出す </TITLE></HEAD>

<BODY>

<FORM action=simple.asp method=get>

数字を入力してください: <INPUT type=text name="myname" size=12>

<P>

<INPUT type=submit value="送信"> </FORM> </BODY> </HTML> <% @Language="VBScript" %> <HTML><HEAD><TITLE>最も簡単なASP</TITLE></HEAD> <BODY> <% Response.Write Request.QueryString("myname") %> に2をかけると、 <% Set rs = CreateObject("cobcalc") rs.myProperty = Request.QueryString("myname") i = rs.doubleIt() Response.Write rs.myProperty %> です。</BODY></HTML>

(13)

ASP + COBOL COM 構成例

クラス cobcalc の仕様

プロパティ

•myProperty 数字型

メソッド

•doubleIt()

myProperty の値

を2倍する

Visual Basicオブジェクトブラウザ

オブジェクトブラウザ

オブジェクトブラウザ

オブジェクトブラウザ

による表示

による表示

による表示

による表示

(14)

ASP + COMコンポーネント

クラス cobcalc のCOBOLによる記述

CLASS-ID. cobcalc INHERITS FROM OLEBASE.

OBJECT.

OBJECT-STORAGE SECTION.

01 myProperty PIC S9(9) COMP-5. METHOD-ID. "DoubleIt".

LINKAGE SECTION.

01 RETVAL PIC X(4) COMP-5. PROCEDURE DIVISION RETURNING RETVAL.

    COMPUTE myProperty = myProperty * 2.     MOVE myProperty TO RETVAL.

EXIT METHOD.

END METHOD " DoubleIt". END OBJECT.

(15)

COBOLロジックのコンポーネント化

コンポーネント化の実例 – COMラッピング

.NETマネージドコードからCOBOLの利用

.NETマネージドコードからCOBOLの利用

(16)

.NETフレームワーク

● アプリケーションを作成して実行するための新しい環境を提供

W eb

サービス開発を簡易化し、多種の言語で記述されたコンポーネントで共通に

利用可能な実行時サービスを提供

● 異言語間、異機種間の相互接続性も実現

● 共通言語ランタイム

(CLR)

● 異言語間での相互呼び出し、共通の例外処理、ガベージコレクション、バー

ジョン管理、アプリケーション配布サポートを提供

● マネージドコード

● CLR用に開発され、マイクロソフト中間言語 (MSIL)にコンパイルされたプログラム

● 現在流通しているすべてのコードはマネージドコードではない

● Micro Focus Net ExpressでコンパイルされたCOBOLプログラムもマネージドコードで

はない

● マネージドコードとそうでないものとを相互に利用可能にするためのメカニズムを

.NETフレームワークの中で提供

● この相互運用性レイヤーにより、既存のCOMコンポーネントをマネージドコードから利

用したり、マネージドコードを既存アプリケーションからCOMコンポーネントとして利用

することができる

(17)

.NETフレームワーク

● COM+ は、COBOLを使用した基幹情報システムの実行環境として実証された。

「安田火災がシステム基盤を一新」 2001/11/19 日経コンピュータ

● .NET もCOBOLの活用によって、実績を積んで進化する。

.

NET におけるCOBOL活用 海外ユーザ事例

SYSPRO

● 1981年 創立、ERP製品の開発・

販売、一貫してCOBOLを活用

● 1984年 ERP製品 Impact Award 発表

(MSDOS & UNIX)

● 1994年 Windows GUI版 Impact Encore

● 2001年 Impact Encore で Microsoft XP

Certification取得

● 2002年 Impact Encore .NET版の出荷予定

ASP.NETフロントエンド + COBOL COMコンポーネントを採用、現在開発中

A銀行

銀行

銀行 (欧州)

銀行

● メインフレームのCOBOL資産を活用し、32CPU の Windows Data Center Server

上の .NET 環境へ移行中

● 当初 COBOLを捨て C#への書き直しを検討したが、評価の結果 Micro Focus

Net Express を選択

(18)

マネージドコードからCOBOLへのアクセス

Net Express

クラス

クラス

クラス

クラス

ウィザード

ウィザード

ウィザード

ウィザード

COBOL

COM

コンポーネント

コンポーネント

コンポーネント

コンポーネント

タイプ

タイプ

タイプ

タイプ

ライブラリ

ライブラリ

ライブラリ

ライブラリ

既存

既存

既存

既存

COBOL

ロジック

ロジック

ロジック

ロジック

メタデータ

メタデータ

メタデータ

メタデータ

.NET

クライアント

クライアント

クライアント

クライアント

(VB.NET,

C#, VC)

実行時

実行時

実行時

実行時

ラッパー

ラッパー

ラッパー

ラッパー

TLBIMP

Common

Language

Runtime

(CLR)

Net Express

Application

Server

名前空間を提供

名前空間を提供

名前空間を提供

名前空間を提供

(19)

レジストリ

レジストリ

レジストリ

レジストリ

COBOL

COM

クライアント

クライアント

クライアント

クライアント

既存

既存

既存

既存

COBOL

プログラム

プログラム

プログラム

プログラム

メタデータ

メタデータ

メタデータ

メタデータ

.NET

オブジェクト

オブジェクト

オブジェクト

オブジェクト

(VB.NET,

C#, VC)

COM

呼び出し

呼び出し

呼び出し

呼び出し

ラッパー

ラッパー

ラッパー

ラッパー

REGASM

Common

Language

Runtime

(CLR)

Net Express

Application

Server

COBOLからマネージドコードへのアクセス

(20)

COBOLからマネージドコードへのアクセス

Micro Focus Net Express タイプライブラリアシスタントによるコード生成

タイプライブラリアシスタントによるコード生成

タイプライブラリアシスタントによるコード生成

タイプライブラリアシスタントによるコード生成

*> ========================== *> = Type library contents: = *> ========================== *> Name: System_Windows_Forms *> System.Windows.Forms.dll

01 ImeMode pic s9(9) comp-5 typedef. 88 ImeMode-Inherit VALUE -1. 88 ImeMode-NoControl VALUE 0. 88 ImeMode-On VALUE 1. 88 ImeMode-Off VALUE 2. 88 ImeMode-Disable VALUE 3. 88 ImeMode-Hiragana VALUE 4. 88 ImeMode-Katakana VALUE 5. 88 ImeMode-KatakanaHalf VALUE 6. 88 ImeMode-AlphaFull VALUE 7. 88 ImeMode-Alpha VALUE 8. 88 ImeMode-HangulFull VALUE 9. 88 ImeMode-Hangul VALUE 10. 01 ImeMode-PTR pointer typedef.

01 FormWindowState pic s9(9) comp-5 typedef. 88 FormWindowState-Normal VALUE 0. 88 FormWindowState-Minimized VALUE 1.

自動生成

自動生成

自動生成

自動生成

(21)

COBOLロジックのコンポーネント化

コンポーネント化の実例 – COMラッピング

.NetマネージドコードからCOBOLの利用

Webサービスへの展開

(22)

Webサービスの概要

クライアント クライアントクライアント クライアント Web アプリケーシ アプリケーシ アプリケーシ アプリケーシ ョン ョン ョン ョン Webサービスサイトサービスサイトサービスサイトサービスサイト SOAP ルーター ルータールーター ルーター 株価照会 株価照会株価照会 株価照会 送金 送金 送金 送金 SOAP要求要求要求要求 SOAP要求要求要求要求

エンドユーザ

エンドユーザ

エンドユーザ

エンドユーザ

Webサービス

サービス

サービス

サービス

を配布

を配布

を配布

を配布

WSDL WSDL ルーター ルータールーター ルーター UDDIサイトサイトサイトサイト UDDI レジストリ レジストリ レジストリ レジストリ

検索

検索

検索

検索

結合

結合

結合

結合

UDDI ロケータ ロケータロケータ ロケータ Web Service Description Language Simple Object Access Protocol Universal Description Discovery Interface

(23)

Javaアプリケーションサーバアプリケーションサーバアプリケーションサーバアプリケーションサーバ SOAP ルータ ルータ ルータ ルータ 株価照会株価照会株価照会株価照会 COBOL ロジック ロジック ロジック ロジック WSDL ロケータ ロケータロケータ ロケータ

Java

Web

サービス

サービス

サービス

サービス

Microsoft.NET サーバサーバサーバサーバ SOAP ルータ ルータ ルータ ルータ 送金送金送金送金 WSDL WSDL ロケータ ロケータロケータ ロケータ

.NET

Web

サービス

サービス

サービス

サービス

クライアント クライアントクライアント クライアント 株式購入 株式購入株式購入 株式購入 SOAP 要求要求要求要求 SOAP 要求要求要求要求 SO AP要求要求要求要求 SO AP要求要求要求要求

Webサービスの構成例

Javaの世界と

の世界と

の世界と COM/.NET の世界を融合する「統一場の理論」

の世界と

の世界を融合する「統一場の理論」

の世界を融合する「統一場の理論」

の世界を融合する「統一場の理論」

- Giga Information Group, July 2001

COBOL ロジック ロジック ロジック ロジック WSDL

(24)

WebサービスのWindowsでの実装例

Microsoft SOAP Toolkit

• WSDL – Web Services Description Language

• Webサービスの形式を定義するXML文書

• クライアントアプリケーションはWSDLの記述に合致した

SOAP要求を発行しなければならない

• WSML – Web Services Meta Language

• Webサービスのインタフェースと COMクラスとのマッピング規

則を記述する

• WSDL/WSML Generator

• Microsoft SOAP Toolkitが提供

• 既存のCOMコンポーネントから WSDLを生成

• SOAPクライアントクラス

• COMクラスとして提供、既存の言語から容易にサービス要求

を記述可能

(25)

WebサービスのWindowsでの実装例

Microsoft SOAP Toolkit

Net Expressで作成した

で作成した

で作成したCOMコンポー

で作成した

コンポー

コンポー

コンポー

ネントの

ネントの

ネントの

ネントのWebサービス化

サービス化

サービス化

サービス化

COBOLサーバーとして

サーバーとして

サーバーとして

サーバーとして

COBOLクライアントとして

クライアントとして

クライアントとして

クライアントとして

COBOLバッチ処理

INVOKE SOAPClient “mssoapinit“ USING INVOKE SOAPClient “GetStock” USING

MSSoarClientクラス 顧客先 顧客先 顧客先 顧客先 Webサービスサービスサービスサービス サイト サイトサイト サイト 顧客先 顧客先 顧客先 顧客先 Webサービスサービスサービスサービス サイト サイトサイト サイト

(26)

WebサービスのJ2EEでの実装

WebSphere Application Server 4.0

Webサービスウィザードによる構築

サービスウィザードによる構築

サービスウィザードによる構築

サービスウィザードによる構築

WebSphere Application Server V4.0

WebSphere Studio V4.0

SOAPサービス

サービス

サービス

サービス

WSDL アプリケ アプリケ アプリケ アプリケ ーション ーション ーション ーション アセンブ アセンブ アセンブ アセンブ リツール リツール リツール リツール

既存

既存

既存

既存Javaクラス

クラス

クラス

クラス

インポート インポートインポート インポート 生成 生成生成 生成 WSDL SOAP----DD ディプロイ ディプロイディプロイ ディプロイ

COBOLクラス

クラス

クラス

クラス

既存

既存

既存

既存COBOLクラス

クラス

クラス

クラス

(27)

2.

開発の生産性向上

開発の生産性向上

開発の生産性向上

開発の生産性向上

Micro Focusの方向性

リホスティング

リホスティング

リホスティング

リホスティング

ダウンサイジング

ダウンサイジング

ダウンサイジング

ダウンサイジング

4. アプリケーションの

アプリケーションの

アプリケーションの

アプリケーションのWeb展開

展開

展開

展開

相互運用性

相互運用性

相互運用性

相互運用性

:

WebSphere, XML, J2EE, .NET, Webサービス

サービス

サービス

サービス

3.

マイグレーション

マイグレーション

マイグレーション

マイグレーション

オフコン、ミニコン、

オフコン、ミニコン、

オフコン、ミニコン、

オフコン、ミニコン、

16bit PC、

、メインフレーム

メインフレーム

メインフレーム

メインフレーム

5.

業務への付加価値追加

業務への付加価値追加

業務への付加価値追加

業務への付加価値追加

6.

業務の移行

業務の移行

業務の移行

業務の移行

Windows & UNIX

開発・運用

開発・運用

開発・運用

開発・運用

1.

開発の生産性向上

開発の生産性向上

開発の生産性向上

開発の生産性向上

各社メインフレーム

各社メインフレーム

各社メインフレーム

各社メインフレーム

メインフレームの進化

メインフレームの進化

メインフレームの進化

メインフレームの進化

(28)

市場の要求

メインフレームは残る

UNIX、Windowsのメインフレー

ムオルタナティブ

J2EEベース開発の増加

Windows既存資産

既存アプリケーションの理解

既存アプリケーションの有効活用

アプリケーションのJ2EE準拠性

.NET 相互運用性

市場の特性

市場の特性

市場の特性

市場の特性

要求

要求

要求

要求

(29)

COBOL Serverの必要性

Micro Focus Application Server

for Net Express / Server Express

! すべてのCOBOL言語機能を実現するス

ケーラブルなランタイムシステム

! 64bit ネイティブコード

! スレッドセーフなCOBOL実行

! トランザクションをサポートする COBOL

リモートファイルシステム

! ODBCデータベース接続

! COM相互接続クラス

! Java相互接続クラス

SOAPサーバー

! Webサービス: J2EE / .NET

+ SOAPルータ、サービスエンジン

+ 運用管理

+ COBOLサービスデバッガ

! J2EE準拠性

(30)

トータルな相互運用性

SOAP

要求

要求

要求

要求

SOAP

要求

要求

要求

要求

Java Webサービスサービスサービスサービス Stock Quote

Micro Focus COBOL Webサービスサービスサービスサービス Stock Purchase CICS Webサービスサービスサービスサービス Stock Summary .NET Webサービスサービスサービスサービス Credit Check

(31)

まとめ

● 安田火災様での事例、COM+ をベースとしてシステム基盤の再構築に成功した

。COBOL資産が活用できたことが大きい。

● Windows は、信頼性の面で UNIX陣営から攻撃されることが多かったが、これ

はそうではないことを証明した。

● このように COMで COBOLを活用することは証明された方法となった。.NETもこ

れから市場が証明してゆくことになる。国内ではまだ .NET の活用事例は出てい

ないが海外では出始めている。

● 市場調査によれば、現在のところ将来のシステム基盤としての注目度は J2EE

が一番であり、WebSphere 4.0 のような包括的な機能を提供するサーバー製

品が登場している。

● Webサービスは .NET と J2EEの両方を包括するものとしての役割が期待され

ている。既に既存のテクノロジーで COBOLロジックを SOAPサービスとしてコン

ポーネント化できる。

● Micro Focus は COBOLロジックを J2EE完全準拠の方法でSOAPサービス展

開できる、アプリケーションサーバーを提供してゆく計画です。

(32)

参照

関連したドキュメント

サーバー費用は、Amazon Web Services, Inc.が提供しているAmazon Web Servicesのサーバー利用料とな

(4) 現地参加者からの質問は、従来通り講演会場内設置のマイクを使用した音声による質問となり ます。WEB 参加者からの質問は、Zoom

* 本カタログのオーダーはWEB受注「2018年5月展 &gt;&gt; Chou Chou de maman 」 より https://tiara-order.com よりお客様専用の. ID

必要な情報をすぐ探せない ▶ 部品単位でのリンク参照が冊子横断で可能 二次利用、活用に制約がある ▶

016-522 【原因】 LDAP サーバーの SSL 認証エラーです。SSL クライアント証明書が取得で きません。. 【処置】 LDAP サーバーから

4G LTE サービス向け完全仮想化 NW を発展させ、 5G 以降のサービス向けに Rakuten Communications Platform を自社開発。. モデル 3 モデル

Webカメラ とスピーカー 、若しくはイヤホン

b)工場 シミュ レータ との 連携 工場シ ミュ レータ は、工場 内のモ ノの流 れや 人の動き をモ デル化 してシ ミュレ ーシ ョンを 実 行し、工程を 最適 化する 手法で