第13回 2007年7月20日 応用Java (Java/XML).

Slides:



Advertisements
Similar presentations
1 WSIF における Web サービス・メソッドの自動設 定 2004 年 3 月 23 日 越田高志 松江工業高等専門学校 情報工学科 電子情報通信学会 2004年総合 大会.
Advertisements

© Copyright the Seasar Foundation and the others all rights reserved. 1 S2Axis2 による Web2.0 らくらく実践 2006/05/14 Seasar Conference 2006 Spring 鈴木 貴典.
応用 Java(Java/XML) 第1回 2006 年4月 14 日. 講義内容 (4/14) なぜ Java が重要なのか? なぜ XML が重要なのか? Java と XML の関係 パーサの概念 XML 関連のパッケージについて ファクトリのデザインパターン.
Web サービス II ( 第 13 回 )‏ 2008 年 1 月 9 日 植田龍男. 本日の目的 Web サービスの歴史と将来の展望 (1) WSDL 2.0 の登場 ‏ Jersey プロジェクト Ver 0.5 による開発.
応用 Java(Java/XML) 第 10 回 2006 年 7 月 14 日 植田龍男. 後半の内容の予定 XPath (6/9) 、 XSLT (6/16) 名前空間 (Namespace) (6/16) XML 文書の妥当性の検証 (6/23) DTD, W3C XML Schema SOAP.
WebサービスII (第12回)‏ 2007年12月19日 植田龍男.
2006年9月27日 植田龍男 Webサービス II (第1回) 年9月27日 植田龍男.
S. Tsuboi(1), H. Mizutani(1), N. Takeuchi(2) T. Arai (3), Y. Yanaka(3)
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
第9回 2007年6月22日 応用Java (Java/XML).
2006年11月15日 植田龍男 Webサービス II (第8回) 年11月15日 植田龍男.
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
Visual Studio 2005による XML Web サービス入門
Java I 第2回 (4/18)
NC-2 情報通信基礎実験 WEBデザイン基礎実験 (2日目) 担当:清水,田代 副手:浦辺,石井.
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
WebサービスII (第10回) 2007年11月28日 植田龍男.
早稲田大学大学院理工学研究科 情報科学専攻修士2年 後藤滋樹研究室 坂本義裕
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
第5回 2007年5月25日 応用Java (Java/XML).
第4回 2007年5月11日 応用Java (Java/XML).
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
Webサービスポリシー概要 (WS-Policy, WS-PolicyAttachment, WS-SecurityPolicy)
第4回 個人の動画配信補足のためのWeb構築
2005年11月17日 Webサービス II (第6回) 年11月17日.
JavaとXML 2005年4月14日.
WebサービスII (第8回) 2007年11月14日 植田龍男.
HTTPプロトコルとJSP (1) データベース論 第3回.
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
2005年10月6日 植田龍男 Webサービス II (第2回) 年10月6日 植田龍男.
RMI ソフトウェア特論 第6回 /
Webサービスを使った クライアント・プログラム
第12回 2007年7月13日 応用Java (Java/XML).
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
第10回 2007年6月29日 応用Java (Java/XML).
SOAP/UDDI/WSDLによるB2Bシステムの開発
SOAP/UDDI/WSDLによるB2Bシステム構築の一事例
Webサービス II(第3回) 2007年10月10日.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
第11回 2007年7月6日 応用Java (Java/XML).
第8回 2007年6月15日 応用Java (Java/XML).
第3回 2007年4月27日 応用Java (Java/XML).
WebサービスII (第7回) 2007年11月7日 植田龍男.
第7回 2007年6月8日 応用Java (Java/XML).
第6回 2007年6月1日 応用Java (Java/XML).
第1回 2007年4月13日 応用Java (Java/XML).
Javaによる Webアプリケーション入門 第6回
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
Javaによる Webアプリケーション入門 第2回
第2回 2007年4月20日 応用Java (Java/XML).
XMLゼミ 1.3 XML文書の表示 1.4 XMLの役割 1.5 XMLとプログラミング M2 正木 裕一.
独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema
2006年11月8日 植田龍男 Webサービス II (第7回) 年11月8日 植田龍男.
XML Schema (1) ソフトウェア特論 第3回 /
「XML技術者育成教材」 -XMLエンジニア育成のための実践テキスト-
~let's take fun when you can do it~
応用Java(Java/XML) 第7回 2006年6月16日 植田龍男.
Servlet J2EE I (データベース論) 第12回 /
Servlet データベース論 第6回.
情報処理基礎A・B 坂口利裕 横浜市立大学・商学部
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
地域生活支援システムの開発 越田研究室 j0431 野津洋二.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
JSPの基本 J2EE I (データベース論) 第8回 /
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
2006年10月18日 植田龍男 Webサービス II (第4回) 年10月18日 植田龍男.
1.2 言語処理の諸観点 (1)言語処理の利用分野
応用Java(Java/XML) 第8回 2005年6月9日 植田龍男.
応用Java(Java/XML) 第8回 2005年6月23日 植田龍男.
Presentation transcript:

第13回 2007年7月20日 応用Java (Java/XML)

