Page 1 of 1

VIP Prolog and SOA

Posted: 18 Jun 2014 12:21
by Paul Cerkez
This might be more for PDC but has any one applied/used VIP applications in a Service Oriented Architecture (SOA)?

I have a potential effort to replace an old legacy rule based application that was founded on CLIPS (C-language Inference Production System) with a newer approach but it must be a SOA compliant implementation (customer mandate - absolute). The final application has to work as both a web app and a standalone desktop app (hence the SOA approach).

If anyone has done VIP-SOA, in very general terms, what would it take to do it (ex: VIP code can be used natively, wrap all VIP generated code in a C++ or C# wrapper, etc.)?


Posted: 19 Jun 2014 7:32
by Thomas Linder Puls
Visual Prolog 7.5 (i.e. the next release) will have support for creating Web Services (based on JSON RPC). The services can run both as a standalone server or as an ISAPI plugin in the IIS.

Posted: 19 Jun 2014 11:47
by Paul Cerkez
Great news Thomas.

How soon before 7.5 is released?

Posted: 19 Jun 2014 13:01
by Thomas Linder Puls
We will update of the language reference, etc now. Then I will have vacation (I am actually going to USA, but not near you). Anyways, I think it will be in the end of July.

Posted: 19 Jun 2014 13:26
by Paul Cerkez
end of July might actually work for us.

we will be putting together a bid proposal during July, is there anything you could send me on the implementation in VIP that i could read up on in advance?


Posted: 19 Jun 2014 14:25
by Thomas Linder Puls
Not really. The plan is to write wiki tutorial(s) after the release.

You should however be aware that we have focused on JSON-RPC opposed to WSDL/SOAP. This may break your customer requirements.

While it is by no means impossible to use WSDL/SOAP you should just expect rather little support from the system.

Basically, you will expose an RPC (Remote Procedure Call) service. The glue code necessary to make your predicates into RPC methods is rather trivial and can be mastered almost immediately (since you already know Visual Prolog).

Once your predicates have been wrapped as a "service" you can embed it in a program that expose it as a stand alone HTTP/HTTPS server, this requires less than 100 lines of code. Or you can embed it in an ISAPI dll that can run in the Internet Information Services (IIS).

In both cases using HTTPS is only a matter of certificate setup on the server computer, in the program (or its configuration file) you only need to change a single character (namely the 's' in the url).

Vip 7.5 contains demonstration programs:
  • A stand alone HTTP/HTTPS server exposing some HTML files and a Web service. The HTML contain HTML5+JavaScript for accessing the service.
  • An ISAPI program exposing the same Web Service. With some configuration if the IIS it will run the same demo.
  • A GUI program which also acts as a HTTP/HTTPS stand-alone server. It has same functionality as the other servers and mainly illustrates how the functinality of an existing GUI program can be exposed as a Web Service without complete rewrite. (It is not really advisable to use this method in an operating environment).
All these variants of the demo can be run directly from a browser, but there is also demo showing how a Visual Prolog client program can access such services.

It is these programs that will be described in the tutorial(s).

You can look at the JSON-RPC background material:

Posted: 19 Jun 2014 19:34
by Paul Cerkez
Thank You Thomas.

Yes, you are correct, I may be driven to wsdl/SOAP by the customer (there have been hints of such).

I'll do some more digging.