80 likes | 183 Views
Always alive mySQL viewer with inter process data communication Instructed by: Daher Kaiss Performed by: Adham Masarwah. Industrial project 234313. Project Objectives. Create a GUI application that: Opens a mySQL database and visualize its content using a table view
E N D
Always alive mySQL viewer with inter process data communication Instructed by: DaherKaiss Performed by: AdhamMasarwah Industrial project234313
Project Objectives • Create a GUI application that: • Opens a mySQL database and visualize its content using a table view • Enable a pre-defined set of queries on the database • Demonstrate ‘always alive GUI’ (i.e. demonstrates that the GUI is never stuck when the database is busy) • Enable remote updates to the SQL database from remote machine(s) while enable continuous refresh of the data
Methodology • QT package: for developing always alive GUI, using QT multi-threading package • mySQL package: for storing the data • QT sockets : connect between the main application and remote processes that need to update the DB
Achievements • Main application: • Contain all the objects that are needed for the required functionality such as buttons , menu and table view • Support all the required functionality such as : • Connecting to the mySQL server (using username & pass) • Load the data from the DB into the table view • Executing pre-defined queries and visualize its results on the table • Support option to change the DB and/or the table that contain data from the mySQL server in middle of work
Achievements (cont.) • Main application: • Ready to read the data sent from remote machine(s) and applies the updates (in this way the data on the table always up-to-date) • Always alive GUI: using the multi-threading programming, the GUI still alive while the DB is busy in long computations • This way, the user can still interact with the application (e.g. view the data, select another tasks)
Achievements (cont.) • Remote machine application: • Supports the functionality of sending data to the main application using sockets • Supports the ability to choose the table to be updated in the server DB
Illustration Update Remote Machine …………. Update Remote Machine IPC QSockets IPC QSockets Main application Viewer query1 query2 SQL query3 query4
Conclusions • The course gave us an opportunity to be exposed to new technologies and new environments, and acquired us experience with the real software projects, and getting familiar with the project’s life-cycle • When using open-source packages/tools, reading the documentations and the examples is very important for fast ramp up • Good design is very important in building/developing an application especially when it is created from multiple components, that need to be integrated together