egl (enterprise generation language)...
TRANSCRIPT
®
IBM Software Group
© 2007 IBM Corporation
®
EGL (Enterprise Generation Language)
ご説明資料
日本アイ・ビー・エム株式会社ソフトウェア事業 Rational事業部
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
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、バッチ) をサポート、新規作成、もしくは継続して活用
�新規開発者に無理なく、既存のスキルを活用して開発が可能
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などなど
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)
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
IBM Software Group | Rational software
7
EGLの主な特徴
ツールツール
生成生成 言語言語
宣言型宣言型
抽象化抽象化
SOASOA
��最新テクノロジを取り込み、最新テクノロジを取り込み、SOASOA開発にも対応する「第開発にも対応する「第44世代言語」世代言語」
IBM Software Group | Rational software
8
抽象化抽象化
「抽象化」されたデータアクセス
� データアクセス:� “レコード” により下記リソースにアクセス
� SQL, Indexed, Relative, Serial, DL/I, MQ, Service data
� 共通キーワード (Get, Add, Replace, Delete)によるデータアクセス
� 必要に応じてSQL文編集も可能
� 共通のエラーハンドリング
� リモート呼び出し:� COBOL, RPG, C, Javaの呼び出し
� “コード”と“呼び出し情報”を分離しメンテナンス性・デプロイ性を確保
IBM Software Group | Rational software
9
抽象化抽象化
「抽象化」されたデータアクセスデータ駆動による開発
EGLレコードレコードレコードレコード定義定義定義定義ををををデータベース
データベース
データベース
データベース
からからからからインポート
インポート
インポート
インポート
((((ウィザード
ウィザード
ウィザード
ウィザード活用活用活用活用))))
IBM Software Group | Rational software
10
宣言型宣言型
「宣言型」プログラミング
� 検証/編集のルール� “Data Item”のプロパティにてデータディクショナリを参照
� フォーマッティングと検証のルールを共通の場所に定義
� “Data item”をレコード、画面、Webページ、レポートで利用
検証(Validation)は、Java/JSFベースのWebページのフィールドにも、COBOLベースの5250画面にも適用される。
COBOLCOBOL
JavaJava
IBM Software Group | Rational software
11
宣言型宣言型
「宣言型」プログラミングdata itemのためのツール
1. Data Itemのののの生成生成生成生成
2. EGLコンテンツアシストコンテンツアシストコンテンツアシストコンテンツアシストをををを利用利用利用利用したしたしたしたData Itemのののの編集編集編集編集
3. 編集編集編集編集、、、、表示表示表示表示、、、、検証検証検証検証オプションオプションオプションオプションのののの定義定義定義定義
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サービスの呼び出し
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をメンテナンス対象とする。をメンテナンス対象とする。
IBM Software Group | Rational software
14
ツールツール
「ツール」: ページデザイナー ※ターゲットがWASの場合
� EGLプログラム作成により、データをJSF
ページと紐付け
� EGLロジックをJSPページ制御に使用可能
� ホームページビルダーベースの画面デザイン(JSF)
� EGLデータストラクチャーをJSPにドロップ
� EGLによるデータの検証、編集
� EGLにおける“Data Item”にて定義したフォーマットルールが適用される
� EGLでのデータ定義と連動したUIコントロール
� EGLによるサーバーサイドのイベントハンドラー
IBM Software Group | Rational software
15
ツールツール
「ツール」: デバッガー
� EGLに対応したソースデバッガー
� ブレークポイント
� 変数のウォッチ
� 値の変更
※Eclipseデバッガーを拡張
� 充実したデバッガー = 生産性へ寄与
IBM Software Group | Rational software
16
SOAが目指すシステム構築の考え方
1. ビジネスビジネスビジネスビジネス・・・・アプリケーションアプリケーションアプリケーションアプリケーションをををを
再利用可能再利用可能再利用可能再利用可能ななななサービスサービスサービスサービスにににに分解分解分解分解するするするする 新新新新しいしいしいしいビジネスビジネスビジネスビジネス要求要求要求要求にににに合合合合わせわせわせわせ再構成再構成再構成再構成するするするする
従来従来従来従来ののののアプリケーションアプリケーションアプリケーションアプリケーション サービスサービスサービスサービスにににに分解分解分解分解されたされたされたされたアプリケーションアプリケーションアプリケーションアプリケーション
コンポジットコンポジットコンポジットコンポジット・・・・アプリケーションアプリケーションアプリケーションアプリケーション
1 2
3
2. ビジネスビジネスビジネスビジネス・・・・プロセスプロセスプロセスプロセスにににに合合合合わせわせわせわせ、、、、それらのそれらのそれらのそれらのサービスサービスサービスサービスをををを組組組組みみみみ合合合合わせるわせるわせるわせる
3. ビジネスビジネスビジネスビジネス・・・・プロセスプロセスプロセスプロセスのののの変化変化変化変化にににに対対対対しししし、、、、
サービスサービスサービスサービスをををを再利用再利用再利用再利用してしてしてして、、、、再構築再構築再構築再構築するするするする
SOAとは、「サービス」の組み合わせによってアプリケーションを構成するシステム構築の考え方
業務処理などの単位でサービス化することオープンで標準的なインターフェース(≒WebWebWebWebサービスサービスサービスサービス)でサービスを定義し、呼び出すこと
IBM Software Group | Rational software
17
SOASOA
「サービス」:SOAへの対応言語としての Webサービス対応
� サービス・パート
� EGLの処理(Function)をWebサービスとして公開可能
� HTTP接続によるさまざまな種類のコードからの呼び出し (EGL Webサービス).
� インターフェース・パート
� 外部に公開されたWebサービスに対して、アクセスするクライアントコード
� WSDLを入手し、自動生成可能
WSDLWSDL
Webサービスの定義情報であるWSDLを自動生成
IBM Software Group | Rational software
18
Web 2.0 の特徴 ~ シンプル & リッチ
従来従来従来従来ののののWeb
Web 2.0 ははははシンプルシンプルシンプルシンプル & リッチリッチリッチリッチ
�ブラウザーでのPoorなインターフェイス
�複数の情報が一度に欲しいときにいくつものサイトへアクセス
�新しいアプリを作成したり、既存サービスと連携したりするときの敷居が高い
都道府県別
世帯状況
�自サイトでも簡単に使える
�複数のサービスを組み合わせたサイトによりユーザビリティーが向上
�従来では実現できなかったリッチなユーザーインターフェースが可能(ドラッグアンドドロップによる視覚的操作など)
マッシュアップマッシュアップマッシュアップマッシュアップ
Ajax
REST
組み合わせによる新しい
ビジネスモデルの誕生
デスクトップでしか出来なかったことをブラウザーで実現
地図サービス
18
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ソース
ダウンロード可能
商品(物件)を選択すると、その物件の詳細情報、地図が更新される
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 との連携
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 が同梱されたパッケージ
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
IBM Software Group | Rational software
23