Bigwood Liu

Ranch Hand
+ Follow
since Feb 26, 2003
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Bigwood Liu

Henry Naftulin wrote:It looks like the thread for Horizontal scaling got side conversation on what is Reliability is, so I figured this topic deserves its own thread.

So is reliability = correctness + availability or is it something else?

Any thoughts,

Heading to part 3 exam tomorrow, so it would be great to hear your thoughts and any tips on part 3


Search this forum for part 3 questions, you will get all the questions I got .
That is brilliant:

Relaibility = Correctness + Availability

I think it is exactly the relationship among the three. Wait, how about this:

Relaibility = Correctness + Availability + Responsiveness
abstract factory (AF) : Defines an interface for creating families of objects without mention there concrete classes.

usage: 1 tablet per day. Oops. That is not for abstract factory. This is: AF encapsulates how objects are created. You don't know what implementation the AF is returning. So it is used when you want to change the objects implementation without affect clients of the object.

factory method (FM): Define an interface for creating an object, but let the subclasses decide which class to instantiate. The Factory method lets a class defer instantiation to subclasses.

usage: the concrete creation for an object O is in subclasses Sb, while the object O is probably used in the super class Sp. You use this pattern when you want to utilized inheritance and polymorphism of OO Design: The method M() that uses the created object O is in super class Sp, while the object O's creation is in sub class Sb. Client C use sub class Sb to do the work (C knows Sb) while the method M() that client is using is in super class Sp. Now, DO you understand?! If you can't, try hard, just like this:
Now I got one more question in mind based on above,
If existing solution is reliable (ensures the integrity and consistency ) and then if we add extra web server to existing reliable solution then do we increase reliability of solution?

I got one line from Mark Cade's book "Redundancy can increase performance, reliability, availability,..."
Yes, it increase reliability. But consider the expenses, you don't want to add 10 web servers as a reasonable solution. 2 is good, 3 is extra.

Mark is right on redundancy when it is explained as this:
1. performance: under heavy load, a properly designed system will allocate work load evenly to redundant resources, which will decrease system response time i.e. performance
2. reliability = availability + correctness + responsiveness: reason is as above post.

To be clarified:

Scalability is the ability to accommodate more users when additional resource, usually hardware, are added. So basically, it is a kind of system software design that allows this to happen.

To add redundant hardware to a system definitely improve fault tolerance, which is in turn increase reliability, or availability. I think they are almost identical.

Thus the answer makes more sense to exclude scalability.

Meeti Khare wrote:Thanks Rohid,
But somehow i did not feel that Cade's book has given proper example, or may be I could not understand it.

Thanks Bigwood,
can you please elaborate on this "something else" ?

For example, you are going to use a 3rd party tool, there is the risk that it might not fit into your future requirement, or it is hard to fit into your current system because of some weird protocol the tool is using. I think this is also a risk, but I don't think it might be the top 3 in you case.

NFRs need to be addressed, but many serious risks are also from NFRs.
Do some homework guys, search the topics first.

To be nice, I will do it for you this time

check this out:
You are right, both NFR and something else.

rohid dev wrote:You can use JMS for synchronous messaging.
Also 5 sec response time is possible depends upon the resources used
The receive method can be used in several ways to perform a synchronous receive. If you specify no arguments or an argument of 0, the method blocks indefinitely until a message arrives:

Message m = queueReceiver.receive();

Message m = queueReceiver.receive(0);

For a simple client program, this may not matter. But if you do not want your program to consume system resources unnecessarily, use a timed synchronous receive. Do one of the following:

Call the receive method with a timeout argument greater than 0:
Message m = queueReceiver.receive(1); // 1 millisecond

For SCEA part 2 - make sure you have specified all your assumptions.


Basically, I think what you are describing is one of the asynchronous scenario. You sent msg using slsb, receiving it through MDB.
JMS is for asynchronous communication generally, while your scenario requires synchronous communication: check-and-act. There is obvious conflict here, right? As a architect, what are you going to do? Tell me your choices before you make a decision.

Madhu Maniganta wrote:Jeanne,
I too thought of showing DAOs in my class diagram, but was confused after looking at Cade's Chapter 9 example, coz there DAOs are NOT in class diagram but are present in Component and Sequence Diagrams. What do you think?

Anything shows in Sequence Diagram must show in class diagram.

Ranganathan Kaliyur Mannar wrote:oh ok. I think that sounds reasonable.
In my case, I think the Domain Model is actually simple and doesn't accomodate all the use case requests. So, I have to and its becoming complex - though, I have tried to keep it close to the original as possible.

Thanks for your reply!

If you want to complicate the existing domain model entities, such as add more relationships, add more behaviors, I think you are probably going wrong way.

If DM does not meet your design intention, it is better to add new entities instead of modifying the existing domain model.
I Got it.

There is a logical flaw here:

bid != winning bid, while the assignment seems assume that bid = winning bid.

I would contact the oracle test center first;

if (I got answer) {
if (what is in assignment is wrong) {
act according to answer;

assume flaw in assignment;