LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Jorn_Deruyck

Allow Library to contain Webservice definition

Status: New

Currently, the only way to add a webservice to a project, is by right clicking a Target and selecting New->Web Service.

There's no way to add existing Web Service definitions to a project, other than manually performing the copy operation at the XML file level.

This prevents proper re-use of IP!

 

Webservice in project.png

 

I would propose extending the capabilities of a Library to also support Web Service definitions as Child objects.

That way, the library can act as a container for the Web Service definition, and can easily be reused in other projects:

 

Webservice in library.png

I tried using an XML editor to manually put a Web Service definition underneath a Library, LabVIEW didn't like that!

2 Comments
AristosQueue (NI)
NI Employee (retired)

The Web Services were explicitly designed to not be shared among projects. If you have multiple projects that need to talk to the same web service, they should be talking to the web service -- the one built from the one and only project that defines that web service. Needing to share the web service among many projects defeats the point of having a web service.

 

I doubt that this decision will be revisited, but we will leave the idea open and see what comments it generates from other users.

Jorn_Deruyck
Member

Our particular use case, is a project that can target both windows and Linux RT targets (cRIO)

We rely on classes a lot, and the context lock on those classes when they are loaded in multiple targets makes it impossible to make any modifications to the classes. 

 

So for practical reasons, we split up the project into three different projects:

- A development project -> contains the project structure and the webservice defintion that defines our product.

- a Linux RT Build Project -> contains the main application, and a copy of the webservice + linux RT build spec

- a Windows Build Project -> contains the main application, and a copy of the webservice  + Windows Build spec

 

We hardly ever touch the build projects, as those are just used by the CI system to build executables.

 

In addition, a webservice is bound to a target, not the project itself. So even if it was practical to have both targets within the same project, we'd still have to perform a copy operation every time we make a modification to the 'master' webservice definition.

 

Note that these systems are usually deployed as standalone systems, they are not designed to communicate with each other, the web service is there to allow other software packages to communicate with our software.

Within such a system, the webservice is in fact the sole source of information, and in my opinion fits the use case of having a webservice.

 

ps. it also kinda hurts to see the entire VI hierarchy duplicated within the .lvws file once built.