Java Reference
In-Depth Information
Figure 1.18 lists a number of buzzwords that you'll hear in the software development com-
munity. We've created Resource Centers on most of these topics, with more on the way.
Technology
Description
Agile software
development
Agile software development
is a set of methodologies that try to get soft-
ware implemented faster and using fewer resources. Check out the Agile
Refactoring
Refactoring
involves reworking programs to make them clearer and easier to
maintain while preserving their correctness and functionality. It's widely
employed with agile development methodologies. Many IDEs contain
built-in
refactoring tools
to do major portions of the reworking automatically.
Design patterns
Design patterns
are proven architectures for constructing flexible and
maintainable object-oriented software. The field of design patterns tries to
enumerate those recurring patterns, encouraging software designers to
reuse
them to develop better-quality software using less time, money and effort.
We discuss Java design patterns in the online Appendix N.
LAMP
LAMP
is an acronym for the open-source technologies that many develop-
ers use to build web applications—it stands for
Linux
,
Apache
,
MySQL
and
PHP
(or
Perl
or
Python
—two other scripting languages). MySQL is an
open-source database management system. PHP is the most popular open-
source server-side “scripting” language for developing web applications.
Apache is the most popular web server software. The equivalent for Win-
dows development is WAMP—
Windows
, Apache, MySQL and PHP.
Software as a
Service (SaaS)
Software has generally been viewed as a product; most software still is
offered this way. If you want to run an application, you buy a software
package from a software vendor—often a CD, DVD or web download.
You then install that software on your computer and run it as needed. As
new versions appear, you upgrade your software, often at considerable cost
in time and money. This process can become cumbersome for organiza-
tions that must maintain tens of thousands of systems on a diverse array of
computer equipment. With
Software as a Service (SaaS)
, the software runs
on servers elsewhere on the Internet. When that server is updated, all cli-
ents worldwide see the new capabilities—no local installation is needed.
You access the service through a browser. Browsers are quite portable, so
you can run the same applications on a wide variety of computers from
anywhere in the world. Salesforce.com, Google, and Microsoft's Office Live
and Windows Live all offer SaaS.
Platform as a
Service (PaaS)
Platform as a Service (PaaS)
provides a computing platform for developing
and running applications as a service over the web, rather than installing
the tools on your computer. Some PaaS providers are Google App Engine,
Amazon EC2 and Windows Azure™.
Fig. 1.18
|
Software technologies. (Part 1 of 2.)