Introduction |
|
1 | (6) |
|
Web Services - An Introduction |
|
|
7 | (20) |
|
Issues in Enterprise and Network Computing |
|
|
8 | (3) |
|
|
8 | (1) |
|
Component-Based Computing |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
10 | (1) |
|
Traditional Distributed Computing |
|
|
11 | (4) |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
12 | (2) |
|
|
14 | (1) |
|
|
14 | (1) |
|
|
15 | (5) |
|
|
17 | (1) |
|
|
17 | (1) |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
Why Develop Web Services? |
|
|
19 | (1) |
|
Two Evolving Platforms for Web Services |
|
|
20 | (4) |
|
|
20 | (1) |
|
|
21 | (3) |
|
The Case for Open Source Web Services |
|
|
24 | (1) |
|
|
25 | (2) |
|
Web Services Architecture |
|
|
27 | (30) |
|
New Service-Oriented Architecture |
|
|
28 | (2) |
|
|
30 | (5) |
|
|
35 | (4) |
|
|
39 | (1) |
|
|
40 | (2) |
|
|
42 | (2) |
|
|
44 | (2) |
|
|
46 | (1) |
|
|
47 | (2) |
|
|
49 | (2) |
|
|
51 | (2) |
|
|
53 | (2) |
|
|
55 | (2) |
|
Exploring SOAP, WSDL and UDDI |
|
|
57 | (54) |
|
|
57 | (1) |
|
|
58 | (6) |
|
|
59 | (1) |
|
|
59 | (2) |
|
|
61 | (3) |
|
|
64 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
66 | (7) |
|
|
67 | (3) |
|
|
70 | (1) |
|
|
71 | (2) |
|
|
73 | (2) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
75 | (1) |
|
|
75 | (2) |
|
|
77 | (17) |
|
|
77 | (17) |
|
|
94 | (12) |
|
|
94 | (1) |
|
Businesses Benefit from UDDI |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
96 | (6) |
|
Managing Directory Information |
|
|
102 | (2) |
|
|
104 | (2) |
|
|
106 | (2) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
109 | (2) |
|
Java Web Services from Apache |
|
|
111 | (60) |
|
|
111 | (6) |
|
|
112 | (5) |
|
|
117 | (10) |
|
|
119 | (1) |
|
|
119 | (1) |
|
Writing a Client for HelloService |
|
|
120 | (1) |
|
Building an Advanced Web Service |
|
|
121 | (6) |
|
The Web Service Deployment Descriptor |
|
|
127 | (2) |
|
Web Services with Deployment Descriptors |
|
|
129 | (12) |
|
Returning an Array from a Service Method |
|
|
129 | (3) |
|
|
132 | (3) |
|
|
135 | (4) |
|
|
139 | (2) |
|
Developing a Message-Based Service |
|
|
141 | (5) |
|
Publishing the Message-Based Service |
|
|
143 | (1) |
|
Developing a Message-Based Client Application |
|
|
143 | (3) |
|
|
146 | (2) |
|
|
146 | (1) |
|
Creating a Client Using Generated Stubs |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
149 | (12) |
|
Installing the Sourcecode |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
150 | (11) |
|
|
161 | (3) |
|
|
164 | (5) |
|
|
169 | (2) |
|
|
171 | (28) |
|
|
172 | (1) |
|
|
172 | (1) |
|
|
172 | (1) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
173 | (1) |
|
|
173 | (4) |
|
|
173 | (2) |
|
Public Key Infrastructure (PKI) |
|
|
175 | (1) |
|
|
175 | (1) |
|
|
176 | (1) |
|
|
177 | (3) |
|
The Secure Sockets Layer Protocol (SSL) |
|
|
178 | (2) |
|
|
180 | (3) |
|
Security Assertion Markup Language (SAML) |
|
|
180 | (1) |
|
XML Access Control Language (XACL) |
|
|
181 | (1) |
|
XML Key Management Specification (XKMS) |
|
|
182 | (1) |
|
Developing Secured Web Services |
|
|
183 | (13) |
|
Security By Client Authentication |
|
|
183 | (4) |
|
|
187 | (4) |
|
|
191 | (5) |
|
|
196 | (3) |
|
|
199 | (68) |
|
Introduction to SOAP::Lite |
|
|
199 | (6) |
|
Installation of SOAP::Lite |
|
|
202 | (2) |
|
Perl Module Configuration |
|
|
204 | (1) |
|
|
205 | (24) |
|
Accessing Stock Prices Using a Simple WSDL-Based Call |
|
|
206 | (2) |
|
Accessing Book Prices Using SOAP::Lite |
|
|
208 | (3) |
|
Using SMTP as the Transport Method |
|
|
211 | (8) |
|
Using FTP as a Transport Protocol |
|
|
219 | (2) |
|
The SOAPsh.pl Interactive Shell |
|
|
221 | (1) |
|
Using stubber.pl for Package Generation |
|
|
222 | (2) |
|
Perl UDDI Query Searching for Company Information |
|
|
224 | (2) |
|
Tracing and Debugging with SOAP::Lite |
|
|
226 | (1) |
|
A UDDI Query to Find Methods |
|
|
226 | (3) |
|
Server Programming Using SOAP::Lite |
|
|
229 | (24) |
|
Making Perl Methods Accessible |
|
|
229 | (1) |
|
|
230 | (2) |
|
|
232 | (1) |
|
|
232 | (2) |
|
SOAP::SOM Client Return Values |
|
|
234 | (2) |
|
|
236 | (17) |
|
|
253 | (7) |
|
Secure Connections Using Apache and HTTPS |
|
|
257 | (3) |
|
|
260 | (4) |
|
|
261 | (3) |
|
|
264 | (3) |
|
|
267 | (38) |
|
|
267 | (6) |
|
|
268 | (1) |
|
ZSI Interoperability Issues |
|
|
269 | (1) |
|
Installing Python Libraries |
|
|
270 | (1) |
|
Installing XML Support - PyXML |
|
|
271 | (2) |
|
|
273 | (13) |
|
Server Programming with SOAP.py |
|
|
276 | (2) |
|
SOAP.py Server Accepting SSL Connections |
|
|
278 | (1) |
|
Client -Implemented Using SOAP.py |
|
|
279 | (5) |
|
Multiple References in SOAP.py |
|
|
284 | (2) |
|
|
286 | (14) |
|
Using ZSI to Construct SOAP Clients |
|
|
287 | (1) |
|
|
288 | (9) |
|
Running ZSI Server as a CGI Application |
|
|
297 | (1) |
|
Tracing SOAP Messages with ZSI and SOAP.py |
|
|
298 | (2) |
|
|
300 | (2) |
|
Advantages and Disadvantages of XML-RPC |
|
|
300 | (2) |
|
|
302 | (3) |
|
|
305 | (24) |
|
|
306 | (2) |
|
|
306 | (1) |
|
|
307 | (1) |
|
PHP Web Services Using NuSOAP |
|
|
308 | (12) |
|
Installation and Configuration |
|
|
309 | (1) |
|
|
310 | (1) |
|
A Simple PHP SOAP Client Example |
|
|
310 | (2) |
|
A Simple PHP SOAP Server Example |
|
|
312 | (1) |
|
|
313 | (1) |
|
|
314 | (1) |
|
|
315 | (1) |
|
Using WSDL and soap-proxy |
|
|
316 | (1) |
|
Using an HTTP Proxy Server |
|
|
317 | (1) |
|
|
317 | (1) |
|
|
318 | (1) |
|
Using Document Style Messaging |
|
|
318 | (2) |
|
Other PHP SOAP Implementations |
|
|
320 | (1) |
|
|
320 | (1) |
|
|
320 | (1) |
|
|
320 | (1) |
|
PHP Web Services and XML-RPC |
|
|
320 | (6) |
|
|
320 | (1) |
|
Useful Inc. XML-RPC Implementation |
|
|
321 | (5) |
|
Other PHP XML-RPC Implementations |
|
|
326 | (1) |
|
Future of PHP Web Services |
|
|
326 | (1) |
|
|
327 | (2) |
|
|
329 | (62) |
|
|
329 | (23) |
|
Installing WASP Server Lite for C++ |
|
|
330 | (1) |
|
Building the Web Service Using WASP |
|
|
331 | (5) |
|
|
336 | (3) |
|
|
339 | (4) |
|
Deploying the Web Service |
|
|
343 | (1) |
|
WASP Configuration File Directives |
|
|
343 | (7) |
|
Mapping Between C++ and XML Types |
|
|
350 | (2) |
|
|
352 | (12) |
|
|
352 | (1) |
|
Building the Web Service Using EasySoap++ |
|
|
353 | (5) |
|
|
358 | (3) |
|
|
361 | (1) |
|
Mapping Between XML and C++ Types |
|
|
362 | (2) |
|
|
364 | (22) |
|
|
364 | (1) |
|
|
365 | (6) |
|
|
371 | (8) |
|
Debugging gSOAP Applications |
|
|
379 | (3) |
|
|
382 | (4) |
|
Mapping Between C++ and XML Types |
|
|
386 | (1) |
|
|
386 | (1) |
|
Selecting the Right implementation |
|
|
387 | (2) |
|
|
389 | (2) |
|
Other SOAP Implementations |
|
|
391 | (44) |
|
|
392 | (26) |
|
|
394 | (20) |
|
|
414 | (3) |
|
Future of Ruby Web Services |
|
|
417 | (1) |
|
Embedded Web Services Using kSOAP |
|
|
418 | (14) |
|
|
418 | (1) |
|
|
419 | (13) |
|
|
432 | (3) |
|
Case Study - Designing Web Services from Legacy Modules |
|
|
435 | (52) |
|
|
435 | (5) |
|
The ISP Billing Application |
|
|
440 | (2) |
|
|
442 | (8) |
|
A Client To Query Customers |
|
|
450 | (7) |
|
|
457 | (12) |
|
A Client To Generate Billings |
|
|
469 | (3) |
|
Benchmarking with Zip Codes |
|
|
472 | (4) |
|
Building the Zipcodes Client |
|
|
476 | (6) |
|
|
482 | (3) |
|
|
485 | (2) |
Appendix A: Configuring Tomcat with Apache |
|
487 | (8) |
|
|
487 | (4) |
|
|
491 | (4) |
Appendix B: server.xml Attributes for Tomcat Configuration |
|
495 | (4) |
|
Parent Configuration Elements |
|
|
495 | (4) |
Appendix C: TcpTunneIGui and Tcpmon |
|
499 | (2) |
Appendix D: JBoss Installation |
|
501 | (4) |
|
|
501 | (1) |
|
Test the JBoss Tomcat Installation |
|
|
501 | (4) |
Appendix E: WSDL2Java Options |
|
505 | (2) |
Appendix F: Java2WSDL Options |
|
507 | (2) |
Appendix G: SOAP::Lite Classes |
|
509 | (6) |
Appendix H: kSOAP API Reference |
|
515 | (8) |
|
|
515 | (4) |
|
The org.ksoap.transport Package |
|
|
519 | (1) |
|
The org.ksoap.marshal Package |
|
|
519 | (1) |
|
The org.kobjects.serialization Package |
|
|
520 | (3) |
Index |
|
523 | |