Friday, April 16, 2010

Elevator pitch 1

Sinatra step 5

· Created an account in Heroku

· Installed the Heroku gem with the following line:

gem install heroku

· Created a Rackup file called config.ru. The content of this file is as follow:

require 'app'

run Sinatra::Application

· Initialized the repository with

git init

git add .

git commit -m "sinatra and heroku"

· Set up the key pair by typing

ssh-keygen

ssh-keygen -t dsa

· Created my application on Heroku by typing

heroku create

· After that I have entered my heroku credentials (email and password)

· Pushed the code with

git push heroku master

· The application was deployed on Heroku

Sinatra step 6

Sinatra step 7

Sinatra step 8

What is Git? Why is it useful?

Answer:

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

Factors that make Git useful:

· Strong support to the liner development

· Distributed development

· Compatibility with existing systems/protocols

· Efficient handling of large projects

· Toolkit-based design

· Periodic explicit object packing

· Garbage accumulates unless collected

· Pluggable merge strategies

Reference:

Git(1) manul page(n.d) Retrieved on 14th April 2010, from http://www.kernel.org/pub/software/scm/git/docs/


Describe how Sinatra relates to Ruby on Rails.

Answer:

Sinatra is not a MVC (Model view controller) based framework for creating websites, its very different than Ruby on Rails. If user wants helper functions that can help to create forms, connect the database or any other many functions that Rails can provide, user will not find it. Sinatra is a very simple and very powerful for the Domain Specific Language (DSL) for defining HTTP actions, and then sees the application’s response. However, Rails requires a different separate routes file to define the web application and to see respond to requests, which connect to the suitable controllers/models. Sinatra identify the simple thing that could work when user declare a new “get” or “post” action, Sinatra will add the route automatically and will start responding to requests that match.

Reference:

Rob Evans (24th October 2007) Sinatra, a Ruby web framework, and Why it Matters, Retrieved on 14th April 2010, from

http://deadprogrammersociety.blogspot.com/2007/10/sinatra-ruby-web-framework-and-why-it.html


C. What is Heroku? What is a Heroku “Dyno”? Describe how Heroku makes deployment and scaling of Ruby web applications easy.

if anyone needs to deploy and run application using Git, one should use heroku because heroku is an ruby platform. heroku "Dyno" are single process which run our ruby on the heroku server. heroku Dyno are based on THIN. THIN are ruby we servers which is composed of 3 best ruby libraries in web history.


  • The Mongrel parser, the root of Mongrel speed and security
  • Event Machine, a network I/O library with extremely high scalability, performance and stability
  • Rack, a minimal interface between webservers and Ruby frameworks
Heroku Platform Architecture consists of the following 3 features:
Multi-Tenant: This means a single instance of application on the server serves various or multiple number of clients. We don’t need our own server as well.
Fully managed: There is a huge number of different servers within Heroku which are fully managed by Heroku themselves giving as a clean and easy interface to deploy our code.
Curation: Each layers of Heroku architecture is maintained and updated hence providing us a better and latest platform.
These features make heroku
makes deployment and scaling of Ruby web applications easy.

D. Inspect the Hello World application “app.rb” file. Answer these questions:
What is the purpose of the “/param/:name” method?
Basically /param/:name is an url address .
Like http://warm-sunset-72.heroku.com/param/abhishek
here :name = abhishek
so :name is a parameter that we pass through url.


What happens when the user navigates to the /home page?

