Large Application - Web Based - Platform/Language Suggestions

Another vote for Java/JEE here but that's again because it's what I'm used to and it's not knocking the MS technologies. However, as JIMA points out quite rightly, you should consider many factors before deciding on the technology. First and foremost you should consider what technology stack that the company will be using. Are they a MS platform, or Unix/Linux? Who will be supporting this application once it's live? Are license costs an issue? What skillsets are available?

In my experience the three tier approach is more performant (seperate database server) but in your case the volume of users is quite small (I'm used to writing massive applications for one of the UK's big banks). However, do consider the impact of licensing on the design. For example, Oracle licenses are per CPU I think. So if you put it on the same box as your application layer then you'll need more CPu's on that box and therefore a larger number of Oracle licenses. That's just an example of course - you probably won't be using Oracle.

Your should also ensure that a backup strategy and also a disaster recovery strategy is considered if it is a business critical application? You could consider clustering here as it provides an active/active recovery position.

Again as JIMA pointed out, you should consider costs for the life cycle of the application and not just the development (in other words it can cost more to support the application for several years once live than it does to develop it).
 
SQL Server Express (SSE) 2005 would make a good starter 3rd tier. When you need to scale up you can upgrade the SKU to Standard or Enterprise edition.

This is what we do for our products. Start the customers off on SSE'05 and then when they've integrated their systems and are preparing to go live they stump up for a higher SKU - often at this stage it moved to a seperate server as well.

Java doesn't natively have a JIT'er which hurts scalability and performance of enterprise systems. Each time a sub runs it has to be recompiled. Whereas .NET will compile subs and various common code paths once and then won't need to do it again for the life of the process. So subsequent executions of the same codepath or sub will run at CPU native speed with no overheads (other than the usual array bounds checking and other managed-niceties).
 
noob said:
He's right though look at MySpace that has over 40 million members and that runs on IIS. MySpace is one of the biggest websites on the IntraWeb. :p ;)

IIS is clearly inadequate.

How many servers do they have? You think it's only one? The costs of running IIS must include Windows licences and load balancers plus the loss of cpupower just to run the bloated OS.

Apache runs on low-maintenance secure Operating Systems which use less of the cpus. This means Apache can run on lower power hardware which saves money on purchase and runtime.
 
NathanE said:
Java doesn't natively have a JIT'er which hurts scalability and performance of enterprise systems. Each time a sub runs it has to be recompiled. Whereas .NET will compile subs and various common code paths once and then won't need to do it again for the life of the process. So subsequent executions of the same codepath or sub will run at CPU native speed with no overheads (other than the usual array bounds checking and other managed-niceties).

With JSP pages, it's standard practive to pre-compile the java just like with .Net
 
MikeTimbers said:
How many servers do they have? You think it's only one? The costs of running IIS must include Windows licences and load balancers plus the loss of cpupower just to run the bloated OS.

Apache runs on low-maintenance secure Operating Systems which use less of the cpus. This means Apache can run on lower power hardware which saves money on purchase and runtime.

When developing a large scale system you have to consider many aspects not just how much money a licence costs. :)
 
Cheers for the info so far :D

Current application is an old legacy Unix product (that I maintain - scale dictates any new project would not be developed by myself and would be outsourced somewhere in the world).

New product is prefered to be Windows based (pretty much closed viewpoint unfortunately). My questions are mainly because the push seems to be IIS,.NET - C#,SQL 2005

I think its a stigma that certain companies have MS tatto'd on their forehead and just won't even attempt to consider the open source routes for anything. I can try hard but I fear in my case it would be a lost battle before I started.

Regarding some of the above points.

System is 24/7 so I had already realised that it would need to be clustered etc. We already have resiliancy in place now so its a given.

I do need to investigate license costs - for example if you have say 150 users at the actual site using the system but maybe 100's using the e-commerce section (same full application just locked off functionality as such) I then need to see how it impacts on cost (is it per seat, per concurrent user, per CPU, per whatever. I have already seen the costs of some of the MS ERP solutions so I know nothing is going to be cheap :cool:

I know the costs involved are high (hardware, s/w/ licenses, time etc) and the continuing maintenance costs will not be cheap (support team etc.)

Many thanks you've definately given me more food for thought.
 
Back
Top Bottom