SABLE Model Servers Web Service Specifications (The 'Low' Level API): RPC style Service |
| Authors: |
Patrick Houbaux (Eurostep) Tero Hemio (Eurostep) |
| Reference: |
SABLE-MSWS-RPC |
| Status: |
First proposal (16th Dec. 2003) Last update (26th, Aug. 2004) |
| Version: | 1.5 |
| Reviewers: | Yoshinobu Adachi (SECOM) Istvan David (Eurostep) Are Meisfjord (Selvaag) Janos Maros (Graphisoft) Kaj A. Joergensen (Aalborg University) |
| Changes history: | Version 1.0: Initial document Version 1.1: Fixing issues: #19, #20, #21, #22 Version 1.2: Fixing issues: #26, #27, #28, #29, #31, #32, #33, #34, #35, #37, #39 Version 1.3: Fixing issues: #53 Version 1.4: Fixing issues: #55, #56, #57, #62, #66 Version 1.5: Fixing issues: #68 |
| Name | SABLE.MSWS.RPC |
| Target Namespace | urn:rpc.msws.webservices.sable.blis_project.org |
| Used Namespaces | xs = http://www.w3.org/2001/XMLSchema sable.msws.rpc = urn:rpc.msws.webservices.sable.blis_project.org sable.msws.rpc.datatypes = urn:datatypes.rpc.msws.webservices.sable.blis_project.org sable.msws.rpc.fault = urn:fault.rpc.msws.webservices.sable.blis_project.org |
| Schema | Namespace |
|---|---|
| Exchange Object Model | urn:datatypes.rpc.msws.webservices.sable.blis_project.org |
| Faults Model | urn:fault.rpc.msws.webservices.sable.blis_project.org |
Data Types The following object model is made and optimized for transferring any information from Model servers to clients (SABLE server or end user application) via SOAP/RPC.
It has been specifically designed to transfer any information of any EXPRESS based data persistent on Model Servers.
The class hierarchy of this object model is the following:
This data model is used to transport any information coming from the model servers through the response and request of the following web service methods but also the following concepts that are not on the level of Product Data Information but on the level of general information. These "general information" concepts can be represented in EXPRESS as follows:
SABLEModelServer
(* Concepts for representing Meta Information on the model server *) ENTITY SABLEModelServer; name : STRING; (* The name of the model server *) provider : STRING; (* The provider of the model server *) description : STRING; (* a description of this model server *) sessionLess : BOOLEAN; (* Allows to know if the Model Server is using session or not for authentication *) usingHTTPSession : BOOLEAN; (* Allows to know if the session is an HTTP Session *) usingSOAPAuthentication : BOOLEAN; (* Allows to know if the Model Server is using SOAP Authentication mecanism for authentication of users *) sableWSLocation : STRING; (* The root location for all SABLE web services on this server *) END_ENTITY;SABLEProject
ENTITY SABLEProject; name : STRING; models : LIST OF SABLEModel; END_ENTITY;SABLEModel
ENTITY SABLEModel; name : STRING; schemaName : STRING; END_ENTITY;
Method Detail xs:string getVersion()
This method allows to access to the deployed version number of this web service.
Returns:
A string describing the deployed version number of this web service.
sable.msws.rpc.datatypes:SABLEInstanceValue getModelServerInfo()
This method allows to access to the meta data information of the hosting server.
Returns:
An instance of SABLEInstanceValue representing a SABLEModelServer.
login(xs:string userId, xs:string passwd)
This method allows to open a "session" on the model server.
Parameters:
userId: the user name
passwd: the password of the user.Faults:
In case the login to the model server failed, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidLoginException.
logout()
This method allows to close the session from the model server for the current user.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type:sable.msws.rpc.fault.SABLENoSessionOpenException
- In case the logout procedure failed, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLELogoutException
sable.msws.rpc.datatypes:SABLEInstanceRef[] getProjectList()
This method allows to list the available projects on the model server.
Returns:
An array of instances of SABLEInstanceRef, each of the items representing a SABLEProject.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException.
sable.msws.rpc.datatypes:SABLEInstanceRef[] getModelList()
This method allows to list the available models for the current selected project (c.f. setWorkingProject).
Returns:
An array of instances of SABLEInstanceRef representing a list of SABLEModel.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException.
- In case no project was previously selected, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoProjectSelectedException
sable.msws.rpc.datatypes:SABLEInstanceRef setWorkingProject(xs:string projectURL)
This method allows to activate the project to work with.
Parameters:
projectURL: the URL of the project to activate.
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceRef representing an handler on the working project and containing meta information on the project.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case the given project ID is not existing, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidProjectURLException.
sable.msws.rpc.datatypes:SABLEInstanceRef setWorkingModel(xs:string modelURL)
This method allows to activate the project to work with.
Parameters:
modelURL: the URL of the model to activate.
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceRef representing an handler on the working model and containing meta information on the model.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no project was previously activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoProjectSelectedException
- In case the given model URL is not existing, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidModelURLException.
xs:string getCurrentModelURL()
This method allows to get URL to the current activated model.
Returns:
The URL to the current activated model.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
sable.msws.rpc.datatypes:SABLEInstanceValue getInstanceByURL(xs:string instanceURL)
This method allows to get an instance located at the given URL.
Parameters:
instanceURL: the location of the instance to get
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceValue representing the instance of the requested object.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
- In case the given URL is not valid, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidInstanceURLException
sable.msws.rpc.datatypes:SABLEInstanceRef getReferenceByURL(xs:string instanceURL)
This method allows to get a reference to an instance located at the given URL.
Parameters:
instanceURL: the location of the instance to get the reference for
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceRef representing the reference to the instance of the requested object.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
- In case the given URL is not valid, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidInstanceURLException
sable.msws.rpc.datatypes:SABLEInstanceRef[] getReferenceListByType(xs:string instanceType)
This method allows to get a list of references to objects of the given type.
Parameters:
instanceType: The type of the requested references.
Returns:
An array of sable.msws.rpc.datatypes:SABLEInstanceRef representing references to the requested objects.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
- In case the given type is not valid, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidTypeException
sable.msws.rpc.datatypes:SABLEInstanceValue[] getInstanceListByType(xs:string instanceType)
This method allows to get a list of direct instances for the given type.
Parameters:
instanceType: The datatype of the requested instances.
Returns:
An array of sable.msws.rpc.datatypes:SABLEInstanceValue representing the list of instances of the requested instances.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
- In case the given type is not valid, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidTypeException
sable.msws.rpc.datatypes:SABLEInstanceRef[] getReferenceListByURLs(xs:string[] instanceURLs)
This method allows to get a list of references to objects with the given URLs.
Parameters:
instanceURLS: The array of intanceURL for the requested references.
Returns:
An array of sable.msws.rpc.datatypes:SABLEInstanceRef representing references to the requested objects.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
- In case the given URL is not valid, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidInstanceURLException
sable.msws.rpc.datatypes:SABLEInstanceValue[] getInstanceListByURLs(xs:string[] instanceURLs)
This method allows to get a list of instances located at the given URLs.
Parameters:
instanceURLs: The array of instanceURL representing the location of the instances to get
Returns:
An array of instances of sable.msws.rpc.datatypes:SABLEInstanceValue representing the instances of the requested objects.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
- In case the given URL is not valid, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidInstanceURLException
sable.msws.rpc.datatypes:SABLEInstanceRef createProject(xs:string projectName)
This method allows to create an empty project on the model server.
Parameters:
projectName: the name of the project to be created.
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceRef representing a SABLEProject instance for the created project.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case a project with the same name is already existing on the model server, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEDuplicateProjectNameException
sable.msws.rpc.datatypes:SABLEInstanceRef createModel(xs:string modelName)
This method allows to create an empty model on the model server, in the current working project.
Parameters:
modelName: The name of the model to be created
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceRef representing a SABLEModel instance for the created project.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no project was previously activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoProjectSelectedException
- In case a model with the same name is already existing on the model server for the current working project, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEDuplicateModelNameException
sable.msws.rpc.datatypes:SABLEInstanceRef deleteProject(xs:string projectURL)
This method allows to delete a project and all its associated models from the model server.
Parameters:
projectURL: The URL identifying the project to delete.
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceRef representing the deleted SABLEProject.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case the given project URL does not match with any project, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidProjectURLException
sable.msws.rpc.datatypes:SABLEInstanceRef deleteModel(xs:string modelURL)
This method allows to delete a model in the current working project.
Parameters:
modelURL: The URL identifying the model to delete
Returns:
An instance of sable.msws.rpc.datatypes:SABLEInstanceRef representing the deleted SABLEModel.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no project was previously activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoProjectSelectedException
- In case the given model URL does not match with any model for the current working project, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLEInvalidModelURLException
sable.msws.rpc.datatypes:SABLEInstanceRef[] updateModel(sable.msws.rpc.datatypes:SABLEInstance[] partialModel)
This method allows to update the working model according to the given array of sable.msws.rpc.datatypes:SABLEInstance representing a partial model.
The server analysis the content of the given array and will:- create new instances for the instances given in the partial model for which the status is set to "new"
- delete instances, represented as sable.msws.rpc.datatypes:SABLEInstanceRef and for which the status is set to "deleted"
- update the instances given in the partial model for which the status is set to "updated"Parameters:
partialModel: An array of sable.msws.rpc.datatypes:SABLEInstance representing the partial model to upload to the current working model.
Returns:
An array of instances of sable.msws.rpc.datatypes:SABLEInstanceRef containing:
- references to the newly created instances on the Product Model Server, mainly to get the instanceURL of the new instances.
- references to updated and deleted instances, mainly to check if everything went ok during the process.Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
downloadModelAsP21()
This method allows to get the current working model to the ISO10303-p21 format.
The data will be always contained in a zip file in the SOAP attachments with the DIME encoding type of the SOAP response message.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
xsd:string uploadModelAsP21(xs:string modelName)
This method puts a new model on the server. It allows to create a new model in the current working project according to the ISO10303-p21 zipped file situated in the SOAP attachment with DIME type encoding of the request message.
Parameters:
modelName: the name of the model to give to the created model
Returns:
A string containing some log information.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no project was previously activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoProjectSelectedException
downloadModelAsXML()
This method allows to get the current working model to the ifcXML (?) format.
The file will be always transferred via SOAP attachments with the DIME encoding type.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no model is currently activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoModelSelectedException
xsd:string uploadModelAsXML(xs:string modelName)
This method puts a new model on the server. It allows to create a new model in the current working project according to the IfcXML(?) file situated in the SOAP attachment with DIME type encoding of the request message.
Parameters:
modelName: the name of the model to give to the created model
Returns:
A string containing some log information.
Faults:
- In case the user is not signed in, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoSessionOpenException
- In case no project was previously activated, returns a SOAP fault message of type: sable.msws.rpc.fault.SABLENoProjectSelectedException
Copyright © 2002-2004, BLIS-Project [BLIS Registered Organization].