Sunday, March 29, 2009

Study Guide Exercise 10

1. List some application servers in competition with ZOPE. Access the web
and find the latest version of the application servers mentioned in the text.
When were they released? Can you make any conclusion about the release
cycle of Internet software in comparison to other business software (e.g.
spreadsheet, word processor, accounting packages)?

List of application server website in competition with ZOPE:
http://jboss.org/
http://www.orionserver.com/
http://enhydra.enhydra.org/

ZOPE latest release: version 2.11.2, released on 25/10/2008.
Jboss latest release: version 5.1.0.Beta1, released on 13/03/2009
Websphere latest release: version 7.0 library, released on 31/03/2009

From our study, internet software release comes in 2 version, a minor release and a major release. Minor release is usually a bug fix or an added library, this release comes out often. However the major release which is the new system with all the added functionalities comes out not that often, on average is like once every 6 months or more. Compared with the conventional software, internet software releases is quite fast. For conventional software both the minor release and major release takes much more time. For example Windows XP takes 3-4 years before Windows Vista is released and the service pack takes at least 6 months each.
Reference:
Current Zope Releases (2009), Last Accessed April 7th, 2009 from
http://www.zope.org/Products/

JBoss Application Server Download (2009), Last Accessed April 7th, 2009 from
http://www.jboss.org/jbossas/downloads/

WebSphere Software (2009), Last Accessed April 7th, 2009 from
http://www14.software.ibm.com/webapp/download/brand.jsp?b=Websphere

Software Release Life Cycle
(2007), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/Software_release_life_cycle

2. List the main Web servers. What types of companies are offering the
leading servers? Distinguish between open source and proprietary products. Who is providing support for the products? How much do they cost? Do you think the Web server purchase price is a significant factor in budget considerations for a large e-commerce initiative?


March 2009 web server survey

Apache: 36,243,694 (48.89%)
Micosoft: 27,854,444 (37.57%)
Google: 4,050,030 (5.46%)
nginx: 2,303,451 (3.11%)
qq.com: 46,048 (0.06%)

As we can see from the list, the most popular web server is Apache. Which is an open source product. That means they cost nothing, which is probably why they are so popular. However we can not conclude that web server puchase price is a significant factor in the budget considerations for the organization. In here we must remember that most organization will try to incorporate their e-commerce front with the existing system, hence the most important consideration for them is compatibility with the older system (unless they want to change the whole system). In other words they will adopt a web server that will be able to work together with their existing system no matter the price.

Reference:

March 2009 Web Server Survey (2009), Last Accessed April 7th, 2009 from
http://news.netcraft.com/archives/2009/03/15/march_2009_web_server_survey.html

3. Go to the website of IBM, Oracle, Microsoft and Sybase. Is there any
mention of e-commerce associated with their database products? What suite
or partnership do they list with related e-commerce offerings? How do they
compare with open source products like MySQL?

After further research we found the following database products for each company:

IBM: IBM DB2.
Oracle: Oracle 11g.
Microsoft: Microsoft SQL Server.
Sybase: Advantage Database Server.

However none of them mentions how their product will support e-commerce per se. All of them only promote their products in general terms and functionalities. For example, here is the offering for Advantage from Sybase:
Advantage Database Server is a full-featured, high performance client/server data management system specifically designed to meet the needs of business application developers. Advantage is unique among the Sybase database offerings in that it provides both Indexed Sequential Access Method (ISAM) table-based and SQL-based data access, providing a growth path for legacy database applications to today's modern techniques.

Compared with open source products like MySQL, this proprietory products have full support from the organizations that made them, so it will be easier if there is a problem. Other than that proprietory products also gets update more frequent, as oppose to that, open source products like MySQL updates can not be predicted on when it will show up. However other than that, the products is pretty similar. And MySQL supports many functions that the proprietory products have.

reference:
DB2 Everyplace (2009), Last Accessed April 7th, 2009 from
http://www-01.ibm.com/software/data/db2/everyplace/index.html

Oracle Database 11g
(2009), Last Accessed April 7th, 2009 from
http://www.oracle.com/database/standard_edition.html

Advantage Database Server
(2009), Last Accessed April 7th, 2009 from
http://www.sybase.com/products/databasemanagement/advantagedatabaseserver

4. Access the web and find the current rate for website hosting. What are the criteria used by the ISP for pricing?

From the data that I gained from http://www.top10webhosting.com/ the price of web hosting is varied. On their top 10 list, the top 3 rate is $3.95 per month, from there it goes as high as $8.96 per month. The pricing criterias that is most important is the storage space, bandwidth size, and allowed emails.

Reference:
Top 10 Web Hosting (2009), Last Accessed April 7th, 2009 from
http://www.top10webhosting.com/

5. Why is the perception getting stronger that integration will become a critical factor in coming days? What is the role of ERP within the enterprise
software architecture?

Integration allows organizations to work together more effectively, this brings in a new opportunity for organization to reduce cost. Every organization aims to integrate their system with their business partners, not only this will establish a better relationship with their business partners but also reduce the overall cost and time in dealing with them.
Enterprise resource planning (ERP) is an organization computer software system that is used to manage all the resources, information, and functions of a business from shared data storage. An ERP system has a service-oriented architecture with modular hardware and software units that communicate on a local area network. This design allows businesses to add or reconfigure modules while preserving data integrity in one shared database that may be centralized or distributed.
Reference:
Enterprise Resource Planning (2007), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/Enterprise_resource_planning

6. What is Customer Relationship Management and why is it important to
e-commerce?

Customer relationship management (CRM) consists of all the processes an organization use to manage its contacts with its current and prospective customers. CRM software main aim is to support these processes; information about customers can be entered, stored and accessed by organization employees in different departments and/or branch. The main CRM goals are to improve services provided to customers, and to use customer contact information for targeted marketing.
Reference:
Customer Relationship Management (2007), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/Customer_relationship_management

7. What are the differences between HTML and DHTML?
Dynamic HTML, or DHTML, is a combination of technologies used at the same time to create an interactive web sites. This is achieved by using a combination of a static markup language (such as HTML), a client-side scripting language (such as JavaScript), a presentation definition language (such as CSS), and the Document Object Model. DHTML allows scripting languages to change variables in a web page's definition language, which in turn affects the look and function of otherwise "static" HTML page content, after the page has been fully loaded and during the viewing process. Thus the dynamic characteristic of DHTML is the way it functions while a page is viewed, not in its ability to generate a unique page with each page load.
While HTML, an initialism of HyperText Markup Language. Is a definition language that provides a means to describe the structure of text-based information in a document—by denoting certain text as links, headings, paragraphs, lists, etc.—and to add that text with interactive forms, embedded images, and other objects. HTML is written in the form of "tags" that are surrounded by angle brackets.

Reference:
Hypertext Markup Language (2006), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/HTML
Dynamic Hypertext Markup Language (2008), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/DHTML

8. Why was XHTML developed? Do you think this addresses most of the
HTML weaknesses?

The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax. While HTML prior to HTML 5 was defined as an application of Standard Generalized Markup Language (SGML), a very flexible markup language, XHTML is an application of XML, a more restrictive subset of SGML. Because they need to be well-formed, true XHTML documents allow for automated processing to be performed using standard XML tools—unlike HTML, which requires a relatively complex, lenient, and generally custom parser. XHTML can be thought of as the intersection of HTML and XML in many respects, since it is a reformulation of HTML in XML.
Reference:
Extensible Hypertext Markup Language (2008), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/XHTML

9. What are the similarities between JavaScript, VBScript and ZOPE’s
DTML?

Both JavaScript and VBScript is a client side scripting. Which means that it is a computer programs on the web that are executed client-side, by the user's web browser, instead of server-side (on the web server). This type of computer programming is an important part of the Dynamic HTML (DHTML) concept, enabling web pages to be scripted; that is, to have different and changing content depending on user input, environmental conditions (such as the time of day), or other variables.

However ZOPE’s DTML according to the ZOPE website is a server side script. This means that DTML commands are executed by Zope at the server, and the result of that execution is sent to your web browser. By contrast, "client-side" scripting languages like JavaScript are not processed by the server, but are rather sent to and executed by your web browser.

Reference:
DTML (2008), Last Accessed April 7th, 2009 from
http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/DTML.stx
Client Side Scripting (2007), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/Client_side_scripting

10. What are the similarities and differences between ASP, JSP and PHP?

