project objectives create a gui application that: opens a mysql database and visualize its content...
TRANSCRIPT
INDUSTRIAL PROJECT234313
Always alive mySQL viewer with inter process data
communicationInstructed by:
Daher Kaiss
Performed by:
Adham Masarwah
Project Objectives
Create a GUI application that:Opens a mySQL database and visualize
its content using a table viewEnable a pre-defined set of queries on
the databaseDemonstrate ‘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
Viewer
query1
query2query3query4
SQL
UpdateRemote Machine
UpdateRemote Machine
IPC QSockets IPC QSockets
Main application
………….
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