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

 


Data Types

Exchange Object Model

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

getVersion

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.


getModelServerInfo

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

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

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

 


getProjectList

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.

 


getModelList

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

 


setWorkingProject

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.

 


setWorkingModel

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.

 


getCurrentModelURL

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

 


getInstanceByURL

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

 


getReferenceByURL

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

 


getReferenceListByType

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

 


getInstanceListByType

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

 


getReferenceListByURLs

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

 


getInstanceListByURLs

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

 


createProject

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

 


createModel

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

 


deleteProject

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

 


deleteModel

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

 


updateModel

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

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

 


uploadModelAsP21

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

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

 


uploadModelAsXML

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].