前回までやったこと 「XMLパーサ」-- Java でXMLを処理 javax.xml.stream パッケージのパーサ SAX(Simple API for XML) のパーサ DOM(Document Object Model)のパーサ パーサの応用 : 検索,フィルタ的な処理 、視覚化 パーサの上位のサービス XPath , XSLT スキーマ言語と妥当性の検証 JAXB( Javaとスキーマとの変換)

後半の内容の予定 XPath (6/15) XSLT (6/22) 名前空間(Namespace) (6/22) XML文書の妥当性の検証(6/29) XML Schema JAXB (7/6, 7/13) SOAP, Webサービ(7/20) 試験(7/27)

本日(7/20)の講義内容 SOAPメッセージ javax.xml.soap パッケージ SOAPとWebサービス SOAPとWSDL (Web Service Definition Language)

その前に前回の実習の補足 ツール schemagen schemagen persen/*.java サンプルでは person.Person.java , person.Name.java

パッケージ(package) package person; package jp.ac.wakhok.tatsuo; クラスを分類する仕組み 階層を持つ「住所」のようなもの Name

前回までの課題でも 複数の Name クラスが登場 . --+-- Name.java (パッケージなし) | +-- person --+-- Name.java( パッケージあり) 混乱なく区別するために(パッケージ名から) Name name = new Name(); person.Name name = new person.Name();

パッケージなしの場合 常にカレントディレクトリ(.) でOK vi Name.java javac Name.java java Name

パッケージありの場合 パッケージ=ディレクトリを意識 cd person vi Name.java cd .. javac person/Name.java java person.Name

クラスパス(CLASSPATH) パッケージ=ディレクトリをたどるスタート地点を指定 通常はカレント ( . ) が基本 通常はカレント ( . ) が基本 複数の場所を指定も可能 CLASSPATH=.:/usr/java/lib:../.. (Windows では区切り文字は ; になる)

XML技術の階層構造 パーサ(最下層の字句解析) SAX, DOM javax.xml.stream 一般的なXML処理 検索(XPath)、変換(XSLT), JAXB スキーマ言語( W3C XML Schema) メッセージの交換(SOAP) Webサービスなど

SOAPとは? XMLの形式でメッセージを交換 中立なデータ形式(事実上の標準) システム、言語、アプリケーション非依存 http://www.w3.org/2000/xp/Group/ メッセージが「構造」を持つ データ構造の定義は XML Schema で 処理の呼び出しも表現(JAX-RPC)

そもそも SOAP とは何の略? SOAP(Simple Object Access Protocol) 登場当時の認識 現在では広範囲の応用範囲を支える基礎技術 「SOAP は SOAP」

SOAP のメッセージの構造 <SOAP-ENV:Envelope xmlns:SOAP-ENV= “ http://schemas.xmlsoap.org/soap/envelope/”>   <SOAP-ENV:Header> </SOAP-ENV:Header> <SOAP-ENV:Body> <mymessage> Hello </mymessage> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

SOAPメッセージの例(Google) <SOAP-ENV:Envelope xmlns:SOA-ENV ="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:doGoogleSearch xmlns:ns1="urn:GoogleSearch“ SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <key xsi:type="xsd:string"> 8NfcnBhQFHL4QZbU3pX21B7NVhVZ+R+a</key> <q xsi:type="xsd:string">Tatsuo Ueda</q>

Webサービスでの例(1) Google Web Service の定義(WSDL)から <message name="doSpellingSuggestion"> <part name="key" type="xsd:string"/> <part name="phrase“ type="xsd:string"/> </message> メソッドの呼び出しを表現

Webサービスでの例(2) <message name="doSpellingSuggestionResponse"> <part name="return“ type="xsd:string"/> </message> メソッドの返り値を表現

Javaに「翻訳する」と <operation name="doSpellingSuggestion"> <input message="typens:doSpellingSuggestion"/> <output message="typens:doSpellingSuggestionResponse"/> </operation> xsd:string -> Java の Stringクラス String result = doSpellingSuggestion( String key, String phrase );

Javaに「翻訳する」と(2) 複雑な型は Schema で定義可能 (Javaのクラスに対応) <xsd:complexType name="ResultElement"> <xsd:all> <xsd:element name="URL“ type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> : </xsd:all> </xsd:complexType>

Java SE 6 : javax.xml.soap SOAPMessage クラス SOAPのメッセージを表す(送受信とも) getSOAPHeader(), getSOAPBody(), addAttachment(), getAttachment() など、メッセージ操作のメソッド群 SOAPConnection クラス 通信を実行 call() メソッド SOAPMessage response = sc.call( SOAPMessage request, Object url );

Java SE 6 : javax.xml.soap SOAPMessage, SOAPConnection いずれもFactoryのパターンで利用 MessageFactory mf = MessageFactory.newInstance(); SOAPMessage request = mf.createMessage( new MimeHeaders(), new FileInputStream( source ) ); SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance() SOAPConnection connection = scf.createConnection();

試験(7/27)について 簡単なオンラインの試験(実習室、LMS) 登場した用語とその意味(用途、存在理由) 「パーサ」「XPath」「XSLT」「SOAP」 「スキーマ言語」「妥当性」 Javaの処理とパッケージ javax.xml.stream, javax.xml.stream.events javax.xml.binding, javax.xml.namespace どんな用途で、どんなクラスがあったか? 試験+13回の課題提出で評価