iw3htp4_01-FINAL

gabonesedestructionΛογισμικό & κατασκευή λογ/κού

17 Φεβ 2014 (πριν από 3 χρόνια και 5 μήνες)

71 εμφανίσεις



2008 Pearson Education, Inc. All rights reserved.

1

1

Introduction to
Computers and
the Internet



2008 Pearson Education, Inc. All rights reserved.

2

The renaissance of interest in the web that we call Web 2.0
has reached the mainstream.


Tim O’Reilly

Billions of queries stream across the servers of these
Internet services

the aggregate thoughtstream of
humankind, online.


John Battelle, The Search

People are using the web to build things they have not built
or written or drawn or communicated anywhere else.


Tim Berners
-
Lee

Some people take what we contribute and extend it and
contribute it back [to Ruby on Rails]. That's really the basic
open source success story.


David Heinemeier Hansson, interviewed by Chris Karr at
www.Chicagoist.com



2008 Pearson Education, Inc. All rights reserved.

3

OBJECTIVES

In this chapter you will learn:


Basic computing concepts.


The different types of programming
languages.


The evolution of the Internet and the World
Wide Web.


What Web 2.0 is and why it’s having such
an impact among Internet
-
based and
traditional businesses.


What Rich Internet Applications (RIAs) are
and the key software technologies used to
build RIAs.



2008 Pearson Education, Inc. All rights reserved.

4

1.1

Introduction


1.2




What Is a Computer?


1.3




Computer Organization


1.4




Machine Languages, Assembly Languages and High
-
Level
Languages


1.5




History of the Internet and World Wide Web


1.6




World Wide Web Consortium (W3C)


1.7




Web 2.0


1.8




Personal, Distributed and Client/Server Computing


1.9




Hardware Trends


1.10




Key Software Trend: Object Technology


1.11




JavaScript: Object
-
Based Scripting for the Web


1.12




Browser Portability


1.13




C, C++ and Java


1.14




BASIC, Visual Basic, Visual C++, C# and .NET


1.15




Software Technologies


1.16




Notes about
Internet & World Wide Web How to Program,
4/e


1.17




Web Resources



2008 Pearson Education, Inc. All rights reserved.

5

1.1 Introduction


Internet and World Wide Web How to Program: 4/e


Walkthrough of Web 2.0


Emphasizes structured programming and object
-
based
programming


Live
-
code approach

-
All concepts presented in full working program examples

-
Examples available at
www.deitel.com/books/iw3htp4
.


JavaScript, XHTML and CSS

-
Introduced in earlier chapters

-
Provides solid foundation for computer programming and
rest of book



2008 Pearson Education, Inc. All rights reserved.

6

1.1 Introduction (Cont.)


Software



Instructions to command the computer to perform actions and make
decisions)


JavaScript and PHP are popular software development languages for
web
-
based applications.



Computer development


Computer use increasing in most fields


Computer costs and size decreasing

-
Abundance of silicon drives down prices of silicon
-
chip technology



Applications of this book


Prepares for higher learning in C++, Java, C#, Visual Basic.NET as well
as object
-
oriented programming


Allows development of applications with graphical user interfaces
(GUIs)

-
Multimedia capabilities

-
Integration with the Internet and World Wide Web



2008 Pearson Education, Inc. All rights reserved.

7

1.1 Introduction (Cont.)


Apply database technologies


Applications that are not limited to the desktop


Portability

-
Multiple platforms (i.e., different types of computers running
different operating systems).


Book structure


Focus on Web 2.0 and rich Internet applications


Chapters 1
-
20

-
Covers XHTML, JavaScript, Dynamic HTML, Extensible Markup
Language (XML), CSS, Flash, Flex, Silverlight and Dreamweaver

-
For applications running on client side (typically Mozilla Firefox 2
and Microsoft Internet Explorer 7)


Chapters 21
-
28

-
Cover web servers, databases, PHP, Ruby on Rails, ASP.NET,
ASP.NET Ajax and JavaServer Faces (JSF)




2008 Pearson Education, Inc. All rights reserved.

8

Fig. 1.1

|
Architecture of
Internet & World Wide Web How to Program, 4/e
.



2008 Pearson Education, Inc. All rights reserved.

9

1.2 What is a Computer?


Computer


Device capable of

-
Performing computations

-
Making logical decisions


Works billions of times faster than human beings


Fastest supercomputers today

-
Perform hundreds of billions of additions per second



2008 Pearson Education, Inc. All rights reserved.

10


Programs


Sets of instructions that process data


Guide computer through orderly sets of actions specified
by computer programmers


Computer system


Comprised of various hardware devices

-
Keyboard

-
Screen

-
Disks

-
Memory

-
DVD drives

-
Processing Units

1.2 What is a Computer? (Cont.)



2008 Pearson Education, Inc. All rights reserved.

11


Every computer divided into six units

1. Input unit

-
“Receiving” section of computer

-
Obtains data from input devices

Usually a keyboard, mouse, disk, scanner, uploads (photos
and videos) and networks (Internet)

-
Places data at disposal of other units

2. Output unit

-
“Shipping” section of computer

-
Puts processed info on various output devices

Screens, paper printouts, speakers

-
Makes info available outside the computer (e.g., Internet)


1.3 Computer Organization



2008 Pearson Education, Inc. All rights reserved.

12

3. Memory unit

-
Rapid access, low capacity “warehouse”

-
Retains information entered through input unit

-
Retains info that has already been processed until can be sent
to output unit

-
Often called memory, primary memory, or
r
andom
a
ccess
m
emory (RAM)

4.

Arithmetic and Logic Unit

-
“Manufacturing” section of computer

-
Performs calculations (addition, subtraction, multiplication
and division)

-
Contains decision mechanisms and can make comparisons

1.3 Computer Organization (Cont.)



2008 Pearson Education, Inc. All rights reserved.

13

5.

C
entral
P
rocessing
U
nit (CPU)

-
“Administrative” section of computer

-
Coordinates and supervises other sections

-
Multiple CPUs (multiprocessors)

6. Secondary storage unit

-
Long
-
term, high
-
capacity “warehouse”

-
Stores programs or data not currently being used by other
units on secondary storage devices (like CDs and DVDs)

-
Takes longer to access than primary memory

1.3 Computer Organization (Cont.)



2008 Pearson Education, Inc. All rights reserved.

14

1.4 Machine Languages, Assembly
Languages and High
-
Level
Languages


Three general types of programming languages


Machine languages


Assembly languages


High
-
level languages



2008 Pearson Education, Inc. All rights reserved.

15


Machine languages


“Natural language” of a computer (aka object code)


Defined by hardware design of computer


Generally consists of strings of numbers


Are machine dependent


Cumbersome for humans

-
Example: Adding overtime pay to base pay and storing the
result in gross pay

+1300042774

+1400593419

+1200274027


Slow and tedious for most programmers

1.4 Machine Languages, Assembly
Languages and High
-
Level
Languages (Cont.)



2008 Pearson Education, Inc. All rights reserved.

16


Assembly languages


Programmers began using English
-
like abbreviations to
substitute for machine languages


Represents elementary operations of computer


Translator programs called assemblers convert assembly
-
language to machine
-
language


Example:

LOAD BASEPAY

ADD OVERPAY

STORE GROSSPAY

1.4 Machine Languages, Assembly
Languages and High
-
Level
Languages (Cont.)



2008 Pearson Education, Inc. All rights reserved.

17


High
-
level languages


Developed as computer usage increased, assembly
language proved inadequate and time
-
consuming


Single statements can be written to accomplish substantial
tasks


Translator programs called compilers


Allow programmers to write instructions almost like
every
-
day English


Example:

grossPay = basePay + overTimePay

1.4 Machine Languages, Assembly Languages
and High
-
Level Languages (Cont.)



2008 Pearson Education, Inc. All rights reserved.

18


High
-
level languages (II)


Much more desirable from programmer’s standpoint


Specific languages include

-
C, C++, Visual Basic.NET, C# and Java

-
Among most powerful and widely used languages today


Interpreter programs developed to execute high
-
level programs
without compiling

-
Popular in program development environments


Once program developed, compiled version made


In this book, several key programming languages

-
JavaScript, ActionScript, PHP and Ruby on Rails

each of these
scripting languages is processed by interpreters


Study markup languages

-
XHTML and XML, which can be processed by interpreted scripting
languages

-
Achieve their goal of portability across a variety of platforms

1.4 Machine Languages, Assembly Languages
and High
-
Level Languages (Cont.)



2008 Pearson Education, Inc. All rights reserved.

19

Performance Tip 1.1

