Meaningless Drivel is fun!*
The moose likes Architect Certification (SCEA/OCMJEA) and the fly likes How much server/cluster/hardware i need to know to be a SCEA/Architect Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Certification » Architect Certification (SCEA/OCMJEA)
Bookmark "How much server/cluster/hardware i need to know to be a SCEA/Architect" Watch "How much server/cluster/hardware i need to know to be a SCEA/Architect" New topic
Author

How much server/cluster/hardware i need to know to be a SCEA/Architect

Hugo Marques
Greenhorn

Joined: Dec 06, 2011
Posts: 6
Hello guys,

I'm working with Java EE since 2008 and i have a good overview of java technologies and options thanks to these experience years and to the SCWCD and SCBCD i took this year.

Since i'd like to be a software architect or a better software engineer i'm planning to take SCEA to have a better understand design solutions with Java EE platform. My question is: How much hardware, application server and features like clusters and load-balacing configuration do i need to know to pass in SCEA or to be a software architect?

I had always been a developer so i never get in contact with this kind of design/solution.

Thanks for the help,

Best Regards,

Hugo
Paul Balm
Ranch Hand

Joined: Dec 13, 2008
Posts: 63
Hi Hugo,

I would say that you need to know conceptually what these things do, and why you would choose them. In the case of application server clusters, it's also good to have a look at the kinds of services that they offer. I recommend not to go crazy: Look at the standard options.

So let me try to explain that a little bit.

Things like load balancers and application clusters are used to address performance issues/requirements. You need to understand that a load balancer is used to distribute traffic across multiple servers in a cluster, so that you can handle more load than a single server could handle. But then you should be aware that if traffic from one user is distributed over multiple servers, for example, the user should have the same shopping cart independently of which web server is handling any particular request. So you need to address the question how each web-server knows about the contents of this users' shopping cart. This is where services of clusters come into play. Take the most standard EJB container, which is Glassfish, and have a read through the Glassfish cluster documentation. Then you will find that Glassfish clusters offer a service called session replication, which could be a solution to the problem of the user's shopping cart.

This is the kind of thing you need to understand.

Specifically about server hardware (machines and network gear), you will get some points for proposing hardware that your solution might run on to spec, but not very many. (See your assignment, it will say how many points you get for each.) So I wouldn't worry too much about this, but I've found this book helpful, although it's no silver bullet:
http://www.amazon.com/Performance-Analysis-Websites-Stacy-Joines/dp/0201844540/ref=sr_1_2?s=books&ie=UTF8&qid=1343337020&sr=1-2&keywords=java+web+sites+performance

My colleagues say there are more up-to-date books on this topic, but I think they're probably bragging and jealous. :-)

Good luck!


SCJP 1.4 -- SCJD Java 2 -- OCM JEA 5
Hugo Marques
Greenhorn

Joined: Dec 06, 2011
Posts: 6
Thanks for the answer, I'll take a look on these topics.

One last question, how do you measure what hardware do you need to deploy some system?

Best regards,

Hugo Marques
Paul Balm
Ranch Hand

Joined: Dec 13, 2008
Posts: 63
Good question. I'm afraid that the answer is simple: You don't know how many servers to deploy. Even if you read the book I recommended above, it will tell you to deploy a proof of concept (a small scale version of the real system), and *measure* the performance. Then you calculate the number of servers from there.

Of course that's not feasible for SCEA/OCMJEA. So all you have is gut feeling, but you should try to work out the numbers. For example, maybe your feeling is that a server can handle 50 users before maxing out the CPU. How many page loads and how many HTTP requests per second id thay, considering your performance requirements? Does the number seem to make some sense?

This is a difficult one. If anyone has a better answer, I'd love to hear it!

Cheers-
Thulasi Prasad
Greenhorn

Joined: Jun 07, 2011
Posts: 6
Hi,

As per my understanding, we do not have any specified methods to measure the hardware specification for a particular application. It depends on so many parameters, like network, type of server , server capabilities, ......

Before finalizing the hardware, We need to finalize the request rate for a certain period of time and number of users are going to use the system. Configure the Hardware which should support double the measured requests rate and users.

Based on problems faced earlier and previous experience with server configurations, Architects/senior people can conclude hardware configurations. After initial assumptions, we need to start with hardware configurations and test the applications. If hardware is not supporting then keep on increase/double hardware configurations and test util application reaches the stable state and needed requirements.

Thank you.
Thulasi Prasad.N
Fernando Franzini
Ranch Hand

Joined: Jan 09, 2009
Posts: 486
    
    2

Hi Hugo

I did a summary when I passed the first part of certification on all that you really need to know and are familiar. Use the summary to knowing what you need to learn and study (downloaded here - http://fernandofranzini.files.wordpress.com/2012/07/ocmjea-jee5-1z0-864.pdf)
Regards.


Fernando Franzini - Java Blog
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: How much server/cluster/hardware i need to know to be a SCEA/Architect