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

製品、アイデアの販売企画

N/A
N/A
Protected

Academic year: 2021

シェア "製品、アイデアの販売企画"

Copied!
26
0
0

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

全文

(1)

第4回 J2EEカンファレンス

JAX-RPC 2.0仕様策定メンバが語る

Webサービス技術

~ JavaOne 2004でベールを脱いだJ2EE 5.0のコア技術、JAX-RPC新仕様 ~

2004年7月14日

株式会社 NTTデータ

技術開発本部

木村 利幸 / <[email protected]>

Java Community Process

JSR-224 Expert Group Member

Apache Axis Committer

Toshi <[email protected]>

(2)
(3)

-本日の

本日の

Agenda

Agenda

!

JavaOne 2004で見えてきたもの

!

Java 2 PlatformとJ2EE

!

Webサービスの定着度

!

EJB拡張から見た J2EE 5.0までの進化

!

JAX-RPC 2.0とは

!

JAX-RPCの動作概要

!

JAX-RPC 2.0のゴール

!

JAX-RPC 2.0策定状況

!

JAX-RPCとWebサービス関連仕様の関係

!

新旧JAX-RPC仕様の比較

!

JAX-RPC 2.0実装方法

!

関連新着情報

    

 

 etc.

(4)
(5)

-JavaOne 2004

JavaOne 2004

見えてきたもの

見えてきたもの

!

J2EEの次期バージョン『J2EE 5.0』の発表

!

正式提供は 2005年後半 を予定

!

J2EE 5.0の主な技術要素

!

ベース仕様:

JSR-52, 127, 181, 220, 222, 224, 245

!

特に重要と列挙された技術

!

EJB (Enterprise JavaBeans) 3.0 : [

JSR-220

]

!

JAXB 2.0 : [

JSR-222

]

!

Webサービス用APIである

JAX-RPC 2.0

: [

JSR-224

]

!

JavaコミュニティとOSSコミュニティの連携強化

!

J2SE 5.0(Tiger)は年内に正式リリース

JSR

・・・ Java Specification Requestの略。Java全般に関する標準化団体である

        JCP (Java Community Process) に提案された仕様案を指す。

(6)

Java 2 Platform

Java 2 Platform

J2EE

J2EE

( Javaプラットフォームを支える3本柱 )

J2SE

J2SE

J2ME

J2EE

Enterprise Edition

Standard Edition

Micro Edition

EJB

EJB

JAXB

JAXB

JAX-RPC

JAX-RPC

Webサービスを

Webサービスを

容易に実現する

容易に実現する

Java 2 Platform

(7)

過大評価傾向

過大評価傾向

過小評価傾向

過小評価傾向

・HTTP

・HTTP

・SMTP

・SMTP

・FTP

・FTP

・XML

・XML

メディアによる

メディアによる

流行期

流行期

メディアによる

メディアによる

反動期

反動期

真の流行期

真の流行期

一般的なハイプ曲線

一般的なハイプ曲線

Web Service

Web Service

ハイプ曲線

ハイプ曲線

(

(

出典

出典

:

:

ガートナー

ガートナー

)

)

Web

Web

サービス

サービス

の基盤技術

の基盤技術

Web

Web

サービスの定着度

サービスの定着度

-

-

ハイプ曲線へのマッピング

ハイプ曲線へのマッピング

-

-Now

Now

1999 2000 2001 2002 2003 2004 2005

1999 2000 2001 2002 2003 2004 2005

(

)

【時間】

黎明期

(レイメイキ)

流行期

流行期

反動期

反動期

啓蒙期

啓蒙期

安定期

安定期

(8)

J2EE 1.2

J2EE 1.2

EJB

EJB

拡張から見た

拡張から見た

J2EE 5.0

J2EE 5.0

までの進化

までの進化

J2EE 5.0

J2EE 5.0

J2EE 1.3

J2EE 1.3

J2EE 1.4

J2EE 1.4

EJB 3.0

EJB 2.0

EJB 2.1

EJB 1.0

EJB 1.1

Before J2EE

After J2EE

POJO

JSR-101

JSR-109

JSR-224

JSR-181

JSR-222

/

(

)

JAX-RPC 1.1

JAX-RPC 2.0

POJO・・・Plain Old Java Objectの略。EJBと対比して用いられ、

        普通のJavaオブジェクトのことを指す。

JVM境界突破

パフォーマンス改善

ネットワーク境界突破

簡易開発(EoD)提供

(

(

RPC [

RPC [

遠隔手続き呼出し

遠隔手続き呼出し

]

]

を切り口としての分析

を切り口としての分析

)

)

【時間】

(9)
(10)

-JAX

JAX

-

-

RPC 2.0

RPC 2.0

とは

とは

!

Java API for XML-Based RPC ver 2.0 の略

!

Webサービスを実現するためのJava API標準仕様

!

JCP (Java Community Process) で標準化実施

!

現行仕様はJAX-RPC 1.1 (JSR-101) で、ver 2.0策定中

!

JAX-RPC ver 2.0の開発コードは JSR-224

!

JSR-224は、同分野の専門家を集めてExpert Group(EG)

を構成し、標準化を行っている

Sun

NTTデータ

・・・

JSR

1

JSR

101

JSR

224

選抜メンバ参加

選抜メンバ参加

選抜メンバ参加

標準化層

標準化層

標準化層

(11)

JAX

JAX

-

-

RPC

RPC

動作概要

動作概要

JVM

Webコンテナ

<? <?xml version="1.0"?>xml version="1.0"?> <SOAP

<SOAP--ENV:EnvelopeENV:Envelope xmlns:SOAPxmlns:SOAP--ENV=ENV=   "http://schemas.xmlsoap.org/soap/envelope/">

"http://schemas.xmlsoap.org/soap/envelope/">

<SOAP

<SOAP--ENV:Header> </SOAPENV:Header> </SOAP--ENV:Header>ENV:Header>  

 <SOAP<SOAP--ENV:Body>ENV:Body>

<m:GetLastTradePrice xmlns:m="Some

<m:GetLastTradePrice xmlns:m="Some--URI">URI">

<symbol>DIS</symbol>

<symbol>DIS</symbol>

</m:GetLastTradePrice>

</m:GetLastTradePrice>

</SOAP

</SOAP--ENV:Body>ENV:Body> </SOAP

</SOAP--ENV:Envelope>ENV:Envelope>

クライアント側

JAX-RPC

ランタイム

JAX-RPC API

サーバ側

JAX-RPC

ランタイム

JAX-RPC API

JVM

クライアント

サーバ

スタブ

Webサービス

(エンドポイント)

(

(

JAX

JAX

-

-

RPC 1.1

RPC 1.1

仕様で示される

仕様で示される

JAX

JAX

-

-

RPC

RPC

動作モデル

動作モデル

)

)

クライアントAP

WSDL

(Webサービス記述言語)

XML

XML

プロトコル

トランスポート

(12)

JAX

JAX

-

-

RPC 2.0

RPC 2.0

ゴール

ゴール

(

(

主な内容のみ抜粋

主な内容のみ抜粋

)

)

!

各種業界標準への追従

!

SOAP 1.2

!

WSDL 2.0

!

WS-I * Profile対応

(Basic Profile 1.1, Attachment Profile 1.0, Basic Security Profile 1.0)

!

JCP策定の他JSRへの追従

!

JAXB

(JSR-222)

:

Java <-> XML (

順序性なしの相互変換 )

!

Web Services Metadata for Java Platform:

アノテーション

  (JSR-181)

!

新領域への挑戦

!

Asynchrony:

非同期性の実現

!

Non-HTTP Transports: プロトコル対応拡張

(13)

JAX

JAX

-

-

RPC 2.0

RPC 2.0

策定状況

策定状況

日付

JCPステージ名

2004年6月23日

Early Draft

2004年?月予定

Public Draft

2005年?月予定

Proposed Final Draft

2005年春予定

Final Specification

!

仕様化スケジュール

<http://www.jcp.org/aboutJava/

communityprocess/edr/jsr224/>

下記アドレスからEarly Draft版の仕様を

ダウンロード可能 [英語版のみ]:

!

Expert Groupメンバ

(

: Apache Axis Committer、

: WS-I WGメンバ、

: WS-I企業会員

)

Chavdar Baikov (SAP AG)

Russell Butek (IBM)

Manoj Cheenath (BEA Systems)

 

Ugo Corda (SeeBeyond Technology Corp)

Glen Daniels (Sonic Software)

Alan Davies (SeeBeyond Technology Corp)

Jim Frost (Art Technology Group Inc)

Kevin R. Jones (Developmentor)

Toshiyuki Kimura (NTT Data Corp)

Doug Kohlert (Sun Microsystems, Inc)

Daniel Kulp (IONA Technologies PLC)

Sunil Kunisetty (Oracle)

Changshin Lee (Tmax Soft, Inc)

Srividya Natarajan (Nokia Corporation)

Bjarne Rasmussen (Novell, Inc)

Sebastien Sahuc (Intalio, Inc.)

Rahul Sharma (Motorola)

Rajiv Shivane (Pramati Technologies)

Dennis M. Sosnoski (Sosnoski Software)

Christopher St. John (WebMethods Corporation)

(14)

JAX

JAX

-

-

RPC

RPC

Web

Web

サービス関連仕様の関係

サービス関連仕様の関係

(

(

相互接続性および再利用性確保に向けた取組み

相互接続性および再利用性確保に向けた取組み

)

)

.

.

NET

NET

Java

Java

Axis

Axis

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

実装群

・・・

・・・

W3C

W3C

WS

WS

-

-

I

I

WS

WS

-

-

I Basic Profile

I Basic Profile

WS

WS

-

-

XX

XX

WS

WS

-

-

XX

XX

JCP

JCP

JAX

JAX

-

-

RPC ver 1.0 / 1.1

RPC ver 1.0 / 1.1

現行】

現行】

JAX

JAX

-

-

RPC ver 2.0

RPC ver 2.0

策定中】

策定中】

WS-I準拠実装間での

相互接続性を更に追求

Java実装の相互接続性

及び再利用性を確保

SOAP 1.1 / 1.2

SOAP 1.1 / 1.2

HTTP 1.1

HTTP 1.1

XML 1.0

XML 1.0

XML Schema

XML Schema

(15)

新旧

新旧

JAX

JAX

-

-

RPC

RPC

仕様の比較

仕様の比較

※ JAX-RPC 2.0: 従来通り、POJOによるエンドポイント実装もサポート

※ JAX-RPC 2.0: EJB(Stateless Session Bean)実装もPOJOライクに実装可能

!

J2EE 5.0で採用

!

EJB 3.0

!

J2EE 1.4で採用

!

EJB 2.1

!

1.Xの拡張

!

WS-I Profile群への準拠

!

非HTTPのサポート

!

非同期性の実現 [ invokeAsync() ]

!

初のWebサービス標準API

!

HTTPが必須プロトコル

!

同期型/一方向型通信のみ対応

[ invoke() , invokeOneWay() ]

JAX-RPC 2.0

JAX-RPC 1.X (+ JSR-109)

EBJ

Container

Web

Container

JAX-RPC

Runtime

Client AP

WebService

(Endpoint)

JAX-RPC

Runtime

Stateless

Session Bean

Stub

POJO

(16)

JAXRPC 2.0実装方法

-( その1: アノテーション編 )

※ 以降ご紹介するソースは実装の一部であり、完全なコードではありません。

※ 策定段階の仕様であるため、今後変更される可能性もあります。

(17)

アノテーション技術の導入

アノテーション技術の導入

!

JSR-175としてJava用メタデータのインフラとして標準化中

!

J2SE 5.0 (

“Tiger”)への採用が決定している

!

Javadoc で利用していた

“アノテーション”をJavaコードに適用

!

class、interface、fieldおよびmethodに独自属性が定義可能

!

JSR-181中でWebサービスへの適用方法を標準化中

/***

*

@author Toshiyuki Kimura (

[email protected]

)

*/

public class MyClass {

【参考】

 

既存のアノテーション利用事例

javadoc実行

Author:

Toshiyuki Kimura (

[email protected]

)

Javaソースコード

(18)

Webサービスにおけるアノテーション

Webサービスにおけるアノテーション

POJO

POJO

-

-( JSR-181 : Web Services Metadata for the Java Platform )

作成物

 

J2EE

5.0

以降

J2EE

1.4

以前

Javaソースコード

デプロイ記述子

アノテートされた

Javaソースコード

何がメリットなのか?

@WebService (

name = "EchoService",

targetNamespace = http://www.openuri.org/2004/04/HelloWorld

)

public class EchoServiceImpl {

@WebMethod (

operationName = "echoString",

action= "urn:EchoString "

)

public String echo(String input) {

return input;

}

}

(19)

Webサービスにおけるアノテーション

Webサービスにおけるアノテーション

EJB

EJB

-

-( JSR-220 : Enterprise JavaBeans ver 3.0 )

@WebService

@Stateless

public class CalculatorBean

