C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: ASP.NET(C#)とC++のXML通信


(過去ログ 71 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■41404 / inTopicNo.1)  ASP.NET(C#)とC++のXML通信
  
□投稿者/ ナッシュ (1回)-(2009/09/19(Sat) 00:23:07)

分類:[XML] 

表題の方法について、色々調べているのですが解決策が見つからず
質問させていただきました。

VC++6.0で作成したWebアプリケーション(CGI)のロジックは残し、
画面部分をC#(ASP.NET)にて移行しようとしています。
その際に、画面に表示するデータはXML(HTTP通信)で行うことになっています。
データの流れはロジック部→画面部になります。

ここで質問です。
・そもそもASP.NET(C#)⇔C++でHTTP通信によるXMLデータのやり取りはできるのか?
・ASP.NETでXML Webサービスを作成できるのですが、それは必要なのか?

このシステムを構築する上で、何かヒントになるようなページがあれば、
是非教えていただけると幸いです。

コンポーネント間のXMLデータのやり取りに関しては、勉強中であるため、
見当違いのことを言っているかもしれませんが、ご助力お願いいたします。
引用返信 編集キー/
■41437 / inTopicNo.2)  Re[1]: ASP.NET(C#)とC++のXML通信
□投稿者/ 渋木宏明(ひどり) (1215回)-(2009/09/19(Sat) 19:38:07)
渋木宏明(ひどり) さんの Web サイト
> ・そもそもASP.NET(C#)⇔C++でHTTP通信によるXMLデータのやり取りはできるのか?

の解を得るためには、C++ 部分をどうやって駆動するのかを示してください。

C++ 部分を C++/CLI でラップして .NET のクラスライブラリにしてしまえば、HTTP やら XML やらを間に挟むことなく、ASP.NET のアプリケーション実装部分からもっと直接的に C++ 部分の機能を呼び出すことができます。

引用返信 編集キー/
■41443 / inTopicNo.3)  Re[2]: ASP.NET(C#)とC++のXML通信
□投稿者/ ナッシュ (2回)-(2009/09/19(Sat) 20:33:34)
No41437 (渋木宏明(ひどり) さん) に返信
>>・そもそもASP.NET(C#)⇔C++でHTTP通信によるXMLデータのやり取りはできるのか?
>
> の解を得るためには、C++ 部分をどうやって駆動するのかを示してください。
>
> C++ 部分を C++/CLI でラップして .NET のクラスライブラリにしてしまえば、HTTP やら XML やらを間に挟むことなく、ASP.NET のアプリケーション実装部分からもっと直接的に C++ 部分の機能を呼び出すことができます。
>

ご回答ありがとうございます。

今回の要件として、画面部とロジック部を論理的な層で分けることが挙げられています。
おそらくはアプリケーション同士の結合度を弱くすることで、拡張性を持たせることを
目的としているようです。

渋木宏明(ひどり)さまの回答は今後の可能性の1つではありますが、できるのであれば
XMLデータでのHTTP通信によりやり取りを求められています。

引用返信 編集キー/
■41447 / inTopicNo.4)  Re[3]: ASP.NET(C#)とC++のXML通信
□投稿者/ やじゅ (1333回)-(2009/09/19(Sat) 20:51:29)
やじゅ さんの Web サイト
2009/09/19(Sat) 21:01:46 編集(投稿者)

No41443 (ナッシュ さん) に返信

どのようにやろうとしているのかによりますけど、例えばSOAPを使うとかなら
XML Webサービスを使った方がいいかもしれません。

で、すごく単純なXMLデータだけでやるなら、XMLは単なる文字列なのだから、
C++でXMLを解析すれば、XML Webサービスを使わなくてもデータのやり取りは
出来ますよね。

C++のXML系のライブラリが幾つか(MSXML、TinyXML等)あると思います。

引用返信 編集キー/
■41452 / inTopicNo.5)  Re[3]: ASP.NET(C#)とC++のXML通信
□投稿者/ 渋木宏明(ひどり) (1218回)-(2009/09/19(Sat) 21:24:53)
渋木宏明(ひどり) さんの Web サイト
2009/09/19(Sat) 21:35:50 編集(投稿者)

> 今回の要件として、画面部とロジック部を論理的な層で分けることが挙げられています。

論理的な分離なら、結合方法は「クラスライブラリを呼び出す」でもいいはずです。

は、さておき

>その際に、画面に表示するデータはXML(HTTP通信)で行うことになっています。

が覆らないということであれば…

>・そもそもASP.NET(C#)⇔C++でHTTP通信によるXMLデータのやり取りはできるのか?

可能です。

でも、承知の上なんでしょうけど、パフォーマンスはあまり期待てきません。

>・ASP.NETでXML Webサービスを作成できるのですが、それは必要なのか?

必要ないです。

ASP.NET 層がクライアントから受けたリクエストを(多少加工して)C++ 層に投げ、折り返しで C++ 層が結果を XML で返す、という流れになるんですよね?

であれば、むしろ XML Web サービス化した方がよいのは C++ 部分の方です。

引用返信 編集キー/
■41453 / inTopicNo.6)  Re[4]: ASP.NET(C#)とC++のXML通信
□投稿者/ 渋木宏明(ひどり) (1219回)-(2009/09/19(Sat) 21:30:44)
渋木宏明(ひどり) さんの Web サイト
>その際に、画面に表示するデータはXML(HTTP通信)で行うことになっています。

セキュリティやステートの管理大丈夫なのかな?

その辺テキトーにすると、おっそろしくスケールしないシステムになっちゃいそうな気が。
引用返信 編集キー/
■41461 / inTopicNo.7)  Re[5]: ASP.NET(C#)とC++のXML通信
□投稿者/ ナッシュ (3回)-(2009/09/19(Sat) 22:59:52)
ご回答ありがとうございます。

要件に補足をさせて頂きますと、拡張性の面で以下の点があります。
「異なるOSを使用した際にも柔軟に対応できるようにする」
(後出しになり、申し訳ありません。)
お二人の話から察するに、この要件を満たすためにはXML Web サービスを
構築する必要があるのではないかと感じております。

>で、すごく単純なXMLデータだけでやるなら、XMLは単なる文字列なのだから、
>C++でXMLを解析すれば、XML Webサービスを使わなくてもデータのやり取りは
>出来ますよね。
ものすごく初心者的な質問で申し訳ないのですが、
この場合、ASP.NET(C#)からC++の駆動のさせ方はどのようになるのでしょうか?

>ASP.NET 層がクライアントから受けたリクエストを(多少加工して)C++ 層に投げ、折り返しで C++ 層が結果を XML で返す
渋木宏明(ひどり) さまの回答にもあるのですが、C++層への投げ方がわからない状態です。

もし参考になるようなページや書籍をご存知でしたら、ご教授していただけると大変助かるのですが・・・


> セキュリティやステートの管理大丈夫なのかな?
> その辺テキトーにすると、おっそろしくスケールしないシステムになっちゃいそうな気が。
拡張性のないシステムになってしまう可能性があるということでしょうか?
現在は、できるかどうかまでしか進んでいないので、指摘の点については考慮していません。
しかし、考える必要性はありますので、助言として有難く頂戴いたします。

引用返信 編集キー/
■41468 / inTopicNo.8)  Re[6]: ASP.NET(C#)とC++のXML通信
□投稿者/ 渋木宏明(ひどり) (1220回)-(2009/09/20(Sun) 11:17:26)
渋木宏明(ひどり) さんの Web サイト
2009/09/20(Sun) 11:50:13 編集(投稿者)
2009/09/20(Sun) 11:32:12 編集(投稿者)

> >ASP.NET 層がクライアントから受けたリクエストを(多少加工して)C++ 層に投げ、折り返しで C++ 層が結果を XML で返す
> 渋木宏明(ひどり) さまの回答にもあるのですが、C++層への投げ方がわからない状態です。

通信仕様をもっとちゃんと決めましょう。

「HTTP 接続し、処理結果を XML で返送する」じゃアバウトすぎです。

REST や類似の通信仕様なら、ASP.NET 側の実装には .NET 標準ライブラリの WebClient や WebRequest が使えます。

SOAP 仕様を採用するなら、WSDL から XML Web サービスにアクセスするためのスタブを生成する機能/ツールが Visual Studio/.NET SDK に含まれています。

> 拡張性のないシステムになってしまう可能性があるということでしょうか?

そーです。

> 現在は、できるかどうかまでしか進んでいないので、指摘の点については考慮していません。
> しかし、考える必要性はありますので、助言として有難く頂戴いたします。

なら、どーしたいのかを決めて、教えてください。

その場合、C++ 側をどのように駆動するのか

・独自の Windows サービスにする
・XML Web サービス化する
・それ以外

も確定させておいた方が考えやすいです。(逆に、それらを確定させれば選択肢が絞られてくる場もあります)

また、ASP.NET 層の認証周りをどうするのかも確定させなければなりません。

・匿名アクセスのみ
・認証アクセスのみ(その場合、認証方式はどうするか)
・それ以外

引用返信 編集キー/
■41469 / inTopicNo.9)  Re[6]: ASP.NET(C#)とC++のXML通信
□投稿者/ やじゅ (1336回)-(2009/09/20(Sun) 11:22:14)
やじゅ さんの Web サイト
No41461 (ナッシュ さん) に返信
> ASP.NET(C#)からC++の駆動のさせ方はどのようになるのでしょうか?

とりあえず、2つの案を提示してみる。
私もよく分かってないので、違うかも知れない、もっといい方法があるかもしれない。

1.C++側をDLL化して、C#から呼ぶ(検索ワード:マネージドからアンマネージドを呼ぶ、C++/CLIでラッパーを作成)
2.C++側をCGIとしてIISに登録、C#からCGIとして呼ぶ(検索ワード:WEBサービスから別WEBサービスを呼ぶ)

C で書いた CGI プログラムを IIS 7 で動かすまで
http://www.asp-edita.jp/doda/one/doda4035_127.html
CGI で学ぶ C++ <form action="test.cgi" method="post">
http://oku.edu.mie-u.ac.jp/~okumura/cplusplus/
GETなら環境変数 QUERY_STRING、POSTなら標準入力から取得
http://ppwww.phys.sci.kobe-u.ac.jp/~akusumoto/program/detail.php?d=c/10-other/cgi
引用返信 編集キー/
■41481 / inTopicNo.10)  Re[7]: ASP.NET(C#)とC++のXML通信
□投稿者/ ナッシュ (5回)-(2009/09/20(Sun) 17:45:22)
>通信仕様をもっとちゃんと決めましょう。

>なら、どーしたいのかを決めて、教えてください。
>
>その場合、C++ 側をどのように駆動するのか
>
>・独自の Windows サービスにする
>・XML Web サービス化する
>・それ以外
>
>も確定させておいた方が考えやすいです。(逆に、それらを確定させれば選択肢が絞られてくる場もあります)

ご回答ありがとうございます。

渋木宏明(ひどり) 様
どうやら、決めるべきことはまだまだあるようですね。
少なくとも、自分が何を調べるべきかは以前よりも明確になりました。
自分もまだまだ勉強不足なので、ご指摘していただいたキーワードを元に調査を進めたいと思います。
色々とご指摘ありがとうございます。

やじゅさん
案のご提示ありがとうございます。
検討する上で参考にさせていただきます。


引用返信 編集キー/
■41507 / inTopicNo.11)  Re[8]: ASP.NET(C#)とC++のXML通信
□投稿者/ ナッシュ (6回)-(2009/09/22(Tue) 09:42:48)
一旦、終了とさせていただきます
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -