Hi All, What all attributes we should be taking care when the requirement says "we need a 3 sec response time " . How do we say we will provide 3 sec response time " with an architecture. don't you thing it can be only said by real time statistics. How do we ensure we can give such an architecture ?. what are the check points Raees
Originally posted by RAEES UZHUNNAN: What all attributes we should be taking care when the requirement says "we need a 3 sec response time "
You have to know what kind of response time? response to user input? to power outrage? ... An analysis has to be statistical. For instance, for a user input, what are all the component involved? how long it take to run all thoes programs? what is the input variations? What is the CPU, memory,... That is all I can think of.
This could be the part III exam question and nobody answers because they know it. I read some scalability articles. Different containers post different benchmarks in something like transactions per second.
Then there is talk about coarse grain and fine grain session beans. This could be class diagram points people are so often apt to lose. Sun does not say if the platform is going to be Weblogic, Websphere, Iplanet, or Jboss. But I heard an architect give a presentation way over my head the other night at the JUG. He benchmarked times for his financial data system on JBoss and WebLogic. For his operation he saw cycle times of 25 ms vs 9 ms respectively. The presentation was entitled To EJB or not to EJB. It's not about what I thought it was going to be about. It was more about dynamic proxy introduced in 1.3 J2EE, I suppose. See the sides presentation slides [ December 30, 2002: Message edited by: Rufus BugleWeed ] [ August 13, 2003: Message edited by: Ajith Kallambella ]
Raees, I do not want to get specific abt the assignment, but this is my take on performance in general... If you are basically atempting to design an application when the high level architecture has already been laid out to you (number of servers / configuration of servers), the question boils dn to what can you do to achieve superior performance, as an application designer. This is where your understanding of J2EE best practices comes in handy. I will discuss one scenario and you can find out more by reading the blueprints book e.t.c. Eg 1: Rules with Entity Beans: 1. Use value objects for fine grained access (improves performance by reducing network "chatiness") 2. Use a session facade that can communicate with Entity Beans using EJB 2.0 Local Interfaces (improves performance because the client is not making several remote calls.) Yeah sure, stuff like adding memory, CPUs etc (vertical scaling) can improve performance to some extent...but doing that has no control over your network pipeline (which is going to remain the same). So as a designer it is up to you to ensure that the weak link is not in the design... Bottomline, there are best practices in each tier and the design should not only focus on functional requirements but also non-functional service level requirements. Therefore there's more to it that meets the eye. My recommendation...do a priliminary design and then isolate the weak links. Try applying J2EE patterns after that...many of them help toward satisfying non-functional requirements (DAO, Value Objects, Service Locator...) If possible buy the Core Java / J2EE patterns book. I found it as useful as the blueprints book. HTH.
Sanjay Raghavan<br />SCJP2, SCEA-J2EE<br />Moderator - <a href="http://groups.yahoo.com/group/scea_prep" target="_blank" rel="nofollow">SCEA PREP</a><br />Co-Author - <a href="http://www.whizlabs.com/scea/scea.html" target="_blank" rel="nofollow">SCEA@Whiz</a><br /><i>Where did you sip your Java Today?</i>