DSの保存・取得にはAliceが提供するAPIを用いる。APIと呼ばれ、DSをDSMに保存する際に用いる。APIと呼ばれ、DSをDSMから取得する際に使用する。Computationが提供している。Managerに読み込ませるだけでトポロジーを構成すること-ができる。Computationが提供している。Managerに読み込ませるだけでトポロジーを構成することができる。Language\cite{dot}という言語で記述される。Languageファイルはdotコマンドを用いてグラフの画像ファイルを生成することができる。そのため、記述したトポロジーが正しいか可視化することが可能である。Node)に接続するべきクライアントのIPアドレスやポート番号、接続名を送る(図\ref{fig:topologymanager})。ManagerのIPアドレスさえ知っていれば自分の接続すべきノードのデータを受け取り、ノード間での正しい接続を実現できる。され接続処理が順次行われる。Managerが持つトポロジー情報が更新される。Managerでは動的なトポロジータイプとして二分木に対応している。現在のAliceではsetKeyが柔軟に使えるがために、慎重に書かなければプログラムの信頼性が保てない。そのため、動的なsetKeyはできないように制限したほうが良いと考える。inputDSを受け取るReceiverはデータをObject型で持っており、そのデータをCS内で扱うには正しい型にキャストする必要がある。inputDSで指定するのはkeyのみであり、そのデータの型までは分からない。そのため、DSの型を知るにはputしている部分まで辿る必要がある。2.4のCodeSegmentの例題である通り、key名とそのkeyで待ち合わせたDSを受け取るReceiver名は異なることがある。変数名一致を強制させたい。-\section{DataSegmentManagerを複数持てない}-\subsection{TopologyManagerのNAT超え機能}-\subsection{Jungleのテスト}+\section{LocalDataSegmentManagerを複数持てない}+Aliceでは1つのノードにつき1つしかLocalDSMを立ち上げられない作りになっている。+そのために以下のような問題が発生した。++\subsection{1つのノードで複数台DSM同士のテストが行えない}+%ローカルで複数できないからテストが気軽にできない+++\subsection{TopologyManagerの拡張が困難}+Aliceではより自由度の高い通信を行うために、TopologyManagerに幾つかの機能を追加すること考えていた。++例えば、NAT越えの機能である。NAT越えは分散アプリケーション構築における課題の1つでもあるが、プログラマにとってその実装は容易ではない。ManagerにNATを越えたノード間通信機能をつけることにより、NATを気にせずに通信が行えるようにしたい。+また、別トポロジーで立ち上げたアプリケーション同士を接続する機能も追加したいと考えていた。+TreeTopologyのVNCアプリとStarTopologyのチャットアプリの連携したいといった要望が生まれたためである。++TopologyManagerはネットワークごと、トポロジーごとに存在するため、いずれの機能も複数のTopologyManager同士を連携させることで可能となる。+1つのノードに複数のTopologyManagerを対応させるには、TopologyNodeが複数のnodeNameを持つ必要がある。LocalDSMを立ち上げる方法を考えた。Managerに対応できるという設計である。DSMを持つことができない。+staticを取り除こうとしたところ、Aliceの大部分のコードを修正する必要があることがわかった。classのない実装を行い、DSM切り替えによる方式を実現したい。dsmを指定して直接putする。%getDataで正しい型でとれる。\section{Akka}。