Open棟梁 wiki

*概要 [#h386f2a1]
通信制御機能は、C/S3層、Web3層システム開発で必要となるサービス インターフェイス / サービス ゲートウェイ基盤を提供する。


-分散オブジェクト的な機能をWebサービス系の通信プロトコルを使用して実現できる。

-標準のP/B/D層の3層構成の中に、P層/B層呼び出しのアドインとして追加/適用できる。

-P層 → B層のメソッド呼び出しをネットワーク経由(Webサービスなど)に変換可能。
--通信処理を隠蔽することで、業務処理の実装に専念することが可能。
---P層/B層呼び出しの引数・戻り値は自動的にBinary serialize & deserializeされる。
---3層方式のアプリケーションを2層方式と同様の、高い生産性を開発できる。

-.NET以外の異種開発技術との連携も可能。~
[[汎用サービス・インターフェイス]]を公開することで可能になる。

**サポートする通信テクノロジ [#se3ed231]

***インプロセス呼び出し [#k04ccda3]
レイトバインドを使用したインプロセスのメソッド呼び出し。

***ASP.NET Web Service [#zf25f1cf]
-HTTP
--SOAP 1.1 & 1.2

***WCF [#z0d0989f]

-HTTP

--basicHttpBinding~
---WS-I Basic Profile 1.1 に準拠

--wsHttpBinding~
---WS-ReliableMessaging、WS-Security を実装します。
---メッセージ エンコーディングは Text/XML エンコーディング

-TCP
--netTcpBinding
---メッセージ セキュリティと認証用 Windows セキュリティ
---メッセージ配信用 TCP、およびバイナリ メッセージ エンコーディング

-Bindingの設定例~
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Samples/WebApp_sample/ProjectX_sample/web.config#L318

***ASP.NET Web API [#ge9aa975]
対応未定。

*特徴 [#m143ed95]
**位置透過性 [#z3628924]
定義による呼び出し先の変更が可能。
-インプロセス呼び出し
-リモート呼び出し(アドレス指定)

**規模透過性 [#a84e62cf]
スケールアウト(垂直・水平分散)が可能。

**異種透過性 [#b5ff466d]
.NET以外の異種開発技術との連携も可能。

[[汎用サービス・インターフェイス]]を公開することで可能になる。

*移行時 [#v4d269ae]
通信制御部品で.NETオブジェクトのバイナリ転送をしているので、~
異なる.NETバージョン間の通信に問題がないか?ですが、

-.NET Framework 4.5 のアプリケーションの互換性~
http://msdn.microsoft.com/ja-jp/library/hh367887(v=vs.110).aspx
--SoapFormatterクラスについては、バージョン間の互換性が保証されません。~
--代わりに、System.Runtime.Serialization.Formatters.Binary.BinaryFormatter クラス~
および System.Runtime.Serialization.NetDataContractSerializer クラスを使用してください。

-バージョン トレラントなシリアル化~
https://msdn.microsoft.com/ja-jp/library/vstudio/ms229752.aspx
--バージョン トレラントなシリアル化 (VTS: Version Tolerant Serialization) は、~
.NET Framework 2.0 で導入された機能セットで、シリアル化可能な型を、長期にわたって簡単に変更できるようにします。
--具体的には、VTS 機能が、ジェネリック型を含め、SerializableAttribute 属性が適用されているクラスに対して有効です。
--VTS を使用すると、他のバージョンの型との互換性を失うことなく、これらのクラスに新しいフィールドを追加できます。 

とあるので問題はなさそうです。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS