egl (enterprise generation language)...

23
® IBM Software Group © 2007 IBM Corporation ® EGL (Enterprise Generation Language) ご説明資料 日アイ・ビー・エム株式会社 ソフトウェア事業 Rational事業部

Upload: others

Post on 13-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

®

IBM Software Group

© 2007 IBM Corporation

®

EGL (Enterprise Generation Language)

ご説明資料

日本アイ・ビー・エム株式会社ソフトウェア事業 Rational事業部

Page 2: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

2

EGLの背景

� アプリケーションを知る「熟練開発者」がJava EE, Web にも詳しい、とは限らない

�COBOL, PL/I, 4GL, Visual Basic 等々でのビジネスアプリケーション開発経験

�… しかし多くの新規アプリケーションでJava/J2EEスキルが要求される

� “新しい言語”の導入が難しいケースも多い

�コストがかかりすぎる

�時間が足りない

�… 導入後、必ず望ましい結果が得られるとは限らない

� テクノロジーの問題ではなく、ビジネスの問題にフォーカスできないか

COBOLならば、今までCOBOLならば、今まで

書いてきたので理解できるし、会社の書いてきたので理解できるし、会社の

業務も分かっている。だけど細かい業務も分かっている。だけど細かい

プログラミングテクニックを色々勉強しプログラミングテクニックを色々勉強し

て見につける時間がないな。て見につける時間がないな。

JSP

HTML

CSS

JavaScript

Servlet

Struts

JSF

JDBC

JPA

AJAX

XMLJCA

JMS

SOAP

WSDL

JavaBean

HTML

Page 3: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

3

EGLとは

� Enterprise Generation Language (EGL) とは

�現代的なプログラミング言語 (スクリプト言語)

� 既存のプログラミング・スキルを活用

� J2EE技術を隠蔽 (カプセル化)

� Web (WAS), Java, COBOLのアプリケーションの生成

�ビジネスの問題を解決するためにIBMが作り出した第4世代言語

� EGLを採用のメリット

�新しい技術を即時に採用

�Web、Webサービス、Java EE、Java Server Faces (JSF)

�既存の技術 (3270、5250、バッチ) をサポート、新規作成、もしくは継続して活用

�新規開発者に無理なく、既存のスキルを活用して開発が可能

Page 4: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

4

External Interfaces

EGL概要(1) – EGLとは

LibraryLibrary

Service/InterfaceService/InterfaceProgram

Program HandlerHandler

データベースデータベースデータベースデータベース

DB2 UDB

SQL Server

Oracle

Derby

Informix

IMS

VSAM

などなどなどなど…

ビジネスロジックビジネスロジックビジネスロジックビジネスロジック

外部外部外部外部プログラムプログラムプログラムプログラム

バッチバッチバッチバッチ Text UI Web Rich Client Reports Webサービスサービスサービスサービス

External TypeExternal Type

� 幅広い形態のアプリケーション作成に対応した「第4世代言語」

Java, RPGJava, RPGなどなど

Page 5: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

5

zSeries

Windows/Linux

AIX, HP, Solaris

iSeries

EGL

Rational Team Concert

などチームリポジトリーチームリポジトリーチームリポジトリーチームリポジトリー

EGL概要(2) – EGLが対応するプラットフォーム

COBOLCOBOL

COBOLCOBOL

� WAS on z/Linux

� Batch

� CICS

� IMS

System z

zSeries�

� WAS

� Native i OS

System i

zSeries�

� WAS

Windows, Linux, Unix

� Java, COBOLのアプリケーションをEGL言語で作成� Webアプリケーションは『Java』を生成し、WebSphere Application Server (WAS)上で実行

� COBOL生成の場合は、オンラインはText UI (3270, 5250画面) のみ

JavaJava

JavaJava

JavaJava

開発環境開発環境開発環境開発環境 ((((Rational Business Developer)

iSeriesiSeriesSystem zSystem z

��

�� IE *IE *

�� Firefox *Firefox *

ブラウザーブラウザーブラウザーブラウザーブラウザーブラウザーブラウザーブラウザーJavaScriptJavaScript

((Rich UI)Rich UI)

Page 6: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

6

� 一般的一般的一般的一般的ななななプログラミングプログラミングプログラミングプログラミング言語言語言語言語� プラットフォームやOSに依存 � H/Wが変るとプログラミング言語も変る

� JavaJavaJavaJava� OSの上にJVMJVMJVMJVM((((Java Virtual Java Virtual Java Virtual Java Virtual MahcineMahcineMahcineMahcine))))を置いて、 プラットフォーム・OSのちがいを吸収

� プラットフォームやOSに依存しないプログラミング言語 --> <プログラムの可搬性>

� 新しいプラットフォームが出現しても、対応するJVM を準備すればJavaアプリが稼動

【参考】Java と 従来のプログラミング言語の違い

EGLEGLEGLEGLからからからから生成生成生成生成したしたしたした

JavaJavaJavaJavaプログラムプログラムプログラムプログラム((((バイトコードバイトコードバイトコードバイトコード))))

UNIX /UNIX /UNIX /UNIX /

LinuxLinuxLinuxLinux

JavaJavaJavaJava

VMVMVMVM

z/Linuxz/Linuxz/Linuxz/Linux

JavaJavaJavaJava

VMVMVMVM

JavaJavaJavaJava

VMVMVMVM

Write Once Run Anywhere !! JavaWrite Once Run Anywhere !! JavaWrite Once Run Anywhere !! JavaWrite Once Run Anywhere !! Javaははははプラットフォームプラットフォームプラットフォームプラットフォームにににに依存依存依存依存しませんしませんしませんしません

WindowsWindowsWindowsWindows

WASWASWASWAS WASWASWASWAS WASWASWASWAS

Page 7: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

7

EGLの主な特徴

ツールツール

生成生成 言語言語

宣言型宣言型

抽象化抽象化

SOASOA

��最新テクノロジを取り込み、最新テクノロジを取り込み、SOASOA開発にも対応する「第開発にも対応する「第44世代言語」世代言語」

Page 8: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

8

抽象化抽象化

「抽象化」されたデータアクセス

� データアクセス:� “レコード” により下記リソースにアクセス

� SQL, Indexed, Relative, Serial, DL/I, MQ, Service data

� 共通キーワード (Get, Add, Replace, Delete)によるデータアクセス

� 必要に応じてSQL文編集も可能

� 共通のエラーハンドリング

� リモート呼び出し:� COBOL, RPG, C, Javaの呼び出し

� “コード”と“呼び出し情報”を分離しメンテナンス性・デプロイ性を確保

Page 9: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

9

抽象化抽象化

「抽象化」されたデータアクセスデータ駆動による開発

EGLレコードレコードレコードレコード定義定義定義定義ををををデータベース

データベース

データベース

データベース

からからからからインポート

インポート

インポート

インポート

((((ウィザード

ウィザード

ウィザード

ウィザード活用活用活用活用))))

Page 10: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

10

宣言型宣言型

「宣言型」プログラミング

� 検証/編集のルール� “Data Item”のプロパティにてデータディクショナリを参照

� フォーマッティングと検証のルールを共通の場所に定義

� “Data item”をレコード、画面、Webページ、レポートで利用

検証(Validation)は、Java/JSFベースのWebページのフィールドにも、COBOLベースの5250画面にも適用される。

COBOLCOBOL

JavaJava

Page 11: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

11

宣言型宣言型

「宣言型」プログラミングdata itemのためのツール

1. Data Itemのののの生成生成生成生成

2. EGLコンテンツアシストコンテンツアシストコンテンツアシストコンテンツアシストをををを利用利用利用利用したしたしたしたData Itemのののの編集編集編集編集

3. 編集編集編集編集、、、、表示表示表示表示、、、、検証検証検証検証オプションオプションオプションオプションのののの定義定義定義定義

Page 12: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

12

シンプルな「言語」

言語言語

� プログラミング言語としての…

� 単純なものから複雑なものまで、豊富なデータタイプ

� int/ string/ decimal/… から

� any/ static arrays/ dynamic arrays/ dictionaries/ array dictionaries/…

� プログラミング言語としてのキーワード

� While/ for loop/ for … データベースの result set に対するループサイクル

� If then else/ case, …

� ビルドインされた豊富なライブラリー

� Math, string, date/time, system, …

� 既存のAPIの呼び出し

� RPG, COBOL, C, Java…のリモート呼び出し

� Webサービスの呼び出し

Page 13: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

13

� ミドルウェア・アクセスのためのコード生成

� DB、アプリケーションサーバー、MQ 、トランザクションマネジャー

� …これらのミドルウェアアクセス開発に割く労力を軽減

� サービスを様々なプラットフォームやランタイムにデプロイ

� WebSphere Application Server をはじめ、CICSやSystem i、IMSなど …

� 様々なプラットフォームにデプロイ

� COBOL for System z CICS, IMS or Batch

� COBOL for System i

� Java for WebSphere Application Server

生成生成

シンプルな言語からの「生成」

EGLEGLから生成されたから生成されたJavaJavaコードのメンテナンスはせず、コードのメンテナンスはせず、

あくまであくまでEGLEGLをメンテナンス対象とする。をメンテナンス対象とする。

Page 14: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

14

ツールツール

「ツール」: ページデザイナー ※ターゲットがWASの場合

� EGLプログラム作成により、データをJSF

ページと紐付け

� EGLロジックをJSPページ制御に使用可能

� ホームページビルダーベースの画面デザイン(JSF)

� EGLデータストラクチャーをJSPにドロップ

� EGLによるデータの検証、編集

� EGLにおける“Data Item”にて定義したフォーマットルールが適用される

� EGLでのデータ定義と連動したUIコントロール

� EGLによるサーバーサイドのイベントハンドラー

Page 15: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

15

ツールツール

「ツール」: デバッガー

� EGLに対応したソースデバッガー

� ブレークポイント

� 変数のウォッチ

� 値の変更

※Eclipseデバッガーを拡張

� 充実したデバッガー = 生産性へ寄与

Page 16: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

16

SOAが目指すシステム構築の考え方

1. ビジネスビジネスビジネスビジネス・・・・アプリケーションアプリケーションアプリケーションアプリケーションをををを

再利用可能再利用可能再利用可能再利用可能ななななサービスサービスサービスサービスにににに分解分解分解分解するするするする 新新新新しいしいしいしいビジネスビジネスビジネスビジネス要求要求要求要求にににに合合合合わせわせわせわせ再構成再構成再構成再構成するするするする

従来従来従来従来ののののアプリケーションアプリケーションアプリケーションアプリケーション サービスサービスサービスサービスにににに分解分解分解分解されたされたされたされたアプリケーションアプリケーションアプリケーションアプリケーション

コンポジットコンポジットコンポジットコンポジット・・・・アプリケーションアプリケーションアプリケーションアプリケーション

1 2

3

2. ビジネスビジネスビジネスビジネス・・・・プロセスプロセスプロセスプロセスにににに合合合合わせわせわせわせ、、、、それらのそれらのそれらのそれらのサービスサービスサービスサービスをををを組組組組みみみみ合合合合わせるわせるわせるわせる

3. ビジネスビジネスビジネスビジネス・・・・プロセスプロセスプロセスプロセスのののの変化変化変化変化にににに対対対対しししし、、、、

サービスサービスサービスサービスをををを再利用再利用再利用再利用してしてしてして、、、、再構築再構築再構築再構築するするするする

SOAとは、「サービス」の組み合わせによってアプリケーションを構成するシステム構築の考え方

業務処理などの単位でサービス化することオープンで標準的なインターフェース(≒WebWebWebWebサービスサービスサービスサービス)でサービスを定義し、呼び出すこと

Page 17: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

17

SOASOA

「サービス」:SOAへの対応言語としての Webサービス対応

� サービス・パート

� EGLの処理(Function)をWebサービスとして公開可能

� HTTP接続によるさまざまな種類のコードからの呼び出し (EGL Webサービス).

� インターフェース・パート

� 外部に公開されたWebサービスに対して、アクセスするクライアントコード

� WSDLを入手し、自動生成可能

WSDLWSDL

Webサービスの定義情報であるWSDLを自動生成

Page 18: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

18

Web 2.0 の特徴 ~ シンプル & リッチ

従来従来従来従来ののののWeb

Web 2.0 ははははシンプルシンプルシンプルシンプル & リッチリッチリッチリッチ

�ブラウザーでのPoorなインターフェイス

�複数の情報が一度に欲しいときにいくつものサイトへアクセス

�新しいアプリを作成したり、既存サービスと連携したりするときの敷居が高い

都道府県別

世帯状況

�自サイトでも簡単に使える

�複数のサービスを組み合わせたサイトによりユーザビリティーが向上

�従来では実現できなかったリッチなユーザーインターフェースが可能(ドラッグアンドドロップによる視覚的操作など)

マッシュアップマッシュアップマッシュアップマッシュアップ

Ajax

REST

組み合わせによる新しい

ビジネスモデルの誕生

デスクトップでしか出来なかったことをブラウザーで実現

地図サービス

18

Page 19: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

19

EGLを使用して作成した Web 2.0 アプリケーション

http://www-949.ibm.com/software/rational/cafe/docs/DOC-3035

Real Estate DemoReal Estate Demo

EGLソース

ダウンロード可能

商品(物件)を選択すると、その物件の詳細情報、地図が更新される

Page 20: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

20

IBM Rational Business Developer (RBD) v7.5

EGL((((Enterprise Generation Language)をををを用用用用いたいたいたいたアプリケーションアプリケーションアプリケーションアプリケーション開発開発開発開発

� 特徴特徴特徴特徴

� EGL(Enterprise Generation Language)でJava,COBOLコードの自動生成

� J2EE技術を隠蔽化(カプセル化)

� Webサービス等のプログラムの迅速な開発

� Eclipseのユーザーインターフェースでの開発

� 生産性の高いEGLでのデバッグツール

� ページデザイナーを用いての迅速なWebインター

フェース開発

� Rational Team Concert との連携

Page 21: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

21

Rational Developer for Power Systems Software RPG and COBOL development tools for IBM i (RDp)

Rational HATS Toolkit

Rational Business Developer (RBD)

次世代のPDM&SEUです。既存のRPG・COBOLのスキル資産を活用します。EclipseのユーザーインターフェースでRPGも開発します。80X24の画面制約が無く、表示できる領域が広がります。既存のバッチ型アプリケーションPGMのSOA対応を行えます。

Web化ツールとしての長年の実績があります。既存の5250のプログラムはそのまま活用します。WebFacing Toolの機能も統合してます。既存の対話型アプリケーションPGMのSOA対応を行えます。

EGL(Enterprise Generation Language)を用いてでJavaやCOBOLのコードを自動生成します。EGLは、他の言語と比べると容易に習得し、高い生産発揮できる言語です。EGLを用いて、Webアプリケーション、バッチプログラム、Webサービス等の開発が可能です。

どれもEclipseベースのツールなので操作感が統一できて便利です。既存スキルを生かしながら既存アプリケーションのWeb化SOA化新規アプリケーションの迅速な開発が行なえます。

IBM Rational Developer for System i SOA Construction

RDp と RBD が同梱されたパッケージ

Page 22: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

22

情報源

� Rational ブランド トップページ

� http://www-6.ibm.com/software/jp/rational/

� developerWorks Rational (Rational製品の技術情報)

� http://www.ibm.com/developerworks/jp/rational/

� Rational Business Developer 製品ページ

� http://www-6.ibm.com/software/jp/rational/products/design/developer/business/

� ここからはじめるIBM Rational Business Developer V7.5

� http://www-6.ibm.com/jp/domino01/mkt/rational.nsf/doc/0008C207

� Rational Business Developer 評価版

� http://www.ibm.com/developerworks/downloads/r/rbex/

� Rational Developer for i for SOA Construction

� http://www-6.ibm.com/software/jp/rational/products/design/rdisoa/index.html

� EGL Community Edition

� http://www-949.ibm.com/software/rational/cafe/community/egl/ce

� EGL Café

� http://www-949.ibm.com/software/rational/cafe/community/egl

� EGL Café Japan Street

� http://www-949.ibm.com/software/rational/cafe/community/egl/japan

Page 23: EGL (Enterprise Generation Language) ご説明資料public.dhe.ibm.com/software/dw/jp/rational/library/em/...Web (WAS), Java, COBOL のアプリケーションの生成 ビジネスの問題を解決するために

IBM Software Group | Rational software

23