- PR -

SQL SERVERとWEBサービスについて

1
投稿者投稿内容
るぷ犬
常連さん
会議室デビュー日: 2004/11/10
投稿数: 46
投稿日時: 2007-03-22 17:02
(新システム)
開発言語:C# 2005
DB  :SQL SERVER 2005
WEB :ASP.NET 2.0


(旧システム)
開発言語:C# 2002
DB  :SQL SERVER 2000
WEB :ASP.NET 1.0



いつもお世話になっております、るぷ犬です。



現在、旧システムの開発環境、実行環境の変更、機能追加というシステムの調査、
開発を行っています。

そのシステムのソリューションのあるひとつのプロジェクト内に
Web Referencesというフォルダがあります。


WEBサービスだと思うのですが、そこにひとつのフォルダがあり、
WSDLファイルとmapファイルがぶら下がっています。
最初は他のソリューション(オンラインなど)か、もしくはフォルダの
プロパティーの『Web 参照 URL』にあるのかと思っていたのですが、
WEBサービスのフォルダ名を探してもありませんでした。


ずっと(1ヶ月ぐらい。。。汗)、探しているうちにSQL SERVER 2000で、
既存のストプロをWEBサービス化できるということが分かりました。


なせ、そういう方向で探していたかというと、WSDLファイルの中にストプロと
同じ名称が入っていたからです。
ただ単に、合わせていたというだけかもしれませんが、あわせるには何か意味が
あるはずだと思うのです。


ここで質問なのですが、SQL SERVER 2000のストプロをWEBサービス化
されているかを確認するにはどうしたらいいのでしょうか。


ご存知の方、どうぞ、よろしくお願いします。

(XML & SOA会議室と迷いましたが、.NETということで、こちらに投稿致します)
がんふぃーるど
ベテラン
会議室デビュー日: 2006/06/05
投稿数: 58
お住まい・勤務地: さいたま
投稿日時: 2007-03-22 19:37
お世話になってます。がんふぃーるどです。

SQLXMLはほとんど使ったことが無いので、細かいところはお答えすることができないかもしれませんが、どのストアドがWebサービスとして公開されているかは次の手順で確認できるはずです。


  1. SQLXMLのIISサポート構成を開く
  2. ストアドをWebサービスとして公開している仮想ディレクトリを探し出し、プロパティを開く
  3. [仮想名]タブを開く
  4. [定義済み仮想名]の中で種類がSOAPのものを開く(複数ある場合も)
  5. [構成]を開けばメソッドというのがあるので、それら一つ一つがWebサービスとして公開されているストアドとなります(SP/テンプレートの項目が実際のストアド名)。


多分これでいけると思います。
るぷ犬
常連さん
会議室デビュー日: 2004/11/10
投稿数: 46
投稿日時: 2007-03-23 09:33
がんふぃーるどさん、ありがとうございます。


2000の方は本番マシンで、かつ、すでに運用されているものなので
すぐには確認ができません。(保守サーバーもあてにならないという状況。。。汗)


ところで、この『SQLXMLのIISサポート構成』というのは、全てのプログラムの
SQL SERVER 2000から、選択できるツールですよね?

これは、SQL SERVER 2005にはないように思えるのですが、
どこにいったのでしょうか。

また、2000と2005ではストプロのWEBサービス化の方法というのは
異なるものなのでしょうか。

2005ではクリエイトエンドポイントいうT-SQLを使うようですが。。。


さらに、質問となりますが、よろしくお願いします。
がんふぃーるど
ベテラン
会議室デビュー日: 2006/06/05
投稿数: 58
お住まい・勤務地: さいたま
投稿日時: 2007-03-23 12:21
引用:
2000の方は本番マシンで、かつ、すでに運用されているものなので
すぐには確認ができません。(保守サーバーもあてにならないという状況。。。汗)

ところで、この『SQLXMLのIISサポート構成』というのは、全てのプログラムの
SQL SERVER 2000から、選択できるツールですよね?


この辺を説明していなかったのですが、SQL Server 2000でストアド等をWebサービスとして公開するには次のツールキットをインストールする必要があります。
SqlXml 3.0 Service Pack 3
これをインストールすると、[SQLXML 3.0]というフォルダがプログラムの中に追加され、そのフォルダの中に[IISサポート構成]というのがあります。

注:SQLXML 3.0 SP2 以前を使用している場合、SOAP ToolKitというものをインストールするように強要されるかもしれません。ただ、SOAP Toolkit は Windows Server 2003 上で正常に動作しません。
Support for SOAP Toolkit Versions 2.0 and 3.0 on Windows Server 2003
↑日本語訳がめちゃくちゃなので英語版を見た方が良いと思います。英語版ではSOAP Toolkit 2.0 は Windows Server 2003 でサポートされていません。代わりに.NET Frameworkを使用しましょうと書かれています。尚、SQLXML 3.0 SP3 では SOAP Toolkit との依存関係は切れているので、こちらを使用しましょう。

また、SQL Server 2005 は SQLXML 4.0 の機能を取り込んでいて、SQL Server 2005 をインストールすると SQLXML 4.0 が自動的にインストールされます。が、SQLXML 4.0 とSQLXML 3.0は別物と考えた方が良いです。

引用:
また、2000と2005ではストプロのWEBサービス化の方法というのは
異なるものなのでしょうか。

2005ではクリエイトエンドポイントいうT-SQLを使うようですが。。。


ええっと、少しややこしいのですが、SQL Server 2000 でも SQL Server 2005 でも SQLXML 3.0 SP3 を使用してストアドをWebサービスとして公開することができます。ただし、SQL Server 2005 ではCREATE ENDPOINTを使用してストアドをWebサービスとして公開することもできます。

マイグレーションということであれば、無理にCREATE ENDPOINTを使用する必要は無いと思いますが、この辺は工数と相談といったとこでしょうか…

[ メッセージ編集済み 編集者: がんふぃーるど 編集日時 2007-03-23 12:24 ]
るぷ犬
常連さん
会議室デビュー日: 2004/11/10
投稿数: 46
投稿日時: 2007-03-23 21:45
またまた、ありがとうございます。


とりあえず、自分が受け取って感じたことをまとめてみました。
(おかしなこと言っていれば、ご指摘お願いします)



SOAP Toolkit

 バージョンに関係なく、もう古いものなので、できるだけ.NET Frameworkを使用しましょう。
 SQLXML 3.0 SP3以上であるならば、さらに使用する機会はありません。



SQL Server 2000

 ストプロのWEBサービス化の方法はSQLXML 3.0 SP3を使用して実施します。


SQL Server 2005

 ストプロのWEBサービス化の方法はSQLXML 4.0を使用して実施します。
 これはSQL Server 2005 をインストールする時に自動的にインストールします。
 しかし、新規で開発を行う時などはCREATE ENDPOINTを使用してもいいです。



ここで、また質問なのですが、

SQL Server 2005 上でのCREATE ENDPOINTかSQLXML 4.0を使ってのWEBサービス化というのは
どういう違いがあるのでしょうか。
SQLXML 4.0も3.0の時のように、ツールでWEBサービス化させるのでしょうか?
がんふぃーるど
ベテラン
会議室デビュー日: 2006/06/05
投稿数: 58
お住まい・勤務地: さいたま
投稿日時: 2007-03-24 10:45
引用:
SOAP Toolkit

 バージョンに関係なく、もう古いものなので、できるだけ.NET Frameworkを使用しましょう。
 SQLXML 3.0 SP3以上であるならば、さらに使用する機会はありません。


そうです。


引用:
SQL Server 2000

 ストプロのWEBサービス化の方法はSQLXML 3.0 SP3を使用して実施します。


その通りです。


引用:
SQL Server 2005

 ストプロのWEBサービス化の方法はSQLXML 4.0を使用して実施します。
 これはSQL Server 2005 をインストールする時に自動的にインストールします。
 しかし、新規で開発を行う時などはCREATE ENDPOINTを使用してもいいです。


前に説明しましたが、SQL Server 2005 でストアドをWebサービス化するにはSQLXML 3.0 SP3 を使用するか、CREATE ENDPOINT(ネイティブ XML Webサービス) を使用するかのどちらかです。SQLXML 4.0 は CREATE ENDPOINT(ネイティブ XML Webサービス) を使用してストアドをWebサービス化するときにSQL Server 2005が使用しています。この辺は次のURLを参考にすればある程度わかると思います。
Microsoft SQL Server 2005 での XML サポート


引用:
SQL Server 2005 上でのCREATE ENDPOINTかSQLXML 4.0を使ってのWEBサービス化というのは どういう違いがあるのでしょうか。
SQLXML 4.0も3.0の時のように、ツールでWEBサービス化させるのでしょうか?


まず、SQLXML 4.0 には SQLXML 3.0 みたいなIISサポート構成ツールはありません。これは SQL Server 2005 自体がHTTP/SOAPをホストするようになった為、要らなくなったのでしょう。
CREATE ENDPOIT(ネイティブ XML Webサービス)と SQLXML 3.0 の違いについては、次のURLを参照。
ネイティブ XML Web サービスの概要
この他として、SQLXMLにはGUIがあるというぐらいでしょうか。


[ メッセージ編集済み 編集者: がんふぃーるど 編集日時 2007-03-24 10:50 ]
るぷ犬
常連さん
会議室デビュー日: 2004/11/10
投稿数: 46
投稿日時: 2007-03-26 09:23
ご丁寧なお返事ありがとうございます。


とりあえず、『CREATE ENDPOIT(ネイティブ XML Webサービス)と SQLXML 3.0 の違い』については、
記載していただいた、URLで勉強し、どちら(既存のままか、ネイティブかXMLか)でいくか
決めたいと思います。


今日、お客様の本番サーバーを見に行く機会ができましたので、
それを見てから、再度、判断したいと思います。


本当に、いろいろとありがとうございました。
また、お尋ねするかと思いますが、よろしくお願いします。
るぷ犬
常連さん
会議室デビュー日: 2004/11/10
投稿数: 46
投稿日時: 2007-03-30 11:59
お客様の本番サーバーを見に行きました。
すると、上記のようなツールのインストールや設定などが
見つからず、途方にくれておりました。


とりあえず、手順書に書かれているバッチ(中ではsoapsudl.exeを実行している)し、
イントラ(WEBページ)からのリモート処理を実行させたところ、サーバーアプリを
動かせました。


てっきり、ソリューションの中にWEBサービスなどが入っていましたので、
ストアドのWEBサービス化を調べる方向に進んでおりました。


となると、ただ単にイントラ(WEBページ)から、
サーバーアプリの機能をキックしただけ、
(後の全ての処理(DB更新など)は、サーバーアプリが行っている)
となります(はず)。


結局の所、soapsudl.exeが何をして、何ができるものなのかというところが
分からなかったということになり、それについては今後、調べていこうと思います。



がんふぃーるどさん、今までありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)