Wednesday, September 23, 2020

Steps to change Concreate WSDL into Abstract WSDL


Abstract wsdl:- Used on server side, contains request, response and type of operation performed.

concrete wsdl:- Used on client side, contains abstract wsdl and transport used.

ui:wsdlLocation signifies design time and binding.ws stands for runtime.

So, we need to change the value in ui: wsdlLocation, so that it refers to MDS rather than the deployed component through http. 

our composite will have 2 sections - reference & binding. 

reference will point to abstract WSDL which is what is used while loading composite references during startup.

 Service binding in SOA composite will have the actual concrete WSDL.

Steps:

1. Copy all the dependency WSDL’s and the schemas or the WSDL’s imported from the dependency WSDL to a particular MDS location and change all the import location (Schema and WSDL) in the Abstract WSDL to refer the MDS than deployed location. 

2. Change the import location of dependent WSDL in Composite.xml to the abstract WSDL in MDS.

3. Change the ui: wsdlLocation in composite.xml and the Component files to refer to MDS for the dependent WSDL’s rather than deployed composites through http. 

In the same way change the reference ui: wsdlLocation for the same dependent WSDL in component file (file with the extension .componentType) also.

How to change concreate wsdl into abstract?
Remove port and binding from concrete wsdl
s1: remove port and binding from given concrete wsdl
s2: save it
s3: check in SVN whether same wsdl is exist or not
M:\SVN\COMMON\MDS\apps\xsd\..\xyz.wsdl
s4: if exist take backup and replace with new abstract wsdl.
commit
s5: create soap webservice with given concrete wsdl url, which will create wrapper.wsdl
change location: give mds location : oramds:/apps/xsd/././xyz.wsdl

s6: go to em- soa-infra -rc - adminstraation- MDS Configuration - 
Export- soa-infra_metadata - unzip

s7: create a local folder according to  mds structure: C:\apps\xsd\.\.- xyz.wsdl
zip that apps folder and deploy on MDSConfiguration by import zip apps folder

s8: in composite , give wrapper wsdl location for UI and for binding give mds location

 <reference name="WSAdp_TestService"
             ui:wsdlLocation="WSDLs/TestServiceWrapper.wsdl">
    <interface.wsdl interface="http://www.cenit.net/schemas/cenit/invoice#wsdl.interface(TestService)"/>
    <binding.ws port="http://www.ctest.net/schemas/cenit/invoice#wsdl.endpoint(TestService/BasicHttpBinding_TesrService)"
                location="http://10.00.00.180/SE/c.IntegrationWeb/InvoiceService.svc?singleWsdl" soapVersion="1.1">
      <property name="weblogic.wsee.wsat.transaction.flowOption" type="xs:string" many="false">WSDLDriven</property>
    </binding.ws>
  </reference>


What is the difference between concrete and abstract wsdl?

Concrete

-> It means WSDL has its own endpoint inside it . 

Concrete Description:-

It contains  Abstract WSDL + Bindings and Services

 Bindings: Specifies bindings of each operation in the portType section.

 Services:- Specifies port address of each binding.

Besides the information about how to communicate to the web service,

it the information on where the service exist. 

It has Bindings (Protocol the message should be sent) and Services(has endpoint for each bindings) .

used in client side

Binding and service

Abstract

-> Abstract wisdl is a wsdl which do not have endpoint uri or location of wsdl .

It has information about how to communicate to the web service like types (Schema), 

Message (input and output messages service accepts) ,

Operations (operation that can be performed on this service) and port Type.

Used in server side

Reusable

No binding details (binding & service) 

Type, message, port type defined 

WSDL is divided into Abstract and Physical (concrete) portions

-> Abstract:(what it provides)

<definations>

 <types>   </types>      //Data type definitions

 <message>   </message>  //Definition of data being communicated / (Input are separate from outputs) 

 <operation>   </operation>  //operations (messages)

       <porttype>   </porttype>  // set of operations / Refers to message definitions in messages section that describe function signatures(Operation name, Input parameters, Output parameters).

Concrete/Physical : how to consume it

 <binding> </binding>     // Protocol of data format specification

                                        //Specifies bindings of each operation in the portType section.

<service>  </service>    // url to access WS /Specifies port address of each binding.

</definations>

Concrete wsdl: how to consume it.(if you want to expose your service to source system )






No comments:

Post a Comment

SOA Overview Part-1

  Middleware It provides a mechanism for the process to interact with other processes running on multiple network machines. Advantages...