Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4332258
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T10:13:51+00:00 2026-05-21T10:13:51+00:00

Dear Stack Overflow Community, I am a Java programmer in front of a task

  • 0

Dear Stack Overflow Community,

I am a Java programmer in front of a task of building a complex, data-driven, web application (SaaS) and I’m searching for technologies to use. I have already made some decisions and I believe I’m proficient enough to build the appliaction using just the technologies I have decided for (I’m definitely not saying it would be perfect, just that it would be working). However, I’d like to make my task easier and that’s why I need your help.

Brief description of the project

Back-end

The application will be heavily data-driven, meaning that everything will be stored in a self-descripting database. This means the database itself will be entirely described with metadata and the application will not know what data it reads and writes. There won’t probably be any regular entities (in terms of JPA @Entity) because the application won’t know the structure of the data; it will obtain it from the metadata. Only the metadata will have a pre-determined structure. To put it simply, the metadata is the alpha-omega of the application because it will tell the application WHEN and WHAT to display and HOW to display it.

The application will probably utilize stored procedures to perform some low-level tasks on the data, such as automatical auditing, logging and translating to user’s language, thus most likely eliminating any possibility to use ORM frameworks because there won’t be just simple CRUD operations. Therefore, JDBC seems like my only option (doesn’t it?).

Front-end

The UI will be “dumb” in terms that it will not know what data it is displaying (to some extent, of course). It will just know how to display it based on the metadata which it will obtain from the database. All UI controls (like menu items, buttons, etc) will be created based on current application’s state and the UI will NOT know what the controls do. This means that clicking a menu item or a button will just send an identifier of associated action to the back-end and the server will decide what to do.

My goals

My main goal is to have the application as lightweight as possible with as least dependencies as possible. Because the application will be very complex, I’d like to avoid any heavy framework(s) because there is a very high probability that I’d need to customize a lot of its functionality.

What I have already decided for

Please object to the following decisions only if you think they’re absolutely non-viable for my application, as I have already implemented some core functionality using these technologies:

  • Servlets on Tomcat, Guice DI, AOP (AspectJ)

    I believe all of these technologies are lightweight enough and I don’t need to learn J2EE.

  • GWT with GIN-jection on the front-end

    Seems like the best option for me because I’m very familiar with Java and Swing and don’t want to write any Javascript, PHP or learn a new language. GIN is a little brother of Guice and I will be using the same syntax and principles on both the client and server.

  • MSSQL RDBMS

    This is actually a requirement from company management as I’d much rather like to go with an open-source solution. Too bad for me..

  • Maven 2

    I think no-one can object to this 🙂

What I need help with

  • DB communication

    I think that ORM is ruled out (is it?) so I need to use JDBC. Do you think Spring JDBC is lightweight and flexible enough for my use? I would often need to “blindly” read data from database, mapping it to some generic entity (because I won’t assume any pre-determined structure), and then send the data using some generic DTO to the client along with the metadata telling it what data it is and how to display it. Or do you know any alternatives? Or should I do this myself?

  • Client/Server communication

    GWT and its GWT-RPC mechanism seems not very suited for sending the generic data I need. Although I’m convinced that it’s doable using GWT-RPC, are there any alternatives? But I definitely want to use GWT.

  • Security

    Do you know any security libraries / frameworks that would help me? I’m aware of the existence of Spring-security; do you think it’s flexible enough for my use or I’d be better off implementing that myself? Also, is Spring’s IoC an integral part of the Spring framework, or would I be able to continue to use Guice?

  • Anything else that you think might be useful?

I really appreciate any advice and suggestions because I wouldn’t dare to try to make such decisions myself. Please ask me if you need more information.

Thank you in advance!
eQui

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T10:13:51+00:00Added an answer on May 21, 2026 at 10:13 am

    UI framework and implications for client/server communication

    You say that any UI action will triger the backend (and potentially the DB). This mean that UI interraction will be somewhat slow anyway, and more than that will require a round trip to the server.

    GWT is especially suited to avoid as much as possible round trips to the server and do all UI work on client side. In this model, only information that will transit from client to server is real data, and not UI metadata. GWT will do the job, but you’ll be using a somewhat low level tool, needed for advenced optimisation you’ll be unable to perform anyway…

    Framework like ZK or Vaadin seems more suited to what you want to do. The client side has nice widgets with a rich UI, but you manipulate the UI from the server side. The framework manage client/server communication for you (no need of REST, RPC or javascript). The main limitation of theses framework is scalability, with all theses chatty round trip. But because your requirement impose that chatty behaviour anyway, you could really benefit from the abstraction they provide, are they are at not cost in your case.

    I have tried both GWT and Zk to do some proof of concept for my company. We ended choosing GWT, because of it’s hability to be embedded nicelly into any existing UI and to fine tune what you do… In particular avoid as much as possible rountrip to server. But ZK is really easier and faster in term of developmeent hours.

    The side effect is that would totally solve your client/server communication concern, leting the framework performing it in an optimized way (Zk is able to intelligently regroup several UI event before sending them to server).

    DB and ORM

    For DB design, i tend to think that using fine granularity things in DB will make it very very slow. If each widget is one or several rows in the database you’ll have to perform many lookup to perform the simpliest thing.

    Problem is if your UI is just a little complex with a few dozen of elements (a few button, checkboxes, labels and widgets), compositing a screen will require lot of requests to the DB. Rendering just one page might be very slow and scalability would be very very bad.

    I know this because i worked on somewhat generic bug tracking system with similar (but simpler) requirements than yours and we had exactly this problem.

    So i would try to describe UI in some templating or XML format. Maybe you’ll not show this data to the user, providing it with a nice abstraction, but instead of performning many queries for just one screen, you’ll save the whole screen as one blob.

    A really dumb and basic implementation of this would be to store HTML/CSS/PNG file in your DB and load it as needed, with user being responsible for making theses HTML file by hand. Of course this would be terrible for the user. That’s why you need a nice and fancy editor UI editor that would work on an intermediary format of your own. Another dumb implementation would be some sort of wiki templating. This is not what you need, you need more. But you have the idea, I would seek in that direction…

    For the maintenance and debugging too, this would be far easier to the whole UI description to a few file, to understand what is really implemented than to read lot of tabuled data in your prefered SQL editor. Users would have they export/import format to easily version, backup or experiment.

    Security

    I would say by hand… Because you have a generic UI generated by user it seem likely that the security will be generic too and dependant of database content.

    Hope it help…

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Dear members of the Stackoverflow community, We are developing a web application using the
Dear SQL Gurus from Stack Overflow: Environment: Oracle I'm trying to understand why I
Dear g++ hackers, I have the following question. When some data of an object
Dear Stacktoverflow, can you show me an example of how to use a QScrollBar?
Given a document written with normal quotes, e.g. Ben said buttons, dear sir. I
Dear Friends from Stackoverflow, Please help me with a problem that i'm having when
Dear all: In advance, thank you for your time. Lately, I have decided to
Dear stackoveflow, I have this problem. I'm working with an old version of mssql
Hello dear members of stackoverflow I've recently started learning C++, today I wrote a
Dear forum, what is the difference between the JDK contained import com.sun.org.apache.xml.internal.resolver.CatalogManager; and the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.