[[Open棟梁>https://github.com/OpenTouryoProject]] wiki

*目次 [#oe1075ce]
#contents

*概要 [#h386f2a1]
通信制御機能は、
-C/S3層、Web3層システム開発で必要となるサービス インターフェイス / サービス ゲートウェイ基盤を提供する。
-分散オブジェクト的な機能をHTTP, TCP/IPなどの通信プロトコルを使用して実現できる。
-.NET以外の異種開発技術との連携も[[汎用サービス・インターフェイス]]を公開することで可能になる。

http://www.slideshare.net/daisukenishino/open-0150/7

*特徴 [#m143ed95]
標準のP/B/D層の3層構成の中に、P層/B層呼び出しのアドインとして追加できる。~
これによりP層 → B層のメソッド呼び出しをネットワーク経由(Webサービスなど)に変換可能。

-通信処理を隠蔽することで、業務処理の実装に専念することが可能。
-P層/B層呼び出しの引数・戻り値は自動的にBinary serialize & deserializeされる。
-これにより3層方式のアプリケーションを2層方式と同様の、高い生産性で開発できる。

http://www.slideshare.net/daisukenishino/open-0150/8

**サポートする通信テクノロジ [#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]
対応未定。

**透過性 [#l921963c]
http://www.slideshare.net/daisukenishino/open-0150/9

***位置透過性 [#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 を使用すると、他のバージョンの型との互換性を失うことなく、これらのクラスに新しいフィールドを追加できます。 

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

*参考 [#sb715768]
**SlideShare [#g1fccd89]
-http://www.slideshare.net/daisukenishino/open-0150/6
-http://www.slideshare.net/daisukenishino/open-0150/7
-http://www.slideshare.net/daisukenishino/open-0150/8
-http://www.slideshare.net/daisukenishino/open-0150/9

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