The similarities between the three is that they are all a server side scripting language. Which means that they are a web program that is executed on the server and the result is translated into HTML which is then sent to the client web browser. But that is the extent of their similarities, other then that they are all different. They can only run on specific server, for example, PHP can only run on an Apache server, while JSP can only run on Tomcat server and ASP only on Microsoft server. And of course all the syntax is also different. Although ASP and JSP uses the same tag to be recognized by the server, which is .

11. What are the differences between the various approaches to scripting?

There are two approaches to scripting, that is Client side and server side scripting. Client side scripting is a computer programs on the web that are executed client-side, by the user's web browser, instead of server-side (on the web server). This type of computer programming is an important part of the Dynamic HTML (DHTML) concept, enabling web pages to be scripted; that is, to have different and changing content depending on user input, environmental conditions (such as the time of day), or other variables.
While server-side scripting is a technology in which a user's request is fulfilled by running a script directly on the web server to generate dynamic web pages. It is usually used to provide interactive web sites that interface to databases or other data stores. This is different from client-side scripting where scripts are run by the viewing web browser, usually in JavaScript. The primary advantage to server-side scripting is the ability to highly customize the response based on the user's requirements, access rights, or queries into data stores.
Reference:
Server Side Scripting (2007), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/Server_side_scripting
Client Side Scripting (200), Last Accessed April 7th, 2009 from
http://en.wikipedia.org/wiki/Client_side_scripting

12. List some of the shareware or freely available tools for web design. In
addition to a good HTML editor, what utilities could be very handy to the
developer?

List of freely available tool for web design:

NVU Open Source Web Builder
WYSIWYG Web Builder
Serif Web Plus SE
Blue Voda Web Builder

Other than a good HTML editor another program that will be very handy to a developer is a media editing program. To create a good website a developer need to be able to fully customize the media content in its website so that they all adhere to the website theme.

Reference:
Easy Web Design (2009), Last Accessed April 7th, 2009 from
http://www.your3dsource.com/easywebdesign.html

Wednesday, March 25, 2009

Study Guide Exercise 8

Skip due to the instruction.

Study Guide Exercise 9

Skip due to the instruction.

Study Guide Exercise 7

Skip due to the instruction.

Study Guide Exercise 6

Skip due to the instruction.

Study Guide Exercise 5

1. Using any familiar programming language environment, what do you know about sockets (network) programming?


In computing, socket programming, involves writing computer programs that communicate with other programs across a computer network. The program that initiate the communication is called a client, and the program waiting for the communication is the server. The client and server processes together form a distributed system.


Reference:
Socket Programming (2007), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/Socket_programming

2. Define some terms.


Socket: is the endpoint of a bidirectional communication flow across an Internet Protocol-based computer network, such as the Internet.
Socket Address: is the combination of an IP address (the location of the computer) and a port (which is mapped to the application program process) into a single identity.
Client: a computer chat program that initiates a communication with another computer.
Server: a computer client program that is being contacted by a client.


Reference:
Socket Programming (2007), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/Socket_programming

3. How is a socket bound to a port number and what is the role of the operating system on the server end?


The operating system forwards incoming IP packets to the corresponding application or service process by extracting the socket address information from the IP and transport protocol headers. Within the operating system and the application that created a socket, the socket is referred to by a unique integer number called socket number


Reference:
Internet Socket (2007), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/Internet_socket

4. Investigate a simple chat client/server system. Look at some program code and describe how it works with multiple users.

A chat system is divided into two program, a client program that needs to initiate the communication and a server program.
Here is a sample of a client chat program written in C:
#include
#include
#include
#include
int main() {
int serverfd;
struct sockaddr_in serveraddress;
char buf[200];

serveraddress.sin_family = AF_INET;
serveraddress.sin_port = htons(12205);
serveraddress.sin_addr.s_addr = inet_addr("127.0.0.1");
memset(&(serveraddress.sin_zero), 0, 8);
serverfd = socket(AF_INET, SOCK_STREAM, 0);
connect(serverfd, (struct sockaddr*)&serveraddress, sizeof(struct sockaddr));

while (fgets(buf, 200, stdin)) {
send(serverfd, buf, strlen(buf)+1, 0);
}
close(serverfd);
return 0;
}
And here is the server program:
#include
#include
#include
#include
int main() {
int serverfd, clientfd;
struct sockaddr_in myaddress;
struct sockaddr_in cliaddress;
char buf[200];
myaddress.sin_family = AF_INET;
myaddress.sin_port = htons(12205);
myaddress.sin_addr.s_addr = htonl(INADDR_ANY);
memset(&(myaddress.sin_zero), 0, 8);
serverfd = socket(AF_INET, SOCK_STREAM, 0);
bind(serverfd, (struct sockaddr *)&myaddress, sizeof(struct sockaddr));
listen(serverfd, 2);

while (1) {
int addrlen = sizeof(struct sockaddr);
int len;
clientfd = accept(serverfd, (struct sockaddr *)&cliaddress, &addrlen);
printf("[[connected to %s]]\n", inet_ntoa(cliaddress.sin_addr));
while (len = recv(clientfd, buf, 200, 0)) {
puts(buf);
}
printf("connection reset\n");
close(clientfd);
}
return 0;
}