Interpreters have an advantage over
compilers in scripting. An interpreted
program can begin executing as soon as it is
downloaded to the client’s machine, without
the need to be compiled before it can execute.
On the downside, scripts generally run much
slower than compiled code.



2008 Pearson Education, Inc. All rights reserved.

20

Portability Tip 1.1

Interpreted languages are more portable than
compiled languages. Interpreters can be
implemented for each platform on which the
interpreted languages need to execute.



2008 Pearson Education, Inc. All rights reserved.

21

Software Engineering Observation 1.1

Interpreted languages are more dynamic than
compiled languages. For example, server
-
side
applications can generate code in response to
user interactions, and that code can then be
interpreted in a browser.



2008 Pearson Education, Inc. All rights reserved.

22

1.5 History of the Internet and World
Wide Web


ARPANET


Implemented in late 1960’s by ARPA (Advanced Research
Projects Agency of DOD)


Networked computer systems of a dozen universities and
institutions with 56KB communications lines


Grandparent of today’s Internet


Intended to allow computers to be shared


Became clear that key benefit was allowing fast
communication between researchers


electronic
-
mail
(email)



2008 Pearson Education, Inc. All rights reserved.

23

1.5 History of the Internet and World
Wide Web


ARPA’s goals


Allow multiple users to send and receive info at same time


Network operated packet switching technique

-
Digital data sent in small packages called packets

-
Packets contained data, address info, error
-
control info and
sequencing info

-
Greatly reduced transmission costs of dedicated
communications lines


Network designed to be operated without centralized
control

-
If portion of network fails, remaining portions still able to
route packets



2008 Pearson Education, Inc. All rights reserved.

24

1.5 History of the Internet and World
Wide Web


Transmission Control Protocol (TCP)


Name of protocols for communicating over ARPAnet


Ensured that messages were properly routed and that they
arrived intact


Organizations implemented own networks


Used both for intra
-
organization and communication



2008 Pearson Education, Inc. All rights reserved.

25

1.5 History of the Internet and World
Wide Web


Huge variety of networking hardware and software
appeared


ARPA achieved inter
-
communication between all platforms
with development of the IP

-
Internetworking Protocol

-
Current architecture of Internet


Combined set of protocols called TCP/IP


The Internet


Limited to universities and research institutions


Military became big user


Next, government decided to access Internet for commercial
purposes



2008 Pearson Education, Inc. All rights reserved.

26

1.5 History of the Internet and World
Wide Web


Internet traffic grew


Businesses spent heavily to improve Internet

-
Better service their clients


Fierce competition among communications carriers and hardware
and software suppliers


Resulted in massive
bandwidth increase and plummeting costs


Tim Berners
-
Lee invents HyperText Markup Language (HTML)

-
Also writes communication protocols to form the backbone new
information system = World Wide Web

-
Hypertext Transfer Protocol (HTTP)

a communications protocol used
to send information over the web


Web use exploded with availability in 1993 of the Mosaic browser


Marc Andreessen founds Netscape

-
Company many credit with initiating the explosive Internet of late 1990s.



2008 Pearson Education, Inc. All rights reserved.

27

1.6 World Wide Web Consortium
(W3C)


W3C Founded in 1994 by Tim Berners
-
Lee


Homepage at
www.w3.org


Goals


Internet universally accessible


Standardization

-
W3C Recommendations:

Technologies standardized by W3C

include
the Extensible HyperText Markup Language
(XHTML), Cascading Style Sheets (CSS), HyperText
Markup Language (HTML

now considered a “legacy”
technology) and the Extensible Markup Language
(XML).

not an actual software product, but a document that
specifies a technology’s role, syntax rules and so forth.




2008 Pearson Education, Inc. All rights reserved.

28

1.7 Web 2.0


2003 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


Web 2.0 definition = companies use the web as a platform to create
collaborative, community
-
based sites (e.g., social networking sites, blogs,
wikis, etc.).


Web 1.0 (1990s and early 2000s) focused on a small number of
companies and advertisers producing content for users to access


“brochure web”)


Web 2.0 involves the


Web 1.0 is as a lecture,


Web 2.0 is a conversation


Websites like MySpace , Facebook , Flickr , YouTube, eBay and
Wikipedia , users create the content, companies provide the
platforms.



2008 Pearson Education, Inc. All rights reserved.

29

1.7 Web 2.0 (Cont.)


