File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes EJB and other Java EE Technologies and the fly likes Need some help about J2EE design-decisions, please! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "Need some help about J2EE design-decisions, please!" Watch "Need some help about J2EE design-decisions, please!" New topic
Author

Need some help about J2EE design-decisions, please!

Ricardo Soe-Agnie
Greenhorn

Joined: Dec 11, 2005
Posts: 2
Ok, it�s difficult to find a starting point, but here we go...

Scope:
------
I work at a company that takes over the billing-risk for other companies towards their debtors.
My department develops software that supports the other departments in the company.
The current software is made with a 4GL tool called Magic Developer 8.30 and Oracle, but the software is hard to maintain at this moment and it's difficult to get extra expertise for it. Besides that, the license costs are too high and the vendor dependency is very high. Standardization of the billing is done by specialized companies who also have some web-services available.



The IT-manager wants a total rebuild and has made the following IT/business moves:
1. He invested in Linux-servers (=servers are running Red-Hat).
2. He wants to move the software-development to Open-Source.
3. He wants to be "service-orientated" towards his partners/clients.
4. He wants to use the oracle 9i database, because they already invested in that.

This means that:
a).Net is not an option
b) Upgrading to a better version of Magic is also a No-No.

As you can guess, Java/J2EE is the option with the most potential. And that's why the IT-Manager has put me in the position to decide how the architecture is going to be (because I'm the most experienced java guy up there).


This brings the following difficulties to the table:
1. We are dealing with 4GL developers, so they have little or no experience with programming.
2. Although I have experience with servlets, JSP, JDBC and XML. I need some feedback, because I don't have enough architectural knowledge.

There is money available for training and some software-investments.

I have a couple scenarios in my head:
1. Building around lightweight frameworks as Spring, Hibernate, Tapestry/Webwork, etc�
2. Going Standard J2ee-> EJB 3 (JBoss), Jsp, Servlets
3. Combine those two?

I'm also allot reading about the SOA (besides the hype-buzzword) concepts.

So I have the following questions:
1. Because the lack of web-experience of the developers and the high demand on the GUI client-side, I had thoughts on designing the client-side with Swing. The web-based applications will be done by me (with the best suitable frameworks/tools). In this case the developers don't have to master the web-client side.
Q: Is it possible to use web-services or EJB's at the deployment layer and use a swing thin-client at the presentation layer?

2. Is it an option to design all the logic on the deployment layer as web-services, so that I don't have to use EJB's?

3.Q: Is it wise to invest in a Service-oriented Architecture model if an application is build from the ground up?

4.Q: Is it wise to take the risk to invest in EJB3-training and using this technology, even if the technology is not implemented by most of the vendors, yet?


Thanks,

Ricardo
Roger Chung-Wee
Ranch Hand

Joined: Sep 29, 2002
Posts: 1683
I have a couple scenarios in my head:
1. Building around lightweight frameworks as Spring, Hibernate, Tapestry/Webwork, etc�
2. Going Standard J2ee-> EJB 3 (JBoss), Jsp, Servlets
3. Combine those two?

The most compelling reasons for using EJBs are distribution, transactions and messaging. If you need none of these, then EJBs might be overkill.


Because the lack of web-experience of the developers and the high demand on the GUI client-side, I had thoughts on designing the client-side with Swing. The web-based applications will be done by me (with the best suitable frameworks/tools). In this case the developers don't have to master the web-client side.

Unless you need the rich functionality provided by Swing, then develop your clients using JSPs and servlets.


Is it possible to use web-services or EJB's at the deployment layer and use a swing thin-client at the presentation layer?

Yes, but stay away from web services for intra-system communications. There is normally no need to do anything other than use RMI-IIOP for a remote client which is invoking EJB methods.


Is it an option to design all the logic on the deployment layer as web-services, so that I don't have to use EJB's?

I think you've got a bit confused about web services. Look at it as an alternative to RMI. But you still need to develop your business objects. Regardless of whether you implement your business logic as EJBs or POJOS, you can enable them for web services. Typically, you use a tool which introspects the Java code and generates the web service, WSDL, client stubs, etc.


Is it wise to invest in a Service-oriented Architecture model if an application is build from the ground up?

I'm not qualified to answer this, but I'm aware that several vendors such as BEA are making a big thing about their servers supporting SOA.


Is it wise to take the risk to invest in EJB3-training and using this technology, even if the technology is not implemented by most of the vendors, yet?

Don't think about it. You have a massive learning curve, just sort out your platform, your design, your training. Oh, don't try to learn all of this yourself - bring in expertise to help ease the learning curve.


SCJP 1.4, SCWCD 1.3, SCBCD 1.3
Ricardo Soe-Agnie
Greenhorn

Joined: Dec 11, 2005
Posts: 2
Many thanks Roger for the detailed reply,

Originally posted by Roger Chung-Wee:

Yes, but stay away from web services for intra-system communications. There is normally no need to do anything other than use RMI-IIOP for a remote client which is invoking EJB methods.


1.Do you mean intra-systems as in intranet systems, and why stay a way from creating services for those systems?
2.People always say that EJBs are bringing too much difficulties and heavy load with them... Is their a way to do this without EJB's?


Originally posted by Roger Chung-Wee:

I think you've got a bit confused about web services. Look at it as an alternative to RMI. But you still need to develop your business objects. Regardless of whether you implement your business logic as EJBs or POJOS, you can enable them for web services. Typically, you use a tool which introspects the Java code and generates the web service, WSDL, client stubs, etc.


Yes I want to develop my business objects as POJOs, you're right I got a little confused with calling it logic. Which tool do you recommend, or is this a facility in IDEs?
Roger Chung-Wee
Ranch Hand

Joined: Sep 29, 2002
Posts: 1683
Do you mean intra-systems as in intranet systems, and why stay a way from creating services for those systems?

What I meant was the client should not use web services to communicate with the server-side of the same application. Web services are best for communications between apps as this gets you away from proprietary APIs and makes it easier for almost any client (Java, C#, C++, C, etc) to make web service calls on your app.

People always say that EJBs are bringing too much difficulties and heavy load with them... Is their a way to do this without EJB's?

Please refer to my first post. EJBs are best for certain things, but have often been used when a better alternative was available. Then you get some people criticising EJBs when they should have been critical of their own judgement for choosing wrongly.

If you don't need distribution, transactions or messaging, then ask yourself whether JSPs, servlets and POJOs will be sufficient. This will scale well and you can always introduce EJBs later if needed.

Which tool do you recommend, or is this a facility in IDEs?

It depends on your platform. For instance, at work I use WebLogic Server and I use the Ant tasks supplied by BEA. Should you decide to use JBoss, you will find that there is a plug-in for AXIS.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Need some help about J2EE design-decisions, please!
 
Similar Threads
Java/J2EE Developers Required Immediately
Few Question For J2EE Developer
Unix, Java - Baltimore, MD - H1-B is ok - October 25
Bangalore, February 26, 2010 Building Web 2.0 UIs with JSF, Realtime Updates with JSF and Ajax Push
Java discourages intelligent use of database technology: Discuss.