Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
56 views

Web Design and Programming-Chap 1 (Autosaved)

Uploaded by

ktesfaneh2
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

Web Design and Programming-Chap 1 (Autosaved)

Uploaded by

ktesfaneh2
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 125

Web design and

Programming-I
(SEng2024 )
Introduction to Computers and the Internet
• O b j e c t i v e s:
• In this chapter you’ll learn:
• Computer hardware, software and Internet basics
• The evolution of the Internet and the World Wide Web
• How HTML5, CSS3 and JavaScript are improving web application
development
• The data hierarchy
• The different types of programming languages
• Object-technology concepts
Introduction to Computers and the Internet

• Outline: • Client-Side Scripting versus Server Side


• Introduction Scripting
• The Internet in Industry and • World Wide Web Consortium (W3C)
Research • Web 2.0: Going Social
• HTML5, CSS3, and JavaScript • Data Hierarchy
• Evolution of the Internet and • Operating Systems
World Wide Web • Desktop and Notebook Operating Systems
• Web Basics • Mobile Operating Systems
• Multitier Application • Types of Programming Languages
Architecture • Object Technology
Introduction
• There are 4.88 billion internet users in the world today.
• That is almost 62 percent of the world’s total population

• There were 21.14 million internet users in Ethiopia in January 2020.


• Internet penetration in Ethiopia stood at 19% in January 2020.

• There were 12.5 billion internet-enabled devices in 2010,and


• The number is predicted to reach 25 billion by 2015 and 50 billion by 2020.
Introduction
• The client-side programming technologies are used to build web pages and applications that
are run on the client (i.e., in the browser on the user’s device)
• Some of these technologies are:
• HyperText Markup Language 5 (HTML5)- the recent releases of HTML and
• Cascading Style Sheets 3(CSS3)—the recent releases of CSS technologies—
• These recent releases come to add powerful, dynamic and fun features and effects to
web pages and web applications,
• such as audio, video, animation, drawing, image manipulation, designing pages for
multiple screen sizes, access to web storage and more
• JavaScript-the language of choice for implementing the client side of internet based
applications
Introduction
• Moore’s Law
• Hardware costs have fallen rapidly.
• Every year or two, the capacities of computers have approximately doubled
inexpensively.
• This remarkable trend often is called Moore’s Law.
• Moore’s Law and related observations apply especially to
• The amount of memory that computers have for programs,
• The amount of secondary storage (such as disk storage) they have to hold
programs and data over longer periods of time, and
• Their processor speeds—the speeds at which computers execute their
programs (i.e., do their work).
• Similar growth has occurred in the communications bandwidth, in which costs
have dropped
• We know of no other fields in which technology improves so quickly and costs fall
so rapidly.
Introduction
• Moore’s Law
• Equation: Pn = Po x 2^n

• Pn = computer processing power in future years

• Po = computer processing power in the beginning year

• n = number of years to develop a new microprocessor divided by 2 (ie. every two


years)

• Example:
• In 1988, the number of transistors in the Intel 386 SX microprocessor was
275,000. What were the transistors counts of the Pentium II Intel microprocessor
in 1997 ?

The Internet in Industry and Research
• Many of the most influential and successful businesses of the last two
decades are technology companies, including

• Apple, • Google,
• IBM, • Amazon,
• Hewlett Packard,
• Facebook,
• Dell,
• Intel, • Twitter,
• Motorola, • Groupon,
• Cisco, • Foursquare,
• Microsoft, • Yahoo!,
• eBay and many more.
The Internet in Industry and Research
• These companies are major employers of people who study computer science,
information systems or related disciplines.
• At the time of this writing, Apple was the most valuable company in the world.
• In terms of market cap, as of December 2021 Apple has a market cap of
$2.892 trillion dollars.
• It is also one of the world's largest companies with the annual revenue of
$365.82 bln. as of September 2021.
• In the past, most computer applications ran on computers that were not
connected to one another,
• Whereas today’s Internet applications can be written to communicate
among computers throughout the world.
The Internet in Industry and Research
• Figures 1.1–1.4 provide a few examples of how computers and the Internet are
being used in industry and research.
• Figure 1.1 lists two examples of how computers and the Internet are being used
to improve health care.
Name Description

Electronic • Recording a patient's medical history, prescriptions, immunizations, lab results,


health allergies, insurance information and more.
records • Making this information available to health care providers across a secure
network
• To improves patient care, reduce the probability of error and increases overall
efficiency of the health care system.
Fig. 1.1 | Computers and the Internet in health care.
The Internet in Industry and Research
Name Description

Human • Was founded to identify and analyse the 20,000+ genes in human DNA.
Genome • The project used computer programs to analyse complex genetic data,
Project determine the sequences of the billions of chemical base pairs that make up
human DNA and
• Store the information in databases
• Which have been made available over the Internet to researchers in many
fields.

Fig. 1.1 | Computers and the Internet in health care.


The Internet in Industry and Research
• Figure 1.2 provides a sample of some of the exciting ways in which computers
and the Internet are being used for social good.

Name Description

AMBER™ Alert • The AMBER (America’s Missing: Broadcast Emergency Response) Alert System is used to find
abducted children.
• Law enforcement notifies TV and radio broadcasters and state transportation officials, who
then broadcast alerts on TV, radio, computerized highway signs, the Internet and wireless
devices.
• AMBER Alert recently partnered with Facebook, whose users can “Like” AMBER Alert pages by
location to receive alerts in their news feeds.

Fig. 1.2 | Projects that use computers and the Internet for social good.
The Internet in Industry and Research
Name Description

World • People worldwide can donate their unused computer processing power
Community Grid • This computing power, accessed over the Internet, is used in place of expensive
supercomputers
• To conduct scientific research projects that are making a difference, providing clean water to
third world countries, fighting cancer, growing more nutritious rice for regions fighting hunger
and more.

One Laptop Per • Is providing low-power, inexpensive, Internet-enabled laptops to poor children worldwide—
Child (OLPC)
(one.laptop.org) • Enabling learning and reducing the digital divide.

Fig. 1.2 | Projects that use computers and the Internet for social good.
The Internet in Industry and Research
• We rely on computers and the Internet to communicate, navigate, collaborate
and more.
• Figure 1.3 gives some examples of how computers and the Internet provide the
infrastructure for these tasks.
The Internet in Industry and Research
Name Description
Cloud • Cloud computing allows you to use software, hardware and information stored in the “cloud”—
computing • i.e., accessed on remote computers via the Internet and available on demand—rather than
having it stored on your personal computer.
• Amazon is one of the leading providers of public cloud computing services.
• You can rent extra storage capacity using the Amazon Simple Storage Service (Amazon S3), or
• augment processing capabilities with Amazon’s EC2 (Amazon Elastic Compute Cloud).
• These services, allowing you to increase or decrease resources to meet your needs at any given
time,
• are generally more cost effective than purchasing expensive hardware to ensure that you have
enough storage and processing power to meet your needs at their peak levels.
• Business applications (such as CRM software) are often expensive, require significant hardware
to run them and knowledgeable support staff to ensure that they’re running properly and
securely.
• Using cloud computing services shifts the burden of managing these applications from
the business to the service provider,
• saving businesses money.

Fig. 1.3 | Examples of computers and the Internet in infrastructure.


The Internet in Industry and Research

Name Description

GPS • Global Positioning System (GPS) devices use a network of satellites to retrieve location-based
information.
• GPS devices can provide step-by-step directions and help you easily find nearby businesses
(restaurants, gas stations, etc.) and points of interest.
• GPS is used in numerous location-based Internet services such as
• check-in apps to help you find your friends (e.g., Foursquare and Facebook),
• Exercise apps such as RunKeeper that track the time, distance and average speed of your
outdoor jog,
• Dating apps that help you find a match nearby and
• Apps that dynamically update changing traffic conditions.

Fig. 1.3 | Examples of computers and the Internet in infrastructure.


The Internet in Industry and Research
Name Description
Robots • Robots can be used for
• day-to-day tasks (e.g., iRobot’s Roomba vacuum),
• entertainment (e.g., robotic pets),
• military combat, deep sea and
• space exploration (e.g., NASA’s Mars rover) and more.
• RoboEarth (www.roboearth.org) is “a World Wide Web for robots.”
• It allows robots to learn from each other by sharing information and
• thus improving their abilities to perform tasks, navigate, recognize objects and
more.
E-mail, • Internet-based servers support all of your online messaging.
Instant • E-mail messages go through a mail server that also stores the messages.
Messaging, • Instant messaging (IM) and Video Chat apps, such as AIM, Skype, Yahoo! Messenger and others
Video Chat allow you to communicate with others in real time by sending your messages and live video
and FTP through servers.
• FTP (file transfer protocol) allows you to exchange files between multiple computers (e.g., a
client computer such as your desktop and a file server) over the Internet using the TCP/IP
protocols for transferring data.
Fig. 1.3 | Examples of computers and the Internet in infrastructure.
The Internet in Industry and Research
• Figure 1.4 lists a few of the exciting ways in which computers and the Internet
are used in entertainment.
Name Description

iTunes and • iTunes is Apple’s media store where you can buy and download digital music, movies, television shows,
the e-books, ringtones and apps (for iPhone, iPod and iPad) over the Internet.
App Store • Apple’s iCloud service allows you to store your media purchases “in the cloud” and access them from
any iOS (Apple’s mobile operating system) device.
• In June 2011, Apple announced that 15 billion songs had been downloaded through iTunes, making
Apple the leading music retailer.
• As of July 2011, 15 billion apps had been downloaded from the App Store
(www.apple.com/pr/library/2011/ 07/07Apples-App-Store-Downloads-Top-15-Billion.html).

Fig. 1.4 | Examples of computers and the Internet in entertainment.


The Internet in Industry and Research
Name Description

Internet TV • Internet TV set-top boxes (such as Apple TV and Google TV) allow you to access an enormous amount of
content on demand, such as games, news, movies, television shows and more.

Game • Global video game revenues are expected to reach $154.6 billion projected for 2021.
programming • The most sophisticated games can cost as much as $100 million to develop.
• Activision’s Call of Duty 2: Modern Warfare, released in 2009, earned $310 million in just one day in
North America and the U.K. (news.cnet.com/8301-13772_3-10396593-52.html?tag=mncol;txt)!
• Online social gaming, which enables users worldwide to compete with one another over the Internet, is
growing rapidly.
• Zynga—creator of popular online games such as Farmville and Mafia Wars—
• was founded in 2007 and
• already has over 265 million monthly users.
• To accommodate the growth in traffic, Zynga is adding nearly 1,000 servers each week
(techcrunch.com/2010/09/22/zyngamoves-1-petabyte-of-data-daily-adds-1000-servers-a-week/)!

Fig. 1.4 | Examples of computers and the Internet in entertainment.


