Oracle Direct Seminar...【Tips】JDeveloperで公開可能なロジック •...
Transcript of Oracle Direct Seminar...【Tips】JDeveloperで公開可能なロジック •...
Oracle Direct Seminar
<Insert Picture Here>
実践SOA構築!! WEBサービス開発入門日本オラクル株式会社
Agenda
<I t Pi t H >E t i 2 0時代のシステム <Insert Picture Here>• Enterprise 2.0時代のシステム• Web Service概要• Web Service実装Web Service実装
• Web Service実装例• Web Serviceクライアント実装
(S l t)・SQL Serverからの移行アセスメント
相談
Oracle Directの無償技術サービス
(Servlet)• Oracle SOAのご紹介• まとめ
・MySQLからの移行相談・PostgreSQLからの移行相談・Accessからの移行アセスメント・Application Server移行相談まとめ Application Server 移行相談・Oracle Database バージョンアップ支援・Oracle Developer/2000 Webアップグレード相談・パフォーマンス・クリニック
構成相談・Oracle Database 構成相談・Oracle Database 高可用性診断・システム連携アセスメント
htt // l /l /j /di t/ i ht l
Copyright© 2010, Oracle. All rights reserved. 2
http://www.oracle.com/lang/jp/direct/services.html
時代はEnterprise 2.0にシフト
ホスト
分散コンピ
ューティング
Webクライアント
サーバー
シンクライアントシンクライアント
Enterprise2.0
Web 2.0
統合と分散を繰り返す統合と分散を繰り返す
システム/アプリケーション構成の歴史
Copyright© 2010, Oracle. All rights reserved. 3
Enterprise 2.0への変遷
アプリケーションを
目的に応じて作る時代
アプリケーションを
組み合わせて作る時代
リソースを有効に活用して
アプリケーションを構成する
Enterprise 2.0
Copyright© 2010, Oracle. All rights reserved. 4
Enterprise 2.0で実現する新しい企業システムEnterprise mashup - JSF, Ajax, RSS, Wikis, SIP
Search
Recent
Favorites
NotificationsNotifications
Communities
Documents
Discussions
Contextual Wiring
Presence
Copyright© 2010, Oracle. All rights reserved. 5
Enterprise 2.0で実現する新しい企業システムテム
リ チな ザ インタ フ ス• リッチなユーザーインターフェース• AJAXを使ったリッチなクライアント• Wiki SNSなど高機能アプリケーションと連携• Wiki, SNSなど高機能アプリケ ションと連携
• 開発の柔軟性• オープンな技術により技術の実装が容易オ プンな技術により技術の実装が容易
• 柔軟なシステム間連携• オープンな仕様によりデータ交換/システム間連携を実現
• 柔軟なプロセス変更への対応• 各システムの機能をオープンに利用• 機能ごとを組み合わせて新しいビジネスの創出へ
Copyright© 2010, Oracle. All rights reserved. 6
SOAの実装と考え方
在庫管理シ テム
サービスは切り出して持ってくるのではなく、リモートから利用
しかし、各システムごとにプログラム言語もデータタイプもバラバラ
在庫管理システム
ステム
新規構築We
We
受注管理システム既存シ
ebebサササー
サー
顧客管理システム統合販売システム
ビスビス
考え方は「分散オブジェクト指向」に近いが、プログラム言語 デ タタイプに全く依存しないのが特徴
スス
カスタム・サービス群
Copyright© 2010, Oracle. All rights reserved. 7
プログラム言語、データタイプに全く依存しないのが特徴カ タ サ 群
SOAを実現する基盤群プログラム言語でハードコードしてしまっては、
在庫管理
注文
プログラム言語でハ ドコ ドしてしまっては、システムの柔軟性が損なわれる
在庫管理システム
ステム
新規構築
在庫照会
文受付WW
ササ
ビジ
ビジ
受注管理システム既存
シス
納期回答決済手
Web
Web
ササ
サービス
サービス
ジネスプ
ジネスプ
画面
画面
与信チェック
手段確認
サー
サー
ス連
携ス連
携
プロセス
プロセス
面の統
面の統
顧客管理システム統合販売システム
ク受注確定
出荷
ービス
ービス
携基
盤携
基盤
ス基
盤ス基
盤
統合
統合
ビジネス・プロセスとサービス(機能)をビジネス・プロセスとサービス(機能)を分離独立させて システムを構築する手法分離独立させて システムを構築する手法
カスタム・サービス群
荷指示
出荷
スス 盤盤 盤盤
分離独立させて、システムを構築する手法分離独立させて、システムを構築する手法
Copyright© 2010, Oracle. All rights reserved. 8
カスタム サ ビス群
中核技術 Web サービス (API)• 用意された機能を「使う」ではなく、利用したい技術をすきなように「使う」(ユーザー)
• Webページを公開するのではなく、機能を公開(サービス)
機能を公開機能を公開これからは
すきなように!
これまでは・・・・
受動的に利用受動的に利用
Copyright© 2010, Oracle. All rights reserved. 9
Web サービスのギモン?Q. Web サービスAPIで公開してなきゃだめなの?A. 広義には各種技術により再利用可能に構築されているもの含んでいます。本資料では再利
用性の高い連携技術として 企業ユースにおいて有利なWebサービス APIをベースに解用性の高い連携技術として、企業ユ スにおいて有利なWeb サ ビス APIをベ スに解説します。
Q. Web サービスってなにでつくるの?A. Javaをはじめ、PHP、Perlなど、Visual Studioなどにおいては標準技術です。また、やりとりにはHTTPをベースとしたSOAP/RESTプロトコルを利用します。
サ ビ 新 技術Q. Web サービスAPIって新しい技術?A.Web サービス API自体は実は2001年に制定されています。その後プロトコルの変化、多機
能化がすすみAJAXなどの技術とあわせWeb 2.0を構成する技術となっています。古くて新しい技術です。新しい技術です。
Q. これまでの連携技術となにが違ってなにがいいの?A. CORBAやEJBといった技術が現れては廃れていきました。これらは非常に複雑な構成によ
り、メンテナンス性を損ない、設計が難しいなど普及するにいたっていません。Web サービスはWebサイトの延長線上にあり、敷居が低くオープンな環境から普及しているものです。
Copyright© 2010, Oracle. All rights reserved. 10
Web サービス APIの動作実装形態は何でもよい
Ex. Web, クラサバ形態
ビW bサ ビス
*WSDL①WSDL参照
②機能の公開
態
Web サービス(エンドポイント)
Webサービスクライアント
プログラム
②機能の公開
③機能の利用
メソッド
ロジック
④機能の実行と結果
*WSDL: Webサービス記述言語。参照することで機能、利用方法を公開する
Copyright© 2010, Oracle. All rights reserved. 11
Web サービスAPIの動作(概説)
1 WSDL参照1. WSDL参照• URL/URIとしてアクセスします(エンドポイント)
• http://www.oracle-shop.com/getWebServices?wsdlp p g2. 機能の公開
• WSDLの規約に沿って“機能”を公開します機能3. 機能の利用
1. WSDLに記載された“機能”を抽象化2 抽象化された“機能”にコードを書くことで利用2. 抽象化された 機能 にコ ドを書くことで利用
• 実行プロトコルで実行
4. 実行と結果1. 実行プロトコル形式で渡された機能を与えられた値とともに実行2. 実行結果を実行プロトコルに沿って結果を返却します
Copyright© 2010, Oracle. All rights reserved. 12
機能的Webサービス実装のススメ
中核はXMLを扱う言語/プロト ル• 中核はXMLを扱う言語/プロトコル• 各種言語においても機能別に用意
PHP5のSOAPクライアント実装の例PHP5のSOAPクライアント実装の例
<?php
$client = new SoapClient(“Kensaku.wsdl”); // Soapクライアント関数の実行$ ($params = array(
‘Keyword’ => “日本オラクル株式会社”,) // Webサービスに対するパラメータの設定
$result = $client->SearchRequest($params); // SOAPリクエストの実行print_r($result); // 実行結果を表示(XML);p _ ( ); ( );
?>
Copyright© 2010, Oracle. All rights reserved. 13
統合開発環境の利用
• Webサービス構成に必要な機能を包括• 高速なサービス開発、高機能化への道標
GUIを利用した開発画面開発!
機能/フレ ムワ ク機能/フレームワークを統合!
ウィザード形式でW bサ ビス開発!Webサービス開発!
Copyright© 2010, Oracle. All rights reserved. 14
<I t Pi t H ><Insert Picture Here>
Web サービス
サーバーアプリケーション開発
•Oracle JDeveloperにより開発を行います。
Copyright© 2010, Oracle. All rights reserved. 15
サーバーアプリケーション開発 –概要
Webサ ビス¥→$ レート変換今回作成
するところWebサービス
Copyright© 2010, Oracle. All rights reserved. 16
新規プロジェクトの作成
新規 プ ケ シ①新規アプリケーション
②アプリケーションの作成
アプリケーション名: Exchange
③プロジェクトの作成
すべてのテクノロジ
③プロジェクトの作成
Copyright© 2010, Oracle. All rights reserved. 17
レート変換メソッドの作成①④新規 ⑤新規Javaクラス④新規 ⑤新規Javaクラス
⑥Javaクラス生成名前: RateChange
⑥Javaクラス生成
⑦ソースの自動生成
ソースが自動生成
Copyright© 2010, Oracle. All rights reserved. 18
レート変換メソッドの作成②
⑧レート変換ロジックコーディング⑧
package project1;p g p j
public class RateChange {public RateChange() {}
public long yentodaller(long yen){long daller = 0; //初期化long daller = 0; //初期化long rate = 108; //1ドル108円daller = yen / rate; // 計算return daller; //戻り値
}
}
Copyright© 2010, Oracle. All rights reserved. 19
Webサービスの作成①⑨J2EE W bサ ビスの作成
Webサービス名: RateChange
⑨J2EE Webサービスの作成
SOAP 1 2バインディングSOAP 1.2バインディング
Copyright© 2010, Oracle. All rights reserved. 20
Webサービスの作成②ビ 作成⑩Webサービスの作成 Step1 – Step5
RESTアクセスの有効化
Copyright© 2010, Oracle. All rights reserved. 21
Webサービスの作成③⑩ bサ ビスの作成 S 6 S 8⑩Webサービスの作成 Step6 – Step8
Copyright© 2010, Oracle. All rights reserved. 22
Webサービスの実行
Copyright© 2010, Oracle. All rights reserved. 23
Webサービス(SOAP)のテスト
http://localhost:8988/Exchange-Project1-context-root/RateChangeSoap12HttpPort
10000と入力10000と入力
WebサービスはWeb経由でテスWeb経由でテス
ト可能Copyright© 2010, Oracle. All rights reserved. 24
結果の取得
<env:Envelopexmlns:env="http://www.w3.org/2003/05/soap-
envelope"xmlns:xsd="http://www w3 org/2001/XMLSchema"xmlns:xsd= http://www.w3.org/2001/XMLSchemaxmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"xmlns:ns0="http://project1/types/"><env:Body>y<ns0:yentodallerResponseElement><ns0:result>92</ns0:result>
</ns0:yentodallerResponseElement></env:Body></env:Envelope></env:Envelope>
92ドル
Copyright© 2010, Oracle. All rights reserved. 25
WSDLの参照
http://localhost:8988/Exchange-Project1-context-root/RateChangeSoap12HttpPort?wsdl
定義内容を参照定義内容を参照
Copyright© 2010, Oracle. All rights reserved. 26
【Tips】 RESTアクセス
• SOAPでは、問い合わせをするためにXML形式のフォーマットが常に必要• RESTではURIとしてパラメータを入れることが可能• RESTでは結果が単純なXMLで返されるため扱いが容易
http://localhost:8989/Exchange-Project1-context-root/RateChangeSoap12HttpPort/yentodaller?yen=1000/ g p p /y y
結果が単純なフォーマット結果が単純なフォ マット
Copyright© 2010, Oracle. All rights reserved. 27
Web Serviceサーバーアプリケーション開発 ここまでで作成したところ発 – ここまでで作成したところ
ChageRate()Yentodaller()
Webサ ビス¥→$ レート変換
WebサービスChageRateTypePort
RateChange.wsdl*自動作成
Copyright© 2010, Oracle. All rights reserved. 28
【Tips】JDeveloperで公開可能なロジック
J クラス• Javaクラス• 今回ご紹介の単純な実装
• JMSキュ /トピック• JMSキュー/トピック• キューイング(MQやOracle AQ)
• PL/SQLプロシージャ• PL/SQLプロシ ジャ• Oracle Databaseに実装された手続き言語
• CORBAサーバント・オブジェクトCORBAサ バント オブジェクト• CORBAリモートオブジェクトを公開
• EJB• EJB 1.0/2.0/3.0に対応したアプリに対応し、データベースアプリケーションを即座にWebサービス化が可能
Copyright© 2010, Oracle. All rights reserved. 29
Web Serviceの粒度
• Web Serviceはロジック次第で高機能にも単機能にもなりえる• 実装レベルに応じ粒度という表現をします
粗い
在庫を確認する
発注を行う
月次〆処理の実行
データベース表からデータ取得する
社員情報を取得する
ファイルを取得する
表
細かいCopyright© 2010, Oracle. All rights reserved. 30
細かい
<I t Pi t H ><Insert Picture Here>
Web サービス
クライアントアプリケーション開発
• Oracle JDeveloperにより開発を行います。
HTTP S l t形式で作成します• HTTP Servlet形式で作成します
Copyright© 2010, Oracle. All rights reserved. 31
クライアントの定義
W b S i を利用するアプリケ シ ンをさす• Web Serviceを利用するアプリケーションをさす• 実装形態については技術が利用できる限りどのような携帯でも利用できる帯でも利用できる
JspServlet
Web Service
javaVisual Basic/C#
リッチクライアント
Copyright© 2010, Oracle. All rights reserved. 32
Web Serviceクライアントアプリケーション開発 概要発 –概要
Webサ ビス¥→$ レート変換
Webサービス
今 作成 値の入力&結果取得S l
Webサービスクライアント今回作成
するところ値の入力&結果取得Servlet
Webサ ビスクライアント
Copyright© 2010, Oracle. All rights reserved. 33
新規プロジェクトの作成
①新規プロジェクトの作成
②Webプロジェクトの作成②Webプロジェクトの作成
Copyright© 2010, Oracle. All rights reserved. 34
Webプロジェクトウィザード③ウィザードの実行
Copyright© 2010, Oracle. All rights reserved. 35
Webサービスプロキシの作成④Webサービスプロキシの作成
Webサ ビスプロキシとは?Webサービスプロキシとは?・プログラムから簡単扱えるようにWebサービス
APIをラッピングしたコード
Copyright© 2010, Oracle. All rights reserved. 36
Webサービスプロキシの作成②⑤Webサ ビスプロキシの作成 Step1 Step3⑤Webサービスプロキシの作成 Step1 – Step3
http://localhost:8988/Exchange-Project1-context-root/RateChangeSoap12HttpPort?wsdlroot/RateChangeSoap12HttpPort?wsdl
Copyright© 2010, Oracle. All rights reserved. 37
Webサービスプロキシの作成③⑤Webサ ビスプロキシの作成 Step4 Step6⑤Webサービスプロキシの作成 Step4 – Step6
Copyright© 2010, Oracle. All rights reserved. 38
Servlet作成⑥HTTPサ ブレットの追加⑥HTTPサーブレットの追加
ここから実際に処理を行うクライアントServletを開発します。
Copyright© 2010, Oracle. All rights reserved. 39
Servlet開発①⑦HTTPサーブレット作成ウィザード Step1 – Step3
Copyright© 2010, Oracle. All rights reserved. 40
Servlet: コード追加- Webサービスプロキシのコード追加 -- Webサ ビスプロキシのコ ド追加 -
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException IOException HttpServletResponse response) throws ServletException, IOException
{response.setContentType(CONTENT_TYPE);PrintWriter out = response.getWriter();RateChangeSoap12HttpPortClient my_port;
try {my_port = new RateChangeSoap12HttpPortClient();long a = my_port.yentodaller(231421);
out.println("<html>");out.println("<head><title>Servlet1</title></head>");out.println("<body>");out.println(a + "Daller(s)");out.println("</body></html>");out.close();
} catch (Exception e) {out.println(e);
}}
Copyright© 2010, Oracle. All rights reserved. 41
実行および結果
Web画面に結果が返されます。
Copyright© 2010, Oracle. All rights reserved. 42
SOAのリファレンスアーキテクチャ~Web Serviceの利用方法~利用方法
受注担当者
画面
( ンポジ ト
顧客管理画面 受注画面 精算処理画面•業務実行に必要な機能を集約した、ユーザ
経理担当者
BPELBPEL ジジ
(コンポジット・アプリケーション) 注文
Call
顧客情報
取引履歴
在庫引当
売掛計上 完了
売掛確認
請求書作成
・・・ごとのワークスペースを提供
•業務処理手順(ビジ顧客情報確認プロセス 受注プロセス 請求プロセス
BAMBPELBPELエンジンエンジン
プロセス
(BPM(BPEL)およびBAM)
•業務処理手順(ビジネスプロセス)を定義
•要求に応じた自動実行とモニタリング
サービスサービスリポジトリ
システム間連携
(ESB:Enterprise
Enterprise Service BusEnterprise Service Bus•ビジネスプロセスとシステム機能の疎連携
サービス
EnterpriseService Bus)
•実際に業務処理を行
.Net ERPJ2EE
顧客管理サービス群
販売管理サービス群
在庫管理サービス群
Host
会計管理サービス群
売上管理サービス群
・・・(Webサービス)
実際に業務処理を行うためのシステム機能を、標準化された仕様で公開
システムレイヤ
Copyright© 2010, Oracle. All rights reserved. 43
まとめ
W b S i は難しくありません• Web Serviceは難しくありません• 実装方法は言語ごと使いやすくなっています実装する機能は現在おもち キ 延長線上にありま• 実装する機能は現在おもちのスキルの延長線上にあります
Oracleでは開発環境から 実行基盤 SOA基盤までト• Oracleでは開発環境から、実行基盤、SOA基盤までトータルにご支援可能です
Copyright© 2010, Oracle. All rights reserved. 44
Oracle Direct Seminar コースフローSOA編
Oracle Direct Seminar
編開発編
超入門!SOAって何だ!?
「SOAって何?? 」という方はこちらから
実践SOA環境構築!!
SOA最前線!!現場で起きたホントのところ
超入門!SOAって何だ!?WEBサービス開発入門
実践SOA環境構築!!BPELプロセスマネージャ開発入門
SOAを実装する!! オペレーションコストを
削減する画面統合テクノロジ
アプリケーション統合編
SOAを実装する! Oracle AIAで完成するSOA
削減する画面統合テクノロジー
基盤のためのMDM
ITキーワード早分かり!! ”マスターデータ統合”の勘ドコロ
Oracle AIAで完成するSOA
Copyright© 2010, Oracle. All rights reserved. 45
OTNOTN掲示版のご紹介掲示版のご紹介
・セミナー中に解消できなかった疑問点を解消したい!・セミナー終了後に疑問点が出てきた!
このようなお客様に
・一般的なその解決方法などを知りたい!
このようなお客様に、Oracle Technology Network(OTN)の掲示版の活用をお薦めします。掲示版の活用をお薦めします。
http://otn.oracle.co.jp/forum/index.jspa?categoryID=2
本セミナーに関連する質問については、OTN掲示版の「アプリケーションサーバーの部屋」へ投げてみてください
※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。ただ 過去の履歴を見ると 質問の大多数に関してなんらかの回答が書き込まれております
「アプリケ ションサ バ の部屋」へ投げてみてください。
Copyright© 2010, Oracle. All rights reserved. 46
ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。
OTNOTNセミナーセミナー オンデマンドオンデマンド コンテンコンテン期間限定にて ダイセミの人気セミナ を動画配信中!!
http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html
期間限定にて、ダイセミの人気セミナーを動画配信中!!ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。
http://www.oracle.com/technology/global/jp/ondemand/otn seminar/index.html
※掲載のコンテンツ内容は予告なく変更になる可能性があります。いずれも期間限定での配信です 気になる ンテンツは早めにダウンロ ド頂くことをお勧めいたします
Copyright© 2010, Oracle. All rights reserved. 4747
いずれも期間限定での配信です。気になるコンテンツは早めにダウンロード頂くことをお勧めいたします。
ITプロジェクト全般に渡る無償支援サービスOracle Direct Conciergeサ ビスメニュ
業務改善計画の作成支援• 業務診断サービス• BIアセスメントサ ビス
Oracle Direct Conciergeサービスメニュー
経営企画
• BIアセスメントサービスシステム運用状況の診断•パフォーマンス・クリニック・サービス•システム・セキュリティ診断サービスデ タ管理最適化サ ビス
運用 IT 企画システム企画の作成支援•業務診断サービス•BIアセスメントサービス
•データ管理最適化サービス
構築 設計RFP/提案書の作成支援
システム構築時の道案内•Access / SQL Serverからの移行•MySQL / PostgreSQLからの移行
•BIアセスメントサービス•仮想化アセスメントサービス•Oracle Database 構成相談サービス•Oracle Database 高可用性クリニック
MySQL / PostgreSQLからの移行•Oracle Database バージョンアップ支援•Oracle Developer Webアップグレード•システム連携アセスメントサービス
Copyright© 2010, Oracle. All rights reserved. 4848
あなたにいちばん近いオラクル
O l Di tOracle Directまずはお問合せくださいまずはお問合せください
Oracle Direct 検索
まずはお問合せくださいまずはお問合せください
O ac e ect 検索
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい
Web問い合わせフォーム フリーダイヤル
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28専用お問い合わせフォームにてご相談内容を承ります。
※フォームの入力には Oracle Direct Seminar申込時と同じ
0120-155-096※月曜~金曜 9:00~12:00、13:00~18:00※フォ ムの入力には、Oracle Direct Seminar申込時と同じ
ログインが必要となります。※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。
※月曜 金曜 9:00 12:00、13:00 18:00
(祝日および年末年始除く)
Copyright© 2010, Oracle. All rights reserved. 4949
以上の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメンできません。以下の事項は、マテリアルやコ ド、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。ては、弊社の裁量により決定されます。
Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標の可能性があります。
Copyright© 2010, Oracle. All rights reserved. 5050