         implements Calculator {

@WebMethod

public float add (int a, int b) {

return a + b;

}

}

public interface Calculator {

public float add (int a, int b);

}

作成物

 

J2EE

5.0

以降

J2EE

1.4

以前

Javaソース1

(Beanクラス)

デプロイ記述子

アノテートされた

Javaソースコード

Javaソース2

(Homeインターフェース)

Javaソース3

(Remoteインターフェース)

何がメリットなのか?

(20)

JAXRPC 2.0実装方法

-( その2: 非同期API編 )

※ 以降ご紹介するソースは実装の一部であり、完全なコードではありません。

※ 策定段階の仕様であるため、今後変更される可能性もあります。

(21)

クライアント・サイド

クライアント・サイド

非同期

非同期

API

API

ポーリング

ポーリング

-

-javax.xml.rpc.Dispatch disp = service.createDispatch(portName);

JAXRPCContext reqCtx = disp.getRequestContext();

reqCtx.setProperty(...);

Response<Object> res = disp.

invokeAsync(reqMsg);

while ( !

res.isDone()

) {

// ウエイト中の処理内容を記載

}

【注意】

  

現時点で規定されているのは、クライアントサイドの非同期APIのみであり

 サーバサイドの非同期性に関しては言及していない。

(22)

クライアント・サイド

クライアント・サイド

非同期

非同期

API

API

-

-

コールバック

コールバック

-

-javax.xml.rpc.Dispatch disp = service.createDispatch(portName);

JAXRPCContext reqCtx = disp.getRequestContext();

reqCtx.setProperty(...);

MyHandler handler = new MyHandler();

disp.

invokeAsync(reqMsg, handler);

class MyHandler implements

AsyncHandler

<Object> {

public void

handleResponse

(Response<Object> res) {

Source resMsg = (Source)res.get();

JAXRPCContext resCtx = res.getContext();

// 処理結果に関する処理を記載

}

}

(23)
(24)

-Apache Beehive Project

Apache Beehive Project

の発足

の発足

(

(

JSR

JSR

-

-

175, 181

175, 181

実装のフレームワークがオープンソースに

実装のフレームワークがオープンソースに

!! )

!! )

(25)

Apache Axis

Apache Axis

の日本語サイト

の日本語サイト

(

(

待望の

待望の

Axis

Axis

和訳サイトを開設

和訳サイトを開設

)

)

(26)

- The End -

ご清聴ありがとうございました。

本資料で利用される、Sun, Sun Microsystems, Java, J2EEなどの語句は、 Sun Microsystems 社殿の商標もしくは登録商標です。また、それ以外の 製品名等は一般的にそれら各企業の商標ですが、表示を省略しています。

参照

関連したドキュメント

Van de Ven, Compact Complex Surfaces (second enlarged edition), Ergebnisse der Mathematik und ihrer Grenzgebiete (3), 4, Springer-Verlag, 2004..

※ 1

[3] JI-CHANG KUANG, Applied Inequalities, 2nd edition, Hunan Education Press, Changsha, China, 1993J. FINK, Classical and New Inequalities in Analysis, Kluwer Academic

), Principles, Definitions and Model Rules of European Private Law: Draft Common Frame of Reference (DCFR), Interim Outline Edition, Munich 200(, Bénédicte Fauvarque-Cosson

Simon, Herbert A., (997, Administrative Behavior: A Study of Decision-Making Processes in Administrative Organizations,Fourth Edition, New York :

giving me permission to consult manuscripts: the Adyar Library, Chennai; the Government Oriental Manuscript Library, Chennai; the Oriental Research Institute &amp; Manuscript

The present edition is a continuation of the edition of the vijñānādvaitavāda section of the Nyāyamañjarī published in Kataoka 2003, a revised version of which is available

After having refuted the Bhāṭṭa view of intrinsic validity, Jayanta (in section 4.3) defends his view of extrinsic validity from the criticism by the Bhāṭṭas and establishes