Go Back   AnandTech Forums > Software > Programming

Forums
· Hardware and Technology
· CPUs and Overclocking
· Motherboards
· Video Cards and Graphics
· Memory and Storage
· Power Supplies
· Cases & Cooling
· SFF, Notebooks, Pre-Built/Barebones PCs
· Networking
· Peripherals
· General Hardware
· Highly Technical
· Computer Help
· Home Theater PCs
· Consumer Electronics
· Digital and Video Cameras
· Mobile Devices & Gadgets
· Audio/Video & Home Theater
· Software
· Software for Windows
· All Things Apple
· *nix Software
· Operating Systems
· Programming
· PC Gaming
· Console Gaming
· Distributed Computing
· Security
· Social
· Off Topic
· Politics and News
· Discussion Club
· Love and Relationships
· The Garage
· Health and Fitness
· Merchandise and Shopping
· For Sale/Trade
· Hot Deals with Free Stuff/Contests
· Black Friday 2014
· Forum Issues
· Technical Forum Issues
· Personal Forum Issues
· Suggestion Box
· Moderator Resources
· Moderator Discussions
   

Reply
 
Thread Tools
Old 01-19-2013, 07:46 PM   #1
slugg
Diamond Member
 
slugg's Avatar
 
Join Date: Feb 2002
Location: Tampa, FL
Posts: 4,119
Default Need help picking a Java EE development stack/application server and operating system

I'm looking to make a virtual machine running some flavor of Linux, install a Java application server, deploy my proprietary software to the VM/app server, then distribute the VM as a virtual appliance. I'm not well versed with either Linux or Java, so I seek the collective wisdom of AnandTech.

So here are the needs:
1. Operating system must be able to be freely distributed even though the software it ships with will NOT be free.
2. The application server/dev stack must implement Java EE 6, but 7 would be nice.
3. The app server must also be freely distributable, even when shipped with non-free, paid software.
4. Setup and management of the OS and AS should be simple. I don't want any "1337 h4xer LiNuX" crap; I just want something straight forward and effective.

Here's what I'm thinking so far for the OS (one of these):
1. CentOS - free alternative to RedHat, rock solid SE-Linux, great support
2. Oracle JeOS - designed for application distribution, small footprint, not sure about support
3. ???

Here's what I've come up with for the application server and development stack (one of these):
1. JBoss - if using CentOS, this would kind of make sense. RHEL and JBoss are packaged together routinely, and CentOS is a free alternative to RHEL.
2. Glassfish - reference Java EE platform maintained by Oracle. If using Oracle JeOS, this would kind of make sense, too.
3. ??

What do you guys think?


edit:
I just started messing around with Oracle Linux... Looks all fine and dandy until you realize that it will not receive updates unless you pay for support! What a load of crap. What's the point of touting it as a free, enterprise solution if it can't even receive security updates for free?
__________________
  • ThinkPad T520 - srs bizniz
  • MacBook Air 11'' - iOS dev bizniz
  • 1999 Mazda Miata - (street legal gokart on steroids!)
  • 2002 Mazda Protege - (Work in progress)

Last edited by slugg; 01-19-2013 at 08:37 PM.
slugg is offline   Reply With Quote
Old 01-20-2013, 09:41 PM   #2
Leros
Lifer
 
Leros's Avatar
 
Join Date: Jul 2004
Location: Austin, TX
Posts: 21,559
Default

CentOS with Tomcat 7
Leros is offline   Reply With Quote
Old 01-20-2013, 10:47 PM   #3
douglasb
Diamond Member
 
Join Date: Apr 2005
Posts: 3,163
Default

Quote:
Originally Posted by Leros View Post
CentOS with Tomcat 7
This.
douglasb is offline   Reply With Quote
Old 01-20-2013, 11:14 PM   #4
Markbnj
Moderator
Programming
 
Markbnj's Avatar
 
Join Date: Sep 2005
Posts: 12,841
Default

Quote:
Originally Posted by slugg View Post
I just started messing around with Oracle Linux... Looks all fine and dandy until you realize that it will not receive updates unless you pay for support! What a load of crap. What's the point of touting it as a free, enterprise solution if it can't even receive security updates for free?
Because Oracle.
__________________
Everytime I try to tell you, the words just come out wrong

**
Some meaningless scribbling of no account

The 4th Realm

Arts and Letters Daily - Get some culture
Markbnj is offline   Reply With Quote
Old 01-21-2013, 12:55 AM   #5
beginner99
Platinum Member
 
Join Date: Jun 2009
Posts: 2,196
Default

