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:
- 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
Belongs To links and those that follow (Internal links) are created during this initial phase:
- Port == Hi ==> Port Type (i)
- Port == U ==> Operation (ii)
- 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?
- 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.
- 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">
</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">
</portType> <binding name="ServerSoapBinding" type="wsdlns:ServerSoapPort">
</binding> <service name="CodaServices">
</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 >
</deployment >
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 >
</webservices-impl> |