| Preface |
|
xvii | |
|
Intended Audience for This Book |
|
|
xviii | |
|
How This Book Is Structured |
|
|
xix | |
| Acknowledgements |
|
xxi | |
|
1 Open Source Software: Definitions and History |
|
|
1 | (18) |
|
|
|
|
1.1.1 What Is Free Software? |
|
|
2 | (1) |
|
1.1.2 What Are Good Examples of Open Source? |
|
|
3 | (1) |
|
1.1.3 Is It Necessary to Adopt Open Source Wholesale? |
|
|
3 | (1) |
|
1.1.4 Does "Open Source" Mean Linux? |
|
|
4 | (1) |
|
1.1.5 Does Open Source Require Different Business Methods? |
|
|
4 | (1) |
|
1.1.6 Will All Systems Be Open Source One Day? |
|
|
5 | (1) |
|
1.1.7 Is Open Source a Fad That Will Go Away? |
|
|
5 | (1) |
|
1.2 A Brief History of Software |
|
|
6 | (8) |
|
|
|
6 | (1) |
|
|
|
6 | (1) |
|
|
|
7 | (1) |
|
|
|
8 | (1) |
|
|
|
9 | (1) |
|
|
|
10 | (1) |
|
1.2.7 The Personal Computer |
|
|
11 | (1) |
|
|
|
12 | (1) |
|
|
|
13 | (1) |
|
|
|
14 | (5) |
|
2 Where Open Source Is Successful |
|
|
19 | (22) |
|
|
|
19 | (10) |
|
2.1.1 Disruptive Innovations |
|
|
19 | (4) |
|
2.1.2 The Technology Adoption Curve |
|
|
23 | (2) |
|
2.1.3 The Open Source Stack |
|
|
25 | (1) |
|
2.1.4 Adoption of Specific Open Source Technologies |
|
|
26 | (3) |
|
2.2 Open Source Is in Widespread Successful Use |
|
|
29 | (7) |
|
2.2.1 Open Source Is the Heart of the Internet |
|
|
29 | (1) |
|
2.2.2 Linux Is Shipping a Lot |
|
|
30 | (1) |
|
2.2.3 Open Source Appliances Are Everywhere |
|
|
31 | (1) |
|
2.2.4 New Companies and New Businesses Use Open Source |
|
|
32 | (2) |
|
2.2.5 Open Source Is Broadly Adopted |
|
|
34 | (2) |
|
2.3 Examples of Open Source Systems |
|
|
36 | (3) |
|
|
|
39 | (2) |
|
3 Open Source: The Good, the Bad, and the Ugly |
|
|
41 | (26) |
|
3.1 What Is Good about Open Source |
|
|
41 | (11) |
|
3.1.1 Why Your Right to View Code Matters |
|
|
41 | (2) |
|
3.1.2 Why Your Right to Change and Redistribute Code Matters |
|
|
43 | (1) |
|
3.1.3 You Can Buy from Different Vendors and Adopt New Platforms |
|
|
44 | (2) |
|
3.1.4 Open Source Avoids Proprietary Information Formats |
|
|
46 | (1) |
|
3.1.5 Open Source Allows Integration between Products |
|
|
46 | (2) |
|
3.1.6 Open Source Licensing Is Simpler and Less Expensive |
|
|
48 | (2) |
|
3.1.7 Open Source is a Good Solution for International Companies |
|
|
50 | (1) |
|
3.1.8 There Is a Large Pool of Skilled Open Source Professionals |
|
|
51 | (1) |
|
3.2 Open Source Is Not Enough by Itself |
|
|
52 | (4) |
|
3.2.1 Deployment Platform |
|
|
52 | (1) |
|
|
|
53 | (1) |
|
3.2.3 Software Language, Architecture, and Implementation |
|
|
53 | (1) |
|
|
|
54 | (2) |
|
3.3 How Choosing Open Source Is More Difficult for You |
|
|
56 | (7) |
|
3.3.1 Open Source Has a Less Complete Level of Sales Support |
|
|
56 | (2) |
|
3.3.2 Specific Product Reviews Will Not Favor Open Source |
|
|
58 | (2) |
|
3.3.3 Open Source Products Are Not Bundled, Branded, or Integrated |
|
|
60 | (3) |
|
3.4 What Others Say about Open Source |
|
|
63 | (1) |
|
|
|
64 | (3) |
|
4 Five Immediate Open Source Opportunities |
|
|
67 | (32) |
|
4.1 Create an Open Source Lab |
|
|
68 | (3) |
|
4.1.1 Review Existing Work |
|
|
69 | (1) |
|
4.1.2 Train Developers to Program in Open Source Languages |
|
|
70 | (1) |
|
4.2 Migrate Infrastructure to Samba and OpenLDAP |
|
|
71 | (5) |
|
4.2.1 File and Print Servers |
|
|
71 | (4) |
|
4.2.2 Manage Use of Windows Proprietary Features |
|
|
75 | (1) |
|
4.2.3 Train Administrators in Linux and Samba |
|
|
76 | (1) |
|
4.3 Build Some LAMP Applications |
|
|
76 | (3) |
|
4.4 Bring New Desktop Systems to the Underserved |
|
|
79 | (11) |
|
4.4.1 New and Small Businesses |
|
|
80 | (1) |
|
|
|
81 | (1) |
|
|
|
82 | (1) |
|
4.4.4 Retail, Food Service, and Hospitality |
|
|
83 | (2) |
|
4.4.5 Government, Healthcare, and Education |
|
|
85 | (3) |
|
4.4.6 Unlicensed Software |
|
|
88 | (1) |
|
4.4.7 International Opportunities |
|
|
89 | (1) |
|
4.5 Migrate Applications and Databases to Open Source |
|
|
90 | (6) |
|
4.5.1 Evaluate Open Source Databases |
|
|
92 | (1) |
|
4.5.2 Replace Small and Old Database Applications with Open Source |
|
|
92 | (1) |
|
4.5.3 Migrate UNIX to Linux |
|
|
93 | (1) |
|
4.5.4 Evaluate and Purchase Packages on Linux |
|
|
94 | (1) |
|
4.5.5 Enterprise Application Software |
|
|
95 | (1) |
|
|
|
96 | (3) |
|
5 Five More Open Source Opportunities |
|
|
99 | (26) |
|
|
|
99 | (3) |
|
5.1.1 Customization and Integration |
|
|
100 | (1) |
|
|
|
101 | (1) |
|
|
|
102 | (1) |
|
5.2.1 Migration and Interoperability |
|
|
103 | (1) |
|
|
|
103 | (4) |
|
|
|
103 | (1) |
|
|
|
104 | (1) |
|
5.3.3 PC-Based Mail Systems |
|
|
104 | (1) |
|
|
|
105 | (2) |
|
5.3.5 Integrated Exchange Replacements |
|
|
107 | (1) |
|
5.4 Groupware and Collaboration |
|
|
107 | (5) |
|
|
|
107 | (2) |
|
5.4.2 Other Community Software |
|
|
109 | (2) |
|
|
|
111 | (1) |
|
|
|
111 | (1) |
|
5.5 Complex Web Publishing |
|
|
112 | (5) |
|
|
|
114 | (2) |
|
5.5.2 Open Source Content Portals |
|
|
116 | (1) |
|
|
|
117 | (4) |
|
5.6.1 Analyze Desktop Use and Licensing |
|
|
120 | (1) |
|
|
|
121 | (2) |
|
|
|
123 | (2) |
|
|
|
125 | (20) |
|
6.1 Contents of the Operating System |
|
|
125 | (9) |
|
|
|
128 | (1) |
|
6.1.2 The Value of Alternative Operating Systems? |
|
|
129 | (1) |
|
6.1.3 Using the Shell ... |
|
|
129 | (2) |
|
6.1.4 Recent Linux Improvements |
|
|
131 | (1) |
|
6.1.5 Scaling Linux up and Down |
|
|
132 | (2) |
|
|
|
134 | (1) |
|
6.2 Linux Distribution Vendors |
|
|
134 | (4) |
|
6.2.1 The Many Versions of Linux |
|
|
134 | (4) |
|
6.3 Enterprise Distribution Vendors |
|
|
138 | (1) |
|
6.4 Community-Supported Distribution Vendors |
|
|
138 | (1) |
|
|
|
138 | (1) |
|
|
|
139 | (1) |
|
6.5 International Alternatives |
|
|
139 | (3) |
|
6.5.1 Consumer Linux Choices |
|
|
140 | (1) |
|
|
|
140 | (2) |
|
|
|
142 | (3) |
|
7 Open Source Server Applications |
|
|
145 | (28) |
|
7.1 Infrastructure Services |
|
|
145 | (3) |
|
7.1.1 File and Print Services |
|
|
146 | (1) |
|
|
|
147 | (1) |
|
|
|
148 | (2) |
|
|
|
148 | (1) |
|
|
|
149 | (1) |
|
|
|
150 | (17) |
|
7.3.1 Classes of Database Servers |
|
|
151 | (1) |
|
7.3.2 Analysis of Database System Sizes |
|
|
151 | (11) |
|
7.3.3 Open Source Database Choices |
|
|
162 | (2) |
|
7.3.4 Database Performance Is Good Enough |
|
|
164 | (2) |
|
7.3.5 Competing with Closed Code Databases |
|
|
166 | (1) |
|
|
|
167 | (1) |
|
|
|
168 | (2) |
|
|
|
170 | (3) |
|
8 Open Source Desktop Applications |
|
|
173 | (30) |
|
|
|
173 | (2) |
|
8.1.1 The Open Source Desktop |
|
|
173 | (1) |
|
8.1.2 Linux Desktop Share |
|
|
174 | (1) |
|
8.1.3 Limitations to Desktop Linux Adoption |
|
|
174 | (1) |
|
|
|
175 | (5) |
|
|
|
180 | (2) |
|
|
|
180 | (2) |
|
|
|
182 | (13) |
|
|
|
183 | (2) |
|
8.4.2 Competition in the Office Suite Market |
|
|
185 | (3) |
|
8.4.3 Comparison of Microsoft Office to OpenOffice |
|
|
188 | (1) |
|
8.4.4 Migration from Microsoft Office to OpenOffice |
|
|
189 | (2) |
|
8.4.5 Lock-in and Complexity |
|
|
191 | (3) |
|
8.4.6 When You Don't Need an Office Suite |
|
|
194 | (1) |
|
8.5 Mail and Calendar Clients |
|
|
195 | (3) |
|
8.5.1 Professional Applications |
|
|
196 | (1) |
|
8.5.2 Drawing and Image Management |
|
|
197 | (1) |
|
|
|
198 | (3) |
|
8.6.1 Running Windows Applications |
|
|
199 | (2) |
|
|
|
201 | (2) |
|
9 How Open Source Software Is Developed |
|
|
203 | (18) |
|
|
|
203 | (6) |
|
9.1.1 Open Source Compared with Closed Code |
|
|
204 | (3) |
|
9.1.2 Open Source Compared with Corporate Development |
|
|
207 | (1) |
|
9.1.3 Open Source DevelopmentTools |
|
|
207 | (1) |
|
|
|
208 | (1) |
|
9.2 Languages Used to Develop Open Source Products |
|
|
209 | (6) |
|
|
|
210 | (3) |
|
|
|
213 | (1) |
|
|
|
213 | (1) |
|
|
|
214 | (1) |
|
|
|
214 | (1) |
|
|
|
215 | (1) |
|
|
|
215 | (3) |
|
|
|
218 | (3) |
| 10 Managing System Implementation |
|
221 | (24) |
|
10.1 Implementation Roles |
|
|
221 | (3) |
|
10.1.1 Customer Management |
|
|
223 | (1) |
|
10.1.2 Program Management |
|
|
223 | (1) |
|
|
|
223 | (1) |
|
|
|
223 | (1) |
|
|
|
223 | (1) |
|
|
|
224 | (1) |
|
10.2 Open Source Impact on Team issues |
|
|
224 | (2) |
|
10.3 Implementation Process |
|
|
226 | (2) |
|
|
|
226 | (1) |
|
10.3.2 Team Roles during the Process |
|
|
227 | (1) |
|
10.4 Implementation Principles |
|
|
228 | (3) |
|
10.4.1 Resource Trade-offs |
|
|
228 | (1) |
|
|
|
229 | (1) |
|
|
|
230 | (1) |
|
10.4.4 Watching for Problems |
|
|
230 | (1) |
|
|
|
231 | (5) |
|
10.5.1 Project Definition |
|
|
231 | (1) |
|
|
|
231 | (2) |
|
10.5.3 Example of a Risk Assessment |
|
|
233 | (2) |
|
10.5.4 Functional Specification |
|
|
235 | (1) |
|
10.5.5 Technical Specification |
|
|
236 | (1) |
|
|
|
236 | (3) |
|
10.6.1 Migration Approaches |
|
|
237 | (1) |
|
10.6.2 Assessing the Current System |
|
|
237 | (2) |
|
10.7 Interacting with the Open Source Community |
|
|
239 | (2) |
|
10.7.1 Hiring from the Community |
|
|
239 | (1) |
|
10.7.2 Employee Agreements |
|
|
240 | (1) |
|
10.7.3 Repaying the Community |
|
|
240 | (1) |
|
|
|
241 | (2) |
|
|
|
243 | (2) |
| 11 Application Architecture |
|
245 | (30) |
|
|
|
245 | (4) |
|
|
|
246 | (2) |
|
11.1.2 Transactional Systems |
|
|
248 | (1) |
|
11.1.3 Knowledge Management |
|
|
248 | (1) |
|
|
|
249 | (2) |
|
11.3 Managing Performance and Scalability |
|
|
251 | (9) |
|
|
|
251 | (3) |
|
|
|
254 | (2) |
|
|
|
256 | (3) |
|
11.3.4 Application Servers |
|
|
259 | (1) |
|
|
|
260 | (6) |
|
|
|
261 | (1) |
|
11.4.2 Process Communication |
|
|
262 | (1) |
|
11.4.3 Application Integration Engines |
|
|
262 | (1) |
|
|
|
263 | (2) |
|
|
|
265 | (1) |
|
11.5 Development Platform Choices |
|
|
266 | (6) |
|
|
|
266 | (2) |
|
|
|
268 | (1) |
|
|
|
269 | (3) |
|
|
|
272 | (3) |
| 12 The Cost of Open Source Systems |
|
275 | (22) |
|
12.1 Total Cost of Ownership |
|
|
276 | (9) |
|
|
|
277 | (2) |
|
|
|
279 | (1) |
|
|
|
279 | (2) |
|
12.1.4 Using Third-Party Application and Database Servers |
|
|
281 | (1) |
|
12.1.5 Pricing Open Source Software |
|
|
282 | (1) |
|
12.1.6 Pricing Closed Code Software |
|
|
283 | (1) |
|
12.1.7 Pricing Windows Software |
|
|
284 | (1) |
|
|
|
285 | (4) |
|
|
|
286 | (1) |
|
|
|
286 | (1) |
|
|
|
286 | (1) |
|
|
|
287 | (2) |
|
|
|
289 | (6) |
|
12.3.1 Small Organization:Web Site |
|
|
289 | (4) |
|
12.3.2 Large Organization: Internal Use |
|
|
293 | (2) |
|
|
|
295 | (2) |
| 13 Licensing |
|
297 | (10) |
|
|
|
297 | (1) |
|
13.1.1 Relicensing Only Matters If You Distribute |
|
|
298 | (1) |
|
13.1.2 Reciprocal Licenses Are Similar to Commercial Licenses |
|
|
298 | (1) |
|
|
|
298 | (2) |
|
13.2.1 Reciprocal Licenses |
|
|
299 | (1) |
|
13.2.2 Non reciprocal Licenses |
|
|
299 | (1) |
|
13.2.3 Which License to Use |
|
|
300 | (1) |
|
13.3 Mixing Open and Closed Code |
|
|
300 | (2) |
|
|
|
302 | (1) |
|
13.5 Other Intellectual Property Issues |
|
|
303 | (2) |
|
|
|
304 | (1) |
|
|
|
305 | (2) |
| A Resources |
|
307 | (14) |
|
A.1 Managing an Open Source Lab |
|
|
307 | (2) |
|
A.2 Installing an Evaluation Linux System |
|
|
309 | (6) |
|
A.2.1 Setting up Interoperability |
|
|
312 | (1) |
|
|
|
312 | (1) |
|
A.2.3 Running Linux on Windows |
|
|
313 | (1) |
|
A.2.4 Running Windows on Linux |
|
|
314 | (1) |
|
|
|
315 | (1) |
|
A.4 Top Ten Reasons to Use Open Source Software |
|
|
315 | (1) |
|
|
|
316 | (5) |
| B The Open Source Definition |
|
321 | (2) |
| C Examples of Open Source Licenses |
|
323 | (22) |
|
|
|
323 | (9) |
|
C.2 Mozilla Public License |
|
|
332 | (11) |
|
|
|
343 | (2) |
| Bibliography |
|
345 | (6) |
| About the Author |
|
351 | (2) |
|
|
|
352 | (1) |
| Index |
|
353 | |