Quote:
Originally Posted by Leros View Post
CentOS with Tomcat 7
AFAIK Tomcat is not fully Java EE 6 compliant. So depending on the OPs proprietary Application it might not work.

Quote:
Tomcat is a web container only (Java EE Web Profile in
Java EE 6 terminology).

That means that you have servlet, JSP, JSTL, EL, JSF etc.
to work with.

You don't have EJB, JCA, JTA, JMS etc..

You can also use all the third party web frameworks (Struts 1,
Wicket, Spring MVC etc.).

Most likely you will be fine, but obvious you should narrow
what you study to match what you have.
As OS I would use Lubuntu (Ubuntu with LXDE) or Ubuntu Server (no GUI).

Last edited by beginner99; 01-21-2013 at 01:02 AM.
beginner99 is offline   Reply With Quote
Old 01-21-2013, 07:30 AM   #6
sourceninja
Diamond Member
 
sourceninja's Avatar
 
Join Date: Mar 2005
Posts: 7,965
Default

For a VM I would go with CentOS using their minimal install option. Then install the packages you need to support your application. The main goal here is getting a vm that ONLY runs the minimum needed to support your application. Stuff like desktops, services that are not used, etc will only up your vm's system requirements, bloat the vm's footprint, and provide more attack vectors. Ubuntu server's "minimal install for a virtual machine" is also a good option, but for professional work I'd go with Cent. Only because more people will be running redhat in their datacenter and will be familiar with it.
sourceninja is online now   Reply With Quote
Old 01-21-2013, 01:13 PM   #7
slugg
Diamond Member
 
slugg's Avatar
 
Join Date: Feb 2002
Location: Tampa, FL
Posts: 4,119
Default

Quote:
Originally Posted by sourceninja View Post
For a VM I would go with CentOS using their minimal install option. Then install the packages you need to support your application. The main goal here is getting a vm that ONLY runs the minimum needed to support your application. Stuff like desktops, services that are not used, etc will only up your vm's system requirements, bloat the vm's footprint, and provide more attack vectors. Ubuntu server's "minimal install for a virtual machine" is also a good option, but for professional work I'd go with Cent. Only because more people will be running redhat in their datacenter and will be familiar with it.
Yea, I was thinking this, too. I've rolled a couple CentOS minimal systems over the weekend to toy around. So far, I think it's a great option. I'm equally familiar with RedHat/CentOS as I am with Debian/Ubuntu (not saying much - I'm not a Linux expert), but CentOS is a whole lot easier to harden than Ubuntu. For production, I want something that's designed for production, so CentOS wins it for me.

For my particular application, a "complete" Java EE implementation might not be necessary. I'm not entirely sure yet. That being the case, why are some of you recommending Tomcat? Why not JBoss or Glassfish? I'm trying to understand the advantages so I can make an educated decision.

As for the DBMS, I'm thinking Oracle XE. Can anyone come up with a compelling reason to use PostgreSQL? MySQL is out of the question. I'm picking Oracle so far because it's more widely understood due to its popularity, plus the Oracle SQL Developer software puts PGAdmin to shame. Then again, it was maybe two years ago the last time I checked.

Thanks, all.
__________________
  • ThinkPad T520 - srs bizniz
  • MacBook Air 11'' - iOS dev bizniz
  • 1999 Mazda Miata - (street legal gokart on steroids!)
  • 2002 Mazda Protege - (Work in progress)
slugg is offline   Reply With Quote
Old 01-23-2013, 12:51 AM   #8
beginner99
Platinum Member
 
Join Date: Jun 2009
Posts: 2,196
Default

Quote:
Originally Posted by slugg View Post
For my particular application, a "complete" Java EE implementation might not be necessary. I'm not entirely sure yet. That being the case, why are some of you recommending Tomcat? Why not JBoss or Glassfish? I'm trying to understand the advantages so I can make an educated decision.
Tomcat is more lightweight.Tomcat is very nice, a lot of developers and admins know it. It is far simpler than a full blown java ee container.

Quote:
As for the DBMS, I'm thinking Oracle XE. Can anyone come up with a compelling reason to use PostgreSQL? MySQL is out of the question. I'm picking Oracle so far because it's more widely understood due to its popularity, plus the Oracle SQL Developer software puts PGAdmin to shame. Then again, it was maybe two years ago the last time I checked.
This is easy. PostgreSQL is free and open source and free not meaning price but free to sue with no restrictions. The Question is more why you should not use it. Only reason I see is if the application only runs on oracle or 90% of your costumers use it with oracle.

Whats you issue with PGAdmin? Works fine for me. Note: I use SQLDeveloper daily and don't really like it that much. Actually I prefer HeidiSQL (MySQL, SQlServer) over both of them.
beginner99 is offline   Reply With Quote
Old 01-23-2013, 05:49 AM   #9
Nothinman
Elite Member
 
