• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

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

 
Hugo Marques
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 63
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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!
 
Hugo Marques
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 63
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 489
2
Java Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic