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.
