sentence: since mgsi is a web service protocol , any programming language that has a soap or xml-rpc library available can be used to interface with it , although commonly c++ , java , perl , and php are used .