Friday, April 16, 2010
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 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
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.fromhttp://heroku.com/how/architecture
Sinatra book. from http://sinatra-book.gittr.com/
exercise 1
exercise 2

as it applies to developing a Web application. How is it related to agile development?
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
- Explain DNS and DHCP. How does DNS differ from DCHP configuration?
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/
- Why is it important for your online business application to use a static IP address rather than have it dynamically assigned?
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
- 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
- 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 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/
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
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/
Ruby (programming language). Wikipedia. 2010. Wikimedia Foundation, Inc. fromhttp://en.wikipedia.org/wiki/
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-
Representational State Transfer. Wikipedia. 2010.Wikimedia Foundation, Inc.
from http://en.wikipedia.org/wiki/