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.

Exercise 3

1. Explain DNS and DHCP. How does DNS differ from DCHP configuration?
DNS-Domain Name System

Every computer on the Internet has a unique address – just like a telephone number – which is a rather complicated string of numbers. It is called its "IP address”. But it is hard to remember everyone's IP address. The DNS (Domain Name System) makes it easier by allowing a familiar string of letters (domain name) to be used instead of the numerical IP address (“The domain name system”, n.d.). So instead of typing 192.0.43.56, you can type www.example.com. The DNS is a service that provides a mapping between the name of a host on the Internet and its numerical address. DNS is essential to the functioning of the Internet.
DHCP-Dynamic Host Configuration Protocol
DHCP is a method to automatically and dynamically assign difference IP addresses to devices in a network. The main purpose of DHCP is to help an individual computer to obtain its configurations information from the server (DHCP server), actually the server have no ideas about the client until it receive requests from client. DHCP helps to remove the burden of manual works for network administrators. It is very useful for big organizations which have thousands of computers.

References

The Domain Name System: A Non-Technical Explanation – Why Universal Resolvability Is Important (n.d.). Retrieved Dec 27th, 2008 from http://www.internic.net/faqs/authoritative-dns.html

What is DHCP and DNS? (n.d.). Retrieved Aug 22nd, 2009 from http://www.blurtit.com/q614442.html

2. Why is it important for your online business application to use a static IP address rather than have it dynamically assigned?
Using static IP address for online business is important because it offers the following advantages over dynamical IP (Mitchell, n.d.): It helps customers to find your website easily because the name resolution service supports static IP address better. Static IP addresses might give your application a better protection from security threats. It supports VPN.

Reference

Mitchell B. Using Static IP Addresses on Private Networks . retrieved August 22nd, 2009 from http://compnetworking.about.com/od/workingwithipaddresses/qt/staticipaddress.htm

3. What role can the following play in business-to-business e-commerce?

a. Virtual Private Network (VPN) or Grid computing services
Virtual Private Network (VPN) plays an important on in business to business e-commerce because it ensures that data communication between two (or more) organizations is protected by encryption and others security mechanisms and authorized person can access VPN. Therefore, they can communicate fast, secure and reliable (Tyson, n.d.). In addition, VPN helps enterprise to build a more effective extranets in term of cost.

b. Next generation of wireless mesh networks
A wireless mesh network will help all the staffs in an enterprise increasing files and information faster and in a convenient way with much less expense in comparison with traditional wired-networks. For example one staff want to send a file to another, instead of putting it on the server he can send it directly to that co-worker as on instant messenger applications, this will reduce the workload of the server.

c. Cloud or Social Cloud applications.
To have a deep understand about cloud applications, we probably need to come with the definition of cloud computing. Actually it is a bit difficult to have a definition of cloud computing. As defined in searchCloudComputing.com:
“Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS).”
Cloud applications are applications which are provided to users or enterprises on the foundation of cloud computing, Software as a Service in particular. Using cloud applications would reduce the cost of capital expenditure on hardware, software or staffs(of IT department in company) because users or enterprises just have to pay the providers for what they use in other words they pay on demand (“Cloud Computing”,wikipedia). This will help them to concentrate on their core business.

Reference
“How Virtual Private Networks Work?”(Tyson J.) Retrieved August 23rd, 2009 from http://www.howstuffworks.com/vpn.htm

"Cloud computing definition"(n.d) retrieved Aug 28th, 2009 from http://searchcloudcomputing.techtarget.com/sDefinition/0,,sid201_gci1287881,00.html
“Cloud Computing”(n.d). retrieved Aug 29th,2009 from http://en.wikipedia.org/wiki/Cloud_computing

Urquhart J।,A better way to understand cloud computing(2009) viewed Aug 28th,2009 from http://news.cnet.com/8301-19413 3-10152106-240.
4. If clouding computing is the 'black box', then grid computing is a component as the 'white box'. Explain what you interpret about that statement.

In Cloud computing, a user of the service doesn’t necessarily care about how it is implemented, what technologies are used or how it’s managed (Hartig, 2009). So we can think of cloud computing as a “black box”, user just needs to enter an input into that black box and then receive the result without thinking about how it is processed.
Grid computing is the combination of multiple computers from difference domains for the purpose of utilizing un-used CPU processing cycle to process a very huge amount of data, usually for technical or scientific purposes (Davis J.,2008) . For example, SETI project is a well-known grid computing project in which thousands of computers around the world donate their un-used CPU cycles to help searching signals of life from outer space.
As a conclusion the term “black box” can be used to refer to Cloud Computing. On the other hand, in Grid Computing a user posses and control his data and resources. Therefore, the term "white box"can be used to refer to grid computing.

References

Grid Computing(n.d.). Retrieved Aug 23rd, 2009 from http://itmanagement.webopedia.com/TERM/G/grid_computing.html

Hartig K., What is Cloud Computing (2009). Retrieved Aug 23rd,2009 from http://cloudcomputing.sys-con.com/node/579826

Davies J., Cloud Computing or Grid Compting - Which Comes First? (2008) Retrieved Aug 23, 2009 from http://linux.sys-con.com/node/731197

Urquhart J., A better way to understand cloud computing(2009) Retrieved Aug 28th,2009 from http://news.cnet.com/8301-19413_3-10152106-240.html

Exercise 2

Finding some common ground
a.
Describe the steps involved with the Rapid Evolutionary Prototyping Approach as it applies to developing a Web application. How is it related to agile development?

According to Satzinger (2007) one of the main objectives in is to adapt in hasty changing business and technological environment. Consequently system developers look for the ways to speed the development process in application development. Rapid Evolutionary Prototyping Approach or RAD is suitable approach for small projects because it eases’ handling project management and it is allows business client to see apparent costs associated with web site development (Eustace , 2009).

Connell & Shafer (1989) describes several and quite different types of approaches in RAD:

  1. Throwaway Prototypes. This prototype helps in requirement analysis or in design and thrown away.
  2. Nonfunctioning Mockup. This type of mock-ups is unique type of prototype where no data is process but only system surface is created.
  3. Quick and Dirty Prototypes. This type of prototype can be described as agile development, where no software engineering practices are followed and shown to the customer. It will be changing gradually until the client accepts it.
  4. Detail Design Driven Prototype. This prototype will include all the complete details before implementation.
Connell & Shafer (1989) defines an Evolutionary Rapid Prototype as:

An easily modifiable and extensible working model of a proposed system, not necessarily representative of the complete system, which provides users of the application with a physical representation of key parts of the system prior to implementation. Alternatively, as an easily built, easily modifiable, ultimately extensible, partially specified, working model of the primary aspects of the proposed system.

References:

Connell, J.L. & Shafer, L. (1989). Structured Rapid Prototyping : An Evolutionary Approach to Software Development. Yourdon: Press Computing Series http://phillips.rmc.ca/courses/493-1998/lectures/rapid-prototyping/rapid-prototyping.html

Eustace, K (2009). Business to business systems. Wagga Wagga: Charles Stuart University

Satzinger, J., Jackson, R. & Burd, S.(2007). System analysis and design in changin world.(4th ed.) Canada: Thompson Course Technology.