Architecture of participation


Open source software


Collective


Rich Internet Applications (RIAs)


Software as a Service (SaaS)


Web services incorporate functionality from
existing applications and websites into own web
applications


Amazon Web Services


Maps web services with eBay web services



2008 Pearson Education, Inc. All rights reserved.

30

1.7 Web 2.0 (Cont.)


Future computers learn to understand the
meaning of the data on the web = Semantic Web


Deitel Web 2.0 Resource Center at
www.deitel.com/web2.0/

for more information.



2008 Pearson Education, Inc. All rights reserved.

31

1.8 Personal, Distributed and
Client/Server Computing


1977 Apple Computer popularized personal computing


Computers became economical for personal or business use


Machines could be linked together in computer networks


Local area networks (LANs)


Distributed computing


Workstations


Servers offer data storage and other capabilities that may
be used by client computers distributed throughout the
network,


Client/server computing


Popular operating systems


UNIX, Linux, Mac OS X and Microsoft’s Windows



2008 Pearson Education, Inc. All rights reserved.

32

1.9 Hardware Trends


Improving technologies


Internet community thrives on improvements of

-
Hardware, Software and Communications


Cost of products and services

-
Consistently dropping over the decades


Computer capacity and speed

-
Doubles every two years (on average) = Moore’s Law


Microprocessor chip

-
Laid groundwork in late 1970s and 1980s for productivity
improvements of the 1990s


Hardware moving toward mobile, wireless technology.

-
Hand
-
held devices more powerful than early supercomputers

-
Portability

-
Wireless data
-
transfer speeds



2008 Pearson Education, Inc. All rights reserved.

33

1.10 The Key Software Trend:

Object Technology



Objects


Reusable software components that model items in the real
world (classes)


Makes software developers more productive


Object
-
oriented programs often easier to understand,
correct and modify than older types of programs



2008 Pearson Education, Inc. All rights reserved.

34

1.10 The Key Software Trend:

Object Technology (Cont.)


Object technology


Packaging scheme that helps create meaningful software
units

-
Large and highly focused on particular applications areas


Before appeared, programming languages were focused on
actions (verbs) rather than on objects (nouns)

-
Programmers would program primarily with verbs

-
Made program awkward

-
We live in a world filled with complex objects and simple
actions




2008 Pearson Education, Inc. All rights reserved.

35

1.10 The Key Software Trend:

Object Technology (Cont.)


Object technology (continued)


Object
-
oriented programming

-
Programmers work in manner similar to how they see the
world

-
More natural process

-
Significant productivity enhancements


Procedural programming

-
Not particularly reusable

-
Forces programmers to constantly “re
-
invent the wheel”

Wastes time and resources


Objects (classes)

-
Software modules

-
Kept in libraries

-
Reusable


save time and resources



2008 Pearson Education, Inc. All rights reserved.

36

Software Engineering Observation 1.2

Extensive class libraries of reusable software
components are available on the Internet.
Many of these libraries are free.



2008 Pearson Education, Inc. All rights reserved.

37

Software Engineering Observation 1.3

Some organizations report that the key benefit
object
-
oriented programming gives them is not
software that is reusable but, rather, software
that is more understandable, better organized
and easier to maintain, modify and debug. This
can be significant, because perhaps as much as 80
percent of software cost is associated not with the
original efforts to develop the software, but with
the continued evolution and maintenance of that
software throughout its lifetime.



2008 Pearson Education, Inc. All rights reserved.

38

1.11 JavaScript: Object
-
Based

Scripting for the Web


JavaScript


Attractive package for advancing level of programming language
education


Object
-
based language


Supports proper software engineering techniques


Free as part of today’s most popular Web browsers


Powerful scripting language

-
Portable

-
Programs execute interpretively on client machines


ActionScript and JavaScript are converging in the next
version of the JavaScript standard (JavaScript 2/ECMA
Script version 4)

-
Universal client scripting language, simplifying web
application development



2008 Pearson Education, Inc. All rights reserved.

39

Good Programming Practice 1.1

Write your programs in a simple and
straightforward manner. This is sometimes
referred to as KIS (“keep it simple”). One key
aspect of keeping it simple is another
interpretation of KIS

“keep it small.” Do not
“stretch” the language by trying bizarre us
es.



2008 Pearson Education, Inc. All rights reserved.

40

Portability Tip 1.2

