In the last decade of computing, we have seen a growing realization that
most of the cost of computing comes not from the initial purchase of the
hardware, not even from the purchase of the software, but from the cost of
responding to change throughout the life of the system. When one part
changes, the degree of tight coupling between the elements of the system
dictates the “brittleness” or probability that change will be forced else-where. When you have to retest the software because the operating system
was “upgraded,” that’s brittleness. When you can’t open your word
processor documents because the software version is wrong, that’s brittle-ness. When a policy change in the accounting department dictates a soft-ware rewrite in the sales department, that’s brittleness.
In seeking to eliminate brittleness, there have been three significant steps
taken:
■■ The first was the introduction of Java technology, which separated
software from the platform and allowed the creation of business logic
that wasn’t greatly affected by changes to the underlying server.
■■ The second was the introduction of Extensible Markup Language
(XML), which separated the data from the software and enabled
different software systems to share data without being affected by
changes to the data structures unless they needed to respond to them.
■■ The most recent is the introduction of Web services. Web services
separate collaborating computer systems connected by networks,
enabling them to delegate processing without becoming coupled in
a brittle way.
784 trang |
Chia sẻ: banmai | Lượt xem: 5315 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Developing java web services: Architecting and developing secure web services using java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
oration
and e-Commerce Services
IMAP, POP, S/MIME, SMS,
Java Mail, etc.
J2EE
NetBeans, UML, BPSS, WSDL, UDDI, CPP/A, ebXML Reg/Rep, etc.
Web Services
Identity and Policy
LDAP, Liberty, SAML, XML-DSIG, XKMS, XML Encrypt, Kerberos, ebXML Reg/
Rep, UDDI, PKCS, PKIK, WBEM, XACML, X.509, JCA/JCE, P3P, JAAS, etc.
Base Platform
UNIX, NFS, FTP, DHCP, TCP, IPv6, IPv4, IPSec, GSS-API, SCSI, Fiber Channel, etc.
Primary source: Sun ONE Architecture Guide
- J2ME
- RSS
- WML
- SyncML
- RDF
- cHTML/XHTML
- voiceXML
- WSRP
- WSIA
- JavaPortlet
Specification, etc.
- UDDI
- ebXML
- JMS
- J2EE Connector
Architecture
- JDBC
- SQL
- EDI
SOAP, UDDI, WSDL, JAX-RPC, JAXM,
JAXR, XML Schema, SAX/DOM, JAX-P,
ebXML Messaging Service, etc.
726 Chapter 14
■■ The Service Delivery layer again can be based on a plethora of
standards and technologies in content transformation, formatting,
and provisioning space mainly. Various standards such as XHTML,
VoiceXML, and cHTML represent the formatted content as markup.
Also, the J2ME technology platform can be used for provisioning
services as Java applications on resource-constrained hand-held
client devices.
■■ The Service Container layer is based on the industry standard J2EE
platform. Also, Sun ONE supports standards for packaged applica-
tion components such as Java Mail, S/MIME, POP, IMAP, and SMS
in the areas of messaging and collaboration. The Sun ONE service
container can support hosting Web services built upon the standard
SOAP/UDDI/WSDL standards. In addition, it also can support
hosting Web services built using ebXML technology specifications.
■■ Sun ONE architecture enables the integration with backend data,
internal applications, as well partner services by leveraging stan-
dards and technologies such as J2EE Connector Architecture, JMS,
JDBC, SQL, EDI, UDDI, ebXML Registry/Repository, and so on.
Now, let’s see which products can be used for providing infrastructure to
the Sun ONE SoD.
Sun ONE Product Stack: Integrated versus Integrate-able
Currently, Sun ONE is an architecture that is based upon industry standards
encompassing different areas of a SoD. As a result, although Sun ONE is the
branded vision and architecture from Sun Microsystems, a Sun ONE imple-
mentation can quite possibly be based upon products adhering to these stan-
dards, from companies other than Sun Microsystems. This scenario presents
what is known as an “Integrate-able” product stack wherein Sun ONE archi-
tecture is realized using infrastructure products from different companies.
For example, anyone can implement a Sun ONE SoD using Sun’s Sun ONE
Portal server along with BEA’s WebLogic Application Server.
An “Integrated” product stack to build and deploy SoD using all the Sun
ONE branded products also is provided by Sun Microsystems. Sun thus
presents alternatives for implementing Sun ONE architecture-based ser-
vices. Figure 14.4 shows the Sun ONE integrated product stack consisting
of the Sun ONE-branded products from Sun Microsystems.
Introduction to Sun ONE 727
Figure 14.4 Sun ONE architecture: Integrated product stack.
Now, Let’s briefly discuss the functionalities provided by some of the
major Sun ONE products shown in Figure 14.4.
Sun ONE Studio
Sun ONE Studio comes in two flavors: Sun ONE Studio 4 (formerly Forte
for Java) and Sun ONE Studio 7, Compiler Collection (formerly Forte Com-
piler Collection).
Sun ONE Studio 4 is an IDE for the Java language system. It is based on
the open source NetBeans Tools platform. NetBeans has a modular
design—it defines a framework that can be used to develop modules
focusing on a specific set of functionalities (UML modeling or performance
monitoring, for example), such that these modules can be plugged in on
Service Creation, Assembly, and Deployment
Service
Delivery
Service
Integration
Service Container
Runtime environment
and core services
Messaging, Collaboration
and e-Commerce Services
S1 BuyerXPert, S1 BillerXpert, S1
Messaging Server, S1 Calendar Server
Sun ONE Application Server
Sun ONE Studio
Web Services
Identity and Policy
Sun ONE Directory Server, Sun ONE Platform for Network Identity
Base Platform
Solaris Operating Environment, Sun Cluster, Sun StorEdge
Primary source: Sun ONE Architecture Guide
- Sun ONE Portal
Server
- Sun ONE Application
Framework
- Sun ONE Web Server
Sun ONE Integration
Platform
- S1 Message Queue
- S1 IS EAI Edition
- S1 IS B2B Edition
Sun ONE Web and Application Server
728 Chapter 14
any NetBeans-based IDE to use the specific functionality that it provides.
Also, because NetBeans is written using Java technology, this IDE is avail-
able on most of the platforms. Sun ONE Studio 4 is available in three edi-
tions: Enterprise Edition, Community Edition, and Mobile Edition.
Enterprise Edition. It provides an environment to develop J2EE 1.3
applications and deploy them to a wide range of application servers,
such as Sun ONE’s Application Server, BEA’s WebLogic Application
Server, or Oracle’s 9iAS. Also, Sun ONE Studio 4 provides built-in
support for creating and deploying Web services based on WSDL,
UDDI, and SOAP technologies. It also supports Web services creation
using the Java APIs for XML. In order to develop J2EE 1.2 platform
applications, Sun ONE Studio 3.0 also has been made available.
Community Edition. It provides an IDE for developing stand-alone
applications, Java applets, Java Bean components, and database
aware 2-tier Web applications using JavaServer Pages/Servlets/JDBC
technologies.
Mobile Edition. It enables the development of J2ME MIDlet applica-
tions. It provides a debugger for debugging the source code of the
MIDlets. Also, the support for mounting emulators as well as SDKs
from third parties has been made available.
Sun ONE Studio 7, Compiler Collection provides tools for the rapid
development of applications using the language systems of C, C++, and
Fortran. This IDE is targeted toward ISVs and corporate developers
involved heavily in maintaining and developing legacy applications.
Solaris Operating Environment
The newest version of Solaris Operating Environment is 9.0, which was
launched by Sun in the summer of 2002. Interestingly, this new version of
Solaris provides traditional OS functionality plus application and directory
management services, that is, Sun bundles the Sun ONE Application
Server and Sun ONE Directory Server along with Solaris 9.0. Apart from
this, Solaris 9 OE also carries enhancements in the areas of scalability, avail-
ability, manageability, and security. Also, the earlier versions of Solaris OE
are available.
Sun Cluster
Sun Cluster software is designed to deliver high availability application
services to a data center or an enterprise. It basically extends the Solaris
operating environment to enable the use of its core services, such as
Introduction to Sun ONE 729
devices, file systems, and networks in a seamless manner across a tightly
coupled cluster. Thus, it helps increase the service levels of software.
Sun ONE Portal Server
The Sun ONE Portal Server (formerly iPlanet Portal Server) is a platform
for deploying business-to-business, business-to-consumer, and business-
to-employee portals. It provides the services required to build portal sites,
including user and community management, personalization, content
aggregation, integration, security, and search functionalities. It also pro-
vides support for the access of services by wireless clients, secure remote
access, and knowledge management.
Sun ONE Web Server
The product is an environment for deploying Web applications. It supports
the JavaServer pages and Servlet technologies to generate personalized
and dynamic content. The Sun ONE Web Server is bundled with the Sun
ONE Directory Server to enable centralized server management and user
authentication.
Sun ONE Messaging Server
Formerly known as iPlanet Messaging Server, this product provides a solu-
tion for communication and messaging. For example, it enables the deploy-
ment of unified communication services, bringing together telephone
services with e-mail notification, faxing, paging, and other technologies.
This provides a single entry point to retrieve voice mails, e-mails, address
books, and calendar information.
Sun ONE Directory Server
The Sun ONE Directory Server (formerly iPlanet Directory Server) offers a
central repository for storing and managing identity profiles, access privi-
leges, and application and network resource information. Information
stored in the Sun ONE Directory Server can be used to provide services
such as authentication, authorization, access management, and single sign-
on to the users.
Sun ONE Identity Server
Formerly known as iPlanet Directory Server Access Management Edition,
the Sun ONE Identity Server is designed to help organizations manage
730 Chapter 14
secure access to Web-based resources. The product provides an identity
system that includes access management, identity administration,
and directory services. It supports the policy-driven administration of
identities.
Sun ONE Application Server
Sun ONE Application Server (formerly known as iPlanet Application
Server) provides a J2EE-based platform for the development, deployment,
and management of middleware application components. The product
provides a broad range of middleware services such as persistence, state
management, load balancing, transaction management, security, and so
forth, to the components hosted within.
Sun ONE Integration Server
Two editions of the Sun ONE Integration Server (formerly iPlanet Integra-
tion Server) are available: Sun ONE Integration Server EAI Edition and
Sun ONE Integration Server B2B edition. The former is focused on
providing data- and process-based integration of internal applications
using XML-based technologies such as SOAP, while the latter provides
a platform for integrating with customers and trading partners of an
organization.
Sun ONE Message Queue
This product (known formerly as iPlanet Message Queue) is message-
oriented middleware (MOM) software. It implements the JMS specification.
The integrated Sun ONE product stack from Sun is obviously quite
complete, covering almost all areas of software infrastructure and tools.
Further information on Sun ONE products can be obtained from wwws
.sun.com/software/sunone/.
Summary
In this chapter, we introduced Sun ONE, Sun’s vision of a standards-based
software, architecture, and platform for building Services on Demand
(SoD). The main components of Sun ONE have been examined: The vision
behind Sun ONE; delivering Services on Demand; Sun ONE architecture,
service layers, standards, and technologies; and the Sun ONE Integrated
Product Stack.
Introduction to Sun ONE 731
733
Chapter 1
Java Remote Method
Invocation (RMI) home
Java RMI tutorial
Java RMI over IIOP
Java 2 Platform, Enterprise
Edition (J2EE)
Java Web services home
Microsoft DCOM home www.microsoft.com/com/tech/DCOM.asp
Object Management Group www.omg.org/
(OMG) homepage
Web services zone home www.ibm.com/developerworks/webservices/
Further Reading
Chapter 2
DSML homepage www.dsml.org
ebXML homepage www.ebxml.org
ebXML messaging www.ebxml.org/specs/index.htm
specifications
IBM WSFL page www.ibm.com/software/solutions/webservices
/pdf/WSFL.pdf
OASIS BTP activity home www.oasis-open.org/committees
/business-transactions/
OASIS UDDI activity home www.oasis-open.org/cover/uddi.html
Sun WSCI information page www.sun.com/software/xml
W3C SOAP activity home www.w3.org/TR/SOAP/
W3C WSDL activity home www.w3.org/TR/wsdl12
W3C XML activity home www.w3.org/XML
Chapter 3
Apache Axis information
BEA Weblogic information www.bea.com
J2EE design patterns
/j2ee_patterns
Server-side.com www.theserverside.com/patterns/index.jsp
J2EE patterns
SJC J2EE patterns
/technicalArticles/J2EE/patterns/
Sun Java Web services
blueprints
Sun Java Web services
pages
W3C Web services www.w3.org/2002/ws/
activity home
734 Further Reading
Chapter 4
Apache Axis project
Apache SOAP project
ebXML messaging service www.ebxml.org/specs/ebMS2.pdf
specifications
W3C SOAP 1.2 adjuncts www.w3.org/TR/soap12-part2/
W3C SOAP 1.2 messaging www.w3.org/TR/soap12-part1/
framework primer
W3C SOAP 1.2 primer www.w3.org/TR/soap12-part0/
W3C XML protocol www.w3.org/2000/xp/Group/
activity home
Chapter 5
UDDI community portal www.uddi.org
UDDI cover pages www.oasis-open.org/cover/uddi.html
UDDI, ebXML and
XML/EDI (paper) www.xml.org/feature_articles/2000
_1107_miller.shtml
UDDI and WS-inspection www-106.ibm.com/developerworks
(paper) /webservices/library/ws-wsiluddi.html
UDDI Web site (unofficial) www.uddicentral.com
WSDL, compilation of
low-level issues
WSDL cover pages
WSDL, a paper on using www-106.ibm.com/developerworks
WSDL with SOAP /webservices/library/ws-soap/
WSDL tools, a compilation
WSDL W3C note www.w3.org/TR/wsdl
Yahoo group for discussion www.oasis-open.org/cover/uddi.html
on UDDI issues
Yahoo group for discussion
on WSDL issues
Further Reading 735
TE
AM
FL
Y
Team-Fly®
Chapter 6
Microsoft SOAP www.mssoapinterop.org/
interoperability page
SOAP builders interoperability www.xmethods.com/ilab/
homepage
SOAP builders interoperability www.whitemesa.com/interop.htm
results page
Web service interoperability www.ws-i.org
organization home
Chapter 7
Document Object www.w3.org/DOM/
Model (DOM) home
Java API for XML-based
RPC (JAX-RPC) home
Java API for XML Messaging
(JAXM) home
Java API for XML Processing
(JAXP) home
Java API for XML Registries
(JAXR) home
Java Architecture for XML
Binding (JAXB) home
Java technology and XML
Java XML pack home
/javaxmlpack.html
JWSDP home
/webservicespack.html
SAX home www.saxproject.org/
736 Further Reading
Chapter 8
Java API for XML Processing
(JAXP) home
Java Architecture for XML
Binding (JAXB) home
The CASTOR project home
Crimson JAXP parser home
Document Type Definition www.w3.org/TR/html4/sgml/dtd.html
(DTD) home
Extensible Stylesheet www.w3.org/Style/XSL/
Language (XSL) home
OASIS home www.oasis-open.org/
O’Reilly XML.com home www.xml.com
World Wide Web Consortium www.w3c.org
(W3C) home
W3C XML schema home www.w3.org/XML/Schema
Xalan Java transformer home
Xerces2 Java parser home
XML Industry portal home www.xml.org
XML Path Language (XPATH) home www.w3.org/TR/xpath
XSLT specification home www.w3.org/TR/xslt
Chapter 9
JAXM home page
JWSDP download information http:java.sun.com/webservices
/webservicespack.html
JWSDP tutorial
/tutorial/index.html
SAAJ home page
Sun JAXM/SAAJ tutorial
/tutorial/doc/JAXM.html
Further Reading 737
Chapter 10
JAX-RPC home page http:java.sun.com/xml/jaxrpc/
JWSDP download information
/webservicespack.html
JWSDP tutorial
/tutorial/index.html
Sun JAX-RPC tutorial
/tutorial/doc/JAXRPC.html
Chapter 11
Yahoo group for discussion
on JAXR issues /jaxr-discussion/
An article on JAXR at
onjava.com /2002/02/27/uddi.html
Articles on JAXR at
Javaworld.com /jw-06-2002/jw-0614-jaxr.html
/jw-05-2002/jw-0517-webservices.html
An article on registration and
discovery of Web services to /technicalArticles/WebServices/jaxrws/
UDDI and ebXML registries
using JAXR
Java.sun.com chat with
JAXR spec. lead /community/chat/JavaLive/2002/jl0507.html
JAXR cover pages
Presentation on JAXR
/webservices/pres/jaxr_v5.pdf
738 Further Reading
Chapter 12
Java Web services developer
pack home /webservicespack.html
Java Web services
tutorial home /tutorial/index.html
Chapter 13
Liberty Alliance, official Web site www.projectlibert.org
Securing Web services, www.line56.com/articles/default
articles on issues .asp?ArticleID=3779
Sun Dot Com builder Web
services best practices
Web Services Security forum www.webservices.org/index.php/article
at Webservices.org /archive/5/
Web services security forum www.xwss.org/index.jsp
at XWSS
Web services security at www.theserverside.com/resources/article
Theserverside.com (paper) .jsp?l=Systinet-web-services-part-3
WS-security, paper introducing www-106.ibm.com/developerworks/library
/ws-secure/
Chapter 14
Sun ONE architecture guide
/arch/index.html
Sun ONE official Web site
Further Reading 739
741
Index
A
Abstract Syntax Notation One, 654
actor attribute, 127
addBusinessKey ( ) method, 265
addHeader ( ) method, 410
addName ( ) method, 261
function, 227, 252
AdminClient utility, 158
Advanced Encryption Standard, 625
element, 675
Ant utility, 62, 69, 77, 83, 89–92, 310
Apache
Tomcat server, 147–149, 165–166,
172–173, 309
Xalan, 166
Xerces, 148, 166, 342, 345
See also Ant utility; Axis
Applied Cryptography (Bruce
Schneier), 622
architectural models, 6–15
arrays, 119, 121–123, 473
element, 704
data
structure, 253
Association class, 501, 508–509
asymmetric algorithms, 626–628
asynchronous connections, 513–514
AttachmentPart object, 417, 422
attachments, SOAP, 109–110, 116–117
attribute assertion, SAML, 693–694
attributes, 320, 335–336
AuditableEvent instance, 502
authentication, 622–623
authentication assertion, SAML,
691–693
element, 679, 681
authorization, 143–144, 622
authorization assertion, SAML,
694–696
data structure, 250
Axis (Apache)
downloading, 62, 147, 165
features, 62, 146–147
infrastructure and components,
150–154, 158–159
installing, 147–149
.NET client, building
infrastructure, 279–280
overview, 278–279
service provider, 282–284
service requestor, 284–289
remote administration, 152
742 Index
Axis (Apache) (continued)
service requester setup, 98–99
Tomcat server, 147–149
Web service creation, example
DAO classes, use of, 180–187
database creation, 167–173
infrastructure, building, 161–165
service provider, 165–173,
175–176, 191–194
service requestor, 173, 176–178,
194–196
testing services, 179–180, 196–198
XML Helper classes, use of,
187–191
Web services programming model,
155–160
WSDL tools, 215
B
B2B. See business-to-business (B2B)
communication
Basic Encoding Rules, 654
element, 683
element, 685
BEA, 15, 61. See also WebLogic
tag, 152
BEEP (Blocks Extensible Exchange
Protocol), 137–138
binding, 302–304, 385, 395–396, 696.
See also Java Architecture for XML
Binding
data structure,
241, 245, 252
element, 205, 210
data struc-
ture, 230–231, 241, 242, 244, 251
Blocks Extensible Exchange Protocol
(BEEP), 137–138
Body element, 112, 213, 228
browser, registry, 535–537
build.xml script, 69, 77–78, 83–84,
89–91
element, 682, 683
element,
685
BulkResponse interface, 518–521,
682
element,
682
element,
682
data structure,
244, 246, 251, 257
data structure,
229–230, 237, 239, 244, 251, 257
data structure,
235–237, 261
BusinessLifeCycleManager
interface, 516, 519–521
data structure,
235–238, 261
BusinessQueryManager inter-
face, 523–531
data struc-
ture, 230, 238, 241, 244, 247, 251
business-to-business (B2B) commu-
nication, 17, 19–21, 24–25, 30–32,
720
C
Call object, 469
canonicalization, XML, 655–656
element, 652, 653, 661
capabilities, JAXR, 497
capability interfaces, 496
capability profiles, JAXR, 497–498
Cape Clear, 35
cascading style sheets, 364
CASTOR (Exolab), 384–385
categorization, 233–236
data structure,
232, 233, 236, 248
Certificate Authority, 630
characters ( ) method, 348
element, 641
Index 743
Classification interface, 501,
503–506, 527–528
ClassificationScheme inter-
face, 500, 503–508
clientgen utility, 62, 92
element, 683
client/server application, 6–10
close ( ) method, 515
Collaborative Protocol Agreement,
722
comment, XML, 318
Common Language Runtime (CLR),
275, 276
Common Object Request Broker
Architecture (CORBA), 6–10
communication models, 14–15,
50–51, 57
complexType, 335, 336
Component Object Model
(COM), 13
Concept instances, 501, 505
conditional processing, 370
confidentiality, 622
confirmAssociation ( )
method, 509
ConnectionFactory object,
510–511, 513–514, 516
Connection interface, 496
connection management API, 510–516
connection pool, creating, 65
Content-ID reference, 116–117
Content-Location reference, 116–117
ControllerServlet, 593–595
CORBA. See Common Object
Request Broker Architecture
CPP/CPA, ebXML, 30, 49
createConnection ( ) method,
408, 513
createMessageFactory method,
415
createObject ( ) method, 517
Crimson parser, 339, 342, 345
cryptography, 621–628
D
DAO classes, 70–78, 180–187,
280–283
database server, 6
database tables, 65–70
Data Encryption Standard, 625
DataHandler class, 475
data source, creating, 65
data structures, UDDI, 229–232
data types, 331, 333, 472–475
DCOM (Distributed Common
Object Model), 13–14
DeclarativeQueryManager
interface, 531–533
decryption, 643–650
DecryptionContext ( ) object,
648–650
DefaultHandler class, 344,
346–347, 349
element, 205, 208
function, 228,
252
function,
227, 251, 265
deleteObjects ( ) method, 518
<delete_publisherAsser-
tions> function, 227
function, 228,
252
function, 228,
252
deployment descriptor, 88–89,
445–447, 461–462, 480–481
deprecateObjects ( ) method,
519
deserialization, 124, 152, 455, 472
destroy ( ) method, 458
detached signatures, 652
element, 113, 250, 410
digital certificate, 630
digital signature, 33, 142–143,
628–629, 667
744 Index
Digital Signature Algorithm (DSA),
629
DII. See Dynamic Invocation
Interface
Directory Services Markup Language,
31–32
function,
228, 250
data
structure, 238, 250, 251, 252
Distinguished Encoding Rules, 654
Distributed Common Object Model
(DCOM), 13–14
distributed computing
advantages, 5–6
challenges in, 16–17
core technologies, 6–14
definition, 4–5
importance, 5–6
J2EE role in, 17–19
service-oriented architecture, 22, 41
XML role in, 19
DLL. See Dynamic Link Library
Document Builder, JAXP, 340
DocumentBuilderFactory class,
340, 342, 355–357
Document object, 357–359
Document Object Model (DOM),
300, 647, 648
Document Type Definition (DTD),
299, 325–329
doDecrypt ( ) method, 648
doDelete ( ) method, 265,
557–558
doEncrypt ( ) method, 645–648
doGET ( ) method, 702
doPublish ( ) method, 538
doQuery ( ) method, 551
doSearch ( ) method, 261
doSubmit ( ) method, 257
DSA (Digital Signature Algorithm),
629
element, 654
element, 143
element, 640,
671–674
element, 673
element, 143
element,
672, 680
element, 679, 684
element,
143
DTD. See Document Type Definition
Dynamic Invocation Interface (DII),
469–471, 488–490, 578, 596
Dynamic Link Library (DLL),
277–278, 286–287
E
electronic business Extensible
Markup Language (ebXML)
Business Process Specification
Schema (BPSS), 721, 722
Collaborative Protocol Profile
(CPP), 721–722
components of, 30, 49
consumer servlet, 443–445
development of, 719
Messaging Service, 720, 722
producer servlet, 439–443
Registry/Repository, 46, 721, 722
technical architecture, 719–723
Web services implementation, 53
WUST technologies, 45
element, XML
attributes, 320, 335–336
collision, 323
complex, 332
declaration, 325
description, 319–320
explicit and implicit types, 333
local and global definitions, 334
multi-attribute, 327
Index 745
prefixes, use of, 323
XML Schema, 330–335
encodingStyle attribute, 111, 112,
213–214
EncryptDecrypt class, 637, 645,
648
element, 640
element, 640–641
encryption, 140–142, 622, 641–643,
644–650
EncryptionContext object, 646
element,
640
EncryptionTest class, 637–641
endDocument ( ) method, 347
endElement ( ) method, 348
Entegrity, 688
entities, XML, 320–322, 327–328
Entrust, 630, 668, 671
enumeration data type, 118–119
enveloped signatures, 651
Envelope element, 108, 110–111
enveloping signatures, 651
ErrorListener interface, 375
executeQuery ( ) method, 532
Exolab, 384–385
extensibility elements, 211
Extensible Markup Language.
See XML
ExtensibleObject interface, 502
Extensible Stylesheet Language.
See XSL
Extensible Stylesheet Language
Transformation. See XSLT
ExternalIdentifier instances,
501, 532
ExternalLink class, 501, 532
ExtrinsicObject class, 502
F
FactoryConfigurationError
message, 340, 345
FactoryConfiguration
Exception message, 348, 359
faultactor element, 113
faultcode element, 113
element, 112–115, 209, 210
faultstring element, 113
FederatedConnection interface,
516, 534
federated Web services, 723
function, 227,
241–243
function, 227,
234, 261
FindBusiness object, 261
element, 236,
239, 241, 242, 248
FindQualifiers interface,
526–527
function, 227, 238–240
function, 227,
240–241
function, 227,
243–244
G
generateSignature ( )
method, 662–663
GenerateValidateSignature
class, 657, 661–663, 666
getAssertion ( ) method, 702
function, 253
get_authToken method, 228, 250,
257, 265
function,
227, 245
function, 227
function,
227, 244, 245
getCatalog ( ) method, 596
TE
AM
FL
Y
Team-Fly®
746 Index
getCoreValidity ( ) method,
668
getDocument ( ) method, 647
getFeature ( ) method, 346
getKeyInfoResolver ( )
method, 646
getPort method, 467, 486
getProductCatalog ( )
method, 583–584, 597, 599, 612
function, 252
getReferenceValidity ( )
method, 667–668
function,
253
getRegistryService ( )
method, 514
function,
227, 245
getSignedInfoValidity ( )
method, 667–668
getStatus ( ) method, 513
function,
227, 245
getXMLReader ( ) method, 349
H
HandlerBase class, 344, 346–347,
349
handlers, Axis, 150
hashing, 624, 629
Header attribute, 111
HTML tags, 314
HTTP (Hyper Text Transfer Proto-
col), 17, 131–134, 137, 290
I
IBM
e-Business, 37
Key Generator utility, 642
MQSeries, 15
Network Accessible Services Speci-
fication Language (NASSL), 202
products, 35
UDDI access point URLs, 228
Web Services Toolkit, 215, 254
WebSphere Application Server 4.5,
35
XML Security Suite, 656
data structure,
231, 236
init ( ) method, 458
element, 209, 210
integrity, 623, 629
interface class, 70
intermediaries, SOAP, 125–128
interoperability
challenges, 290
importance of, 271
Java API for XML Messaging
(JAXM), 450
Java API for XML RPC (JAX-RPC),
491
means of ensuring, 272–273
SOAP proxies, 273
testing, 274, 292
W3C XML Schema Definitions
(XSD), defining, 273
of Web services, 26
Web Services Interoperability
Organization, 291–292
WSDL and, 273
invoke ( ) method, 157
IOPSIS, 35
iPlanet products, 36, 701, 730, 731
isAssertionValid ( ) method,
704, 705
isAvailable ( ) method, 513
isNamespaceAware ( ) method,
356–357
ISO 3166 categorization system, 234,
248
issuing authority, SAML, 689–695
isValidating ( ) method, 357
isValid ( ) method, 395
Index 747
J
J2EE architecture, 17–19
JABBER, 105
Java2WSDL utility, 153, 215–220
Java API for XML Messaging
(JAXM)
application architecture, 403–406
asynchronous messaging
deployment, 445–448
ebXML consumer servlet, 443–445
ebXML producer servlet, 439–443
testing, 448–449
communication using provider,
414–419
communication without a
provider, 420–424
deployment, 425–430
description, 58, 304–306, 722
interoperability, 450
in J2EE 1.4 platform, 450
java.xml.messaging, 407–408
java.xml.soap, 409–413
JAX-RPC compared, 454
message interaction patterns, 406
point-to-point messaging, 431,
434–438
role in Web services, 402–403
Java API for XML Processing (JAXP)
API model, 339
classes and interfaces, list of,
340–341
description, 58, 298, 337–338
DOM
description, 300, 353
document builder, 357–358
namespaces, 356–357
processing model, 354
sample source code, 360–364
tree, 359
validation, 357
implementations, 342
parser, 339
pluggable interface, 301–302,
338–339
reference implementation, 303
SAX
default handler, creating, 346–348
description, 299, 342–343
features, setting, 346
namespaces, setting, 345–346
processing model, 343
reading and writing XML, 349
sample source code, 350–353
SAX parser, 344–349
validation, setting, 346
threading, 383
uses for, 338
version, 314, 338
XSLT
description, 300–301, 373–377
sample code, 377–383
Java API for XML Registries (JAXR)
architecture components, 494–496
association of registry objects,
508–509
capabilities, 497
capability profiles, 497–498
classes and interfaces, 499
classification of registry objects,
502–507
deleting information, 557–561
description, 58, 308, 494, 722
information model, 499, 503
programming model, 498
publishing
compiling, 547–549
executing, 549–550
programming steps, 538
source code, 539–547
querying, 551–557
Registry Browser, 535–537
Registry Server, JWSDP, 533–535
registry services API
connection management API,
510–516
748 Index
Java API for XML Registries (JAXR)
(continued)
life cycle management API,
516–521
query management API, 522–533
Java API for XML Remote Procedure
Calls (JAX-RPC)
application architecture, 454–456
client
classes, 466
description, 455
Dynamic Invocation Interface
(DII), 469–471, 488–490
dynamic proxy-based, 467–469,
486–488
exception, 466
interfaces, 465
stub-based, 466–467, 484–486
description, 58, 306–308
example Web service, 307–308
interoperability, 491
in J2EE 1.4 platform, 491
JAXM compared, 454
mapping, 472–475
role in Web services, 452–453
service
configuring, 459, 463, 478
definition, 457–458, 476–477
description, 454–455
developing from Java classes,
457–462
developing from WSDL docu-
ment, 463–464
implementation, 458–459, 477
packaging and development,
460–462, 464, 480–482
testing, 482–483
stubs and ties, generation of, 460,
479–480, 483–484
Java Architecture for XML Binding
(JAXB)
data binding generation, 386–392
description, 58, 302–304, 383–385
marshalling XML, 392–394
sample code, 395–399
services provided, 303
unmarshalling Java, 394–395
Java Database Connectivity (JDBC),
59, 497
Java for WSDL (JWSDL), 202
Java Messaging Service (JMS), 15,
137, 305
Java RMI (Remote Method Invoca-
tion), 10–13
Java Server Pages (JSP), 59
Java Server Pages Standard Tag
Library (JSTL), 58, 309, 599–600
Java Web Services Developer Pack
(JWSDP)
Ant build tool, 311
Apache Tomcat container, 309
case study
architecture, 567–568
discovery of Web services,
600–602
execution, 612–615
overview, 563–567
publishing and discovery classes,
572–574
service provider, designing,
568–572
service provider, developing,
582–593
service provider, runtime infra-
structure, 602–609
service registry, browsing,
592–593
service registry infrastructure,
609–610
service requestor, designing,
575–582
service requestor, developing,
593–602
service requestor, runtime infra-
structure, 610–612
components, 58
Index 749
description, 36, 311–312
document-oriented APIs, 297–298
downloading, 311
Java XML Pack, 297
JAXB, 302–304
JAXM, 304–306
JAXP, 298–303
JAXR, 308
JAX-RPC, 306–308
JSTL, 309
procedure-oriented APIs, 298
registry server, 59, 310
UDDI implementation, 254
Java Web Start, 723
java.xml.messaging, 407–408
Java XML Pack, 297
java.xml.soap, 409–413
JAXB. See Java Architecture for XML
Binding
JAXM. See Java API for XML
Messaging
JAXP. See Java API for XML
Processing
JAXR. See Java API for XML
Registries
JAX-RPC. See Java API for XML
Remote Procedure Calls
JDBC (Java Database Connectivity),
59, 497
Jini, 717
JMS (Java Messaging Service), 15,
137, 305
JSP (Java Server Pages), 59
JSTL (Java Server Pages Standard
Tag Library), 58, 309, 599–600
JWSDL (Java for WSDL), 202
JWSDP. See Java Web Services
Developer Pack
K
key
in asymmetric algorithms, 626–628
definition, 623
key pair creation, 641–643
length, 623, 625
private, 626–628
public, 626–628
secret, 624, 626
in symmetric algorithms, 624–626
See also Cryptography
element, 679
element, 676
element, 239,
248
Key Generator utility (IBM), 642
element, 638, 646,
652–654, 661, 665–666
KeyInfoResolver object, 646, 649
element, 673
key recovery service, X-KRSS,
681–685
key registration request, X-BULK,
682–683
key registration response, X-BULK,
684
key revocation request, X-KRSS, 681
keystore file, 664
Keytool utility (Sun), 641–643
element, 673
L
Liberty Alliance, 723
Life Cycle Management API,
516–521
LifeCycleManager interface, 516,
517–519
element, 674
element, 675
locate service, XKMS, 672–675
M
marshalling, 303, 392–394
maxOccurs attribute, 331–333
Message Driven Beans, 407, 635
element, 205, 208
750 Index
MessageFactory object, 412, 415,
418, 421, 424
Message-Oriented Middleware
(MOM), 14–15
messaging-based communication
model, 51, 155, 157–158
Microsoft Corporation. See specific
applications
Microsoft Intermediate Language
(MSIL), 274–275
Microsoft Messaging Queue, 15
minOccurs attribute, 331–333, 336
misUnderstood attribute, 115
mustUnderstand attribute, 111,
113, 115–116
N
NAICS categorization system, 234,
248, 508
namespace, XML
default, 322, 323
description, 322–323
DOM and, 356–357
setting, 345–346
XML Schema declaration, 329
XSL, 367
naming conventions, XML, 316–317
.NET (Microsoft)
class library, 275–276
client development
compiling client application, 278,
288
compiling SOAP proxy as a DLL,
277–278, 286–287
environment setup, 282
executing client from Windows
environment, 278, 289
infrastructure, building, 279–281
proxy, generating, 277, 285
service provider, creating,
282–283
service provider, implementing,
283–284
service requestor, creating,
284–289
testing the client, 289
WSDL, obtaining, 277, 284
Common Language Runtime, 275
compilers, 275
description, 37, 274–275
Web site, 276
NetBeans, 728–729
Netegrity, 685, 688
newDocumentBuilder ( ) static
method, 355
newInstance ( ) method, 344,
355, 374–375, 510
newSAXParser ( ) static method,
344
newTransformerFactory ( )
method, 374–375
non-repudiation, 623, 629
North American Industry Classifica-
tion System (NAICS), 234, 248,
508
not ( ) function, 370
O
element, 652, 655
Object Request Broker (ORB), 8, 9
one-way hash function algorithms,
624
OneWayListener interface,
407–408, 418
onMessage ( ) method, 407–408,
418, 424
onMethod ( ) method, 706
Oracle, 35–36
Organization for the Advancement
of Structured Information Stan-
dards (OASIS), 30, 32–34, 685, 707,
719
Organization instance, 500
element, 209, 210
Index 751
P
parse ( ) method, 349
ParserConfiguationException
message, 345, 348, 357, 359
Parser Configuration, JAXP, 340
parsing, 298
element, 205, 208–209,
213–214
password, 624
Phaos XML, 633
placeOrder ( ) method, 587, 598
PointBase database, 62, 65, 69, 78, 84,
166, 603
Point-to-Point message model, 15
Policy Decision Point (PDP), 698, 708
Policy Enforcement Point (PEP), 698,
707
Policy Information Point (PIP), 708
Policy Repository Point (PRP), 708
polymorphic accessor, 119
element, 205
element, 205, 208, 209,
210
Possession of Private (POP) key, 678,
679
PostalAddress instances, 502
processing instruction, XML, 318
prolog, XML, 317
element, 679
ProviderConnectionFactory
object, 408, 414, 418
ProviderConnection object, 414,
417–418
proxy, 277, 285
Public Key Infrastructure, 32–33,
628, 668–670
data structure,
230, 251, 252, 253
Publish/Subscribe message
model, 15
Q
qname attribute, 115
element, 674
querying, using JAXR, 551–557
Query interface, 532
Query Management API
BusinessQueryManager inter-
face, 522–531
DeclarativeQueryManager
interface, 531–533
R
element, 652, 653
data structure,
253
element, 685
registration service, X-KRSS,
678–680
registry browser, 535–537
RegistryEntry interface, 499–500
RegistryObject class, 499–505
RegistryPackage class, 502
Registry Server, JWSDP, 310,
533–535
RegistryService interface, 496,
514
data
structure, 238, 240
data
structure, 238–239
remote interface, session bean, 85–86
remote procedure call (RPC)
communication model, RPC-based,
50–51, 155–158
Web services, RPC-based, 174–180
See also Java API for XML Remote
Procedure Calls
replace ( ) method, 648
ReqRespListener interface, 408,
418, 423–424
element, 683
element, 674
element, 675
752 Index
element, 653
revocation service, X-KRSS, 680–681
RMI-IIOP protocol, 12–13, 56
root, 317–318, 366
RSA (Rivest-Shamir-Adelman)
algorithm, 628, 629, 641–643
element, 654
S
SAML. See Security Assertions
Markup Language
function, 227,
252
function, 227,
233, 251, 257
SaveBusiness object, 257
saveChanges ( ) method, 417,
423
saveObjects ( ) method, 517–518
function, 227,
233, 251
function, 227, 233,
252
SAX. See Simple Access for XML
SAXParser class, 340, 344, 348–349
SAXParserFactory class, 340, 344,
345
scalability, 6, 10, 14
Schneier, Bruce (Applied Cryptogra-
phy), 622
SearchBusiness function, 260
searching, information in a UDDI
registry, 260–264
Securant Technologies, 685, 688
Secure Socket Layer (SSL), 137, 628,
631, 632
security
authorization, 143–144
challenges of, 620–621
cryptography, 621–628
description, 140
digital certificates, 630
digital signatures, 142–143, 629–630
encryption, 140–142
goal of, 620
JAXR, 514
XACML, 706–710
XKMS, 668–675
XML Encryption, 630–638
XML Signature, 651–657
See also Security Assertions
Markup Language (SAML);
specific protocols and technologies
Security Assertions Markup Lan-
guage (SAML)
architecture, 689–691
attribute assertion, 693–694
authentication assertion, 691–693
authorization (decision) assertion,
694–696
back-office transaction scenario,
687
bindings and protocols, 696–697
description, 33–34, 685–687
documents, 688–689
implementation, 687–689
model of producers and consumers,
697–698
Single Sign-On, 686, 698–706
XACML and, 708
serialization, 124, 152, 455, 472
ServiceBinding instance, 500
Service class, 500
service container, 43, 52
Service Container layer, Sun ONE,
724, 725, 727
Service Delivery layer, Sun ONE,
724, 725, 727
service description, WSDL-based,
52, 55
data structure,
245, 251
element, 205, 210
servicegen utility, 62, 91
Service Integration layer, Sun ONE,
724, 725
Index 753
ServiceLifeCycle interface, 458
data structure,
240, 241, 242
service-oriented architecture (SOA),
22
service provider development
application design, 63–64
class diagram, 64
client creation, 92–93
DAO classes, building, 70–78
database tables, creating, 65–70
development environment, setting
up, 65
generating Web services, 91–94
implementing J2EE components, 70
sequence diagram, 64
session bean, building, 85–91
steps, 62–63
testing service provider, 95–98
XML Helper classes, building,
79–84
service requester, 27, 98–101
session bean, 70, 85–91
SetConcept ( ) method, 505
setCredentials ( ) method,
514
setData ( ) method, 648
setEncryptedType ( ) method,
648
setErrorListener ( ) method,
375
setFeature ( ) method, 346
setNamespaceAware ( )
method, 346
setProperties ( ) method, 511
function, 227, 253
setURIResolver ( ) method,
376
setValidating ( ) method, 346
SignatureContext object, 665
element, 652, 653,
655, 659, 665, 666
element, 652,
653, 661
SignatureTest class, 657–662, 666
element, 143,
652
element, 143, 652,
655, 661, 667
Simple Access for XML (SAX)
default handler, creating, 346–348
description, 299, 342–343
features, setting, 346
namespaces, setting, 345–346
processing model, 343
reading and writing XML, 349
sample source code, 350–353
SAX parser, 344–349
validation, setting, 346
Simple Mail Transport Protocol
(SMTP), 134–136
Simple Object Access Protocol
(SOAP)
binding, WSDL, 212–214
communication models, 128–130
components, 46
description, 28, 103–104
emergence of, 105–106
encoding, 109, 118–124
interoperability and, 272–274
JAXM messaging, 305–306
JAX-RPC and, 307–308
limitations, 199
message anatomy
attachments, 109–110, 116–117
envelope, 109, 110–111
Fault element, 112–115
header, 111
mustUnderstand attribute,
115–116
request message, 107
response message, 108
message exchange model, 124–127
message exchange patterns,
138–140
754 Index
Simple Object Access Protocol
(continued)
proxies, 273, 277
security, 140–144
SOAP over BEEP, 137–138
SOAP over HTTP, 131–134, 137
SOAP over HTTP/SSL, 137
SOAP over JMS, 137
SOAP over SMTP, 134–136
specifications, 106
versions, 47, 104
in Web services architecture, 45,
46–47
Web services development using
Apache Axis
Axis infrastructure, 149–154,
161–165
Axis programming model,
154–160
example, 160
implementation of messaging-
based services, 180–198
implementation of RPC-based
services, 174–180
installing Axis, 147–149
service provider environment,
creating, 165–173
service requestor environment,
creating, 173
XML-based protocols, 104
XML message discontinuities, 290
Single Sign-On (SSO), 686, 698–706
Slot class, 501
SMTP (Simple Mail Transport Proto-
col), 134–136
SOA (service-oriented architecture),
22
SOAP. See Simple Object Access
Protocol
soapAction attribute, 150, 213, 290
element, 210, 214
SOAP Attachments API for Java, 306
element, 212–213
element, 213–214
SOAPBodyElement object, 417, 422
SOAPBody object, 290, 409–410,
416–417, 421–422
SOAPConnectionFactory class,
421
SOAPConnection object, 411–412,
418–423, 431
SOAPElement object, 412
SOAP Encoding, 46
SOAPEnvelope object, 46, 108, 110,
410, 412, 416, 421
SOAPFaultElement object, 410
SOAPFault object, 290, 410
SOAPHeaderElement object, 416,
422
SOAPHeader object, 111, 409–410,
416, 421–422
SOAPMessage object, 411, 415,
417–418, 421, 423
SOAP Messaging, 128, 130
element, 213
SOAPPart object, 409, 412, 416
SOAP RPC, 46, 128–130
SOAP Transport, 46
Solaris Operating Environment, 729
SpecificationLink class, 500
SSL (Secure Socket Layer), 137, 628,
631, 632
SSO (Single Sign-On), 686, 698–706
startDocument ( ) method, 347
startElement ( ) method, 348
Structure data type, 120–121
Sun
Cluster software, 729–730
Crimson parser, 339, 342
Keytool utility, 641–643
products, 36
Sun ONE (Open Net Environment)
architecture
product stack, 727–731
service layers, 724–725
Index 755
Solaris Operating Environment,
729
standards and technologies,
725–727
Sun Cluster, 729–730
Sun ONE Application Server, 36,
731
Sun ONE Directory Server, 730
Sun ONE Identity Server, 687,
730–731
Sun ONE Integration Server, 731
Sun ONE Message Queue, 15, 731
Sun ONE Messaging Server, 730
Sun ONE Portal Server, 730
Sun ONE Studio, 215, 728–729
Sun ONE Web Server, 730
description, 36, 37
ebXML, 719–723
Platform for Network Identity, 701
Services on Demand, 715–718,
724–725
vision behind, 715–717
Web applications, 718
Web clients, 723
Web services, 718–723
symmetric algorithms, 624–626
synchronous connections, 513–514
Systinet
products, 36
UDDI Registry, 224, 255–256
WASP, 36, 215–221, 254–255, 688
T
tag, HTML, 314
tag, XML, 309, 314–319, 335
targetNamespace attribute
tcpmon utility, 153–154, 179–180,
198
TemplateGenerator class,
663–664
templates, XSL, 368–369
TLS (Transport Layer Security), 631,
632
data structure, 231,
233–235, 237, 243, 244
data structure,
245, 252
data
structure, 237
data structure, 243
Transformer, JAXP, 340
TransformerFactory class, 340,
342, 374
Transformer Factory Configuration
Error, JAXP, 340
transparency, 9
Transport Layer Security (TLS), 631,
632
Triple-DES standard, 625
trust service provider, 675
Trust Services Integration Kit
(Verisign), 633
trust services providers, 668–670,
678
two-tier architecture model, 6
tag, 152
element, 205, 208, 209
U
UDDIApiInquiry object, 261
UDDIApiPublishing object, 257,
265
UDDI Business Registry (UBR),
223–224
unDeprecateObjects ( )
method, 519
Universal Description, Discovery,
and Integration (UDDI)
categorization, 233–236
data structures, 229–232
description, 29, 222–223
implementations, 254–255
inquiry API functions
find_xx functions, 235–244
get_xx functions, 244–248
search qualifiers, 248–249
TE
AM
FL
Y
Team-Fly®
756 Index
Universal Description, Discovery,
and Integration (UDDI) (continued)
limitations, 269
programming API, 226–229
publishing API functions, 249–253
publishing information to a UDDI
registry, 257–260
registering as Systinet UDDI
registry user, 255–256
registries
business uses of, 225
categorization in, 233–235
deleting information from,
264–268
description, 49
interfaces, 224, 225
private and public, 223
searching information in, 260–264
specifications, 225–226
UBR (UDDI Business Registry),
223
in Web services implementation,
52
in Web services architecture, 46, 49
unmarshalling, 303, 394–395
URIResolver interface, 376
URLEndpoint object, 423, 598
User objects, 502
V
ValidateException message, 395
validate ( ) method, 395
validate service, X-KISS, 676–677
validateSignature ( )
method, 662–663, 666
validation
Document Type Definition,
325–328
DOM and, 357
importance of, 324
JAXB services for, 303
parser configuration for, 346
SAX support for, 343
XML Schema, 328–336
element,
676
Verisign, 630, 656, 668, 671, 675, 688
VersionMismatch attribute, 113
W
WASP (Systinet), 36, 215–221,
254–255, 688
WDDX (Web Distributed Data
Exchange), 105
WebLogic
clientgen utility, 62, 92
database table creation, 65–69
deployment descriptor, 88–89
description, 34–35, 61–62, 215, 254
home page generation, 95–96
servicegen utility, 62, 91
Workshop, 61
Web service deployment descriptor
(WSDD) file, 151–152, 158–159,
176
Web services
architecture
communication models, 50–51
core building blocks, 43–45
design requirements, 43
service-oriented architecture, 41
standards and technologies, 45–50
W3C working group on, 42
benefits, 38, 620
challenges in, 34
characteristics of, 25–26
definition, 22
description, 21–22
emergence of, 20
example scenario, 22–24
implementation steps, 52–53
life cycle, 203–204
motivation for, 24–25
operational model, 26–27
reasons for choosing over Web
applications, 26
Index 757
standards, 28–34, 45–50
strategies, vendor supplied, 37
vendors of software and tools,
34–36
Web Services Choreography Inter-
face (WSCI), 31
Web Services Description Language
(WSDL)
anatomy of definition document,
205, 208–210
Axis support, 152–153
bindings, 211–214
definition creation, 203
display on WebLogic home page,
97–98
example document, 47–48
future of, 221–222
independence of, 204
information contained in defini-
tion, 202–203
instance specific namespace, 208
interoperability and, 273
JAX-RPC service development,
463–464
limitations of, 222
mapping, 474–475
obtaining the WSDL of a Web
service, 277, 284
operation types, 209–212
service description, 52, 55
service requestor client creation,
158
tools, 214–221
versions, 49, 202, 221–222
weather information service sam-
ple code, 205–207
in Web services architecture, 46,
47–49, 203–204
Web Services Interoperability Orga-
nization (WS-I), 291–292
web-services.xml deployment
descriptor, 91
White Mesa, 292
WSCI (Web Services Choreography
Interface), 31
WSDD (Web service deployment
descriptor) file, 151–152, 158–159,
176
WSDL. See Web Services Description
Language
WSDL.exe utility, 277
WSDLJava2 utility, 153, 158
X
X.509 certificate, 653, 654, 664–665,
672
XACML. See XML Access Control
Markup Language
Xalan, 342, 648
X-BULK, 671, 682–684
X-KISS. See XML Key Information
Service Specification
XKMS. See XML Key Management
Specification
X-KRSS. See XML Key Registration
Service Specification
XLANG, 32
XML (Extensible Markup Language)
basics, 314–316
benefits, 19
description, 28
history, 314
HTML compared, 314
namespaces, 322–323
parsing to DOM tree, 647, 648
syntax, 316–322
uses of, 315
validation of documents
Document Type Definition (DTD),
325–328
importance of, 324
XML Schema, 328–336
XML Access Control Markup
Language (XACML), 33, 706–710
758 Index
XML Encryption
decrypting an element, 643–644
definition, 32, 631
description, 630–631
EncryptDecrypt class, 637, 645,
648
encrypting an element, 641–643
EncryptionTest class, 637–641,
642, 643
example of use, 631–632, 633–638
implementation of, 633
key pair generation, 641–642, 643
programming steps for encryption
and decryption, 644–650
SSL/TLS compared, 631, 632
XML Helper class, 70, 79–84,
187–191, 280–283
XML Key Information Service Speci-
fication (X-KISS), 33, 670–677
XML Key Management Specification
(XKMS)
components, 670
description, 32–33, 668–670
implementations, 671
SOAP envelope, 671
usage diagram, 669
W3C Working Group, 670
X-KISS, 670, 671–677
X-KRSS, 670, 677–685
XML Key Registration Service Speci-
fication (X-KRSS), 33, 670,
677–685
XML Metadata Interchange, 105
XMLReader class, 349
XML Schema
attributes, 335–336
definitions, 330–335
description, 328
DTD compared, 328–329
elements, 330–335
interoperability issues, 290
multiple schema, 330
namespace declaration, 329
XML Security Library (Aleksey
Sanin), 633
XML Security Suite (IBM), 633
XMLSerializer API (Xalan), 648
XML Signature
canonicalization, 655–656
description, 33
GenerateValidatesSignature
class, 657–658, 661–663, 666
implementations of, 656
programming steps for generating
and validating, 662–668
SignatureTest class, 657–662,
666
syntax, 652–654
types of signatures, 651–652
Working Group, 631
XPath, 365, 639, 665
xrpcc tool, 456, 459–460, 463–464,
479, 483
XSL (Extensible Stylesheet
Language)
description, 364–366
namespaces, 367
root element, 366
syntax, 368–371
XML declaration, 366
XSLT (Extensible Stylesheet
Language Transformation)
description, 300–301, 372–373
factory and transformer class,
374–376
processing model, 373–374
sample code, 377–383
transforming XML, 376–377
Các file đính kèm theo tài liệu này:
- 4.pdf