semi合集-English.pdf - 第3285页

SEMI E128-0304 © SEMI 2003, 2004 19 Received HTTP POST: POST getCounter HTTP/1.1 Host: localhost:9000 Content-Type: application/soap+xml; charset="utf-8" Content-Length: 416 SOAPAction: getCounter <Envelope&…

100%1 / 7923
SEMI E128-0304 © SEMI 2003, 2004 18
constrained to a single session context, and can be separated in time. There is no “blocking” on pending replies.
This model lends itself better to clients or servers that deal with many messaging partners at a time, while still
needing to act on common data.
R2-2.3 In the HTTP/SOAP transport example, each of the messages in the sample scenario will be sent with an
HTTP Post operation. Every message will include an XML document containing a SOAP envelope and the
MessageHeader specified in this standard. The message body will contain the application specific elements that
communicate the content of each message.
R2-2.4 The elements of the MessageHeader contain data that is used to construct the appropriate HTTP message
and to populate the properties of the SOAP message. Specifically, the destination URL for each message appears in
the To attribute of the MessageHeader. The From attribute contains the URL of the sender of each message. The
SOAPAction HTTP header replicates the Action element in the transport specific header attribute.
R2-2.5 This example (and the ones that follow) include both the HTTP properties and the XML message from the
client perspective. The request message shown in Figure R2-2 illustrates the HTTP transport form of the message.
Sending HTTP POST:
POST getCounter HTTP/1.1
Host: localhost:9001
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: 369
SOAPAction: getCounter
<Envelope>
<Header>
<MessageHeader>
<From>localhost:9001</From>
<To>localhost:9000</To>
<MessageType>REQUEST</MessageType>
<RequestId>1</RequestId>
<Action>getCounter</Action>
</MessageHeader>
</Header>
<Body />
</Envelope>
Figure R2-2
Example HTTP Post Request Message
R2-2.6 The reply message in Figure R2-3 follows the same pattern, with the TO header element reflected in the
HTTP Post and the SOAPAction mapping to the MessageHeader Action element. In this example, the same Action
value is echoed back with the reply message.
SEMI E128-0304 © SEMI 2003, 2004 19
Received HTTP POST:
POST getCounter HTTP/1.1
Host: localhost:9000
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: 416
SOAPAction: getCounter
<Envelope>
<Header>
<MessageHeader>
<From>localhost:9000</From>
<To>localhost:9001</To>
<MessageType>REPLY</MessageType>
<CorrelationId>1</CorrelationId>
<Action>getCounter</Action>
</MessageHeader>
</Header>
<Body>
<counter>0</counter>
</Body>
</Envelope>
Figure R2-3
Example HTTP Post Reply Message
R2-3 Java Message Service
R2-3.1 The Java Message Service example is based on the same example application, but with a JMS
implementation. This example shows how message-oriented middleware can be used to provide persistent and
guaranteed messaging, without changing application code. All transport-specific messaging is confined to the Java
classes that implement the example. Application code is only exposed to the XML messaging transport interface
and the XML Envelope specification.
SEMI E128-0304 © SEMI 2003, 2004 20
R2-3.2 The JMS header properties illustrated below show how the XML messaging elements are mapped to JMS.
Figure R2-4 shows the headers for the request and the reply message as they map to the JMS header properties.
============================================
Sending JMS Message:
JMS Header Property: To=myServer
JMS Header Property: Action=getCounter
JMS Header Property: From=myClient
JMS Header Property: RequestId=1
JMS Header Property: MessageType=REQUEST
JMS Message Body: <Body />
COMMAND:
============================================
Receiving JMS Message:
JMS Header Property: To=myClient
JMS Header Property: CorrelationId=1
JMS Header Property: Action=getCounter
JMS Header Property: From=myServer
JMS Header Property: MessageType=REPLY
JMS Message Body: <Body>
<counter>0</counter>
</Body>
===============================================
Message received:
<Envelope>
<Header>
<MessageHeader>
<To>myClient</To>
<CorrelationId>1</CorrelationId>
<Action>getCounter</Action>
<From>myServer</From>
<MessageType>REPLY</MessageType>
</MessageHeader>
</Header>
<Body>
<counter>0</counter>
</Body>
</Envelope>
Figure R2-4
Example JMS Message
NOTICE: SEMI makes no warranties or representations as to the suitability of the standards set forth herein for any
particular application. The determination of the suitability of the standard is solely the responsibility of the user.
Users are cautioned to refer to manufacturer’s instructions, product labels, product data sheets, and other relevant
literature, respecting any materials or equipment mentioned herein. These standards are subject to change without
notice.
By publication of this standard, Semiconductor Equipment and Materials International (SEMI) takes no position
respecting the validity of any patent rights or copyrights asserted in connection with any items mentioned in this
standard. Users of this standard are expressly advised that determination of any such patent rights or copyrights, and
the risk of infringement of such rights are entirely their own responsibility.
Copyright by SEMI® (Semiconductor Equipment and Materials
International), 3081 Zanker Road, San Jose, CA 95134. Reproduction o
f
the contents in whole or in part is forbidden without express written
consent of SEMI.