# Project Server Notes ## Checkpoint 1 1. Lots of software today connects to remote servers, and can't work offline. What are some advantages of using a program or an app which uses a remote server? What are some advantages of using a program or an app which is completely local? # "By shifting data storage and processing from a local machine to a centralized server, # users can access applications from anywhere, reduce hardware requirements, # and ensure data consistency. [Client/server architecture] offers significant advantages # regarding flexibility, performance, security, and maintenance." - Google Search # Of course, if you lose the connection, you have to figure out how to get the connection # back, so that you can perform all these tasks! # "Advantages of a completely local app: # 1) Superior data privacy and security 2) High performance and speed 3) Full offline functionality # 4) Customization and control 5) Potential long-term cost savings - # Data Control: Because data stays on your local device and is not sent to a cloud server, # you have total control over who accesses it. # Reduced Risk: The risk of data breaches or leaks, which are common with third-party, # internet-connected servers, is significantly minimized. # Confidentiality: For AI applications or sensitive documents, local processing ensures # your input data is not used to train external models." - Google Search 2. You just ran a server on your own computer, and connected to it as a client on the same computer. In what other situations might it be useful to run a server on your computer, where you're the only client, on the same computer? # It's useful to perform coding and data updates and maintenance, as Administrator. # Many maintenance tasks require that ONLY the Administrator can connect, while nobody # else is allowed to connect, to prevent the data from getting corrupted, or the program from crashing. # Also, you can tell, if you're connecting as a regular client, if the program is running properly. ## Checkpoint 2 3. Choose a program (Steam), web app (Google Docs), or app (Weather) that you use frequently. You can't observe the calls this program is making to its server (unless you have fancy tools), but you can infer some of the calls based on the program's behavior. Describe a few routes which you think may exist for your chosen program's backend server. 4. In your own words, what is an exception? When might it be useful to handle an exception? When is it better not to handle an exception, and instead let the program crash?