Reference:
Socket Programming sample (2009), Last accessed April 5th, 2009 from
http://72.14.235.132/search?q=cache:ugUe7dHU97oJ:inst.eecs.berkeley.edu/%7Eee122/sp05/ee122-socketcode.ppt+daron+spektor+filetype:ppt&cd=1&hl=en&ct=clnk&gl=au

Study Guide Exercise 5

1. Using any familiar programming language environment, what do you know about sockets (network) programming?

In computing, socket programming, involves writing computer programs that communicate with other programs across a computer network. The program that initiate the communication is called a client, and the program waiting for the communication is the server. The client and server processes together form a distributed system.

Reference:
http://en.wikipedia.org/wiki/Socket_programming

2. Define some terms.

Socket: is the endpoint of a bidirectional communication flow across an Internet Protocol-based computer network, such as the Internet.
Socket Address: is the combination of an IP address (the location of the computer) and a port (which is mapped to the application program process) into a single identity.
Client: a computer chat program that initiates a communication with another computer.
Server: a computer client program that is being contacted by a client.

Reference:
http://en.wikipedia.org/wiki/Socket_programming

3. How is a socket bound to a port number and what is the role of the operating system on the server end?

The operating system forwards incoming IP packets to the corresponding application or service process by extracting the socket address information from the IP and transport protocol headers. Within the operating system and the application that created a socket, the socket is referred to by a unique integer number called socket number

Reference:
http://en.wikipedia.org/wiki/Internet_socket

4. Investigate a simple chat client/server system. Look at some program code and describe how it works with multiple users.

A chat system is divided into two program, a client program that needs to initiate the communication and a server program.
Here is a sample of a client chat program written in C:
#include
#include
#include
#include
int main() {
int serverfd;
struct sockaddr_in serveraddress;
char buf[200];

serveraddress.sin_family = AF_INET;
serveraddress.sin_port = htons(12205);
serveraddress.sin_addr.s_addr = inet_addr("127.0.0.1");
memset(&(serveraddress.sin_zero), 0, 8);
serverfd = socket(AF_INET, SOCK_STREAM, 0);
connect(serverfd, (struct sockaddr*)&serveraddress, sizeof(struct sockaddr));

while (fgets(buf, 200, stdin)) {
send(serverfd, buf, strlen(buf)+1, 0);
}
close(serverfd);
return 0;
}
And here is the server program:
#include
#include
#include
#include
int main() {
int serverfd, clientfd;
struct sockaddr_in myaddress;
struct sockaddr_in cliaddress;
char buf[200];
myaddress.sin_family = AF_INET;
myaddress.sin_port = htons(12205);
myaddress.sin_addr.s_addr = htonl(INADDR_ANY);
memset(&(myaddress.sin_zero), 0, 8);
serverfd = socket(AF_INET, SOCK_STREAM, 0);
bind(serverfd, (struct sockaddr *)&myaddress, sizeof(struct sockaddr));
listen(serverfd, 2);

while (1) {
int addrlen = sizeof(struct sockaddr);
int len;
clientfd = accept(serverfd, (struct sockaddr *)&cliaddress, &addrlen);
printf("[[connected to %s]]\n", inet_ntoa(cliaddress.sin_addr));
while (len = recv(clientfd, buf, 200, 0)) {
puts(buf);
}
printf("connection reset\n");
close(clientfd);
}
return 0;
}

Reference:
http://72.14.235.132/search?q=cache:ugUe7dHU97oJ:inst.eecs.berkeley.edu/~ee122/sp05/ee122-socketcode.ppt+daron+spektor+filetype:ppt&cd=1&hl=en&ct=clnk&gl=au

