Hi all,

I've done the initial implementation of the AS4 connector with the
following configuration.

*AS4 send operation configuration*

send operation will convert the incoming soap messages to AS4 compliant
soap messages.

         <as4.send>
            <pmode>http://wso2.org/examples/agreement0</pmode>
         </as4.send>

*          pmode* - P-Mode agreement being referred.


*AS4 receive operation configuration*

receive operation will accept the AS4 message with payloads and save the
payloads inside the dataIn folder given in the configuration.

         <as4.receive>
            <dataIn>as4DataIn</dataIn>
         </as4.receive>

*         dataIn* - Folder location where the incoming AS4 payloads are
saved to.

The incoming message to the AS4 send connector can be one of the following.

   - SOAP message with attachments
   - SOAP message with payload in the body. Refer [1] for a sample AS4
   payload contained in the soap body.

Here is a complete AS4 sending proxy configuration and AS4 receiving proxy
configuration.

*AS4 message sending proxy configuration*

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse";
       name="AS4SenderProxy"
       transports="http https"
       startOnLoad="true">
   <description/>
   <target>
      <inSequence>
         <log/>
         <as4.send>
            <pmode>http://wso2.org/examples/agreement0</pmode>
         </as4.send>
         <call>
            <endpoint>
               <address uri="http://localhost:8281/services/AS4ReceiverProxy
"/>
            </endpoint>
         </call>
         <respond/>
      </inSequence>
      <outSequence>
         <log/>
      </outSequence>
   </target>
</proxy>

*AS4 message receiving proxy configuration*

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse";
       name="AS4ReceiverProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <log/>
         <as4.receive>
            <dataIn>as4DataIn</dataIn>
         </as4.receive>
         <respond/>
      </inSequence>
      <outSequence/>
   </target>
   <description/>
</proxy>

Feedback on the above would be highly appreciated.

[1] According to the specification, soap body can contain at most one
payload. Ex:

    <S12:Body xmlns:S12="http://www.w3.org/2003/05/soap-envelope";

              xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-2004
01-wss-wssecurity-utility-1.0.xsd"

              wsu:Id="_f8aa8b55-b31c-4364-94d0-3615ca65aa40" >

        <CrossIndustryInvoice xmlns="urn:un:unece:uncefact:d
ata:standard:CrossIndustryInvoice:2">

            <!-- content omitted -->

        </CrossIndustryInvoice>

    </S12:Body>

Thanks,
Manorama

On Thu, Jul 13, 2017 at 3:14 PM, Manorama Perera <manor...@wso2.com> wrote:

> Hi,
>
> AS4 Profile of ebMS 3.0 Version 1.0[1] defines 3 conformance profiles. For
> the initial phase, we are going to implement AS4 Minimal Client Conformance
> Profile.
>
> The transport protocol used in AS4 messaging is HTTP. Hence there's no
> need of introducing AS4 as a new transport.
>
> Considering the features included in the other conformance profiles in[1],
> such as WS-Security, we are going to introduce AS4 support as a Connector
> implementation, so that we can include other required features which are
> described in the remaining two conformance profiles.
>
> [1] http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/profiles/
> AS4-profile/v1.0/cs03/AS4-profile-v1.0-cs03.html
>
> Thanks,
> Manorama
>
> On Tue, Jul 4, 2017 at 2:04 PM, Manorama Perera <manor...@wso2.com> wrote:
>
>>
>>
>> On Wed, Jun 28, 2017 at 4:49 PM, Manorama Perera <manor...@wso2.com>
>> wrote:
>>
>>> Hi all,
>>>
>>> AS4 is a messaging standard which represents an open standard for
>>> exchanging of Business-to-business documents using Web services.
>>>
>>> *AS4 Messaging Model*
>>>
>>> AS4 messaging model defines the following entities.
>>>
>>> *Message Producer*: Business application which sends the message
>>> content to the sending Message Service Handler(MSH).
>>>
>>> *Sending Message Service Handler*: Packages the message content and
>>> sends to the intended receiving MSH.
>>>
>>> *Receiving Message Service Handler*: Receive the message from the
>>> sending MSH.
>>>
>>> *Message Consumer*: The business application which receives the message
>>> content from receiving MSH.
>>>
>>> *P-Mode Parameters*: Message sending and receiving operations are
>>> governed by P-Mode configuration. These are configured in sending and
>>> receiving MSHs.
>>>
>>>
>>>
>>> ​
>>> The current implementation details of AS4 custom mediator[2] is as
>>> follows.
>>>
>>>    - This is in conformance with AS4 Profile of ebMS 3.0 Version 1.0[1].
>>>    - The current AS4 implementation only supports features as stated in
>>>    the Access Point Implementation Guide (attached).
>>>    - One-way / Push  Message Exchange Patterns (MEPs) is supported.
>>>    - Only the *required* P-Mode Parameters are supported (According to
>>>    [1]).
>>>
>>>
>>> *Supported P-Mode Parameters*
>>>
>>>
>>> PMode Parameter
>>>
>>> Supported or not
>>>
>>> PMode.ID
>>>
>>> true
>>>
>>> PMode.Agreement
>>>
>>> true
>>>
>>> PMode.MEP
>>>
>>> true
>>>
>>> PMode.MEPbinding
>>>
>>> true
>>>
>>> PMode.Initiator.Party
>>>
>>> true
>>>
>>> PMode.Initiator.Role
>>>
>>> true
>>>
>>> PMode.Initiator.Authorization.username
>>>
>>> false
>>>
>>> PMode.Initiator.Authorization.password
>>>
>>> false
>>>
>>> PMode.Responder.Party
>>>
>>> true
>>>
>>> PMode.Responder.Role
>>>
>>> true
>>>
>>> PMode.Responder.Authorization.username
>>>
>>> false
>>>
>>> PMode.Responder.Authorization.password
>>>
>>> false
>>>
>>> PMode.Protocol.Address
>>>
>>> true
>>>
>>> PMode.Protocol.SOAPVersion
>>>
>>> true
>>>
>>> PMode.BusinessInfo.Service
>>>
>>> true
>>>
>>> PMode.BusinessInfo.Action
>>>
>>> true
>>>
>>> PMode.BusinessInfo.Properties[]
>>>
>>> false
>>>
>>> PMode.BusinessInfo.PayloadProfile[]
>>>
>>> false
>>>
>>> PMode.BusinessInfo.PayloadProfile.maxSize
>>>
>>> false
>>>
>>> PMode.ErrorHandling.Report.SenderErrorsTo
>>>
>>> false
>>>
>>> PMode.ErrorHandling.Report.ReceiverErrorsTo
>>>
>>> false
>>>
>>> PMode.ErrorHandling.Report.AsResponse
>>>
>>> true
>>>
>>> PMode.ErrorHandling.Report.ProcessErrorNotifyConsumer
>>>
>>> false
>>>
>>> PMode.ErrorHandling.Report.ProcessErrorNotifyProducer
>>>
>>> true
>>>
>>> PMode.ErrorHandling.Report.DeliveryFailuresNotifyProducer
>>>
>>> true
>>>
>>> PMode.Security.WSSVersion
>>>
>>> false
>>>
>>> PMode.Security.X509.Sign
>>>
>>> false
>>>
>>> PMode.Security. X509.Encryption
>>>
>>> false
>>>
>>> PMode.Security.UsernameToken
>>>
>>> false
>>>
>>> PMode.Security.PModeAuthorize
>>>
>>> false
>>>
>>> PMode.Security.SendReceipt
>>>
>>> true
>>>
>>> PMode.Security.SendReceipt.NonRepudiation
>>>
>>> false
>>>
>>> PMode.PayloadService.CompressionType
>>>
>>> true
>>>
>>> PMode.ReceptionAwareness
>>>
>>> true
>>>
>>> PMode.ReceptionAwareness.Retry.Parameters
>>>
>>> true
>>>
>>> AS4 support in EI, will be introduced as a separate transport.
>>>
>>> [1] http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/profiles/
>>> AS4-profile/v1.0/os/AS4-profile-v1.0-os.html
>>> [2] https://github.com/manoramahp/org.wso2.carbon.mediator.as4
>>>
>>> Thanks,
>>> Manorama
>>> --
>>> Manorama Perera
>>> Software Engineer
>>> WSO2, Inc.;  http://wso2.com/
>>>
>>
>>
>>
>> --
>> Manorama Perera
>> Software Engineer
>> WSO2, Inc.;  http://wso2.com/
>>
>
>
>
> --
> Manorama Perera
> Software Engineer
> WSO2, Inc.;  http://wso2.com/
>



-- 
Manorama Perera
Software Engineer
WSO2, Inc.;  http://wso2.com/
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to