WSIM Towards a software framework for modeling the WISDOM architecture Elias Athanasopoulos ICS-FORTH Cork, January 2007
-2- Elias Athanasopoulos, ICS-FORTH WSIM Roadmap ● Goals ● Architecture ● Building ● Demo ● Open issues
-3- Elias Athanasopoulos, ICS-FORTH WSIM Goals ● Goals ● Architecture ● Building ● Demo ● Open issues
-4- Elias Athanasopoulos, ICS-FORTH WSIM Initial Goals ● Develop a modular software platform ● Model optical components and examine their behaviour ● Simulate constructs based on combinations of different components ● Model everything under time constraints ● Build a platform for SAPI development ● Develop new security algorithms and test their efficiency
-5- Elias Athanasopoulos, ICS-FORTH WSIM Architecture ● Goals ● Architecture ● Building ● Demo ● Open issues
-6- Elias Athanasopoulos, ICS-FORTH WSIM Architecture Overview ● Developed in C++ (OO design) ● Ability to attach different modules in the main engine ● Ability to inspect each module's activity over time ● Ability to inspect the interaction between different modules
-7- Elias Athanasopoulos, ICS-FORTH WSIM In a nutshell Main Engine WSimulator() WNetworkFlow() WModule() SAPI
-8- Elias Athanasopoulos, ICS-FORTH WSIM Main Engine SOA-MZI Main Engine WSimulator() WNetworkFlow() SOAMZI()
-9- Elias Athanasopoulos, ICS-FORTH WSIM A Closer Look SOAMZI() A: C: B: Y: Optical pattern matching, proposed by Rod Webb (CIP). SOA 1 SOA 2 A B C Bandpass filter C
-10- Elias Athanasopoulos, ICS-FORTH WSIM From a code perspective... #include "../src/simulator.h" #include "../src/soa-mzi.h" int main(int argc, char **argv) { /* Create the simulator. */ WSimulator *sim; sim = new WSimulator(); /* Create the SOA-MZI module, and initialize it. */ SOAMZIModule *m; m = new SOAMZIModule(); m->SetPatSize(4); m->SetWinSize(15); m->SetPattern(9); /* Attach module to the simulator. */ sim->AttachModule(m); /* Run the module via the simulator. */ sim->Run(); /* Clean up and bye, bye. */ sim->DetachModule("SOA-MZI"); sim->Inspect(); delete sim; delete m; return 1; } Simulator Init: WSimulator *sim = new WSimulator(); Simulator Init: WSimulator *sim = new WSimulator(); SOA-MZI Init-Setup: SOAMZIModule *m = new SOAMZIModule(); m->SetPatSize(4); m->SetWinSize(15); m->SetPattern(9); SOA-MZI Init-Setup: SOAMZIModule *m = new SOAMZIModule(); m->SetPatSize(4); m->SetWinSize(15); m->SetPattern(9); Attach SOA-MZI and Run: sim->AttachModule(m); sim->Run(); Attach SOA-MZI and Run: sim->AttachModule(m); sim->Run();
-11- Elias Athanasopoulos, ICS-FORTH WSIM Building ● Goals ● Architecture ● Building ● Demo ● Open issues
-12- Elias Athanasopoulos, ICS-FORTH WSIM How to build/test? ● Uncompress the distribution: % tar -xzvf wsim-ir.tar.gz ● Build the simulator: % make ● Test available modules: %./run.sh Usage:./run.sh Available modules: soa-mzi ● %./run.sh soa-mzi
-13- Elias Athanasopoulos, ICS-FORTH WSIM Demo ● Goals ● Architecture ● Building ● Demo ● Open issues
-14- Elias Athanasopoulos, ICS-FORTH WSIM Testing the SOA-MZI module... SOA1 SOA2 A B C Bandpass filter C
-15- Elias Athanasopoulos, ICS-FORTH WSIM Open issues ● Goals ● Architecture ● Building ● A live example ● Open issues
-16- Elias Athanasopoulos, ICS-FORTH WSIM Open issues ● Is it useful? (...if yes...) ● Should we model other parameters except time? ● Are we okay with the time granularity (1 tick = 1 bit op)? ● Are we okay with the component granularity (i.e. should a module be a SOA gate, or a SOA-MZI construct)? ● Other comments?
-17- Elias Athanasopoulos, ICS-FORTH WSIM Thank you! Elias Athanasopoulos ICS-FORTH