study guide exercise 4

1. Describe the IP protocol. What is DNS?

IP protocol is the main protocol in the Internet Layer of the Internet Protocol Suite. The main task of the IP protocol is to deliver datagrams/packets from the source machine to the destination machine solely based on their addresses. Considering machine addresses are based on numbers, it is a bit difficult for human to manage. This is where DNS role is important.
The Domain Name System (DNS) is a naming system for computers, services, or any resource that connects to the Internet. DNS most important use is that it translates domain names that is understandable to humans into numerical (binary) values that associates with networking equipment for the purpose of locating and addressing these devices world-wide. For example, www.something.com translates to 111.222.123.88.

Reference:
Internet Protocol (2007), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/Internet_Protocol

Domain Name System (2008), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/Domain_Name_System

2. Describe the TCP protocol. How is it related to the IP protocol?

The Transmission Control Protocol (TCP) is one of the main protocols of the Internet Protocol Suite. As a matter of fact TCP was one of the two original components, along with Internet Protocol (IP),that is why the entire suite is known as TCP/IP. Whereas IP handles datagram/packet transmissions from computer to computer, TCP is concerned only with the two end systems. TCP provides reliable, ordered delivery of a stream of bytes from a program on one computer to another program on another computer. Besides the Web, other common applications of TCP include e-mail and file transfer. Among its other management tasks, TCP controls message size, the rate at which messages are exchanged, and network traffic congestion.

Reference:
Transfer Control Protocol (2008), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/TCP

3. Differentiate between intranets and extranets.

Intranet is a private network that use Internet technologies to share any part of an organization's information, documents, and/or other digital resources among its employees. Sometimes the term intranet refers only to the organization's internal website, but often it is a more extensive part of the organization's computer infrastructure and private websites are an important component and focal point of internal communication and collaboration. A simple exlanation of the intranet would be to understood it as a private version of the Internet.
While extranet is a private network that uses the Internet system to securely share some part of an organization's information or operations with suppliers, vendors, partners, customers or other businesses. An extranet can be viewed as part of a company's intranet that is extended to users outside the company.
Intranets differ from extranets in that the former are generally restricted to employees of the organization while extranets may also be accessed by customers, suppliers, or other approved parties. Extranets extend a private network onto the Internet with special provisions for access, authorization and authentication.

Reference:
Intranets (2007), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/Intranets

Extranets (2007), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/Extranet

4. Describe the different elements of HTTP protocol.

HTTP defines eight methods:
HEAD:
Asks for the response identical to the one that would correspond to a GET request, but without the response body.
GET
Requests a representation of the specified resource. Note that GET should not be used for operations that cause side-effects, such as using it for taking actions in web applications. One reason for this is that GET may be used arbitrarily by robots or crawlers.
POST
Submits data to be processed (e.g., from an HTML form) to the identified resource. The data is included in the body of the request. This may result in the creation of a new resource or the updates of existing resources or both.
PUT
Uploads a representation of the specified resource.
DELETE
Deletes the specified resource.
TRACE
Echoes back the received request, so that a client can see what intermediate servers are adding or changing in the request.
OPTIONS
Returns the HTTP methods that the server supports for specified URL. This can be used to check the functionality of a web server by requesting '*' instead of a specific resource.
CONNECT
Converts the request connection to a transparent TCP/IP tunnel, usually to facilitate SSL-encrypted communication (HTTPS) through an unencrypted HTTP proxy.

Reference:
Hypertext Transfer Protocol (2008), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/HTTP

5. What do you know about building e-business applications as an Intranet,
Extranet, Web portal, B2B, B2C or Virtual Private Network (VPN)? Find
some examples on the Web.

Building e-business application for different e-business models need to consider a lot of different aspects. For example extranet although only slightly differerent from intranet the security consideration is a lot different. The extranet need extra security since it involves parties outside the organization. Other than that they also have different priority. The Web Portal demands fast connection without less focus on the design, while B2B and B2C website needs to have an interesting design so that it can interest potential customer to visit their website.

6. What role can a VPN play in business-to-business e-commerce?

