Product: TIBCO Spotfire®
Questions about migrating from S+ to TERR
I have been using TIBCO Spotfire S+ for years. I have lots of data stored in chapters, scripts and functions. My office has just upgraded to Windows 10 and S+ is no longer supported. What are my options for continuing to use these data repositories? I see where TIBCO Enterprise Runtime for R (TERR) has been recommended as an alternative. Could you please tell me more about TERR? Mainly, will TERR be able to directly access the data stored as binary objects in my old S+ "chapters"?
TIBCO Spotfire S+ 8.2.0 is tested and supported on Windows 7.
While we do not support Spotfire S+ on Windows 10, we have found that 32-bit S+ 8.2 installs on Windows 10. (64-bit S+ 8.2 does not install on Windows 10, however.)
TIBCO Enterprise Runtime for R (TERR) is our implementation of the R programming language, and TERR 6.0 is the current release (October 2020). R is similar to S and S+, but uses lexical scoping to find objects, which is quite different from the scoping rules used in S+ for finding objects. You will probably need to rewrite at least some of your S code to make it work in R and TERR.
Unfortunately, an S+ chapter cannot be attached to an R or TERR session's search() path and used directly. R (and therefore TERR) uses a different binary architecture for storing objects. Objects in the S+ chapter need to be dumped to ASCII files from an S+ session (using the dump() function), then sourced into an R or TERR session from those ASCII files (using the source() function). This works well for most S+ data frames, matrix objects, and vectors, but it may not work for all classes of objects. It doesn't work for model objects that contain formula components (such as regression model objects of class "lm" or "glm"), for example. Also, TERR uses R's "POSIXct" class to represent date/time data, so an S+ object of class "timeSeries" would need to be converted into a data frame with a column of class "timeDate", then the "timeDate" column would need to be converted into a character column before export of the data frame via dump().
~~~
Additional details:
.
S+ 8.2.0 is the last S+ release, and it was published in 2010. It is supported for use on Windows 7, but it is not tested or supported on Windows 10. We have no plans to publish or support Spotfire S+ on newer operating systems. We recommend that you begin migrating to TIBCO Enterprise Runtime for R (TERR), which is where our new-development efforts are focused now. The following public knowledge base article provides additional information:
.
The open-source R community's CRAN website (https://cran.r-project.org/) has links to manuals and introductory tutorials for R, which are also useful for reference when learning to program in TERR. (You can also download and install a copy of open-source R from the CRAN website.)
.
The following page on our website provides introductory information about TERR that you may find helpful:
https://docs.tibco.com/products/tibco-enterprise-runtime-for-r
TERR is an implementation of the R programming language, so the following discussion on the open-source R community's CRAN website is a good place to start, to identify code changes that will be needed when an S+ script or function is ported from S+ to R or TERR:
https://cran.r-project.org/doc/FAQ/R-FAQ.html#What-are-the-differences-between-R-and-S_003f
The key difference is the use of lexical scoping in R, which is very different from the scoping rules S+ uses for finding objects in its search() path.
.
By design, graphics (such as plotting functions) are not implemented in TERR, as outlined in the following public knowledge base article:
But graphics and plotting functions are implemented in open-source R, and the REvaluate() and RGraph() functions in TERR's built-in "RinR" package can be used to send data and commands out to an open-source R instance installed on the same machine. The example in the following public knowledge base article, developed for users of our TIBCO Spotfire desktop client (which comes with a copy of TERR built in), illustrates the use of RinR::RGraph():
Comments
0 comments
Article is closed for comments.