Aldo Bucchi wrote:
Hi,
We currently have a considerable codebase of made of Virtuoso PL/SQL,
SPASQL, VSP, VSPX, TTLs, etc and we are running into obvious workflow
bottlenecks. Has anyone managed to get a Continuous Integration
environment up and running with Virtuoso?
Happy New Year!
Maybe piggybacking VAD install/uninstall mechanism is the way to go?
If yes, what's the exact developer workflow you recommend?
I think a Virtuoso best practice guide is much needed.
I'm just goint to enumerate some issues below:
1- Data and Code tend to mix ( procedures, schemas and instance data )
You use Qualifiers to partition the Code from the Data e.g. notice the
use of WS.%.% as the place we situate all VSP and VSPX procedures
(basically VSP and VSPX are RESTFul interfaces into Virtuoso Stored
Procedures).
DB.%.% is used for main system procedures.
YourApp.Code.% could be used for your App Specific Code. And
YourApp.Data.% for Data.
Package using Procedure Modules [1], and Deploy using VADs.
2- Procedures can easily get out of sync between source and the proc table
3- Procedure dependency management is manual
The link between a Stored Proc and the Tables it References are to be
managed manually as this somewhat application needs specific. In the
RDBMS realm, the practice is to make this management an integral part of
the application in question. Many ways to skin this rat, but making it
core to Virtuoso veers outside of the core DBMS realm.
4- UDT declaration is cumbersome ( header/interface must be declared
before and in separate script than method impls )
Yes.
And there are many many others.
I know most of these are inherited from the SQL world. But, what's
your take on this?
See comments above.
We will gradually produce layering that continues to simplify
application development and deployment, but that has to following the
completion of critical engine work :-)
Links:
1. http://docs.openlinksw.com/virtuoso/plmodules.html
Thanks!
A
--
Regards,
Kingsley Idehen Weblog: http://www.openlinksw.com/blog/~kidehen
President & CEO
OpenLink Software Web: http://www.openlinksw.com