The Internet in Industry and Research
• Homework 1.1.: Figures 1.1–1.4 provide examples of how computers and the
Internet are being used in industry and research.
• Find three additional examples and describe how each is using the Internet and
the web.
HTML5, CSS3, and JavaScript
• The latest versions of several key client-side, web-application development
technologies:
• HTML5
• HTML (HyperText Markup Language)—
• A special type of computer language called a markup language
• Designed to specify the content and structure of web pages (also called
documents) in a portable manner.
• HTML enables you to create content that will render appropriately across
the extraordinary range of devices connected to the Internet—including
• smartphones, tablet computers, notebook computers, desktop
computers, special-purpose devices such as large-screen displays at
concert arenas and sports stadiums, and more.
HTML5, CSS3, and JavaScript
• HTML5
• HTML5 is a markup language used for structuring and presenting content on the
World Wide Web.
• It is the fifth and last major HTML version that is a World Wide Web Consortium
(W3C) recommendation.
• The current specification is known as the HTML Living Standard.
• Its goals were
• To improve the language with support for the latest multimedia and other
new features;
• To keep the language both easily readable by humans and consistently
understood by computers and devices such as web browsers, parsers,
HTML5, CSS3, and JavaScript
• The basics of HTML5 covers more sophisticated techniques such as
• Creating tables, creating forms for collecting user input and using new
features in HTML5,
• Including page-structure elements that enable you to give meaning to
the parts of a page(e.g., headers, navigation areas, footers, sections,
figures, figure captions and more).
• A “stricter” version of HTML called XHTML (Extensible HyperText Markup
Language),which is based on XML (eXtensible Markup Language), is still used
frequently today.
HTML5, CSS3, and JavaScript
• Cascading Style Sheets (CSS)
• Although HTML5 provides some capabilities for controlling a document’s presentation, it’s
better not to mix presentation with content.
• HTML5 should be used only to specify a document’s structure and content.
• Cascading Style Sheets (CSS) are used to specify the presentation, or styling, of elements on a
web page (e.g., fonts, spacing, sizes, colours, positioning).
• CSS was designed to style portable web pages independently of their content and structure.
• By separating page styling from page content and structure, you can easily change the look
and feel of the pages on an entire website, or a portion of a website, simply by swapping out
one style sheet for another.
• CSS3 is the current version of CSS.
• Chapter 3 introduces many new features in CSS3.
HTML5, CSS3, and JavaScript
• JavaScript
• JavaScript is a language that helps you build dynamic web pages
• (i.e., pages that can be modified “on the fly” in response to events, such as user input, time
changes and more) and computer applications.
• It enables you to do the client-side programming of web applications.
• In addition, there are now several projects dedicated to server-side JavaScript, including
• CommonJS (www.commonjs.org), Node.js (nodejs.org) and Jaxer (jaxer.org).
• The JavaScript chapters of the book present computer-programming fundamentals, including
control structures, functions, arrays, recursion, strings and objects.
• You’ll see that JavaScript is a portable scripting language and that programs written in JavaScript
can run in web browsers across a wide range of devices.
HTML5, CSS3, and JavaScript
• Web Browsers and Web-Browser Portability
• Ensuring a consistent look and feel on client-side browsers is one of the great
challenges of developing web-based applications.
• Currently, a standard does not exist to which software vendors must adhere
when creating web browsers.
• Although browsers share a common set of features, each browser might
render pages differently.
• Browsers are available in many versions and on many different platforms
(Microsoft Windows, Apple Macintosh, Linux, UNIX, etc.).
• Vendors add features to each new version that sometimes result in cross-
platform incompatibility issues.
• It’s difficult to develop web pages that render correctly on all versions of each
browser.
HTML5, CSS3, and JavaScript
• All of the code examples in the book were tested in the five most popular desktop
browsers and the two most popular mobile browsers (Fig. 1.5).
• Support for HTML5,CSS3 and JavaScript features varies by browser.
• The HTML5 Test website (http://html5test.com/) scores each browser based on its
support for the latest features of these evolving standards.
HTML5, CSS3, and JavaScript
• Figure 1.5 lists the five desktop browsers we use in reverse order of their HTML5 Test
scores from most compliant to least compliant at the time of this writing.
• Internet Explorer 10 (IE10) is expected to have a much higher compliance rating
than IE9.
• You can also check sites such as http://caniuse.com/ for a list of features covered by
each browser.
HTML5, CSS3, and JavaScript

Fig. 1.5 | HTML5 Test scores for the browsers used to test the examples.
HTML5, CSS3, and JavaScript
• Home work1.2: What is the HTML5 Test scores of the five desktop browsers (with the
latest versions) listed in Figure1.5 as off July2020?
HTML5, CSS3, and JavaScript
• jQuery
• jQuery (jQuery.org) is currently the most popular of hundreds of JavaScript libraries.

• jQuery simplifies JavaScript programming by making it easier


• to manipulate a web page’s elements and
• interact with servers in a portable manner across various web browsers.

• It provides a library of custom graphical user interface(GUI) controls (beyond the basic GUI
controls provided by HTML5) that can be used to enhance the look and feel of your
webpages.
Evolution of the Internet and World Wide Web
• What is Internet?
• The Internet—a global network of computers—was made possible by the convergence of
computing and communications technologies.
• In the late 1960s, ARPA (the Advanced Research Projects Agency) rolled out blueprints for
networking the main computer systems of about a dozen ARPA-funded universities and
research institutions.
• They were to be connected with communications lines operating at a then-stunning 56
Kbps (i.e., 56,000 bits per second)—
• This at a time when most people (of the few who could) were connecting over
telephone lines to computers at a rate of 110 bits per second.
• A bit (short for “binary digit”) is the smallest data item in a computer;
• It can assume the value 0 or 1.
Evolution of the Internet and World Wide Web
• ARPA proceeded to implement the ARPANET, which eventually
evolved into today’s Internet.
• Things worked out differently from what was originally planned.
• Rather than enabling researchers to share each other’s computers,
• Communicating quickly and easily via electronic mail was the key
early benefit of the ARPANET.
• This is true even today on the Internet, which facilitates
communications of all kinds among the world’s Internet users.
Evolution of the Internet and World Wide Web
• Packet Switching
• One of the primary goals for ARPANET was to allow multiple users to send and
receive information simultaneously over the same communications paths (e.g.,
phone lines).
• The network operated with a technique called packet switching, in which
digital data was sent in small bundles called packets.
• The packets contained address, error-control and sequencing information.
• The address information allowed packets to be routed to their destinations.

Evolution of the Internet and World Wide Web
• Packet Switching
• The sequencing information helped in reassembling the packets—which,
because of complex routing mechanisms, could actually arrive out of order—
into their original order for presentation to the recipient.
• Packets from different senders were intermixed on the same lines to
efficiently use the available bandwidth.
• This packet-switching technique greatly reduced transmission costs, as
compared with the cost of dedicated communications lines.
• The network was designed to operate without centralized control.
• If a portion of the network failed, the remaining working portions would still
route packets from senders to receivers over alternative paths for reliability.
Evolution of the Internet and World Wide Web
• TCP/IP
• The protocol (i.e., set of rules) for communicating over the ARPANET became known as
TCP—the Transmission Control Protocol.
• TCP ensured that messages were properly routed from sender to receiver and that they
arrived intact.
• As the Internet evolved, organizations worldwide were implementing their own
networks for both intraorganization (i.e., within the organization) and interorganization
(i.e.,between organizations) communications.
• A wide variety of networking hardware and software appeared.
• One challenge was to get these different networks to communicate.
• ARPA accomplished this with the development of IP—the Internet Protocol, truly
creating a network of networks, the current architecture of the Internet.

Evolution of the Internet and World Wide Web
• TCP/IP
• The combined set of protocols is now commonly called TCP/IP.
• Each computer on the Internet has a unique IP address.
• The current IP standard, Internet Protocol version 4 (IPv4), has been in
use since 1984 and will soon run out of possible addresses.
• The next-generation Internet Protocol,IPv6, is just starting to be
deployed.
• It features enhanced security and a new addressing scheme, hugely
expanding the number of IP addresses available so that we will not run
out of IP addresses in the foreseeable future.
Evolution of the Internet and World Wide Web
• World Wide Web, HTML, HTTP
• The World Wide Web allows computer users to execute
web-based applications and to locate and view multimedia-
based documents on almost any subject over the Internet.
• The web is a relatively recent creation.
• In 1989, Tim Berners-Lee of CERN (the European
Organization for Nuclear Research) began to develop a
technology for sharing information via hyperlinked text
documents.
• Berners-Lee called his invention the HyperText Markup
Language (HTML).

Evolution of the Internet and World Wide Web
• World Wide Web, HTML, HTTP
• He also wrote communication protocols to form the backbone of his new
information system, which he called the World Wide Web.
• In particular, he wrote the Hypertext Transfer Protocol (HTTP)—a
communications protocol used to send information over the web.
• The URL (Uniform Resource Locator) specifies the address (i.e.,location)
of the web page displayed in the browser window.
• Each web page on the Internet is associated with a unique URL.
• URLs usually begin with http://.
Evolution of the Internet and World Wide Web
• HTTPS
• URLs of websites that handle private information, such as credit card
numbers, often begin with https://, the abbreviation for Hypertext Transfer
Protocol Secure (HTTPS).
• HTTPS is the standard for transferring encrypted data on the web.
• It combines HTTP with the Secure Sockets Layer (SSL) and the more recent
Transport Layer Security (TLS) cryptographic schemes for securing
communications and identification information over the web.
• Although there are many benefits to using HTTPS, there are a few
drawbacks, most notably some performance issues because encryption and
decryption consume significant computer processing resources.
Evolution of the Internet and World Wide Web
• Mosaic, Netscape, Emergence of Web 2.0
• Web use exploded with the availability in 1993 of the Mosaic
browser, which featured a user-friendly graphical interface.
• Marc Andreessen, whose team at the National Center for
Supercomputing Applications (NCSA) developed Mosaic, went
on to found Netscape, the company that many people credit
with igniting the explosive Internet economy of the late 1990s.
• But the “dot com” economic bust brought hard times in the
early 2000s.
• The resurgence(revival) that began in 2004 or so has been
named Web 2.0.
Evolution of the Internet and World Wide Web
• Mosaic, Netscape, Emergence of Web 2.0
• Google is widely regarded as the signature company of Web 2.0.
• Some other companies with Web 2.0 characteristics are
• YouTube (video sharing),
• Facebook (social networking),
• Twitter (microblogging),
• Groupon (social commerce),
• Foursquare (mobile check-in),
• Salesforce (business software offered as online services “in the cloud”),
• Craigslist (mostly free classified listings),
• Flickr (photo sharing),
• Skype (Internet telephony and video calling and conferencing, now owned by
Microsoft) and
• Wikipedia (a free online encyclopedia).
Web Basics
• In this section, we discuss the fundamentals of web-based interactions between
a client web browser and a web server.
• In its simplest form, a web page is nothing more than an HTML (HyperText
Markup Language) document (with the extension .html or .htm)

• That describes to a web browser the document’s content and structure.

• Hyperlinks:

• HTML documents normally contain hyperlinks, which, when clicked, load a


specified web document.
• Both images and text may be hyperlinked.
• When the mouse pointer hovers over a hyperlink, the default arrow pointer
changes into a hand with the index finger pointing upward.
• Often hyperlinked text appears underlined and in a different color from regular
text in a web page.
Web Basics
• Hyperlinks (cont…)
• Originally employed as a publishing tool for scientific research, hyperlinks
are widely used to reference sources, or sites that have more
information on a particular topic.
• The paths created by hyperlinking create the effect of the “web.”
• When the user clicks a hyperlink, a web server locates the requested
web page and sends it to the user’s web browser.
• Similarly, the user can type the address of a web page into the browser’s
address field and press Enter to view the specified page.
Web Basics
• Hyperlinks (cont…)
• Hyperlinks can reference other web pages, e-mail addresses, files and
more.
• If a hyperlink’s URL is in the form mailto:emailAddress, clicking the link
loads your default e-mail program and opens a message window
addressed to the specified e-mail address.
• If a hyperlink references a file that the browser is incapable of
displaying, the browser prepares to download the file, and generally
prompts the user for information about how the file should be stored.
• When a file is downloaded, it’s copied onto the user’s computer.
• Programs, documents, images, sound and video files are all examples of
downloadable files.
Web Basics
• URIs and URLs
• URIs (Uniform Resource Identifiers) identify resources on the Internet.
• URIs that start with http:// are called URLs (Uniform Resource Locators).
• Common URLs refer to files, directories or server-side code that performs
tasks such as database lookups, Internet searches and business-application
processing.
• If you know the URL of a publicly available resource anywhere on the web, you
can enter that URL into a web browser’s address field and the browser can
access that resource.
Web Basics
• Parts of a URL
• A URL contains information that directs a browser to the
resource that the user wishes to access.
• Web servers make such resources available to web clients.
• Popular web servers include Apache’s HTTP Server and
Microsoft’s Internet Information Services (IIS).
• Let’s examine the components of the URL:http://
www.dietel.com/books/downloads.html
• The text http:// indicates that the HyperText Transfer
Protocol (HTTP) should be used to obtain the resource.
Web Basics
• Parts of a URL
• Next in the URL is the server’s fully qualified hostname (for example,
www.deitel.com)—the name of the web-server computer on which the
resource resides.
• This computer is referred to as the host, because it houses and maintains
resources.
• The hostname www.deitel.com is translated into an IP (Internet Protocol)
address—a numerical value that uniquely identifies the server on the
Internet.
• An Internet Domain Name System (DNS) server maintains a database of
hostnames and their corresponding IP addresses and performs the
translations automatically.
Web Basics
• Parts of a URL(cont…)
• The remainder of the URL (/books/downloads.html) specifies the resource’s
location (/books) and name (downloads.html) on the web server.
• The location could represent an actual directory on the web server’s file
system.
• For security reasons, however, the location is typically a virtual directory.
• The web server translates the virtual directory into a real location on the
server, thus hiding the resource’s true location.
Web Basics
• Making a Request and Receiving a Response
• When given a web page URL, a web browser uses HTTP to request the web page
found at that address.
• Figure 1.8 shows a web browser sending a request to a web server.

Fig. 1.8 | Client requesting a resource from a web server


Web Basics
• In Fig. 1.8, the web browser sends an HTTP request to the server.
• The request (in its simplest form) is
GET /books/downloads.html HTTP/1.1

• The word GET is an HTTP method indicating that the client wishes to obtain a resource
from the server.
• The remainder of the request provides the path name of the resource (e.g., an HTML5
document) and the protocol’s name and version number (HTTP/1.1).
• The client’s request also contains some required and optional headers.
• Any server that understands HTTP (version 1.1) can translate this request and respond
appropriately.
• Figure 1.9 shows the web server responding to a request.
Web Basics

Fig. 1.9 | Client receiving a response from the web server.


Web Basics
• The server first sends a line of text that indicates the HTTP version, followed by a
numeric code and a phrase describing the status of the transaction.
• For example,
• HTTP/1.1 200 OK
• indicates success, whereas
• HTTP/1.1 404 Not found
• informs the client that the web server could not locate the requested
resource.
• A complete list of numeric codes indicating the status of an HTTP transaction can be
found at www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.

.
Web Basics
• HTTP Headers
• Next, the server sends one or more HTTP headers, which provide additional
information about the data that will be sent.
• In this case, the server is sending an HTML5 text document, so one HTTP header for
this example would read:

• Content-type: text/html
• The information provided in this header specifies the Multipurpose Internet Mail
Extensions (MIME) type of the content that the server is transmitting to the browser.
• The MIME standard specifies data formats, which programs can use to interpret data
correctly.

.
Web Basics
• For example, the MIME type text/plain indicates that the sent information is
text that can be displayed directly.
• Similarly, the MIME type image/jpeg indicates that the content is a JPEG image.
• When the browser receives this MIME type, it attempts to display the image.
• The header or set of headers is followed by a blank line, which indicates to the
client browser that the server is finished sending HTTP headers.
• Finally, the server sends the contents of the requested document
(downloads.html).
• The client-side browser then renders (or displays) the document, which may
involve additional HTTP requests to obtain associated CSS and images.
.
Web Basics
• HTTP get and post Requests
• The two most common HTTP request types (also known as request
methods) are get and post.
• A get request typically gets (or retrieves) information from a server,
such as an HTML document, an image or search results based on a
user-submitted search term
• A post request typically posts (or sends) data to a server.
• Common uses of post requests are to send form data or documents
to a server
.
Web Basics
• HTTP get and post Requests
• An HTTP request often posts data to a server-side form handler that
processes the data
• For example, when a user performs a search or participates in a web-
based survey, the web server receives the information specified in the
HTML form as part of the request
• Get requests and post requests can both be used to send data to a
web server, but each request type sends the information differently.

.
Web Basics
• HTTP get and post Requests
• A get request appends data to the URL, e.g.,
• www.google.com/search?q=deitel.
• In this case search is the name of Google’s server-side form handler,
• q is the name of a variable in Google’s search form and
• deitel is the search term.
• The ? in the preceding URL separates the query string from the rest of the URL in a
request.
• A name/value pair is passed to the server with the name and the value separated
by an equals sign (=).
• If more than one name/value pair is submitted, each pair is separated by an
ampersand (&)
.
Web Basics
• HTTP get and post Requests
• The server uses data passed in a query string to retrieve an
appropriate resource from the server
• The server then sends a response to the client.
• A get request may be initiated by submitting an HTML form whose
method attribute is set to "get", or
• by typing the URL (possibly containing a query string) directly
into the browser’s address bar.

.
Web Basics
• HTTP get and post Requests
• A post request sends form data as part of the HTTP message, not as part
of the URL.
• A get request typically limits the query string (i.e., everything to the right
of the ?) to a specific number of characters, so it’s often necessary to send
large amounts of information using the post method.
• The post method is also sometimes preferred because it hides the
submitted data from the user by embedding it in an HTTP message.
• The form data still reaches the server and is processed in a similar fashion
to a get request, but the user does not see the exact information sent.
.
Web Basics
• Software Engineering Observation 1.1
• Is the data sent in a post request secure just because a post request
is used and the user can’t see the data by default?

.
Web Basics
• Client-Side Caching
• Browsers often cache (save on disk) recently viewed web pages for
quick reloading
• If there are no changes between the version stored in the cache and
the current version on the web, this speeds up your browsing
experience
• An HTTP response can indicate the length of time for which the
content remains “fresh.”
• If this amount of time has not been reached, the browser can
avoid another request to the server
.
Web Basics
• Client-Side Caching
• Similarly, there’s also the “not modified” HTTP response,
indicating that the file content has not changed since it was last
requested (which is information that’s send in the request)
• Browsers typically do not cache the server’s response to a post
request, because the next post might not return the same result
• For example, in a survey, many users could visit the same web
page and answer a question
• The survey results could then be displayed for the user
• Each new answer would change the survey results
.
Multitier Application Architecture
• Web-based applications are often multitier applications (sometimes
referred to as n-tier applications) that divide functionality into
separate tiers (i.e., logical groupings of functionality).
• Although tiers can be located on the same computer, the tiers of
web-based applications often reside on separate computers
• Figure 1.10 presents the basic structure of a three-tier web-based
application

.
Multitier Application Architecture

. 1.10 | Three-tier architecture.


Fig.
Multitier Application Architecture
• The bottom tier (also called the data tier or the information tier)
maintains the application’s data
• This tier typically stores data in a relational database management
system (RDBMS)
• For example, Amazon might have an inventory information database
containing product descriptions, prices and quantities in stock
• Another database might contain customer information, such as user
names, billing addresses and credit card numbers
• These may reside on one or more computers, which together comprise
the application’s data
.
Multitier Application Architecture
• The middle tier implements business logic, controller logic and
presentation logic to control interactions between the application’s
clients and its data.
• The middle tier acts as an intermediary between data in the
information tier and the application’s clients
• The middle-tier controller logic processes client requests (such as
requests to view a product catalog) and retrieves data from the
database
• The middle-tier presentation logic then processes data from the
information tier and presents the content to the client
• Web applications typically present data to clients as HTML documents
.
Multitier Application Architecture
• Business logic in the middle tier enforces business rules and ensures
that data is reliable before the application updates a database or
presents data to users
• Business rules dictate how clients access data and how
applications process data
• For example, a business rule in the middle tier of a retail store’s
web-based application might ensure that all product quantities
remain positive
• A client request to set a negative quantity in the bottom tier’s
product information database would be rejected by the middle
tier’s business logic
.
Multitier Application Architecture
• The top tier, or client tier, is the application’s user interface, which
gathers input and displays output
• Users interact directly with the application through the user
interface, which is typically a web browser or a mobile device
• In response to user actions (e.g., clicking a hyperlink), the client
tier interacts with the middle tier to make requests and to retrieve
data from the information tier
• The client tier then displays the data retrieved for the user

.
Client-Side Scripting versus Server-Side Scripting
• Client-side scripting with JavaScript can be used to validate user
input, to interact with the browser, to enhance web pages, and to
add client/server communication between a browser and a web
server
• Client-side scripting does have limitations, such as browser
dependency; the browser or scripting host must support the
scripting language and capabilities.
• Scripts are restricted from arbitrarily accessing the local hardware
and file system for security reasons

.
Client-Side Scripting versus Server-Side Scripting
• Another issue is that client-side scripts can be viewed by the client by
using the browser’s source-viewing capability
• Sensitive information, such as passwords or other personally
identifiable data, should not be on the client.
• All client-side data validation should be mirrored on the server
• Also, placing certain operations in JavaScript on the client can open
web applications to security issues

.
Client-Side Scripting versus Server-Side Scripting
• Programmers have more flexibility with server-side scripts, which
often generate custom responses for clients
• For example, a client might connect to an airline’s web server and
request a list of flights from Boston to San Francisco between April
19 and May 5
• The server queries the database, dynamically generates an HTML
document containing the flight list and sends the document to the
client
• This technology allows clients to obtain the most current flight
information from the database by connecting to an airline’s web
server.
.
Client-Side Scripting versus Server-Side Scripting
• Server-side scripting languages have a wider range of programmatic
capabilities than their client-side equivalents
• Server-side scripts also have access to server-side software that
extends server functionality—
• Microsoft web servers use ISAPI (Internet Server Application
Program Interface) extensions and
• Apache HTTP Servers use modules
• Components and modules range from programming-language
support to counting the number of web-page hits
.
World Wide Web Consortium (W3C)
• In October 1994, Tim Berners-Lee founded an organization—the
World Wide Web Consortium (W3C)—devoted to developing non-
proprietary, interoperable technologies for the World Wide Web
• One of the W3C’s primary goals is to make the web universally
accessible—regardless of disability, language or culture
• The W3C home page (www.w3.org) provides extensive resources on
Internet and web technologies

.
World Wide Web Consortium (W3C)
• The W3C is also a standards organization
• Web technologies standardized by the W3C are called
Recommendations
• Current W3C Recommendations include
• the Hypertext Mark up Language 5 (HTML5),
• Cascading Style Sheets 3 (CSS3) and
• the Extensible Mark-up Language (XML)
• A recommendation is not an actual software product but a document
that specifies a technology’s role, syntax rules and so forth
.
Web 2.0: Going Social
• In 2003 there was a noticeable shift in how people and businesses
were using the web and developing web-based applications.
• The term Web 2.0 was coined by Dale Dougherty of O’Reilly Media in
2003 to describe this trend.
• Generally, Web 2.0 companies use the web as a platform to create
collaborative, community-based sites (e.g., social networking sites,
blogs, wikis)

.
Web 2.0: Going Social
• Web 1.0 versus Web 2.0
• Web 1.0:
• (the state of the web through the 1990s and early 2000s)
• was focused on a relatively small number of companies and
advertisers producing content for users to access
• (some people called it the “brochure web”).
• Web 2.0:
• involves the users—not only do they often create content, but they
help organize it, share it, remix it, critique it, update it, etc.
.
Web 2.0: Going Social
• Web 1.0 versus Web 2.0
• One way to look at Web 1.0 is as a lecture, a small number of
professors informing a large audience of students
• In comparison, Web 2.0 is a conversation, with everyone having the
opportunity to speak and share views
• Companies that understand Web 2.0 realize that their products and
services are conversations as well

.
Web 2.0: Going Social
• Architecture of Participation
• Web 2.0 is providing new opportunities and connecting people and
content in unique ways
• Web 2.0 embraces an architecture of participation—a design that
encourages user interaction and community contributions
• You, the user, are the most important aspect of Web 2.0—so
important, in fact, that in 2006, TIME magazine’s “Person of the Year”
was “you.”
• The article recognized the social phenomenon of Web 2.0—the shift
away from a powerful few to an empowered many
.
Web 2.0: Going Social
• Architecture of Participation
• Several popular blogs now compete with traditional media
powerhouses, and many Web 2.0 companies are built almost entirely
on user-generated content
• For websites like Facebook®, Twitter™, YouTube, eBay® and
Wikipedia®, users create the content, while the companies
provide the platforms on which to enter, manipulate and share the
information
• These companies trust their users—without such trust, users cannot
make significant contributions to the sites
.
Web 2.0: Going Social
• Architecture of Participation
• The architecture of participation has influenced software
development as well
• Open source software is available for anyone to use and modify
with few or no restrictions
• Using collective intelligence—the concept that a large diverse
group of people will create smart ideas—communities collaborate
to develop software that many people believe is better and more
robust than proprietary software
.
Web 2.0: Going Social
• Search Engines and Social Media
• Search engines, including Google™, Microsoft Bing™, and many more,
have become essential to examining through the massive amount of
content on the web
• Social bookmarking sites such as del.icio.us allow users to share their
favorite sites with others
• Social media sites such as Digg™ enable the community to decide which
news articles are the most significant
• The way we find the information on these sites is also changing—people
are tagging (i.e., labeling) web content by subject or keyword in a way
that helps anyone locate information more effectively
.
Web 2.0: Going Social
• Semantic Web
• In the future, computers will learn to understand the meaning of the data on the web—
the beginnings of the Semantic Web are already appearing
• Continual improvements in hardware, software and communications technologies will
enable exciting new types of applications
• These topics and more are covered in our online e-book, Dive Into® Web 2.0 (available at
http://www.deitel.com/diveintoweb20/)
• The e-book highlights the major characteristics and technologies of Web 2.0, providing
examples of popular Web 2.0 companies and Web 2.0 Internet business and
monetization models
• We discuss user-generated content, blogging, content networks, social networking,
location-based services and more
• In the subsequent chapters of this book, you’ll learn key software technologies for
building web-based applications
.
Web 2.0: Going Social
• Google
• In 1996, Stanford computer science Ph.D. candidates Larry Page and
Sergey Brin began collaborating on a new search engine
• In 1997, they chose the name Google—a play on the mathematical
term googol, a quantity represented by the number “one” followed
by 100 “zeros” (or 10100)—a staggeringly large number
• Google’s ability to return extremely accurate search results quickly
helped it become the most widely used search engine and one of the
most popular websites in the world
.
Web 2.0: Going Social
• Google
• Google continues to be an innovator in search technologies.
• For example, Google Goggles is a fascinating mobile app (available on
Android and iPhone) that allows you to perform a Google search
using a photo rather than entering text.
• You simply take a picture of a landmark, book (covers or barcodes),
logo, art or wine bottle label, and Google Goggles scans the photo
and returns search results
• You can also take a picture of text (for example, a restaurant menu or
a sign) and Google Goggles will translate it for you
.
Web 2.0: Going Social
• Web Services and Mashups
• Mashup is the applications-development methodology, in which you
can rapidly develop powerful and intriguing applications by
combining (often free) complementary web services and other
forms of information feeds (Fig. 1.11).
• One of the first mashups was www.housingmaps.com, which
combines the real estate listings provided by www.craigslist.org with
the mapping capabilities of Google Maps to offer maps that show the
locations of apartments for rent in a given area.

.
Web 2.0: Going Social
• Web Services and Mashups

.
Fig. 1.11 | Some popular web services that you can use to build web applications
(www.programmableweb.com/apis/directory/1?sort=mashups).
Web 2.0: Going Social
• Web Services and Mashups
• The following inspired new, exciting, lightweight business models that
people can launch with only a small investment:
• Web services, inexpensive computers, abundant high-speed
Internet access, open source software
• Some types of websites with rich and robust functionality that might
have required hundreds of thousands or even millions of dollars to
build in the 1990s can now be built for nominal sums

.
Web 2.0: Going Social
• Ajax
• Ajax is one of the premier Web 2.0 software technologies
• Ajax helps Internet based applications perform like desktop
applications—
• a difficult task, given that such applications suffer transmission
delays as data is shuttled back and forth between your computer
and servers on the Internet
• Basic Ajax applications are built using JavaScript and the browser’s
XMLHttpRequest object
• An. Ajax application can be built using the jQuery JavaScript libraries
Web 2.0: Going Social
• Social Applications
• Over the last several years, there’s been a tremendous increase in the
number of social applications on the web
• Homework 1.3: Discuss a few of the social applications that are
making an impact particularly: Facebook, Twitter, Groupon,
Foursquare, skype and Youtube

.
Data Hierarchy
• Data items processed by computers form a data hierarchy that
becomes larger and more complex in structure as we progress from
bits to characters to fields, and so on.
• Figure 1.14 illustrates a portion of the data hierarchy.

.
Data Hierarchy

.
Fig. 1.14 | Data hierarchy.
Data Hierarchy
• Homework 1.4: Summarize the data hierarchy’s levels from bits to
characters to fields:
• Bits
• Characters
• Fields
• Records
• Files
• Databases
.
Operating Systems
• Operating systems are software systems that make using computers more
convenient for users, application developers and system administrators
• Operating systems provide services that allow each application to execute
safely, efficiently and concurrently (i.e., in parallel) with other
applications
• The software that contains the core components of the operating system
is called the kernel
• Popular desktop operating systems include Linux, Windows 7/8/10 and
Mac OS X
• Popular mobile operating systems used in smartphones and tablets
include Google’s Android, Apple’s iOS (for iPhone, iPad and iPod Touch
devices), BlackBerry OS and Windows Phone 7

.
Operating Systems
• Desktop and Notebook Operating Systems
• In this section we discuss two of the popular desktop operating
systems—
• The proprietary Windows operating system and
• The open source Linux operating system
• Windows—A Proprietary Operating System
• In the mid-1980s, Microsoft developed the Windows operating
system, consisting of a graphical user interface built on top of DOS—
an enormously popular personal-computer operating system of the
time that users interacted with by typing commands
.
Operating Systems
• Windows—A Proprietary Operating System
• Windows borrowed from many concepts (such as icons, menus and windows)
developed by Xerox PARC and popularized by early Apple Macintosh operating
systems
• Windows 11 is Microsoft’s latest operating system—its features include
• The ability to download and run Android apps on your Windows PC,
• Updates to Microsoft Teams, the Start menu,
• Better virtual desktop support toggling between multiple desktops for
personal, work, school and gaming use.
• Windows is a proprietary operating system—it’s controlled by Microsoft
exclusively.
• Windows is by far the world’s most widely used operating system
.
Operating Systems
• Linux—An Open-Source Operating System
• The Linux operating system is perhaps the greatest success of the
open-source movement.
• Open-source software departs from the proprietary software
development style that dominated software’s early years.
• With open-source development, individuals and companies
contribute their efforts in developing, maintaining and evolving
software in exchange for the right to use that software for their own
purposes, typically at no charge.
.
Operating Systems
• Linux—An Open-Source Operating System
• Open-source code is often scrutinized by a much larger audience than
proprietary software, so errors often get removed faster.
• Open source also encourages more innovation.
• Enterprise systems companies, such as IBM, Oracle and many others,
have made significant investments in Linux open-source
development.

.
Operating Systems
• Linux—An Open-Source Operating System
• Some key organizations in the open-source community are
• The Eclipse Foundation (the Eclipse Integrated Development
Environment helps programmers conveniently develop software),
• The Mozilla Foundation (creators of the Firefox web browser),
• The Apache Software Foundation (creators of the Apache web server
used to develop web based applications) and
• SourceForge (which provides the tools for managing open-source
projects—It currently hosts over 430,000 open-source projects and
is used by over 3.7 million registered users
.
Operating Systems
• Linux—An Open-Source Operating System
• Creating a software-based business have become much easier and
more economical due to:
• Rapid improvements to computing and communications,
• Decreasing costs and
• Open-source software
• A great example is Facebook, which was launched from a college
dorm room and built with open-source software

.
Operating Systems
• Linux—An Open-Source Operating System
• The Linux kernel is the core of the most popular open-source, freely distributed,
full-featured operating system.
• It’s developed by a loosely organized team of volunteers and is popular in servers,
personal computers and embedded systems.
• Unlike that of proprietary operating systems like Microsoft’s Windows and Apple’s
Mac OS X, Linux source code (the program code) is available to the public for
examination and modification and is free to download and install.
• As a result, Linux users benefit from a community of developers
• Actively debugging and improving the kernel,
• An absence of licensing fees and restrictions, and
• The ability to completely customize the operating system to meet specific
needs.
.
Operating Systems
• Linux—An Open-Source Operating System
• A variety of issues—have prevented widespread Linux use on
desktop computers such as
• Microsoft’s market power,
• The small number of user friendly Linux applications and
• The diversity of Linux distributions, such as Red Hat Linux,
Ubuntu Linux and many others—
• But Linux has become extremely popular on servers and in embedded
systems, such as Google’s Android-based smartphones.
.
Operating Systems
• Mobile Operating Systems
• Two of the most popular mobile operating systems are Apple’s iOS and Google’s Android.
• iOS for iPhone®, iPad® and iPod Touch®
• Apple, founded in 1976 by Steve Jobs and Steve Wozniak, quickly became a leader in
personal computing.

• In 1979, Jobs and several Apple employees visited Xerox PARC (Palo Alto Research
Center) to learn about Xerox’s desktop computer that featured a graphical user interface
(GUI).
• That GUI served as the inspiration for the Apple Lisa personal computer (designed for
business customers) and, more notably, the Apple Macintosh,
• Launched with much fanfare in a memorable Super Bowl ad in 1984.
• Steve Jobs left Apple in 1985 and founded NeXT Inc.
.
Operating Systems
• The Objective-C programming language, created by Brad Cox and Tom Love at
Stepstone in the early 1980s, added capabilities for object-oriented programming
(OOP) to the C programming language.
• In 1988, NeXT licensed Objective-C from StepStone and developed an Objective-C
compiler and libraries which were used as the platform for the NeXTSTEP operating
system’s user interface and Interface Builder—used to construct graphical user
interfaces.
• Apple’s Mac OS X operating system is a descendant of NeXTSTEP.
• Apple’s proprietary iPhone operating system, iOS, is derived from Apple’s Mac OS X
and is used in the iPhone, iPad and iPod Touch devices.
• You can download apps directly onto your iPhone, iPad or iPod device through the
App Store.
• There are over 1.96 million apps in the App Store.
.
Operating Systems
• Google’s Android
• Android—the fastest growing mobile and smartphone operating system—
is based on the Linux kernel and Java.
• Experienced Java programmers can quickly dive into Android
development.
• One benefit of developing Android apps is the openness of the platform.
• The operating system is open source and free.
• The Android operating system was developed by Android, Inc., which was
acquired by Google in 2005.
• In 2007, the Open Handset Alliance™—a consortium of 34 companies
initially and 84 by 2011—was formed to continue developing Android.
.
Operating Systems
• Google’s Android
• As of June 2011, more than 500,000 Android smartphones were being activated
each day!
• Android smartphones are now outselling iPhones in the United States.
• The Android operating system is used in numerous smartphones (such as
• The Motorola Droid,
• HTC EVO™ 4G,
• Samsung Vibrant™ and many more,
• E-reader devices (such as the Barnes and Noble Nook™),
• Tablet computers (such as the Dell Streak and the Samsung Galaxy Tab),
• In store touch-screen kiosks, cars, robots, multimedia players and more.
• You can download apps directly onto your Android device through Android Market
and other app marketplaces.
.
• As of August 2011, there were over 2.87 million apps in Google’s Android Market.
Types of Programming Languages
• Programmers write instructions in various programming languages,
some directly understandable by computers and others requiring
intermediate translation steps.
• Any computer can directly understand only its own machine
language, defined by its hardware design.
• Machine languages generally consist of numbers (ultimately reduced
to 1s and 0s).
• Such languages are cumbersome for humans.

.
Types of Programming Languages
• Programming in machine language—the numbers that computers
could directly understand—
• Was simply too slow and tedious for most programmers.
• Instead, they began using English like abbreviations to represent
elementary operations.
• These abbreviations formed the basis of assembly languages.
• Translator programs called assemblers were developed to convert
assembly-language programs to machine language.
• Although assembly language code is clearer to humans, it’s
incomprehensible to computers until translated to machine language.
.
Types of Programming Languages
• To speed the programming process even further, high-level languages
were developed
• In which single statements could be written to accomplish
substantial tasks.
• High-level languages allow you to write instructions that look almost
like everyday English and contain commonly used mathematical
expressions.
• Translator programs called compilers convert high-level language
programs into machine language.
.
Types of Programming Languages
• The process of compiling a large high-level language program into
machine language can take a considerable amount of computer time.
• Interpreter programs were developed to execute high-level language
programs directly, although more slowly than compiled programs.
• In this course we study key programming language: JavaScript -this
scripting language is processed by interpreters.
• Homework 1.5: Describe the popular programming languages such
as: C, C++, Objective C, Visual Basic, Visual C#, Java, PHP, JavaScript,
Python, Ruby on Rails, Scala
.
Types of Programming Languages
• Performance Tip 1.1
• Interpreters have an advantage over compilers in Internet scripting.
• An interpreted program can begin executing as soon as it’s
downloaded to the client’s machine, without needing to be compiled
before it can execute.
• On the downside, interpreted scripts generally run slower than
compiled code.

.
Object Technology
• There are goals with regards to developing new and more powerful
software. These are:
• Building software quickly, correctly and economically
• Objects, or more precisely the classes objects come from, are
essentially reusable software components.
• There are date objects, time objects, audio objects, video objects,
automobile objects, people objects, etc.

.
Object Technology
• Almost any noun can be reasonably represented as a software object
in terms of attributes (e.g., name, color and size) and behaviors (e.g.,
calculating, moving and communicating).
• Software developers are discovering that using a modular, object-
oriented design and implementation approach can make software-
development groups much more productive than was possible with
earlier techniques—
• object-oriented programs are often easier to understand, correct
and modify.

.
Object Technology
• The Automobile as an Object
• Let’s begin with a simple analogy.
• Suppose you want to drive a car and make it go faster by pressing its accelerator pedal.
• What must happen before you can do this?
• Well, before you can drive a car, someone has to design it.
• A car typically begins as engineering drawings, similar to the blueprints that describe the
design of a house.
• These drawings include the design for an accelerator pedal.
• The pedal hides from the driver the complex mechanisms that actually make the car go
faster,
• Just as the brake pedal hides the mechanisms that slow the car, and
• The steering wheel hides the mechanisms that turn the car.

.
Object Technology
• The Automobile as an Object
• This enables people with little or no knowledge of how engines,
braking and steering mechanisms work to drive a car easily.
• Before you can drive a car, it must be built from the engineering
drawings that describe it.
• A completed car has an actual accelerator pedal to make the car go
faster, but even that’s not enough—the car won’t accelerate on its
own (hopefully!),
• So the driver must press the pedal to accelerate the car.
.
Object Technology
• Methods and Classes
• Let’s use our car example to introduce some key object-oriented
programming concepts.
• Performing a task in a program requires a method.
• The method houses the program statements that actually perform its
tasks.
• It hides these statements from its user, just as a car’s accelerator pedal
hides from the driver the mechanisms of making the car go faster.
• In object-oriented programming languages, we create a program unit
called a class to house the set of methods that perform the class’s tasks.
.
Object Technology
• Methods and Classes
• For example, a class that represents a bank account might contain
one method to deposit money to an account, another to withdraw
money from an account and a third to inquire what the account’s
current balance is.
• A class is similar in concept to a car’s engineering drawings, which
house the design of an accelerator pedal, steering wheel, and so on.

.
Object Technology
• Instantiation
• Just as someone has to build a car from its engineering drawings
before you can actually drive a car, you must build an object from a
class before a program can perform the tasks that the class’s methods
define.
• The process of doing this is called instantiation.
• An object is then referred to as an instance of its class.

.
Object Technology
• Reuse
• Just as a car’s engineering drawings can be reused many times to build
many cars, you can reuse a class many times to build many objects.
• Reuse of existing classes when building new classes and programs saves
time and effort.
• Reuse also helps you build more reliable and effective systems, because
existing classes and components often have gone through extensive
testing, debugging and performance tuning.
• Just as the notion of interchangeable parts was crucial to the Industrial
Revolution, reusable classes are crucial to the software revolution that
has been spurred by object technology.
.
Object Technology
• Software Engineering Observation 1.2
• Use a building-block approach to creating your programs.
• Avoid reinventing the wheel—use existing pieces wherever possible.
• This software reuse is a key benefit of object-oriented programming.

.
Object Technology
• Messages and Method Calls
• When you drive a car, pressing its gas pedal sends a message to the
car to perform a task—that is, to go faster.
• Similarly, you send messages to an object.
• Each message is implemented as a method call that tells a method of
the object to perform its task.
• For example, a program might call a particular bank-account object’s
deposit method to increase the account’s balance.

.
Object Technology
• Attributes and Instance Variables
• A car, besides having capabilities to accomplish tasks, also has attributes,
such as its color, its number of doors, the amount of gas in its tank, its
current speed and its record of total miles driven (i.e., its odometer
reading).
• Like its capabilities, the car’s attributes are represented as part of its
design in its engineering diagrams (which, for example, include an
odometer and a fuel gauge).
• As you drive an actual car, these attributes are carried along with the car.
• Every car maintains its own attributes.
• For example, each car knows how much gas is in its own gas tank, but not
how much is in the tanks of other cars.
.
Object Technology
• Attributes and Instance Variables
• Similarly, an object has attributes that it carries along as it’s used in
a program.
• These attributes are specified as part of the object’s class.
• For example, a bank-account object has a balance attribute that
represents the amount of money in the account.
• Each bank account object knows the balance in the account it
represents, but not the balances of the other accounts in the bank.
• Attributes are specified by the class’s instance variables.
.
Object Technology
• Encapsulation
• Classes encapsulate (i.e., wrap) attributes and methods into
objects—an object’s attributes and methods are intimately related.
• Objects may communicate with one another, but normally they’re
not allowed to know how other objects are implemented—
implementation details are hidden within the objects themselves.
• This information hiding is crucial to good software engineering.

.
Object Technology
• Inheritance
• A new class of objects can be created quickly and conveniently by
inheritance—the new class absorbs the characteristics of an existing
class,
• Possibly customizing them and adding unique characteristics of
its own.
• In our car analogy, an object of class “convertible” certainly is an
object of the more general class “automobile,” but more specifically,
the roof can be raised or lowered.
.

You might also like