Although it is easier to write portable
programs in JavaScript than in many other
programming languages, differences among
interpreters and browsers make portability
difficult to achieve. Simply writing programs
in JavaScript does not guarantee portability.
Programmers occasionally need to research
platform variations and write their code
accordingly.



2008 Pearson Education, Inc. All rights reserved.

41

Portability Tip 1.3

When writing JavaScript programs, you need
to deal directly with cross
-
browser portability
issues. Such issues are hidden by JavaScript
libraries (e.g., Dojo, Prototype, Script.aculo.us
and ASP.NET Ajax) which provide powerful,
ready
-
to
-
use capabilities that simplify
JavaScript coding by making it cross
-
browser
compatible.



2008 Pearson Education, Inc. All rights reserved.

42

Error
-
Prevention Tip 1.1

Always test your JavaScript programs on all
systems and in all web browsers for which
they are intended.



2008 Pearson Education, Inc. All rights reserved.

43

Good Programming Practice 1.2

Read the documentation for the JavaScript
version you are using to access JavaScript’s
rich collection of features.



2008 Pearson Education, Inc. All rights reserved.

44

Error
-
Prevention Tip 1.2

Your computer and JavaScript interpreter
are good teachers. If you are not sure how a
feature works, even after studying the
documentation, experiment and see what
happens. Study each error or warning
message and adjust the code accordingly.



2008 Pearson Education, Inc. All rights reserved.

45

1.12 Browser Portability


Browser portability


Great challenge

-
Great diversity of client browsers in use

-
Many different platforms also in use


Difficult to


Know capabilities and features of all browsers and
platforms in use


Find correct mix between absolute portability, complexity
and usability of features



2008 Pearson Education, Inc. All rights reserved.

46

Portability Tip 1.4

The web is populated with many different
browsers, which makes it difficult for authors
and web application developers to create
universal solutions. The W3C is working
toward the goal of a universal client
-
side
platform.



2008 Pearson Education, Inc. All rights reserved.

47

1.13 C, C++ and Java


C


developed by Dennis Ritchie at Bell Laboratories


development language of the UNIX operating system


virtually all new major operating systems are written in C and/or C++


C++


developed by Bjarne Stroustrup in early 1980s


“spruce up” the C language and provides capabilities for object
-
oriented
programming


Java


developed by Sun Microsystems in 1991


Sun saw the immediate potential of using Java to add dynamic content (e.g.,
interactivity, animations and the like) to web pages


Sun formally announced Java at an industry conference in May 1995


Java is now used to

-
develop large
-
scale enterprise applications

-
enhance the functionality of web servers

-
provide applications for consumer devices



2008 Pearson Education, Inc. All rights reserved.

48

1.14 BASIC, Visual Basic, Visual C++, C#
and .NET


BASIC


Developed in the mid
-
1960s at Dartmouth College


Primary purpose was to familiarize novices with programming
techniques


Microsoft’s Visual Basic language


Based on Basic


Has become one of the most popular programming languages in the
world


Microsoft’s .NET platform


Provides the capabilities developers need to create computer
applications that can execute on computers distributed across the
Internet

-
Visual Basic (based on the original BASIC)

-
Visual C++ (based on C++)

-
Visual C# (based on C++ and Java)



2008 Pearson Education, Inc. All rights reserved.

49

1.15 Software Technologies


Agile Software Development


Set of methodologies that try to get software implemented
quickly


Agile Alliance (
www.agilealliance.org
)


Agile Manifesto (
www.agilemanifesto.org
)


Refactoring


Reworking code to make it clearer and easier to maintain while
preserving its


Design patterns


Proven architectures for constructing flexible and maintainable
object
-
oriented software


Open source code



2008 Pearson Education, Inc. All rights reserved.

50

1.15 Software Technologies (Cont.)


Linux


Open source operating system


Apache


Most popular open source web server


MySQL


Open source database management system


PHP


Most popular open source server
-
side “scripting” language for developing Internet
-
based
applications


LAMP


Linux, Apache, MySQL and PHP (or Perl or Python)


Game programming


Software techniques used in game programming Adobe Flash CS3


Ruby on Rails


Combines the scripting language Ruby with the Rails web application framework


Developed by 37Signals


Software as a Service (SaaS)


Software runs on servers elsewhere on the Internet

-
Salesforce.com, Google, Microsoft and 37Signals all offer SaaS