suparngp / aosproject2 Goto Github PK
View Code? Open in Web Editor NEWAOS Project 2
License: MIT License
AOS Project 2
License: MIT License
Enhance logging, Comment out the debugging logging.
Clean up unnecessary code from the old version of the protocol.
Sub-issue of #3
For the inter server communication, following requirements must be met.
Messages
SERVER_INTRO: s1 introduces itself to s2.
SERVER_INTRO_REPLY: s2 replies to SERVER_INTRO_REPLY
DISCOVERY_COMPLETE: server broadcasts this message to every one else that it has successfully learnt about all the other servers.
Each Server will have an open socket to listen to client requests. This channel is different from the server-server communication channel. The rest of the flow will remain the same.
Each client will try to connect to the server via this port. Server, on accepting the connection will start a ClientReqHandler thread to handle the request and begin listening for the next connection.
All the message sending should be done via a common method so that the blocking list can be added at that point. This method will act as sort of a gateway. Related to #13
Create fresh design report based on the new protocol. It is simpler than the original protocol. Create diagrams in visio etc.
A client performs following steps in order to create an object.
On the server side:
On the client side, after receiving the replies from all the servers,
APIs to create, delete update and read objects are missing.
This covers issue #7 as well.
The initial protocol is not perfect. It fails during the concurrent writes.
The new protocol is based on the Google's File System
Complete the missing documentation
Create a basic GUI for CRUD operations. The interface doesn't need to be wired up with the remaining code. The sole purpose is to finish the design and create mock APIs.
All the servers must be able to discover each other automatically. Each server must keep polling across the list of possible server addresses/portnumbers until it is connected to the required number of servers. After doing so, it will send a DISCOVERY_COMPLETE message to the other servers to inform that it is ready to server the client requests.
A client performs following steps in order to create an object.
On the server side:
On the client side, after receiving the replies from all the servers,
In this issue, we target the OBJ create API on the client.
System needs to work in various different scenarios. Prepare such testable scenarios, document them with diagrams, test the code and gather results.
Periodic heartbeat message need to be exchanged between all the servers to keep a track of which servers are available.
The connection Handler API is currently Missing. It should handle all the incoming connections on a per handle basis.
In server, most of the message passing is done inline. All such calls must be replaced by a method, which sends the messages and returns a socket so that, blocking list can be added to this single point of communication. See #13
To simulate the cuts in the graph, a blocking list needs to be implemented. Before sending a message to any node, its presence in the blocking list will be checked.
Create a topology terminal to update/alter system topology in both clients and server
Add a Data Access API to access the objects.
Initially we planned to use the OpenCSV to store and parse the data. However, OpenCSV doesn't support updates on the files. The only way is to load all the contents into the memory, perform updates, clear the file and write them back to the file.
To achieve this, we can use GSON library since we are already using it to parse the Messages. This implementation is based on the GSON library, a slight change in the plan.
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.