Thank you @Kevin!
Your reply makes a few things visible to me.
You can get stuck both ways
- IMO that indicates it’s not a technical problem, but, again, a human one
I would always side with “start simple”.
It’s easier to convert from JavaEE to Spring than the other way around
- (I meant to ask you that next to confirm or negate my suspicion, but you’re a step ahead of me )
I need to elaborate this on my background, though this will go on for a bit. Please forgive me should I step over the limits of this topic in the process, it’s all still related to the JavaEE vs Spring question!
I am trying to apply all this directly to the situation I am working on at the moment. To tell the truth: It’s a company that does not work in the software industry, but needs individual software development in-house. In a nutshell: I can’t just do what I like, but I have to make choices about what’s best for whoever else is going to get in touch with my projects eventually. While I can’t ask those “whoevers” - we don’t have an enterprise-architecture yet to support such schemes.
In all this, I guess I underestimated my own progress. Two years ago, it was the simplest way to use a toolkit like Spring or .NET, where I can get the whole system out-of-the-box, and then start modifying it into what I need for the requirements.
Today, and building on your tutorials (I think I mentioned in another thread that I am starting from scratch on purpose), I realize I don’t need this approach anymore, though it still influenced my view about Spring.
In my situation, I am just now realizing that the technology is not solving the problem. I pick Java because the people “in reach” are mostly familiar with this language (as opposed to c# and PHP). But what I really need to come up with is an architectural solution.
Here’s were I’m going :
I need systems with user authentication in a web-environment who will read and write data. There will be a notification system within the app and per e-mail. The UX has to be convincing, but that’s my least concern. The data comes from various sql databases (oracle, mysql, mssql) which switch structure and systems sometimes. I can’t use frameworks outside of JavaEE, so I have to come up with an OR-Mapping that is at best pluggable, at least modular. And in between web-ux and db-or-mapping sits my business-logic, which needs to be some sort of RESTful microservice.
With the help of your tutorials and this conversation, I think I begin to see a way through all this. We don’t know where our systems will eventually be deployed. Usually I’d be happy with a RESTful-API, but for this unknown variable I want to go a step further and make a microservice that is deployable in a VM or a docker container. I’ve looked into java web sockets for this, but assume a standalone java server like tomcat for that container/vm would do the trick as well.
The microservice is giving me headaches at the moment, because I haven’t figured out yet how or-mapping works in java when I’m not able to use hibernate, and as indicated above, I need to evaluate how far I can or should go to make the whole DAL modular and exchangeable. With a minimum of coding, or none at all. The microservice would be a combination of said DAL and business-logic, providing the API over http.
Thanks goodness we are talking web-app, so at least the view/ui (client-side) is secured by HTTP standards - I don’t crack my head about this one.
I am not sure if I was able to bring across my situation as clearly as necessary, so if there are any more questions: please ask!
closure and questions
All the frameworks are not out of question per-se, my company just “strongly discourages” them. I have to talk systems, because my customers don’t really know yet what they need from the software; we need software to figure out what we need, so requirements and software-solution have to develop synchronous with the business processes my bosses are trying to implement. I have to accept that a default architecture for how to do DAL, business-logic and web-client is my best option.
What is the simplest way to accomplish that?
Personally I begin to fancy the idea of java apps like what I saw here at oracle. The problem then would be the protocol between publisher and subscriber. Suppose my DAL is the publisher for the REST-API, then anyone who’d want to “plug in” a new db needs to know this protocol and work according to it. Should I use messaging? Or URL-sockets (to make the DAL itself a RESTful API)? Is there some other way I am not even aware of? I know I tend to make things more complicated than necessary. (even posts…)
My projects run the “risk” of being outsourced at some point. That kinda dictates to use JavaEE to make frameworks like spring and hibernate optional instead of dictating them to whoever has to pick the people / companies for outsourcing. But since I have to get started with this all on my own, the simplest solution has to be preferred. So if Spring, Struts or whatever else saves me a month or six of work, I really should use that.
However, I need to see all perspectives before I can take a step.
Thanks so much for helping me out with this!