A virtual private network (VPN) is a computer network in which some of the links between nodes are carried by open connections or virtual circuits in some larger network (e.g., the Internet) as opposed to running across a single private network. The link-layer protocols of the virtual network are said to be tunneled through the larger network.
By using VPN, B2B e-commerce such as extranets can use the existing underlying network such as the Internet to establish their connection. This allows for huge cost reduction because organizations need not to build their own network to collaborate with their business partners.

Reference:
Virtual Private Network (2008), Last accessed April 5th, 2009 from
http://en.wikipedia.org/wiki/VPN

Workshop 1

TO DO LIST FOR WORKSHOP 1

1) Download iTunes from http://www.apple.com/itunes/download/ and subscribe to the “Leraning Rails” Podcasts from http://www.buildingwebapps.com/podcasts

First of all, when you click first link to download iTunes, you will see above web page. Then, click the "Download Now" button and click "Run" button. After that, iTunes will be downloaded to your computer and setup progress will be started automatically.







Next step is subscription to the “Leraning Rails” Podcasts from. To do this click on second link above. Then, follow the instructions to subscribe online Ruby on Rails courses.





2) Install Ruby on Rails on your computer by using the material and downloads from http://rubyonrails.org/download


When you click this link, you will see "Windows Installer" button under the Ruby part, and to get ruby, please click on it. Besides that, there are also other versions for other operating systems. But in this workshop, I am going to use 1.8.6-26 Final Release for windows vista operating system.





After download progress, you can use One-Click Ruby Installer property to install it on your computer. It does a lot of work for you by installing Ruby, Ruby Gems Package Manager, Rake, all of the other standard Ruby tools, and even the open source SciTE programmer’s editor. Additionally, the installer configures the command line interface path information, so the Ruby tools are ready to use in the Command Prompt program.



3) Rather than get Ruby on Rails running manually, you use the pre-packaged solutions. These include everything in one bundle: Web server, database, Ruby, Rails, the works.
a. For OS X, there's Locomotive.
b. For Windows, there's Instant Rails.


As it can be understood from third step, for windows operating systems Instant Rails application provides all you needs and it is easy to use.In other words, you do not need to install Ruby as shown in second step. In order to download Instant Rails visit http://rubyforge.org/frs/?group_id=904 web page. Then, download latest version which is "InstantRails-2.0-win.zip".




There are some easy steps which you have to complete before start your first Ruby application.

1. First of all, you have to extract InstantRails-2.0-win.zip file into your computer's C:/ drive. After extraction process, you should able to see content of the Instant Rails like this;



2. Next step is starting Instant Rails application, to run it just click on "InstantRails.exe". Then you will see a small Instant Rails window like shown below. When it appears, click on "I" button and you will see main menu. Then click "Rails Application --> ManageRails Applications", as it is shown below.




3. Another step is managing your Rails applications or creating a new one. In this part, I am going to show you how can you start an existing application.


3.1 As shown in below window, choose an aplication on your Rails Application list. Then click on "Start with Mongrel" button.


3.2 After that you will see start processes of the web server and your application's port number as well, on a black screen.



3.3 Finally, you can start your sample Rails application on your Web browser. Just, open a web browser and type http://localhost:3001/.






CHALLENGE PROBLEMS
Question 1 : Make a list of all programming languages and Web development tools used by you in prior experiences. Describe what you know about Web application frameworks before we begin.

During my universtiy education and work experience, I am familiar with some programming languages such as, C, C++, C#, ASSEMBLY, SHELL SCRIPT, JAVA, PL/SQL, HTML, PHP, OpenGL, VRML and NesC. Besides these programming languages, I have some experiences with Dreamweaver web development tool.

In order to describe Web application frameworks, first of all meaning of web application should be clearly defined. According to resources, web application can be simplified as "a structured set of objects that may be navigated and processed, in order to achieve one or more tasks". Therefore, a web application framework can be defined as " a generic definition of the possible application objects, together with a generic definition". In other words, setting possible objects to be navigated and structiring their navigation architecture. (Murugesan & Deshpande, 2001, p. 338) The main target of frameworks is providing separation between data model and user interface using with business rules.

References

Murugesan S., & Deshpande Y. (2001). Web engineering: managing diversity and complexity of Web application development. Springer Press.



Question 2 : Ruby is defined as “an interpreted scripting language” for quick and easy object-oriented programming”. Find out about the Ruby language and discover what this means.

Ruby is "a completely object-oriented language. Every value is an object, even simple numeric literals and the values true, false, nil". (Flanagan & Matsumoto, 2008, p. 2) It provides programmers easily developing techniques and performing system management tasks.

