ngfk / vu-distributed-systems Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://ngfk.github.io/vu-distributed-systems/
Home Page: https://ngfk.github.io/vu-distributed-systems/
Every data structure defined in the system design (section 4.2) should be a POJO class.
From system design:
After response from RM:
Store data using data structures from #3.
User
schedulers
jobs
Scheduler
schedulers
users
jobs
Arthur want to try Heroku as provider.
Would be nice if we can make it watch our master
branch and let it serve both the java and website part.
From system design:
Store data using data structures from #3.
Resource manager
schedulers
workers
jobs
Worker
job
Need some way to communicate between java grid and the browser interface. Best way is probably to just use a web socket connection.
know when a node dies
in the schedulers and resourcemanagers
Change the grid from a GUI application to a console "server" application. This server simply has to wait for web socket connections from the interface.
Eventually it will create the grid based on messages from the interface.
Try to figure out how to run the grid and the site simultaneously to each other on heroku
Random events are too unreliable. We need to find a way to trigger random events more reliably.
Do you guys mind if we restructure the java packages?
I was thinking about the structure below, makes it easier to know the purpose of a class just by looking at it's location.
/**
* Model classes that form the grid & the communication between them.
*/
package distributed.systems.grid.model;
// ISocketCommunicator.java
// Job.java
// Message.java
// ResourceManager.java
// Scheduler.java
// Socket.java
// User.java
// Worker.java
/**
* Data classes that are used within the model classes `grid.model`.
*/
package distributed.systems.grid.data;
// ActiveJob.java
/**
* Classes used to setup the simulation.
*/
package distributed.systems.grid.simulation;
// GridSetup.java
// GridClusterSetup.java
// Simulation.java
/**
* Classes used to communicate with the gui front-end.
*/
package distributed.systems.grid.gui;
// GuiMessage.java
// GuiMessageInit.java
// GuiMessageInitSizes.java
// GuiMessageQueue.java
// GuiMessageSetup.java
// GuiMessageState.java
// GuiMessageStop.java
// GuiMessageToggle.java
// NodeState.java
// NodeType.java
// WebSocketHandler.java
/**
* Contains classes that start the system (have a main).
*/
package distributed.systems.grid;
// StartDebug.java
// WebSocketServer.java
The classes in grid.data
are the classes from #3.
Someone will have to make an interface that looks like the system structure with a dynamic amount of schedulers/clusters/workers.
Should be easy using flexbox, if we skip the connection lines.
<div style="display:flex;">
<div class="user"></div>
<div style="display:flex;">
<div class="scheduler"></div>
<div class="scheduler"></div>
...
</div>
<div style="display:flex;">
<div class="cluster" style="display:flex;">
<div class="resource-manager"></div>
<div>
<div class="worker"></div>
<div class="worker"></div>
<div class="worker"></div>
...
</div>
</div>
...
</div>
</div>
Right now every GridNode
instance should be runnable and have a private Thread thread
property. Maybe add this to the base class, let the base class implement Runnable and create an abstract run
method that has to be implemented by every GridNode
. The base class can then implement the start
and stop
method the same way User
currently has.
When this is done the Simulation
can keep a list of GridNodes
and start/stop all of these node when they have to be started/stopped.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.