This is hopefully a quick question just to rationalise my
preconceptions about being able to scale up enterprise applications to
high numbers of cores and possibly clusters of computers.

My understanding is that this is something which has been successfully
achieved using JavaEE and Application Servers. I also understand that
to my knowledge that the application server is implemented to allow
itself to run in a clustered way i.e. scale over more than one
machine. In order to take advantage of this I understand that
applications running in this environment are required to functioning
within a number of constraints to enable the application server to be
able to scale or cluster the code.

I appreciate also that just throwing a system on an application server
will not automatically cause it to scale well and a lot of care must
be taken to eliminate or mitigate synchronisation bottlenecks and
manage the amount of shared state / data that the application servers
have to keep synchronised between them.

At this point this is still all theoretical knowledge as I have never
had the opportunity to work with a system that operates in this way.

Does Spring support this kind of clustering or is it really only EJB
that is designed for this?

Also I understand that other platforms, particularly C++ can also be
used for highly scalable systems. My understanding here though is that
it is usually a matter of building everything from scratch as C++
isn't really geared towards a general purpose application server
model. I would also assume a similar situation with Objective-C.

Even for Java, trying to build a highly scalable server system that
can be run on clusters of servers is a major undertaking if trying to
do it from scratch rather than using an existing application server.

Also, due to the number of companies that have and do run highly
scalable systems on Applications servers, access to individuals with
expertise in this area or documentation and example real applications
using this technology are more readily available than for other
technologies.

Trying to implement this kind of system from scratch even in Java (or
another JVM language) and in particular using lower level languages
like C++ is such an undertaking that it would be considered foolhardy
unless backed by a major company with deep pockets and lots of time as
well as by a team of very highly skilled people. For example Amazon is
able to use C++ in their highly scaled architecture but Amazon is a
very big company with a lot of resources behind it.

I just want to get some feedback as to whether my current perceptions
are fair or whether I am wrong about any of these assumptions. It
might be a bit of a moot point as I am not sure if a discussion about
this would come up for me but if it does I would like to feel prepared
with well informed and fair views on the matter.

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to