References

Flanagan D., & Matsumoto Y. (2008). The Ruby Programming Language. O'Reilly Press.


Question 3: What is Rails and how does it work with Ruby?

Rails is "the web application framework that will put everything online." (Holzner, 2006, p. 1) It is written in the Ruby language and designed to the Model View Controller (MVC) pattern. MVC is used for seperating an application's data model, user interface and control logic. This process is formed by three separate layers with minimal dependencies on each other. When a request comes from a browser the Ruby on Rails stores all MVC related files in the app directory, which is located in the application root directory. (Hellsten & Laine, 2006 , p.20)

References

Hellsten C., & Laine J. (2006). Beginning Ruby on Rails e-commerce. Apress Press
Holzner S. (2006). Beginning Ruby on Rails. John Wiley and Sons


Question 4: What is meant by “convention over configuration” in regards to the use of Rails in Web application development?

Convention over configuration is a simple concept. Systems, libraries. and frameworks should assume reasonable defaults without requiring that unnecessary configuration. Therefore this aproach provides systems just work. (Zyl, 2008, p. 3) In conventional approach, things are named consistently and are stored in standardized place. Rails uses a simple convention for URL routing: the names of a controller (a class name), action (a method name), and primary key (ID) are used in a consistent manner in the URL, so they don't need to be supplied through some other mechanism. By the way, this convention can be overridden. (Hardy, Carneiro, & Catlin, 2007, p. 7)


References

Hardy, J. A., Carneiro, C., & Catlin H. (2007). Beginning Rails: from novice to professional. Apress press

Zyl, J.V. (2008). Maven: The Definitive Guide. O'Reilly Press.


Question 5: When did Model-View-Controller begin and where is it used?

MVC was designed by Trygve Reenskaug in 1979. Then it was firstly implemented on Smalltalk at Xerox PARC. It aimed the development and maintainability of Smalltalk GUI applications by a clear division of business logic. Thirty years later, the same architecture is widely adopted for Web development. (Arking & Cangiano, 2009, p. 36)
The MVC is commonly used as architectural pattern for frameworks, which can be used to very rapidly produce a full-featured MVC Web application. (Moore, Budd & Benson, 2007, p. 176) In other words, MVC approach is largely based on an event-driven environment where the user drives the flow of application by using the interface. (Chopra, Eaves, Jones, Li & Bell, 2005, p. 534)

References

Arking, J., & Cangiano, A. (2009). Ruby on Rails for Microsoft Developers. John Wiley and Sons Press
Chopra, V., Eaves, J., Jones, R., Li, S., & Bell, J.T. (2005). Beginning JavaServer pages. John Wiley and Sons Press
Moore, D., Budd, R., & Benson, E. (2007). Professional Rich Internet Applications. John Wiley and Sons Press



Question 6: Describe the steps involved with the MVC design approach.

MVC design approach attempts to seperate an application into three parts. These parts can be described as MODEL, VIEW and CONTROLLER.

MODEL: It does the work and models the real world problem that application attempts to solve.
VIEW: It is the representation of the Model that user can see and interact with.
CONTROLLER: It is the part of the application that responds to commands from the user, deciding how model should be changed or retrieved and which view should be displayed. (Chopra, Eaves, Jones, Li & Bell, 2005, p. 534)

References

Chopra, V., Eaves, J., Jones, R., Li, S., & Bell, J.T. (2005). Beginning JavaServer pages. John Wiley and Sons Press

Monday, March 23, 2009

Study Guide Exercise 3

The definition of rapid evolutionary prototyping is:

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.

and the steps involved in developing a web application using this method is:

Step 1: Project Planning
This step involve getting the requirements about the project from the client and from that we can create the plan for the project from what we understand in the requirement.

Step 2: Rapid Analysis
In this step we analyse the plan we have made and made the necessary adjustment if there is any.

Step 3: Menus and Functions Creation
In this step we create the menus and functions that we are already sure that the client need.

Step 4: Prototype Iteration
This is the step that defines rapid evolutionary prototyping, in this step we create a working prototype. the main difference of the rapid evolutionary prototyping is that the prototype that has been made will not be throwaway, instead it will become the base for the next prototype, so that each prototype is a refinement of the previous one.

