分散フレームワークChristieの設計

照屋のぞみ - profile not found -

研究目的(1/2)

研究目的(2/2)

目次

Data Segment と Code Segment

CodeSegmentの依存関係

Data Segment と CodeSegment

Data Segment Manager

Data Segment Manager

Data Segment API

Code Segmentの記述例

public class TestCodeSegment extends CodeSegment { 
    private Receiver input = ids.create(CommandType.TAKE);
    
    public TestCodeSegment() {
        input.setKey("count");
    }
    
    @Override
    public void run() {
        int count = input.asClass(Integer.class);
        System.out.println("data = " + count);
        
        new TestCodeSegment();
        
        ods.put("count", count);
    }
}

Computation と Meta Computation

AliceのMeta Computation - Topology Manager

AliceのMeta Computation - 圧縮

AliceのMeta Computation - 圧縮

AliceのNAT越え

複数のTopology Managerへの対応

Aliceの問題点 - LocalDSMを複数立ち上げられない

Aliceの問題点 - APIシンタックスの分離

Aliceの問題点 - APIシンタックスの分離

class TestCG extends CodeSegment{
    private Receiver input1;
    private Receiver input2;

    public TestCG() {
        input1 = ids.create(CommandType.TAKE);
        input1.setKey("hoge");
        input2 = ids.create(CommandType.TAKE);
        input2.setKey("huga");
    }
}

Aliceの問題点 - APIシンタックスの分離

opt

Aliceの問題点 - 型が推測できない

Aliceの問題点 - まとめ

Christie - 基本設計(1)

Christie - 基本設計(2)

Christie - 基本設計(2) DGMの複数立ち上げ

Christie - 基本設計(3)

Christie - アノテーションを用いたインプット記述

@Take(”count”)
public DataGear<Integer> count = new DataGear<>();

Christie - アノテーションを用いたインプット記述

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Take {
    String value();
}

Christie - アノテーションを用いたインプット記述

@Take(”count”)
public DataGear<Integer> count = new DataGear<>();
@RemoteTake(dgmName="remote", key=”count”)
public DataGear<Integer> count = new DataGear<>();

Christie - アノテーションを用いたインプット記述

Christie - アノテーションを用いたインプット記述

opt

Christie - アノテーションによるシンタックスの分離阻止

Christie - 型を指定しないデータ取り出し

@Take(”count”)
public DataGear<Integer> count = new DataGear<>();

Christie - 型を指定しないデータ取り出し

public class GetData extends CodeGear{ 
    @Take(”name”)
    public DataGear<String> name = new DataGear<>();
    
    @Override
    protected void run(CodeGearManager cgm) {
        System.out.println(”this name is : ” + name.getData());
    }
}

Christie - まとめ

Christieと他フレームワークの比較

Christieと他フレームワークの比較 - Akka

Christieと他フレームワークの比較 - Hazelcast

Christieと他フレームワークの比較 - 設計思想

Christieと他フレームワークの比較 - 記述性

まとめ

今後の課題

今後の課題