Nothinman's Avatar
 
Join Date: Sep 2001
Posts: 30,672
Default

Quote:
Originally Posted by beginner99 View Post
This is easy. PostgreSQL is free and open source and free not meaning price but free to sue with no restrictions. The Question is more why you should not use it. Only reason I see is if the application only runs on oracle or 90% of your costumers use it with oracle.

Whats you issue with PGAdmin? Works fine for me. Note: I use SQLDeveloper daily and don't really like it that much. Actually I prefer HeidiSQL (MySQL, SQlServer) over both of them.
Agreed. One should default to either MySQL or PostgreSQL and need a very, very good reason to even consider Oracle not vice versa.
__________________
http://www.debian.org
Nothinman is offline   Reply With Quote
Old 08-20-2013, 02:13 PM   #10
JMasters
Junior Member
 
Join Date: Jul 2013
Posts: 5
Default

JBoss, Glassfish, and Tomcat are the three main options. I think it comes down to a choice between Tomcat and JBoss. This article gets into the pros and cons of each. Hope it helps. http://www.futurehosting.com/jboss-v...cation-server/
JMasters is offline   Reply With Quote
Old 08-20-2013, 04:26 PM   #11
tfinch2
Lifer
 
tfinch2's Avatar
 
Join Date: Feb 2004
Posts: 22,088
Default

We have standarized on SLES, Tomcat, and PostgreSQL where I work for our virtual appliances. We picked SLES because we worked out a deal with them. Before SLES, we used CentOS. You could also look at openSUSE too.

To build the appliance, take a look at VMware Studio or SUSE Studio.
__________________
unban ^[a-zA-Z0-9]+$

Last edited by tfinch2; 08-20-2013 at 04:32 PM.
tfinch2 is offline   Reply With Quote
Old 08-20-2013, 05:06 PM   #12
smackababy
Lifer
 
Join Date: Oct 2008
Location: Glenview, IL
Posts: 19,634
Default

Quote:
Originally Posted by Nothinman View Post
Agreed. One should default to either MySQL or PostgreSQL and need a very, very good reason to even consider Oracle not vice versa.
By very, very good reason you mean "we are a company and have to waste as much money as possible on a database solution"? Because that is what I see a lot. =(
__________________
Heatware; eBay under uoislame
------------------------
"F the police, but whose stopping you from killing me?" - Chuck D
------------------------
XBL: the wrong panda
smackababy is online now   Reply With Quote
Old 08-23-2013, 02:10 PM   #13
hooflung
Golden Member
 
Join Date: Dec 2004
Posts: 1,190
Default

I use CentOS + Tomcat + Infinispan + Spring 3.2 + PostGresql in my out of office endeavors.

I don't need a full J2EE stack because that is not really a big deal now a days since J2EE isn't really what people care about. Not to stir up a holy war with purists (I think J2EE has its place) but it is playing catchup and isn't as intuitive for most things.

However, if you need J2EE stack and you are doing CentOS you could leverage Apache TomEE. It is pretty good. Tomcat's biggest weakness imo is the connection pooling (has gotten better admittedly) and JNDI ease-of-use.

If you need JNDI for a lot of things then I would probably look towards Glassfish 4 or JBOSS. CentOS is fine but Ubuntu Server is just as good, and in some ways better since you get even closer to up-to-date OS and OpenJDK updates.

Database should probably be Postgresql. The reason why I say this is that if you go JPA chances are your entities will work without much tweaking between the two (for sequences etc). If you use MSSQL, Mysql/Maria or anything else with a built in auto increment you will have a bit different entity code.

Good luck... and stay away from JeOS. Stick to the known distros unless forced by a vendor.
__________________
HeatWare
main: Phenom II x6 1075T :: Asus m3n-ht deluxe :: 8G DDRII 800 :: 2 x EVGA 260 216 :: 4 x WD RE4 500G raid10 :: Corsair 750w PSU :: Antec p183 V3 :: Corsair H50 :: Lite-On Sata DVD-RW :: Roxio USB Gamecap
media: Phenom II x4 940BE :: Foxconn A7GM-S :: 4G DDRII 1066 :: EVGA 8800GS OC :: WD 250G HD :: Ocz 550w PSU :: Antec P180 mini gunmetal :: Corsair H50 :: Lite-On Sata DVD-RW :: AVerMedia AVerTV HD DVR
consoles: PS3 :: 360 :: Wii :: Cube :: Xbox :: PS2 :: Dcast :: PSP
hooflung is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 01:46 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.