When a signed message comes into Oracle B2B using ebMS protocol, the following steps occur:
STEP 1: Verification:
The ebMS protocol itself does the verification by extracting the certificate from the message and uses this certificate to verify the signed message.
STEP 2: Validation
An additional feature of Oracle B2B is to perform another step after STEP1 for validation. Here, the public key in the repository is compared with that of the message. The public in the repository is uploaded while configuring the trading partner.
This feature can be turned off by adding the following property in the tip.properties:
*oracle.tip.adapter.b2b.tpa.verifyCertificate=false*
Further, it is strongly recommended that this additonal feature be turned off (by adding the above property) while working with high performance environments.
Thursday, January 15, 2009
Verification & Vaildation of messages for ebMS in Oracle B2B
Posted by
Suhas P Hiremagalur
at
9:51 AM
0
comments
Labels: EBMS, validation, verification
Friday, December 19, 2008
Agreement Identification in ebMS
TPA Identification details
Following are the various mechanisms with which the agreement would be identified using ebMS protocol.
Outbound scenario:
1) From, To, Document Type and Document Revision: In Oracle AS B2B, it is possible to identify the agreement using these attributes.
2) Service based Identification
If document Type and Document Revision is not present and if the ebMS service is available, which is enqueued using the ACTION attribute, then the ebMS service attribute is used to identify the Document Type and Document Revision and identify the agreement based on step 1.
3) Action based Identification
If document Type and Document Revision is not present and if the ebMS Action is available, which is enqueued using the ACTION attribute, then the ebMS action attribute is used to identify the Document Type and Document Revision and identify the agreement based on step 1.
Inbound Scenario
1) From, To, Document Type and Document Revision: In Oracle AS B2B, it is possible to identify the agreement using these attributes. Since Oracle AS B2B supports custom over ebMS Business protocol, the custom Document Type and Document Revision can be retrieved by applying the Xpath expression on the payload.
2) Action based Identification
If the Business Action matches with the ebMS header Action of the incoming message, then the respective Document Type and Document Revision will be used to identify the agreement based on step 1.
3) CPAId based Identification
The following property in tip.properties, “oracle.tip.adapter.b2b.ebms.IdentifyAgreement.cpaId=true” indicates then the incoming document’s agreement Identification will be based on ebMS header CPAId with the Agreement ID. If this value is set true, then this overrides all the above mechanisms for inbound agreement identification, as this is a global setting.
Posted by
Nandhu
at
3:53 AM
2
comments
Labels: EBMS
Thursday, November 6, 2008
CPP/CPA feature in ebMS
Introduction
Oracle B2B is a critical component of Oracle Fusion middleware which supports various Standard based B2B protocol for Trading Partner Integration. Standards supported by B2B protocols spreads across several Business verticals and involve various Document, Exchange standard (Exchange standard incorporates both Transport, packaging and security protocols).
To support multiple protocols Oracle B2B has a notion of canonical meta data model to accommodate the meta data of various protocols. CPA Import process maps the incoming CPA Specific metadata to Oracle B2B canonical model and the CPA Export process do the reverse of mapping from canonical model to CPA model.
This document talks about the import /export aspect of EBXML metadata, which is captured as Collaboration Protocol Profile CPP and Collaboration protocol Agreement CPA and is widely used in EBXML community.
In ebXML, a Collaboration Protocol Profile (CPP) will describe message exchange capabilities of a party. A Collaboration Protocol Agreement (CPA) will describe the agreement between two parties
The CPP and CPA contains details of transport, messaging, security constrains, and bindings to a Business Process Specification (BPSS) document that contains the definition of the interactions between the two Parties while engaging in a message exchange.
This document explains CPP/CPA features, steps to configure using Oracle AS B2B and the runtime behavior of CPP/CPA.
Salient features:
1. CPA import with selective BPSS specification: This utility provides the option to the user to selectively add the BPSS specification while importing the CPA. One or more BPSS documents can also be imported. This is done by adding all the BPSS documents separated by “;”.
2. Auto Creation of Business Action: This feature automatically creates all the BPSS specification business actions to Oracle AS B2B business actions. This will facilitate the user to create Business Action in bulk.
3. Grouping of Business action into an agreement based on endpoint
This feature combines all the business action pertaining to an endpoint under one agreement.
4. Selective usage of Common Business Actions. This feature helps the user to selectively add the common business actions while importing, depending on the business requirement
We are referring ReceiptAcknowledgement, AcceptanceAcknowledg-ement as Common business action i.e one which can be used in multiple services.
One time definition of Common Business Actions: All the common business actions that are using common schema can be defined only once and gets used/referred to all the other BPSS’s while importing, thereby simplifies the CPP/CPA import.
The definition used for the common business actions like ReceiptAcknowledgement, AcceptanceAcknowledgement will have the common schemas.
6. Auto Import/Export of security details: The required security credentials will be taken from CPP/CPA document to Oracle AS B2B as part of CPA import process, also the security details gets exported from Oracle AS B2B to CPP/CPA,
7. CPA Export of Multiple BPSS files from Oracle AS B2B: This feature exports the Oracle AS B2B specific metadata to CPP/CPA specific metadata .For every Business Action, it creates a corresponding BPSS during export.
8. CPA Export of Multiple CPA files from Oracle AS B2B: This feature allows the multiple CPA export. Typically it creates a different agreement for every CPA based on the Trading partner.
9. Log Level can be configured as Debug or Info or Error.
10. Log files can be of type text or xml.
Pre-requisites:
1 Business knowledge of Custom over ebMS Exchange
2 Knowledge of ebXML 2.0
3 As part of Pre-CPA import steps, it is required to create the Internal Delivery Channels in Oracle B2B, and the same has to be referred in the cppcpa.properties. This gets used in CPA Import steps
User Experience
IMPORTANT: Please take backup of your existing B2B configurations.
Steps to run CPP/CPA Import:
1) Set the environment for Oracle AS B2B by executing the setenv script available at $ORACLE_HOME/ip/install
2) Configure all the necessary import values in the cppcpa.properties located in $ORACLE_HOME/ip/tutorial/.
3) From $ORACLE_HOME/ip/tutorial run the below command
java oracle.tip.adapter.b2b.utility.EBMSUtility <location of cppcpa.properties>
Steps to run CPP/CPA Export:
1) Set the environment for Oracle AS B2B by executing the setenv script available at $ORACLE_HOME/ip/install
2) Configure all the necessary export values in the cppcpa.properties located in $ORACLE_HOME/ip/tutorial/.
3) Make sure the property “oracle.tip.adapter.b2b.ebms.CPADocument” is commented. – This property is used while importing the CPP/CPA to Oracle AS B2B
4) Provide the Host Party Name in “oracle.tip.adapter.b2b.ebms.Host” property.
5) Provide the Host Endpoint URL in “oracle.tip.adapter.b2b.ebms.HostEndPoint” property.
6) From $ORACLE_HOME/ip/tutorial run the below command
java oracle.tip.adapter.b2b.utility.EBMSUtility <location of cppcpa.properties>
Configuration Details:
CPA Import Properties:
1 oracle.tip.adapter.b2b.ebms.BPSSDocument
This property holds the absolute path for BPSS Document. It is an optional property, which will be used to get the BPSS document details to be import into Oracle B2B repository. If the property does not exist then the values will be imported from CPA. Multiple BPSS documents are separated by “;”
2 oracle.tip.adapter.b2b.ebms.CPADocument
This mandatory property will be used to get the absolute path of the CPA document to be import into Oracle B2B repository.
3 oracle.tip.adapter.b2b.ebms.xsdLocation
This optional property will be used to specify the absolute path of the schema file location. This schema file will be used for document validation.
When BPSS document is not specified then it will use for the common definition for all Business Actions.
4 oracle.tip.adapter.b2b.ebms.CertificateDirectory
This is a mandatory property in case of secured message transfer. This directory will be used to store the certificates specified in the CPP/CPA document, which will be used in ebXML secured message transfer.
5 oracle.tip.adapter.b2b.ebms.internalDeliveryChannel.InBound
This mandatory property will be used in Oracle B2B Configuration. Specify the already created inbound internal delivery channel or specify the default inbound internal delivery channels like B2B Inbound or XML Gateway Inbound. The specified channel name MUST be present in Oracle AS B2B before importing the CPP/CPA
6 oracle.tip.adapter.b2b.ebms.internalDeliveryChannel.OutBound
This mandatory property will be used in Oracle B2B Configuration. Specify the already created outbound internal delivery channel or specify the default outbound internal delivery channels like B2B Inbound or XML Gateway Inbound. . The specified channel name MUST be present in Oracle AS B2B before importing the CPP/CPA.
7 oracle.tip.adapter.b2b.ebms.CommonBusinessAction
Add the common business actions separated comma. These are the business actions that are used multiple times in CPA.
E.g.: ReceiptAcknowledgementException, ReceiptAcknowledgement, AcceptanceAcknowledgementException, AcceptanceAcknowledgement. It is an optional property.
In case of CPA import along with BPSS document common business action schema can be defined like below,
#oracle.tip.adapter.b2b.ebms.<Business Action Name>.Definition = <location of xsd>
# e.g. oracle.tip.adapter.b2b.ebms.ReceiptAcknowledgementException.Definition = <location of xsd>
8 Oracle.tip.adapter.b2b.ebms.GroupAgreement
This optional Boolean property will be used to group the business action in an agreement.
CPA Export Properties:
9 oracle.tip.adapter.b2b.ebms.OutputFolder
This mandatory property will be used to place the generated CPP/CPA files in the specified location.
10 oracle.tip.adapter.b2b.ebms.Host
This mandatory property will be used to set the Host Trading Partner.
11 oracle.tip.adapter.b2b.ebms.HostEndPoint
This mandatory property will be used to set the host endpoint while generating the CPP/CPA export.
12 oracle.tip.adapter.b2b.ebms.HostCertificateAlias
In case of secure message transfer, this property will be used to get the host certificate details to the CPP/CPA export.
13 oracle.tip.adapter.b2b.ebms.TPCertificateAlias
In case of secure message transfer, this property will be used to get the trading partner certificate details to the CPP/CPA export.
14 oracle.tip.adapter.b2b.ebms.BPSSExport
This optional Boolean property will be used to generate the BPSS document.
Common Properties:
15 oracle.tip.adapter.b2b.ebms.LogDirectory
This mandatory property will be used to store the log files.
16 oracle.tip.adapter.b2b.ebms.LogLevel
This mandatory property will be used to specify the mode of logs like DEBUG|INFO|ERROR.
17 oracle.tip.adapter.b2b.ebms.LogType
This mandatory property will be used to specify the log file will be stored as text/xml.
Note : More details including configuration settings would be available soon, stay tuned.
Posted by
Nandhu
at
1:51 AM
0
comments
Labels: EBMS
Attachment feature in ebMS using Oracle AS B2B 10g
These steps help in sending attachments in ebMS.
1. Create an xml in UNIX FILE FORMAT. Here is the sample xml file,
<?xml version="1.0" encoding="UTF-8"?>
<Attachments xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AttachmentsDescriptor.xsd" version="1.0" boundary="boundary---">
<AttachmentPart>
<Location>file:///scratch/nansrini/test.pdf</Location>
<Content-Type>
<Top-Level-Type>application</Top-Level-Type>
<Sub-Type>pdf</Sub-Type>
</Content-Type>
</AttachmentPart>
</Attachments>
2. Edit the enq.properties to provide the file name for the "attachment" attribute as the above file(sample xml).
3. Provide directory name in tip.properties for the key "oracle.tip.adapter.b2b.attachments.dir" where the file will be stored in the inbound scenario.
4. Restart the server and enqueue the Message.
5. By Default oracle.tip.adapter.b2b.MimeType accepts only below types,
@ application/xml
@ application/octet-stream
@ application/EDIFACT
@ application/EDI-X12
@ application/jpg
@ image/jpeg
@ application/gzip
@ application/x-gzip
@ application/pkcs7-signature
If you want more options, Then you must modify tip.properties in
$ORACLE_HOME/ip/config directory to include your MimeTypes also, For example,
You want to include pdf attachments, Then your tip.properties would look like,
oracle.tip.adapter.b2b.MimeType=application/xml : application/octet-stream : application/EDIFACT : application/EDI-X12 : application/jpg : image/jpeg :
application/gzip : application/x-gzip : application/pkcs7-signature :
application/pdf
Ensure the above property in single line.
Add a new content type such as application/pdf restart opmn and re-try testcase.
Posted by
Nandhu
at
1:21 AM
2
comments
Labels: EBMS
Wednesday, March 26, 2008
Correllation and Conversation in EMBS
There is a need to set the Following tip.property in implement Correllation and conversation in EBMS.
oracle.tip.adapter.b2b.ebms.deliverConvId=true
oracle.tip.adapter.b2b.ebms.TreatMsgWithReplyToMsgIDAsReq=true
Posted by
Ramesh Nittur
at
4:00 AM
0
comments
Labels: EBMS
Wednesday, March 19, 2008
Ping Pong In EBMS
It is a popular practice in EBMS world to exchange the ping-pong messages to ensure that the remote Messange Handler Service which is essentially a remote trading partner in B2B world is up and functioning well.This is done by sending a PING message and the remote MSH responds it with a PONG message.
A Message Service Handler Ping (MSH Ping) message consists of an ebXML Message containing no ebXML Payload and the following elements in the SOAP Header:
MessageHeader element
TraceHeaderList element
ds:Signature element
The TraceHeaderList and the ds:Signature elements MAY be omitted.
The MessageHeader element MUST contain the following:
a. From element that identifies the Party creating the MSH Ping message
b. To element that identifies the Party that is being sent the MSH Ping message
c. CPAId element
d· ConversationId element
e· Service element that contains: uri:www.ebxml.org/messageService/
f· an Action element that contains Ping
The message is then sent to the To Party.
Once the To Party receives the MSH Ping message, it MAY generate a Message Service Handler Pong (MSH Pong)message consisting of an ebXML Message containing no ebXML Payload and the following elements in the SOAP Header:
MessageHeader element
TraceHeaderList element
An Acknowledgment element
An OPTIONAL ds:Signature element
The TraceHeaderList, Acknowledgment and ds:Signature elements MAY be omitted.
The MessageHeader element MUST contain the following:
a. From element that identifies the creator of the MSH Pong message
b· To element that identifies a Party that generated the MSH Ping message
c· CPAId element
d· ConversationId element
e· Service element that contains the value: uri:www.ebxml.org/messageService/
f· An Action element that contains the value Pong
g· RefToMessageId that identifies the MSH Ping message.
Parties who receive a MSH Ping message SHOULD always respond to the message. However, there is a risk that some parties might use the MSH Ping message to determine the existence of a Message Service Handler as part of a security attack on that MSH. Therefore, recipients of a MSH Ping MAY ignore the message if
they consider that the sender of the message received is unauthorized or part of some attack.The decision process that results in this course of action is implementation dependent.
Implementation of Ping-pong in Oracle B2B.
1. Create a business action and Document Type as Ping.
2. While creating the Document type use the following parameter.
Document Routing ID: "EBMS_PO"
Service: "urn:oasis:names:tc:ebxml-msg:service"
Identification Expression (XPath) for XML Document: "/*[local-name()='Ping']"
3. Create an Agreement after creating Operational Capability corresponding
to Ping.
4. Enque the message with doc type and revision as Ping and 1.0.
5. The responding pong message is found in the wiremessage-report.
Posted by
Ramesh Nittur
at
10:41 PM
0
comments
Labels: EBMS
Wednesday, January 16, 2008
Turn off TPA Validation for Delivery channel Information
This feature is used for re-submission. Assuming the inbound essage has come through AS2/EBMS exchange plugin, which needs to be re-submitted through a File Delivery channel which is encapsulated using a Dummy Agreement. This may not be feasible as B2B performs TPA validation for delivery channel (checking if the delivery channel info on which message arrived is same as the delivery channel
info present in matching trading partner agreement).
In order to turn off this validation, there a tip.property
oracle.tip.adapter.b2b.tpa.validateTPA
If the value of this property is set to false in tip.properties, B2B will not
perform TPA validation
Posted by
Ramesh Nittur
at
3:38 AM
0
comments
Labels: EBMS, Resubmission
Tuesday, December 25, 2007
Identification of Document - Custom Over EBMS
Identification of Document - Custom Over EBMS
Inbound : Ideally Custom Document Plugin identify the document based on Xpath Expression and value. In the EBXML world the identification is based on action name of the incoming document. To provide this flexibility oracle B2B tries to Identify the document, based on the Xpath expression if present, else identify based on the incoming action name.
Outbound : Along with the typical Identification of Agreement based on From, To , DocType and Revision, it can also be Identified based on From,To and Action_Name where the Action_Name has to be mapped against the business Action Name.
actionName=ACTION:
By setting the above AQ (ACTION_NAME for jms) property, TPA identification can be done using business action instead of document type and revision. This is typical use case in ebms
Example :
from = Acme
to = GlobalChips
payload = Acme_850.xml
actionName=ACTION:Process_850
Posted by
Ramesh Nittur
at
9:40 PM
0
comments
Monday, December 24, 2007
Correllation of Business Message in EBMS Exchange
Correllation of Business Message in EBMS Exchange is done using
a. RefToMessageId
b. ConversationId
It is possible to correllate a business message such as ORDER with its response message such as ORDRSP and it is also allowed to correllate as many number of related messages as long as they carry appropriate RefToMessageID and ConversationID.
Back end application such as BPEL can make use of the AQ/JMS header replyToMsgID for setting the correllation information. Format of the replyToMsgID is as follows.
replyToMsgID : RefToMessageId : ConversationId
Example to correllate ORDER and ORDRSP
Let us consider two EBMS setup one for ACME and another for GlobalChips. Following are the sequence of activities which is of interest.
1. Enque an order message to ACME with the value of replyToMsgID as
replyToMsgID = : 999999999
B2B in the Acme side generates its own message id and use 999999999 as Conversation ID.
EBMS header of the business message sent to GlobalChips
a. Do not have RefToMessageID as this is the 1st message
b. MessageID contain the messageID (e.g Acme@222222222) of the ORDER message
c. ConversationID contain 999999999
2. GlobalChips gets the ORDER message (msgid= 444444444) and sends an Acknowledgement with the EBMS header as follows.
a. MsgID of the ACK message
b. RefToMessageID as copied from ORDER message from ACME i.e Acme@222222222
c. ConversationID contain 99999999
3. GlobalChips Enque an ORDRSP message with the value of
replyToMsgID = 444444444 : 999999999
where 444444444 is the messageID of the ORDER message. EBMS header of the ORDRSP
a. MsgID of the ORDRSP message
b. RefToMessageID as copied from ORDER message from ACME i.e Acme@222222222
c. ConversationID contain 99999999
4. Acme to send the Acknowledgement.
As a prerequisite it is required to set the following tip.properties to avail the correllation feature in EBMS Exchange.
oracle.tip.adapter.b2b.ebms.deliverConvId = true
oracle.tip.adapter.b2b.ebms.TreatMsgWithReplyToMsgIDAsReq = true
Please send a mail to ramesh.anantharamaiah@oracle.com for sending the export of the configuration.
Posted by
Ramesh Nittur
at
2:03 AM
0
comments
Labels: EBMS
Wednesday, November 14, 2007
Attachment feature in RosettaNet using Oracle AS B2B 10g
These steps help in sending Text as an attachment in RosettaNet.
1. Create an xml file, which follows the following dtd.
<!ENTITY % common-attributes "id CDATA #IMPLIED" >
<!ELEMENT B2BAttachment (Attachment*)>
<!ELEMENT Attachment (#PCDATA) >
<!ATTLIST Attachment Type CDATA #REQUIRED
ID CDATA #REQUIRED
Encoding CDATA #REQUIRED
Description CDATA #IMPLIED
FileName CDATA #IMPLIED>
2. Save the xml in UNIX FILE FORMAT. Here is the sample xml, which contains 2 attachments
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2005 sp1 U (http://www.xmlspy.com)-->
<B2BAttachment>
<Attachment ID="213123" Type="text/plain" Encoding="none" Description="Description">Sample Text message
</Attachment>
<Attachment ID="215123" Type="text/plain" Encoding="none" Description="Description">Sample Text message another
</Attachment>
<Attachment ID="215123" Type="application/pdf" Encoding="base64" Description="Description" FileName="Form.pdf">file:///C:/Form.pdf
</Attachment>
</B2BAttachment>
3. Edit the enq_3a4_req.properties to provide the file name for the "attachment" attribute
4. Provide directory name in tip.properties for the key "oracle.tip.adapter.b2b.AttachmentInboundDirectory" where the file will be stored in the inbound scenario.
5. Restart the server and enqueue the Message.
6. By Default oracle.tip.adapter.b2b.MimeType accepts only below types,
@ application/xml
@ application/octet-stream
@ application/EDIFACT
@ application/EDI-X12
@ application/jpg
@ image/jpeg
@ application/gzip
@ application/x-gzip
@ application/pkcs7-signature
If you want more options, Then you must modify tip.properties in
$ORACLE_HOME/ip/config directory to include your MimeTypes also, For example,
You want to include pdf attachments, Then your tip.properties would look like,
oracle.tip.adapter.b2b.MimeType=application/xml : application/octet-stream :
application/EDIFACT : application/EDI-X12 : application/jpg : image/jpeg :
application/gzip : application/x-gzip : application/pkcs7-signature :
application/pdf
Add a new content type such as application/pdf restart opmn and re-try testcase.
Posted by
Dheeraj Kumar M
at
11:12 PM
0
comments
Labels: Attachment, EBMS, RosettaNet