Saturday, March 20, 2010

Exercise 4

1.Describe the important and distinguishing properties of Peer to Peer computing with the client/server architecture?

Both Client/server and Peer to Peer networks are based on distributed computing concepts. As a result they are some common characteristics of distributed computing such as transparency and fault tolerance. However Peer to Peer architecture has many differences compare with Client/Server architecture.

Firstly, Peer to Peer (P2P) networks are more decentralized than Client/Server. In Client/Server architecture data is persisted in servers which are located in one place or distributed through network. This is very good for some purposes such as management or security but the weakness is, for example, when natural disasters occur your value information might be lost. On the contrary, data is spread out to peers in the P2P networks which mean they can overcome the drawbacks of Client/server architecture. Furthermore P2P networks will reduces the cost of ownership and the on-going cost as well since each peer in the network share is resources such as data storage and CPU processing.

Secondly, P2P networks seem to be more scalable than Client/server networks. If many computers make requests to server at the same time, the server may be slow down due to bottlenecks problem. In P2P networks computers can connect or disconnect to the network without affecting the network.

Thirdly, one of the most important properties of P2P is anonymity. P2P allows users to connect to the network, share files or data without concerns about authentication or authorization. This issue may lead to legal troubles.

Finally P2P networks have much more security threats than Client/server networks because of its designed architecture.

2.Frameworks for development. Compare and contrast any TWO frameworks:

In this post I will compare and constrast the similiatry and the differences between two frameworks which are Java and Ruby on Rail.

similarities

  1. Both of them are open-source frameworks with many supported tools to develop web application.
  2. Follows MVC (Model-View-Controller) pattern.
  3. Base on component technology.
  4. Both have containers for web app to run on. For example, Jakarta tomcat for java and Webrick for ruby on rails.

differences

  1. develop an Web application in Java takes much more time than Ruby on Rails(rails for short) because rails utilize some concepts like DRY(don’t repeat yourself) and metaprogramming.
  2. rails doesn’t need and XML configuration file.
  3. Java has more commercial supports.

No comments:

Post a Comment