Introduction |
|
xvii | |
|
Part I Discovering Google Web Services |
|
|
1 | (76) |
|
Learning about Google Web Services |
|
|
3 | (26) |
|
Understanding Google Web Services |
|
|
4 | (5) |
|
|
4 | (2) |
|
How Do Web Services Work? |
|
|
6 | (1) |
|
Considering the Usage Requirements |
|
|
7 | (2) |
|
Discovering Uses for Google Web Services |
|
|
9 | (6) |
|
|
10 | (1) |
|
Conducting an Expansion Search |
|
|
11 | (1) |
|
Searching a Specific Site |
|
|
11 | (1) |
|
Learning More about a Site |
|
|
12 | (1) |
|
Getting Old Data from the Cache |
|
|
13 | (1) |
|
Performing Spell Checking |
|
|
14 | (1) |
|
Avoiding Pornographic Material |
|
|
15 | (1) |
|
Downloading and Installing the Kit |
|
|
15 | (3) |
|
|
15 | (1) |
|
|
16 | (1) |
|
|
17 | (1) |
|
System Setup Considerations |
|
|
18 | (4) |
|
Understanding Connectivity Requirements |
|
|
19 | (1) |
|
Programming Setups for the Non-Developer |
|
|
19 | (1) |
|
|
20 | (1) |
|
Using Multiple Test Devices |
|
|
21 | (1) |
|
|
22 | (1) |
|
Knowing What to Expect as Output |
|
|
22 | (5) |
|
Limitations of Google Web Services Output |
|
|
23 | (2) |
|
|
25 | (1) |
|
Defining Static and Dynamic Data |
|
|
26 | (1) |
|
|
27 | (2) |
|
|
29 | (18) |
|
Performing a Typical Search |
|
|
30 | (2) |
|
Understanding the Search Parameters |
|
|
31 | (1) |
|
Performing a Boolean Search |
|
|
32 | (1) |
|
Defining a Special Search |
|
|
32 | (11) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
Performing Site Restricted Searches |
|
|
36 | (1) |
|
Performing Date Restricted Searches |
|
|
37 | (1) |
|
|
38 | (2) |
|
|
40 | (1) |
|
|
41 | (1) |
|
|
41 | (2) |
|
|
43 | (1) |
|
Defining Searches for Nonstandard Uses |
|
|
44 | (2) |
|
Determining Web Site Information |
|
|
44 | (1) |
|
|
45 | (1) |
|
Understanding Filtering and Restrictions |
|
|
45 | (1) |
|
|
45 | (1) |
|
|
46 | (1) |
|
Working with Web Service Data |
|
|
47 | (30) |
|
|
48 | (11) |
|
Defining the Parts of an XML Message |
|
|
49 | (1) |
|
Viewing XML Data in Your Browser |
|
|
50 | (1) |
|
|
51 | (4) |
|
Sending Special Characters Using URL Encoding |
|
|
55 | (3) |
|
|
58 | (1) |
|
Using XSLT for Presentation |
|
|
59 | (6) |
|
Using a Script to Call an XSLT Page |
|
|
59 | (2) |
|
Understanding How XSLT Works |
|
|
61 | (2) |
|
Writing a Simple XSLT Page |
|
|
63 | (2) |
|
|
65 | (1) |
|
|
65 | (9) |
|
Determining Which SOAP Standard to Use |
|
|
66 | (1) |
|
Understanding the Parts of a SOAP Message |
|
|
67 | (3) |
|
Defining Fault Tolerance in a SOAP Message |
|
|
70 | (1) |
|
Understanding How WSDL Fits In |
|
|
71 | (1) |
|
Performing a Simple SOAP Call |
|
|
72 | (2) |
|
Understanding Privacy Issues |
|
|
74 | (1) |
|
Understanding Security Issues |
|
|
75 | (1) |
|
|
75 | (2) |
|
Part II Writing Google Web Services Programs |
|
|
77 | (178) |
|
Starting the Development Process |
|
|
79 | (24) |
|
Choosing a Communication Method |
|
|
81 | (8) |
|
Understanding That Google Only Directly Supports SOAP |
|
|
81 | (6) |
|
Understanding the Google Data Output |
|
|
87 | (2) |
|
|
89 | (6) |
|
Writing Desktop Applications |
|
|
89 | (4) |
|
Writing Small Form Factor Applications |
|
|
93 | (2) |
|
Writing Mixed Environment Applications |
|
|
95 | (1) |
|
Picking a Development Language |
|
|
95 | (3) |
|
Choosing a Language That Meets Specific Needs |
|
|
96 | (1) |
|
Considering Your Skills and Abilities |
|
|
96 | (1) |
|
Defining Language Limitations |
|
|
97 | (1) |
|
Understanding Internationalization Issues |
|
|
98 | (3) |
|
Learning the Limits of Translation |
|
|
98 | (2) |
|
Considering the User's Location |
|
|
100 | (1) |
|
|
101 | (2) |
|
Writing Applications Using VBA |
|
|
103 | (30) |
|
Understanding the Benefits of Using VBA |
|
|
104 | (1) |
|
Resources for Learning VBA |
|
|
105 | (2) |
|
Understanding Scripting of Web Services |
|
|
107 | (3) |
|
Advantages and Disadvantages of VBA |
|
|
108 | (1) |
|
|
108 | (2) |
|
Developing with Microsoft Excel |
|
|
110 | (13) |
|
Performing a Simple Search Using SOAP |
|
|
111 | (6) |
|
Defining Graphs and Charts |
|
|
117 | (6) |
|
Developing with Microsoft Word |
|
|
123 | (4) |
|
Automating Reports Using SOAP |
|
|
123 | (1) |
|
Using the Web Service References Tool |
|
|
124 | (3) |
|
Using Microsoft Access as a Database |
|
|
127 | (5) |
|
Caching as a Practical Performance Enhancing Technique |
|
|
127 | (1) |
|
Creating a Cached Application |
|
|
128 | (4) |
|
|
132 | (1) |
|
Writing Applications Using Visual Studio |
|
|
133 | (44) |
|
Using Web Services from Any Visual Studio Version |
|
|
134 | (1) |
|
Resources for Learning Visual Studio |
|
|
134 | (3) |
|
|
135 | (1) |
|
|
135 | (2) |
|
Developing with Visual Basic 6 |
|
|
137 | (7) |
|
Getting the Microsoft SOAP Toolkit |
|
|
137 | (3) |
|
Adding a SOAP Toolkit Reference to Visual Basic 6 |
|
|
140 | (1) |
|
Performing a Search with Visual Basic 6 |
|
|
140 | (4) |
|
Developing with Visual C++ 6 |
|
|
144 | (11) |
|
Adding a SOAP Toolkit Reference to Visual C++ 6 |
|
|
145 | (1) |
|
Performing a Search with Visual C++ 6 |
|
|
146 | (7) |
|
Dealing with Difficult Languages |
|
|
153 | (2) |
|
Developing with Visual Basic .NET |
|
|
155 | (8) |
|
|
156 | (2) |
|
Using the Google Visual Basic .NET Example |
|
|
158 | (1) |
|
Defining a Search with Visual Basic .NET |
|
|
159 | (3) |
|
Understanding the .NET Difference |
|
|
162 | (1) |
|
Developing with Visual C# NET |
|
|
163 | (8) |
|
Using the Google C# Example |
|
|
163 | (1) |
|
Defining a Search with Visual C# .NET |
|
|
163 | (2) |
|
Using SQL Server as a Database |
|
|
165 | (6) |
|
|
171 | (4) |
|
Creating an ASP.NET Application |
|
|
171 | (4) |
|
Using the ASP.NET Applications in this Book |
|
|
175 | (1) |
|
|
175 | (2) |
|
Writing Applications Using PHP |
|
|
177 | (22) |
|
Understanding the Benefits of Using PHP |
|
|
178 | (1) |
|
Resources for Learning PHP |
|
|
179 | (1) |
|
Downloading and Installing PHP |
|
|
180 | (2) |
|
Developing a PHP Search Application |
|
|
182 | (6) |
|
Using the Simple Search Technique |
|
|
183 | (3) |
|
Using the Multiple Search Technique |
|
|
186 | (2) |
|
Using MySQL as a Database |
|
|
188 | (1) |
|
Writing a PHP Application with Database Support |
|
|
189 | (8) |
|
|
191 | (1) |
|
Writing the Sample Application |
|
|
192 | (5) |
|
|
197 | (2) |
|
Writing Applications Using Java |
|
|
199 | (30) |
|
Understanding the Benefits of Using Java |
|
|
200 | (1) |
|
Resources for Learning Java |
|
|
201 | (2) |
|
Understanding Java Browser Issues |
|
|
203 | (2) |
|
Using the Google-Supplied Code |
|
|
205 | (5) |
|
Running the Demonstration Program |
|
|
205 | (1) |
|
Using the Examples for Your Own Applications |
|
|
206 | (4) |
|
Developing a Simple Java Application |
|
|
210 | (9) |
|
Using an Alternative Library Setup |
|
|
210 | (2) |
|
Configuring the JCreator Editor |
|
|
212 | (3) |
|
|
215 | (4) |
|
Writing a Java Application with Database Support |
|
|
219 | (8) |
|
|
227 | (2) |
|
Writing Applications for Mobile Devices |
|
|
229 | (26) |
|
Understanding Mobile Device Limitations |
|
|
230 | (5) |
|
|
230 | (1) |
|
|
231 | (1) |
|
|
232 | (1) |
|
|
233 | (1) |
|
|
234 | (1) |
|
|
235 | (1) |
|
|
235 | (8) |
|
Visual Studio .NET Built-in Emulator |
|
|
237 | (1) |
|
Microsoft eMbedded Visual Tools |
|
|
238 | (1) |
|
|
239 | (3) |
|
|
242 | (1) |
|
Designing for Local or Remote Data Management |
|
|
243 | (2) |
|
Developing for a Pocket PC |
|
|
245 | (6) |
|
Using Older Microsoft Products |
|
|
245 | (1) |
|
Using the .NET Compact Framework |
|
|
246 | (3) |
|
Using Third Party Development Products |
|
|
249 | (2) |
|
Developing for a Cellular Telephone or Palm Type Device |
|
|
251 | (2) |
|
|
253 | (2) |
|
Part III Refining Your Google Web Services Program |
|
|
255 | (44) |
|
Crafting Your Application |
|
|
257 | (18) |
|
Considering Performance Issues |
|
|
258 | (7) |
|
Addressing Speed Concerns |
|
|
258 | (2) |
|
Addressing Efficiency Concerns |
|
|
260 | (1) |
|
|
261 | (4) |
|
Considering Reliability Issues |
|
|
265 | (1) |
|
Considering the Data Refresh Requirements |
|
|
266 | (1) |
|
Using Offline Storage Effectively |
|
|
267 | (3) |
|
Choosing the Correct Offline Storage Strategy |
|
|
267 | (1) |
|
Selecting a Database That Suits Your Needs |
|
|
268 | (1) |
|
Considering Database Storage Alternatives |
|
|
269 | (1) |
|
Choosing between Current and Cached Data |
|
|
270 | (3) |
|
|
273 | (2) |
|
Other Refinements You Should Consider |
|
|
275 | (24) |
|
Targeting a Specific User Type |
|
|
276 | (2) |
|
Designing Flexible Interfaces |
|
|
278 | (2) |
|
Addressing Users with Special Needs |
|
|
280 | (5) |
|
Adding Hints for Desktop Applications |
|
|
281 | (2) |
|
Adding Hints for Web Applications |
|
|
283 | (2) |
|
Designing for Privacy Issues |
|
|
285 | (3) |
|
Adding Feedback to Your Application |
|
|
288 | (5) |
|
|
289 | (3) |
|
Developing Automated Feedback |
|
|
292 | (1) |
|
Using Google Web Services and Amazon Web Services Together |
|
|
293 | (4) |
|
|
297 | (2) |
|
|
299 | (1) |
|
Appendix A Helpful Third Party Resource Sites |
|
|
299 | (6) |
|
Google Web Services--Specific Web Sites |
|
|
300 | (1) |
|
|
300 | (1) |
|
Web Sites That Provide Other Facts You Should Know About |
|
|
301 | (2) |
|
Microsoft Office 2003 Add-on |
|
|
303 | (2) |
|
Appendix B Google License Checklist |
|
|
305 | (4) |
|
|
305 | (2) |
|
Creating a Single Developer License |
|
|
306 | (1) |
|
Using the Google API for Private Needs |
|
|
306 | (1) |
|
Making Calls That Don't Exceed Limits |
|
|
306 | (1) |
|
Always Observe the Requirements of the Law |
|
|
307 | (1) |
|
|
307 | (1) |
|
Selecting a Formatting Method |
|
|
307 | (1) |
|
|
307 | (1) |
|
Leaving Proprietary Information in Place |
|
|
307 | (1) |
|
Getting Written Permission to Use the Google Logo |
|
|
308 | (1) |
|
Intellectual Property Issues |
|
|
308 | (1) |
|
Appendix C Late Breaking Google Web Services News |
|
|
309 | (4) |
|
|
309 | (1) |
|
|
310 | (1) |
|
|
310 | (3) |
Glossary |
|
313 | (26) |
Index |
|
339 | |