Wen the user navigates to /home
(http://warm-sunset-72.heroku.com/home)
the browser redirects the page to the index or main page of the application, which is
http://warm-sunset-72.heroku.com/
in the application we have deployed in heroku.

What is the purpose of the :set directive?

set is used to store a piece of information which can be used in our routes.

Reference:

About Git. from
http://git-scm.com/about
Heroku.from
http://heroku.com/how/architecture

Sinatra book. from http://sinatra-book.gittr.com/

exercise 1

1. Visit http://yahoo.com and http://facebook.com as examples of online communities.

a. What is meant by an online community and how is it important for e-commerce?

Answer:

The online community mean the interactive tools or communication systems such as email, chat and other communication systems that help the web user to communicate each other. This short of communities help to the sellers to make business related product market. For the customer they can make offer and also can give their own requirements or design for the product which matching to them. A virtual community is the technical name of the online community. The most important benefit about the online community in e-commerce is feedback about the product which posted by customer who buy the product from seller and all that feedback can seen by anyone that how many people is really interested for this particular product from particular seller. As for example, on e-bay seller and buyer both can give feedback each other.

b. Is there a common thread and a local community sense in action?

Answer:

www.apple.com , www.apple.co.au and www.apple.co.in
Here, common thread we can find on the website is same product specification and also the customer service like warranty and cooling off time for the product. The difference is the availability and difference in price and time for local shipment and also the TAX of government for the product. As for example, on US website ipad is available online and for Australia and India still customers need to wait for the product to buy online.

Reference:

Brad Hill (6th January 2006) Online Communities and e-Commerce, Retrieved 1st April 2010, from

Kevin jones (8th July 1998) E-commerce Focus: Online Community gives rise to E-commerce, Retrieved 1st April 2010, from

Blanchard, AL & Markus, ML 2004, 'The Experienced "Sense" of a Virtual Community: Characteristics and Processes', The DATA BASE for advances ininformation Systems - Winter 2004, vol. 35, no. 1, pp. 65-79.

Ince, D. (2004), Developing distributed and e-commerce applications, 2nd edn, Harlow, Essex, UK: Addison – Wesley, p.32.

Lewis, S 2008, ‘Using online communities to drive commercial product development’, Conference on Human Factors in Computing Systems: CHI '08 extended abstracts on Human factors in computing systems, Florence, Italy, pp. 2039-2043.

Virtanen, T & Malinen, S 2008, ‘Supporting the Sense of Locality with Online Communities’, MindTrek: Proceedings of the 12th international conference on Entertainment and media in the ubiquitous era 2008, Tampere, Finland, pp. 145-149.

2. Visit the famous online store front at http://www.amazon.com
a. Why has it been a successful site? How does the purchase of a book work?

Answer:
There are many reasons that make Amazon very successful than other websites

• Amazon was establish in 1994 which first website as online bookstore concept about sell the product by housing them all in many different warehouses and distributing product from many associated companies for the online customers.
• Its online one of the biggest shop supplies product most of each and every part of the world.
• The most important successful factor about the Amazon is homogeneous characteristic towards the users. The rich content of the interface of the website like one click ordering and product forms etc.
• Using the very advance technology as a product is also one of the success factor for the Amazon website. As for example, kindle.

Steps of purchase of a book:
• Find the items You want:
For all this user need to use the search option and than select the suitable product that user wants to buy. User will see the all product details and other customer feedback too.
• Add the items into your shopping cart :
Its final selection that user want to add into the shopping list.
• Proceed to Checkout :
After selection of the all product that user want to buy, user have to checkout from the shopping cart and it is first step towards the order form
• Sign in :
User have to sign in for the further process if user not register with Amazon, user have to create new account with information.
• Enter a shipping address :
If user want to send the item to the different address than user have to inform the Amazon the delivery address otherwise user will get the items on provided address.
• Choose a shipping method :
It gives option to the user to select the shipping method.
• Provide payment information:
User need to provide the information about the financial detail.
• Review and submit the order :
This is step give all details that users already fill in to the order form and user can see it and place the order.
• Check order status:
User can also make any changes before order shipping to the provided address and check the order status.

b. Are there any secure transactions not involving money?
Answer:

Yes there is very secure transactions not involving money and it is Amazon membership and its use the SSL (Secure Socket Layer) which is able to give secure transaction online.

On Amazon each and every user need to open homogenous account that help to make secure transactions not involving money. Amazon use the SSL (Secure Socket Layer) encryption method which is capable to give safe and secure money transaction online.

Reference:

Are international sales or purchases allowed?(n.d), Retrieved on 1st April 2010, from

Vallik(14th January 2008) What makes Amazon so successful?, Retrieved on 1st April 2010,from http://www.webdesignideas.org/2008/01/14/what-makes-amazon-so-successful/

Placing your first order (n.d) Retrieved on 1st April 2010, from http://www.amazon.com/gp/help/customer/display.html/ref=hp_navbox_lnor_new?nodeId=524700

Dan Bricklin (n.d) What is been successful in B2C, Retrieved on 1st April 2010, from

Peter Sutro (February 26th, 2009) How does the kindle 2 work?, Retrieved on 1st April 2010, from http://ezinearticles.com/?How-Does-the-Kindle-2-Work?&id=2003315

3. What happens with new models emerging such as price comparison sites?

Answer:

The main purpose of the price comparison sites is to make shopping easy and give range of choice to the customer according to their product requirement. The price comparison sites are not mostly related to advertisement of any particular product but it give the different products features and price so, customer get the best product. The one example price comparison site is http://www.nextag.com/.

Reference:

Nextag comparison shopping: Home, Retrieved 1st April 2010, from http://www.nextag.com/

exercise 2



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?

Answer:

The approach that easy adaptable and extensible working model of a suggested system, not essential representative of the complete system, which provides users of the application with a physical representation of main parts of the system before implementation is called Evolutionary Rapid Prototype Approach.

Here ten steps mention which describe the Rapid Evolutionary Prototyping Approach according to (Phillips, 1998)


(1) Developers begin with a plan which should include an initial specification and a management strategy.

(2) From the plan derived a rapid analysis which serves to identify the first increment to be prototyped. Ideally this will be the highest-risk element of the system, which allows developers to get the most initial leverage from the user’s interaction with the prototype.

(3) Database creation for developing a database of simulated user data for the system to operate on

(4) Menus or interaction modes are developed to allow the user to interact with the data

(5) Attach the databases, menus, and interaction modes to some initial functionality.

(6) Initial prototype is completed and can be put into iteratively development cycle which involves user feedback and a repeat of steps (2) through (5)

(7) User accepted prototype is completed

(8) Design can be derived from the prototype for the finished system

(9) The final design is tuned to provide the required level of performance and become a final system

(10) System goes into operation and maintenance phase

Agile development related to Rapid Prototype Approach using minimum features that can very simple and very clear to understand to everyone. For step up and changes in features are always open in every development cycle by accepting all updates on time of different user’s requirements. This approach is really evolutionary approach to the Agile software development because it help to minimize the cost and time and meets the need of stakeholders.


References:

Connell, J.L. & Shafer, L. 1989. Structured Rapid Prototyping: An Evolutioary Approach to Software Development. Yourdon Press Computing Series.

Phillips, Greg, (1998) Evolutionary Rapid Prototyping. Retrieved 2nd April 2010, from http://phillips.rmc.ca/courses/493-1998/lectures/rapid-prototyping/rapid-prototyping.html

Image Retrieved 2nd April 2010, from:

http://www.stsc.hill.af.mil/crosstalk/1994/11/Automate_fig2.gif

exercise 3

  1. Explain DNS and DHCP. How does DNS differ from DCHP configuration?
Answer:

DHCP is (Dynamic Host Configuration Protocol). It is network protocol that enables a server to automatically assign an IP address to already defined range of IP address.

DNS is (Domain Name System). It is one type of database system that translates the computer’s qualified domain name into IP address. DNS useful in private big organizations to routing of the IP address and it translate the domain name to IP address. IETF (Internet Engineering Task Force) handle the all process to register and resolve domain names.

DNS is system hierarchy of domains and DNS naming is used in TCP/IP networks such as Internet to locate computers and services through user friendly names.

DHCP assigns IP addresses to the needed computers in a network dynamically.

Example Cisco IOS DHCP server, RFC 2131-compliant DHCP server implementation on selected routing platforms where as DNS is the system in the internet which maps the names of objects like host names into IP numbers or in other record values.

Reference:

What is DHCP? (May 13, 2009), Retrieved on 3rd April 2010, from http://kb.iu.edu/data/adov.html

What is DNS? (May 13, 2009), Retrieved on 3rd April 2010, from http://kb.iu.edu/data/adns.html

Difference between DNS and DHCP (n.d), Retrieved on 3rd April 2010, from

http://www.differencebetween.net/technology/difference-between-dns-and-dhcp/


  1. Why is it important for your online business application to use a static IP address rather than have it dynamically assigned?
Answer:

Some factors that is important for online business application to use a static IP address:

    • Static IP address remains the same so that organization can run internet services that require your IP address to remain the same in order for them to work properly. E.g. running web server, FTP server.
    • If sometimes DHCP server is having difficulties to handling out IP address, business still is able to access the web, since business IP is predetermined. It means less downtime.
    • It can control and maintain from any where in the world and it ultimate help to the business growth.

Reference:

R.Kayne (22nd January 2010), what is a Static IP address? Retrieved on 3rd April 2010, from http://www.wisegeek.com/what-is-a-static-ip-address.htm

Kevin Crowe (n.d) Advantage of Dynamic IP and Static IP Retrieved on 3rd April 2010, from http://ezinearticles.com/?Advantages-of-Dynamic-IP-and-Static-IP&id=2593534


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

Answer:

Virtual Private Network (VPN) or Grid computing services

Next generation of wireless mesh networks

Cloud or Social Cloud applications.

(a) Virtual private network uses internet as transport backbone to establish secure links between business partners, to extend communication to regional and isolated offices and which leads significantly decrease the cost of communication for an increasingly mobile workforce. Virtual Private Network play important role in business-to-business ecommerce which provide connection or network between two sites in different location and transfer of data or information through public network (internet) , which allows staff or access central repository of information all from remote locations. It allow staff to work form home or customer premises or from other site of their business and it also help in enhancing security of electronic data exchange and transaction.

VPN serve as private network overlays on public IP network infrastructures, such as Internet. VPN helps organization to increase their sales and product can be accelerated. Addition to strategic partnership can be strengthened across the supply chain than before.


(b) Cloud computing does not allow users physically action or any activity for storage of the data. In this all responsibility are on service provider. The main drawback of cloud computing is that it limits the freedom and responsibility of the users and make them to dependent on service provider. Sometimes users can use those application which service provider offers and accordingly they have to change themselves. Richard Stallman believes that cloud computing endangers the liberties of the users by giving authorization to access the privacy, personal information and data to the third party.
Even thou data and information is stored and secure in the cloud still it has risk of many factors like network outages and denial of service attack against the service provider and major failure.


The consumer can access multiple servers anywhere on the globe without knowing which ones and where they are located. Example Amazon Web service.

A cloud application is helpful for an organization as it eliminates the need of installation and run the required application on the user’s own computer as result reduce the burden of software maintenance, ongoing operation and support.


Some examples are below:-


Ø Peer-to-peer / volunteer computing like Skype and Bittorrent


Ø Web application like Twitter


Ø Software as Service like Google Apps and SAP.


Ø Software plus services (Microsoft online service).


(C) Wireless mesh network is made of radio nodes organized in mash topology. It consists of mesh client, mesh router and gateways.


Ø Mesh client like laptop, cell phones and wireless devices.


Ø Mesh Router which is forward the t and from the gateways and it does not make any difference if it is internet connected or not.


Wireless network help staff members of an organization to increase and communicate information faster and convenient way and it also save the expenses. If any staff member wants to send any information or any files he/she can send without uploading into the server which saves the server load.

Reference:

Judith Myerson (3rd March 2009) Cloud computing versus Grid Computing, Retrieved on 3rd April 2010, http://www.ibm.com/developerworks/web/library/wa-cloudgrid/

Russell Kay (4th August 2008) QuickStudy: Cloud computing Users can hook into the power of 'out there.’ Retrieved on 3rd April 2010,

http://www.computerworld.com/s/article/321699/Cloud_Computing

Next Generation RS485 Wireless Mesh Network System Released (March 29, 2010), Retrieved on 3rd April 2010,http://blog.xbow.com/xblog/2010/03/next-generation-rs485-wireless-mesh-network-system-released.html


4. If clouding computing is the 'black box', then grid computing is a component as the 'white box'.

Answer:

According to my understanding about the statement “If clouding computing is the 'black box', then grid computing is a component as the 'white box'.”

In cloud computing useful to the organization to scale up the capacities without any investment, can also train new employees. Cloud computing usually helpful to the small or medium organization which wants to outsource data infrastructure. For the large companies is useful to carry the extra load without investing much higher cost of building larger data centers.

The service users not need to connect with computer or not need to use an application form the computer. Service users purchase a specific version that configured smartphones, PDAs and other devices. The users not have to own the infrastructure, software or platform in the cloud. User can achieve multiple servers anywhere on the globe without deliberate which ones and where they are located. But some issues like user has some lower upfront costs, capital expenses, and operating expenses.

However, grid computing grows up from the cloud computing and it provides on demand resource terms. In to the grid computing need software that can split and it go to the one large system image to many computers but the risk is that if the one portion of software on a node fails other related may be fail.

Some massive cloud computing companies are Amazon, Google, Microsoft and Sales force.com

Reference:

Judith Myerson (3rd March 2009) Cloud computing versus Grid Computing, Retrieved on 3rd April 2010, http://www.ibm.com/developerworks/web/library/wa-cloudgrid/

Russell Kay (4th August 2008) QuickStudy: Cloud computing Users can hook into the power of 'out there.’ Retrieved on 3rd April 2010,

http://www.computerworld.com/s/article/321699/Cloud_Computing

exercise 4

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

Answer:

Importance of Peer to Peer Computing

· In to Peer to Peer computing there is not single point of failure. In P2P If one peer break down other peers remains capable to communicate.

· Major significance of the Peer to Peer Computing is it can use resources such as processing power for computations and storage capacity, e.g. Napster

· Peer to Peer computing is able to prevent bottleneck situation.

· In Peer to Peer because of centralized control and most peers interact with each other it provides good scalability.

· Areas like Community Web network, e-Business, Gaming, Search Engines, Virus Protection, Edge Services, Collaborative development are areas where P2P application can work.

· Distinguishing Properties of Peer to Peer Computing with Client/Server Architecture


Decentralization, Self organization and Fault tolerance are the structural characteristics of the peer to peer computing. In decentralization contain distributed storage, information etc. significance are greater extensibility and very high flexibility. But sometimes it’s very hard to maintain the system. In client/server architecture client provide the solution and provide the interface between the user and server process acts as software engine and it handle shared resources. Client and server both need different resources as for example, disk space, memory, processor, input/output device. In peer to peer computing various components work simultaneously without any central management instance assigning roles and tasks it shows self organizing characteristic of P2P computing. Another structural characteristic is fault tolerance in p2p there is no central point of failure. In client/server architecture client and server both process well-defined set of standard application program interfaces (API’s) and RPC’s. However, transparency is the operational property of the P2P computing which defines transparency to the application. In client/server architecture scalability is one of the most important characteristic.

Reference:

Peer to Peer v/s Client server Networks (n.d) Retrieved on 4th April 2010, from

http://freepctech.com/pc/002/networks007.shtml

Basic Networking Client Servers v/s Peer to Peer (n.d) Retrieved on 4Th April 2010, from

http://www.enterprise-technology.net/network2.htm

Peer to Peer (P2P) an overview (1st November 2004) Retrieved on 4Th April 2010, from http://www.rogerclarke.com/EC/P2POview.html#Chars


  1. Frameworks for development. Compare and contrast Java and .Net :

Answer:

Java is the first language to allow runs the similar program on different computer systems, but not considering operating system and structural design. However, languages before java were enabling to run more operating systems; they still pass on the system calls. .NET is the framework that able to give very secure system for programs that in multiple source languages. .NET class library is very broad and object oriented collection of reusable types that can be used to develop applications. In .NET when the source code is complied and it interpret to Microsoft Intermediate Language (MSIL) and it contain instruction for loading, control flow, storing and other low level operations. However, in Java language is complied with byte-code. It is the machine independent code and after that machine reads the byte-code, and executed it as machine instruction or operating system calls. In .NET to run the MSIL code and execution the Common Language Runtime give the platform and it has some attributes like checking code and compilation, cross language integration, security, debugging etc. The .NET applications known as the assemblies and its for to deployment of the application very simple way and to solve the error that can occur with component based applications. Assemblies contain the code and the also information type, security and version information.

Reference:

Dan Burger (August 18,2008) Java vs. .Net : Someone’s Going to Get a Black Eye, Retrieved on 4Th April 2010, from http://www.itjungle.com/tfh/tfh081808-story07.html

Denis Piliptchouk (June 2004) Java vs. .NET Security, Retrieved on 4Th April 2010, from http://oreilly.com/catalog/9780596008215

exercise 5

exercise 6





exercise 7

1. Why is the perception getting stronger that integration will become a critical factor in coming days?

Online systems which allow transfer of goods, services and money in a safe and secure environment are e-commerce systems. Examples of such online systems are amazon, ebay which makes buying and selling of products very convenient and efficient. Hence these services are highly in demand universally.

In presence of large number of such systems, integration is very important factor for their success. In coming generation, integration of systems will become very important because of factors such as reduction of costs, integration and security of transactions, ability to take accurate decisions due to availability of information and the management would have greater control.


Reference :

Huuhtanen, J 2004. Critical Success Factors in Integration of E-Commerce and Financial Information Systems, from http://www.pafis.shh.fi/graduates/juhhuu01.pdf.



2. What is the relationship of AJAX to JQuery (jquery.com) and the lightweight Web 2.0 javascript framework called MooTools (mootools.net) within the enterprise software architecture?

AJAX(Asynchronous JavaScript and XML): It is a pure javascript application framework that does work on client-side in order to produce an interactive web application. It makes possible the exchange of data with server, where the reloading of current page is not necessary, thus making the webpage interactive and dynamic.

JQuery: A collection of Javascript Library which makes easy the processes like event handling, traversing HTM document, Ajax interaction for Rapid Web Development and animating, thus making it simpler and faster is JQuery. It was made to alter how javascript was written. It contains all its effects, common DOM, event and Ajax functions and is mostly a single JavaScript file. Hence just by calling $.ajax and related methods, calling ajax functions becomes possible.

MooTools:

It is a modular JavaScript Web application framework and is object oriented. It is developed to produce with its coherent a flexible, strong and cross browser code and a properly documented API (mootools.net). It was created in alteration of DOM elements, CSS, Ajax requests, native JavaScript objects and more. It provides methods such as onSuccess, onRequest, onComplete etc and thus makes the use of Ajax simpler.

Thus, both the frameworks result in simplifying use of Ajax.


Reference :

Ajax. The colabarative Application Platform. from http://ajax.org


jQuery. jQuery: The Write Less, Do More, JavaScript Library.

from http://jquery.com/


MooTools. MooTools a compact javascript framework. from

http://mootools.org


3. What are the similarities between the object-oriented development using model-view-controller (MVC) in Ruby on Rails 2.0 and Action Script 2.0 (Flash animations)?

Taking inspiration from Perl, Eiffel, Lisp and SmallTalk, Ruby is a scripting language which is object oriented and combines syntax. Action Script 2.0 is also a scripting based language and is utilized in the development of web applications and software in Adobe Flash Player platform.

The similarities in these languages are that both of them have open classes and thus they allow addition of methods or property to an already existing class. The addition can be done whenever we want outside the class definition and it is also often called as monkey-patching. However, if performed carelessly, this functionality can prove to be a major drawback.



Reference :


AS2 OOP: Class Structure, 2009. from http://www.kirupa.com/developer/oop2/AS2OOPClassStructure7.htm


Ruby (programming language). Wikipedia. 2010. Wikimedia Foundation, Inc. fromhttp://en.wikipedia.org/wiki/Ruby_(programming_language)


4. What does it mean to develop RESTful practices into our web applications?

Certain sets of architecture constraints are specified in an architectural style by a technology or framework known as Representational State Transfer (REST). It is not a new technology. An uniform interface is used for all services and thus each website provides the same service. This is the main idea behind this style. It is used in identifying existing problems, comparing alternative solutions and describing desired Web Architecture. The aims of Restful practices comprise of generality of interfaces, scalability of the component interaction, independent arrangement of components and intermediary component to reduce latency, impel security and cover legacy systems.


Reference :


Wilde, E. 2004. Representational State Transfer, from http://dret.net/lectures/web-spring09/rest


Representational State Transfer. Wikipedia. 2010.Wikimedia Foundation, Inc.

from http://en.wikipedia.org/wiki/Representational_State_Transfer