Step 5: User Approval
In this step we seek the user approval and feedback on the system.

Step 6: Tuning
In this step we fine tune the system, make all the necessary adjustment as the system is being deployed.

Step 7: Operations and Maintenance
This is an ongoing step for as long as the system lifetime. This is where the system is actually being used by the user.



Reference:
Evolutionary Rapid Prototyping (1998), Last accessed March 22, 2009 from
http://phillips.rmc.ca/courses/493-1998/lectures/rapid-prototyping/rapid-prototyping.html

Friday, March 6, 2009

Study Guide Exercise 1

1. Visit http://yahoo.com and http://zope.org as examples of online
communities.
a. What is meant by an online community and how is it important for
e-commerce?

"Online community A virtual meeting place for people on the Internet. Designed to facilitate interaction and collaboration among people who share common interests and needs. Online communities can be open to all or by membership only and may or may not offer moderator tools.

Reference:

Definition (2008). Last accessed March 5, 2009 from http://web.worldbank.org/WBSITE/EXTERNAL/WBI/0,,contentMDK:20169611~isCURL:Y~menuPK:654498~pagePK:209023~piPK:207535~theSitePK:213799,00.html#o

An online community provide a place for people with common interest to meet and interact with each other. For e-commerce online community provide an easier way to do a targeted marketing. For example, an e-commerce website that sells games will look to advertise its products in a gaming community such as gaming forums (for example gamefaqs.com). That way they can always be sure that they are reaching the most potential customer.

b. Visit the three auctions sites at http://ebay.com, http://ebay.co.uk and
http://ebay.com.au:
i. Is there a common thread and a local community sense in action?

At the first look, all three sites have the same look and feel, except for the URL address there is no difference at all between the three. However on closer look there is a subtle difference, ebay.co.uk uses pounds as a currency, while ebay.com.au uses Australian $ and ebay.com uses American $. Also with the product that they sell. So in conclusion i think there is a local community sense in each of them.

ii. What electronic payment systems are used? Are they globally

acceptable?

All three eBay website recommends PayPal as the best payment method, and we have to agree that for an auction site like eBay PayPal is probably the best payment method both for the buyer and the seller. First of all i have to mention that PayPal is globally acceptable, anyone can have a PayPal account easily and unlike payment with credit cards (which is also acceptable in eBay) PayPal does not require the seller to have a merchant account (which is quite pricey) in a certain bank, which means lower cost and lower item prices which benefits everyone.

iii. What are the benefits of an online auction sale to a buyer, a
seller and E-bay owners?

For buyer the benefits is open market, they can search the item they want easily and find the best price for that item while sitting at home drinking coffee (or tea if coffee is not your thing).
For the seller online auction sale opens up a new market where potential buyer comes from all over the world.
For eBay owners online auction sale means profit, eBay charges some percentage of the sale price to the seller, so every sale means income for the eBay owners.

c. Find three others examples of an online business using an online
community approach.

http://shoppingsquare.com.au/
http://shoppingsquare.com.au/
http://uk.playstation.com/psn/store/

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?

Amazon.com was a successful site because it has a really good business plan, they pride themselves as a place where people can find any book. They specialize themselves in that area so that they have a loyal customer base. Although now they have expand themselves to selling other stuff their mainstay is still about books.
They also made it very easy to buy a book. First you need to be a member, and then you select the book you want, after getting the details of the book, you can select from buying a new, used or collectible book (all with different prices of course). And then, like with any online sales, you choose the type of payment, enter payment detail, etc, etc. And finally you will get a thank you message and your book will be send in a week or so.

b. Is there any secure transactions not involving money?

Yes, the first time when you register to amazon.com is a secure transaction that does not involve any money being transfer.

c. What is the range of items that you can buy?

Amazon.com currently sells any kind of items, not just book. They sell movies, games, electronics, sports stuff, etc.

i. List the steps involved and comment.

The steps involved is the same as buying books from them, which i think is very normal and many commercial websites used nowadays.

Rapid Evolutionary Prototyping to Developing Web Application

Study Guide Exercise 2

Website that have online shopping:
http://www.ebay.com/

Website with electronic payment:
http://www.amazon.com/

Website with a database access:
http://www.free-termpapers.com/

Wap sites for mobile phones:
http://m.ralphlauren.com/

Lastly, website that sells digital products:
http://www.emusic.com/