Software_1 0 Newbie Poster

Our company is developing a large, database (MySQL) system on top of the Netbeans RCP. This is a Java Swing GUI based application.
We want to take advantage of Rich Client Platform to develop the "Government Platform" and use its module project type to develop the "Government Modules", essentially Java Swing front-end and /MySQL back-end kind of applications/modules.

We'd like to know some in this community who are "experts" and have developed desktop & client-server applications on top of the Netbeans Platform with MySQL Database in the back, deployable in the local area network environment.

Our application has 3 deployment scenarios for our single large (Netbeans Platform and MySQL) database application, as follows;

Desktop deployment option - should be deployable as a desktop application with MySQL server residing on deployment machine, and...
Local Network deployment option - should be deployable as a networked application, where multiple PCs installed with client modules, connecting to a MySQL server residing on one of the machines on the local area network
Online deployment option - here we have the online hosted database, and the desktop and network deployments can synchronize their data/databases with the online MySQL database
The modules in the Application itself include modules to facilitate the above tasks, enable user role management on the application's MySQL database, module management search available modules/add/activate/remove any module ( all possible from the user end)

The modules to add to the application are very many and continuously developed, but the initial modules are simply to automate the module management process from the end-user perspective.

For the online database we have already setup dedicated server with dedicated IP where MySQL server in running. This will enable further developing web applications to analyse data brought in by the applications deployed on remote desktops and local network.

What's the best approach to developing this application?

Lets say I have the MySQL server installed on 192.168.4.100, and the database is here. Netbeans is also installed on this machine. Netbeans is also installed on 192.168.4.101, 192.168.4.102, 192.168.4.103, 192.168.4.104, etc up-to 10 or more development PCs. Each worker is working on a separate application module but the database they are all connecting to is the same (192.168.4.100) even as they develop. Yet the completed system/ converged modules will be deployed in entirely different local network than the development network. For installer building or final executable program we'll give to clients (.exe or .msi), this will be built using Advanced Installer, which has built-in support for Java applications, integrating them fully into the Windows OS.

So that is our scenario guys, thank you for reading this to all the way down here and now your thoughts.

Dani AI

Generated

For : a pragmatic, maintainable path is to separate the NetBeans Platform UI (rich client modules) from any code that touches the database. That yields three clear layers: (1) NetBeans RCP modules for presentation and local-state, (2) a server-side tier that owns business rules and DB access (REST/HTTP or message-based), and (3) MySQL as the persistent store. This avoids exposing MySQL across the Internet, centralizes security and sync logic, and keeps modules lightweight and testable.

Development and delivery workflow notes:

  • Avoid all developers working on a single shared development DB. Use per-developer local DBs (or Dockerized MySQL instances) plus a shared integration/staging server for merge testing.

  • Track schema changes with a migration tool (Flyway or Liquibase) so builds apply schema changes predictably. Example migration file:

    -- V1__create_users.sql
    CREATE TABLE users (
      id INT AUTO_INCREMENT PRIMARY KEY,
      username VARCHAR(100) NOT NULL,
      role VARCHAR(50) NOT NULL
    );
  • Use CI to build the application cluster nightly and run integration tests against the staging DB.

Module management and installers:

  • Use NetBeans Auto Update (Update Center) to let end users discover/install/activate modules. Host the update repository over HTTPS and sign modules where possible.
  • Produce the platform build (NetBeans Application project) and create native installers (Advanced Installer is fine). Bundle or pin a JRE for predictable behavior and ensure module metadata/versioning is consistent.

Sync, offline, and security considerations:

  • For LAN-only deployments direct JDBC can be acceptable; for hosted/online scenarios use a middle tier (REST + token-based auth, or a message queue) rather than exposing MySQL.
  • For offline-capable clients consider application-level sync or a DB sync tool (e.g., SymmetricDS) and use optimistic conflict detection (timestamps/version numbers) with clear resolution rules.
  • Enforce TLS, least-privilege DB users, IP/firewall controls, and application-side authorization for role management.

Quick checklist: per-developer DBs, schema migrations, CI/staging, Auto Update repository, signed modules, connection pooling (HikariCP), backups, monitoring, and a small prototype (one module + sync service) before scaling.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.