Skip to content

Instantly share code, notes, and snippets.

@joseguera
Last active October 3, 2020 16:08
Show Gist options
  • Select an option

  • Save joseguera/1cd2bdb9133c6f500f29d157dd40aab1 to your computer and use it in GitHub Desktop.

Select an option

Save joseguera/1cd2bdb9133c6f500f29d157dd40aab1 to your computer and use it in GitHub Desktop.
Short analogy on how the client/server dynamic works
Clent/Server Dynamic
The relationship between client and server can be seen as that between a program representative (PR) and management (MG) at a college.
- The PR (client) will proposed a course adoption for the upcoming semester
- MG (server) will take a look at the proposal and approve/deny the course based on the budget
- If the budget can support the course and if the course has brought in good revenue, MG will approve the request
- PR then will select a professor to teach the course
- If the professor's evaluations are satisfactory, then PR will ask them if they'd like to teach the course
- If the professor accepts the terms, then PR draws a contract
- PR then has to create a course in the college enrollment system
- Once the course is created, PR needs to set a schedule that doesn't create room conflicts with other PR's courses
- PR must also order the correct textbook for the class
- If the book is out of print or if a new edition is available, PR must ask the professor what he/she would like to do
- Finally, when the course is ready it is sent to the catalogue so students can enroll in it
In conclusion the PR (client) requests information from several sources (servers) such as MG, instructor evaluation database, professors, scheduling system, bookstore, and the marketing department that makes the catalogue.
- If we consider the evaluations that the students fill out at the end of the course, PR must also request this information from them in order to use it to select the professor for following semester's offering of the course.
- BONUS: All of these requests happen asynchronous. In other words, PR is requesting information from all of the various "servers" for the following semester while the current semester is still happening.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment