I am developing some software that is roughly gonna do the following:
- Communicate with a client applications over TCP (read/write) (1-M clients)
- Receive sensor data over UDP from various sensors (1-N sensors)
- Send and receive data to some actuators over TCP (write) and UDP (read) (motors etc) (1-P actuators)
- Read and write data to a database using a REST api
- The client applications are sending commands that I have to direct to the proper actuator
- The sensors and actuator data should be sent to the client application.
- Some sensor data and commands should be stored in the database
My question is not how I can create this application, but what design patterns you would use to and how you would structure the software given all these modules that I listed above?
I have researched alot of patterns, but I dont think there is a "one pattern that solves it all" for this, I am looking for suggestion from more experienced developers on how you would go about designing this, and maybe how you would combine patterns etc.
The application is going to be written in C++, but that is not really relevant, as this can be solved with most languages using the same patterns I would imagine.
Source: Windows Questions C++