- - PR -
webサービスの非同期メソッドの実装について
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-05-23 10:42
いつもお世話になっております。
VS2003 .NetFreamWork1.1にて、 Webサービスを新たに作成する事になりました。 同期Webメソッドは、以前に作成した事があるのですが、 非同期Webメソッドにつては作成した事もなく、知識が全くありません。 プログラミングを始めてまだ2ヶ月と日が浅く、 どのように実装すればよいか皆目検討がつかない状況です。 WEBサービスの非同期実装(非同期メソッド)について サンプルや、解説などが詳しく紹介されているHPが御座いましたら、 教えていただけないでしょうか? どうぞよろしくお願い申し上げます。 | ||||||||
|
投稿日時: 2007-05-23 11:39
WebService BeginInvoke などで検索するとぽろぽろ出てくると思います。
ヘルプやMSDNも参照してください。 _________________ かるあ のメモ と スニペット | ||||||||
|
投稿日時: 2007-05-24 14:52
web service を提供する側では非同期のメソッドを作っておく必要がないと思います。
client側で web service のメソッドを呼び出す時に、同期か、非同期か選択できると思います。 begain<メソッド名>(xxx) | ||||||||
|
投稿日時: 2007-05-24 17:40
諸農です。
こちらが参考になると思います。 .NET Framework 開発者ガイド 非同期プログラミングのデザイン パターン http://msdn2.microsoft.com/ja-jp/library/ms228969(VS.80).aspx _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2007-05-24 17:56
直接の回答ではないのですが、Web サービスを非同期でやる必要性は乏しいと思います。呼ぶ側が、非同期で呼べば良いだけのことですから。 たしかに、.NET の Web サービス側のインターフェースに非同期用のインターフェースが存在するみたいですが、私の何年か前の遠い記憶ですが、「本当にこれ使って非同期にして使えるの?使って意味があるの?」と思ったことがあります。漠然とした見解ではありませんが、当時私はこう感じました、という例でした。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} | ||||||||
|
投稿日時: 2007-05-24 19:05
クライアント側にはありますが、Web サービス側のインターフェースに非同期用のインターフェースってありましたっけ? .NET の内部実装を知っているわけではありませんが、クライアントの非同期呼び出しをプロキシが「自動で」やってくれているだけだと思います。当たり前ですが、サーバーがクライアントをコールバックしてくれるわけでもありません。 なので、「呼ぶ側が非同期で呼べば良いだけ」という事しかできないと思います。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2007-05-24 20:21
.NET Framework絡みで、非同期、Webサービス、というキーワードが出る場合、
考えられるいくつかの話があります。 元質問者がどれについて聞いているのか、あるいはキーワードのみしか 意識していないのかなどが分からないと、何を求めているのか判断できません。 ・いわゆる一般的なWebサービスでの非同期処理的な話 Webサービスの呼び出しを、非同期処理のジョブ投入のようなイメージで捉える場合の話です。 例えば処理開始要求のWebサービスを同期的に呼び出して、ジョブIDのようなものを返してもらいます。 クライアントは処理要求後、適当なタイミングでジョブIDをパラメータとして結果取得用のWebサービスを呼び出します。 ※まあこれはこういった処理を行う場合のやり方の一例に過ぎませんが。 この場合、Webサービス自体も、呼び出し側も、低レベルでの実装的には非同期ではありません。 Webサービスの実質のジョブが、Webサービス自体とは非同期に処理を行うというイメージです。 ・クライアントからWebサービスを非同期で呼び出す話 同期的に実装されたWebサービスを、クライアントから非同期で呼び出します。 非同期なのはあくまでクライアント側のプロキシが提供する機能であり、Webサービスそのものは同期的です。 ※単にクライアントで、時間のかかる処理を非同期で呼び出すだけです。 ・Webサービスの非同期実装 非同期のWebサービス、というようなものを実装する機能のように見えますが、Webサービス自体はあくまで同期的です。 ただし、Webサービス内の処理で他の時間のかかるリソースを呼び出す場合に、 Webサービスのワーカースレッドが長時間ブロックされて占有されるのを防ぐため、 非同期のリソースアクセスと組み合わせることで、ワーカースレッドをすぐに開放するように実装します。 これはあくまでWebサービスの実装詳細レベルの話で、外から見れば単なる同期的なWebサービスに過ぎません。 ※MSDNではこれを「非同期Webサービスメソッド」といっているようですね。 質問者さんが聞いているのはどのような内容についてでしょうか? | ||||||||
|
投稿日時: 2007-05-24 21:07
ご指摘ありがとうございます。私が「Web サービス側」と書いたのはたぶん間違いです(間違いであるかどうかも未確認です)。おそらくクライアント側にあったのを、私が見て、私が勘違いしたのだろうと思います。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} |
1|2|3
次のページへ»