28
わわわわわわ わわわわわ #25 ASP.NET 2.0 わわわ Web わわわわわわわ 2008 わ 10 わ 18 わ わわわわわわわわ

ASP.NET 2.0 による Web サービスの構築

  • Upload
    tana

  • View
    2.539

  • Download
    0

Embed Size (px)

DESCRIPTION

ASP.NET 2.0 による Web サービスの構築. 2008 年 10 月 18 日 こくぶんまさひろ. 自己紹介. 三十路の仲間入りをしました 社会人9年生です 5年目位まで、ずっとテスターをやってました 去年まで ASP.NET な某有名システムの開発に   携わっていました 最近は公官庁系の財務システムのハード更改作業で調べものばかりしています 好きな言語は Perl, C# です ここのところ、頑張って VB もやってます 次は Windows Mobile と WPF をやってみようかなとか. 自己紹介. はてなで blog 書いてます - PowerPoint PPT Presentation

Citation preview

Page 1: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

ASP.NET 2.0 によるWeb サービスの構築

2008 年 10 月 18 日こくぶんまさひろ

Page 2: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

自己紹介• 三十路の仲間入りをしました• 社会人9年生です• 5年目位まで、ずっとテスターをやってました• 去年まで ASP.NET な某有名システムの開発に  携わっていました• 最近は公官庁系の財務システムのハード更改作業で調べ

ものばかりしています• 好きな言語は Perl, C# です• ここのところ、頑張って VB もやってます• 次は Windows Mobile と WPF をやってみようかなと

Page 3: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

自己紹介• はてなで blog 書いてます http://d.hatena.ne.jp/masa-k/• Web サイトもあります http://mk-net.jp/• 技術系サイトも構築予定(絶賛停滞中 ^^;; ) http://dmng.jp/

• Twitter もやってます♪ http://twitter.com/masak

Page 4: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

Agenda• 自己紹介• Web サービスとは

– Web サービスの仕組み– Web サービスの種類

SOAPRESTRPC など

• ASP.NET 2.0 による実装– SOAP– REST

Page 5: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

Web サービスとは

Page 6: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

【おさらい】HTTP (HyperText Transfer Protocol)

リクエスト(ex. http://example.jp/foo/buz.html)

ファイル(ex. HTML 文書 , 画像ファイル )

動的な処理(リクエストの情報を処理 etc. )が出来ない!

Page 7: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

【おさらい】CGI (Common Gateway Interface)

リクエスト(ex. http://example.jp/foo/buz.cgi?var=hoge)

ファイル(ex. HTML 文書 , 画像ファイル )

perl.exe

var=hoge を処理リクエスト毎にプロセスが起動する。

Page 8: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

【おさらい】CGI (Common Gateway Interface)

perl.exe

大量アクセスがあるとリソースが。。。

perl.exeperl.exe

perl.exeperl.exeperl.exe

perl.exeperl.exe

Page 9: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

【おさらい】Web アプリケーション (JSP, ASP.NET)

リクエスト(ex. http://example.jp/foo/buz.aspx?var=hoge)

ファイル(ex. HTML 文書 , 画像ファイル )

inetinfo.exe

var=hoge を処理起動するプロセスはひとつ。

Page 10: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

【おさらい】 Web アプリケーション (JSP, ASP.NET)

プロセスは一つ。スレッドで管理する。

inetinfo.exe

Page 11: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

【ちなみに】FastCGI

本質的には変わっていない……よね。

perl.exeperl.exe

perl.exeperl.exeperl.exe

perl.exeperl.exe

perl.exe

Page 12: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

Web サービス

リクエスト(ex. http://example.jp/foo/buz?var=hoge)

XML データ

hoge.exe

var=hoge を処理CGI や Web アプリケーションと同じ。

Page 13: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

Web サービスの種類

Page 14: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

Web サービスの種類• SOAP• REST• RPC etc..

Page 15: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

SOAP

Page 16: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

SOAP(Simple Object Access Protocol)

hoge.exe

リクエストを処理

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <getProductDetails xmlns="http://ws.example.jp/soap"> <productId>827635</productId> </getProductDetails> </SOAP-ENV:Body></SOAP-ENV:Envelope>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productId>827635</productId> <description>3-Piece luggage set. Black Polyester.</description> <price>96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>

Page 17: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

SOAP

様々な型のデータのやり取りが可能W3C によって仕様が策定、公開されているASP.NET でのサポートが充実している

•利点

通信の双方で XML 型のデータをやり取りするため、通信量が大きい

実装が複雑 (ミドルウェアがないと扱いにくい)

•欠点

Page 18: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

REST

Page 19: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

REST(REpresentational State Transfer)

リクエスト(ex. http://example.jp/foo/buz?var=hoge)

XML データ

hoge.exe

var=hoge を処理

Page 20: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

REST

利用側は URI とパラメータでデータを送るため、通信量が SOAP より少なくて済む

任意のデータ形式を実装できる利用者側の実装が楽

•利点

実装側で任意の形式で返却するため、仕様がバラバラになりやすい(亜種の大量発生)

•欠点

Page 21: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

ASP.NET 2.0 による実装

Page 22: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

SOAP

Page 23: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

SOAP

Page 24: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

Demo~ SOAP ~

Page 25: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

REST

Page 26: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

REST• ASP.NET で RESTful な Web サービスを作成するのは

結構大変• 外部パッケージなどを利用すれば、 URL によるサービ

スの指定等を含めて対応は可能

今回は、外部パッケージは利用せず、 ASP.NET のみで

単純に URI パラメータで値を渡して XML 型で返却する

ところだけを紹介。

Page 27: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

Demo~ REST ~

Page 28: ASP.NET 2.0 による Web サービスの構築

わんくま同盟 東京勉強会 #25

今日のお話(まとめ)• Web サービスは(そんなに)難しくない• SOAP 型サービスなら ASP.NET で簡単に作れる• REST 型サービスも Web アプリケーションとほぼ一緒

Web サービスを使って情報の相互提供を進めよう!