Web Services (VB) Reference Guide


This document provides some more detailed information about the objects and links that are stored in the Analysis Service. Other technical information may also be available.

How does CAST handle Web Services?

CAST supports those implementing Web Services throughout their set of applications via as follows:

  1. Store (in the Analysis Service) objects that represent the description of Web Services using only the contents of WSDL files.

    These objects include:
    • A "WSDL File" object that represents the selected WSDL file and that corresponds to the root node of the file tree of other Web Services objects stored in the Analysis Service.
    • One or more Web Services objects
    • One of more Port objects - children of the Web Service objects
    • One or more Port Type objects - children of the WSDL file
    • One or more Operation objects - children of the Port Type objects  
    There is no correlation between the language used to implement the Web Services and the objects stored in the Analysis Service.

    Belongs To links and those that follow (Internal links) are created during this initial phase:

    • Port == Hi ==> Port Type  (i)
    • Port == U ==> Operation  (ii)
  2. Resolve and create implementation links (External links) for the Web Services components stored in the Analysis Service The link type created is the same for all implementations and should be as follows:
    • Port Type == P ==> Objet1 (iii)
    • Operation == P ==> Objet2 (iv)

How are these objects and links constructed?

  1. Objects (Phase 1): Objects result from the analysis of the WSDL files. During this analysis, only the "local names" are taken into account and the files must conform to WSDL 1.1 specifications.

    The internal link Inherit-Implement (i) is created via a Binding object (represented in the Graphical View but not stored in the Analysis Service) that associates the port with a Port Type as follows:

    Port > Binding > Port Type The association Port > Binding is specified in the value of the binding attribute in the tag <port> that declares the Port. This value is a reference in the form prefix:name - the part in bold (prefix) is optional and variable. Only the name is taken into account for the resolution of the corresponding Binding.

    The second association is also specified in a similar way, but instead via the value of the type attribute in the <binding> element that declares the Binding. The format is identical and only the name is taken into account in the resolution of the Port Type.

    The internal link Use (ii) results from the Belongs To link between the Operations and the Port Type. However, for each Operation under the Port Type that was found in the first phase, a Prototype link will be created from the Port.

  2. External Links (Phase 2): The external links go from the web service objects to the objects of the implementation language (VB, Java etc.)

    These links are created on the basis of the correspondence files. These files are, generally, XML files but their format differs from one language to another. As a result, the Web Services Asst. needs to already know the format of these files in their different versions for all the supported languages and thus support of new languages would normally require the revision of the Web Services Asst. code. In order to work around this constraint, a format that is unique to the Web Services Asst. has been developed: an XSLT file is used to transform these files from their proprietary format into the format used by the Web Services Assistant. In order to do this, the Asst. requires the mapping files to actually transform and the XSLT files to do the transforming. Together these elements are known as Mapping File Profiles to which two labels can be associated (language name and a succinct description of the format of the mapping files) - these two labels are used for identification and selection of the Profile (see WSDL Environment Profiles for more information).
Environment Profiles

Support for Web Services is provided through the CAST Environment Profile feature.

Mapping Files

In the case of VB the mapping files coincide with the WSDL files. However, their format does not specify a PortType > Language object mapping. The only mappings actually specified are:

  • Operation > VB Function

These elements can be found in the value of the soapAction attribute in the tag binding/operation/XXX:operation where XXX: is a variable and optional prefix (soap, wsdlSoap etc.).

  • For VB, this value is a URL whose last component is a VB function. During the transformation process, only this part is taken into account.

In order to function correctly, the Web Services Asst. requires the following information:

  • Name of the WSDL file containing the components to be mapped.
  • For each correspondence:
    • WSDL component name (Port Type, Operation)
    • Name (qualified name for classes) of the object that implements the component (Java class/method, VB function, TIBCO process etc.).
    • Object type (KeysClass value within the Keys table in the knowledge base). A list of VB and Java object types and their object type number is shown below:
      VB Class Module 4050
      VB Const 4110
      VB Control 4100
      VB Designer Files 4090
      VB Enum 4150
      VB External Function 4240
      VB External Sub 4250
      VB Form 4020
      VB Function 4170
      VB MDI Form 4030
      VB Module 4040
      VB Project ActiveX DLL 4290
      VB Project ActiveX EXE 4290
      VB Project Exe 4010
      VB Project Group 4000
      VB Project OCX 4290
      VB Property Get 4210
      VB Property Let 4220
      VB Property Page 4070
      VB Property Set 4230
      VB Sub 4180
      VB Type 4130
      VB User Control 4060
      VB User Document 4080
      VB Variable 4120

This information is thus extracted from the mapping files during the transformation process.

  • For VB where the mapping file is the WSDL file, its name is passed as a parameter for transformation via a temporary file (module-dir.XML).

Please note that the Port Type names appear under the element <service> with the attribute name.

The search for external objects (those specific to each language) follows the Dependency Rules defined in the Dependencies tab - only those objects associated with the project currently being analyzed must be selected.

Please note that:

  • The analyses that create the external objects must have already been executed.
Object Types

Objects detected by the analyzer are summarized in the following table:

Icon Object Type
WBS Project
Wsdl File
Wsdl Service
Wsdl Port
Wsdl Port Type
Wsdl Operation
Link Types

The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:

Link Type When is this type of link created? Example
Inherit +  Implement This link is created when a port xml element is found within a service element and the corresponding binding and Port Type found in a WSDL file.

Caller is the Port

Callee is the Port Type

<portType name="ServerSoapPort">

...

</portType>

<binding name="ServerSoapBinding" type="wsdlns:ServerSoapPort">

...

</binding>

<service name="CodaServices">

<port name="ServerSoapPort" binding="wsdlns:ServerSoapBinding">

<soap:address location="http://demeter:80/TestDCom/CodaServices.WSDL"/>

</port>

</service>

Use This link is created for each Operation xml element within a Port Type when this one is linked to a Port.

The caller is a Port

The callee is an Operation

<portType name="ServerSoapPort">

<operation name="ProcessAccount" parameterOrder="objAccount">

</operation>

</portType>

<binding name="ServerSoapBinding" type="wsdlns:ServerSoapPort">

...

</binding>

<service name="CodaServices">

<port name="ServerSoapPort" binding="wsdlns:ServerSoapBinding">

<soap:address location="http://demeter:80/TestDCom/CodaServices.WSDL"/>

</port>

</service>

Prototype This link is traced toward service implementation objects and for each portTypeImpl and operationImpl elements as specified in the generated file resulting from language specific mapping files.

The Caller is a Port Type or an Operation

The Callee is searched for among objects selected in the objects browser and is of the type specified in the generated file (cwClassId xml element). See KeyClass in the Keys Table in the Knowledge Base.

WSDD deployment descriptor

<deployment >

<service name="AdminService" provider="java:MSG">

<parameter name="allowedMethods" value="AdminService"/>

<parameter name="enableRemoteAdmin" value="false"/>

<parameter name="className" value="org.apache.axis.utils.Admin"/>

</service>

</deployment >

Transformed into:

Generated file (if keepGeneratedFiles=yes is added under the [WBSAssistant] section in the GloballySharedSettings.ini file, generated files are kept in the %temp%\Cast Temporary Files folder)

<webservices-impl >

<serviceImpl name="" wsdlFile="">

<portTypeImpl name="AdminService" implClassFQName="org.apache.axis.utils.Admin">

<cwClassId>5040</cwClassId> // 5040 corresponds to a Java Class

</portTypeImpl>

</serviceImpl>

</webservices-impl>


CAST Website