定制与开发应用之二: 可扩展编程(一)
相比于COM组件编程,可编程性扩展虽然比不上COM组件操作简单,但是由于可编程性扩展提供了底层的C语言编程接口,使得扩展编程拥有更高的运行效率和更稳定的执行能力,而且还使JAVA等其他编程语言调用SPSS进行分析成为可能。SPSS公司近年来着力加强了SPSS统计软件包对可编程性扩展的支持。从支持编程的多样性来看,SPSS的最新版本Statistics 17支持Python语言、SAS、R语言和.NET(C++、C#、VB)的集成开发,并提供了C语言的API(Application Programming Interface,应用程序编程接口)。
从编程灵活性来看,SPSS既可基于Script下的Saxbasic调用外部的Python、SAS、R及.NET程序,又可以被这些语言编写的程序所调用。从支持的操作系统来看,它既支持UNIX环境,又支持Windows环境。从运行特性来讲,既可以在后台调用SPSS处理器来完成指定任务得到输出的分析结果,又可以构建前端界面,实现与用户的窗口交互。可见,SPSS为用户提供了越来越灵活的编程技术支持,而且可编程性扩展已经成为SPSS高级用户自定制应用的良好选择。用户基于SPSS使用可编程性扩展,可以构建灵活、综合、与现有系统高度集成的企业级应用。SPSS的可编程性扩展最权威的资料是SPSS的官方文档,对版本Statistics 17.0而言,主要是《Programming and Data Management for SPSS Statistics 17.0》、《SPSS Statistics Programmability Extension Developer's Guide for Windows》和《SPSS Statistics Programmability Extension Developer's Guide for UNIX》。此外,SPSS还在可编程性扩展包中发布了相关的简单编程实例,可谓是周到。上述这些资料都可以在SPSS的官方网站开发人员中心下载栏目免费获取。
使用SPSS的可编程性扩展来进行开发和应用,首先要很好的理解SPSS Statistics的基础是什么,以及它如何工作。SPSS支持三种应用方式下的开发:
通常,一个插件包含两种库文件,第一种是MyLanguageInvokeSPSSXD,负责装载spssxd.dll或者spssxd_p.dll,并且使外部语言可以使用SPSSXD API。第二种是InvokeMyLanguage,它通过spssdx.dll为SPSS激活外部处理器,是一个插件的备选组件。
从编程灵活性来看,SPSS既可基于Script下的Saxbasic调用外部的Python、SAS、R及.NET程序,又可以被这些语言编写的程序所调用。从支持的操作系统来看,它既支持UNIX环境,又支持Windows环境。从运行特性来讲,既可以在后台调用SPSS处理器来完成指定任务得到输出的分析结果,又可以构建前端界面,实现与用户的窗口交互。可见,SPSS为用户提供了越来越灵活的编程技术支持,而且可编程性扩展已经成为SPSS高级用户自定制应用的良好选择。用户基于SPSS使用可编程性扩展,可以构建灵活、综合、与现有系统高度集成的企业级应用。SPSS的可编程性扩展最权威的资料是SPSS的官方文档,对版本Statistics 17.0而言,主要是《Programming and Data Management for SPSS Statistics 17.0》、《SPSS Statistics Programmability Extension Developer's Guide for Windows》和《SPSS Statistics Programmability Extension Developer's Guide for UNIX》。此外,SPSS还在可编程性扩展包中发布了相关的简单编程实例,可谓是周到。上述这些资料都可以在SPSS的官方网站开发人员中心下载栏目免费获取。
使用SPSS的可编程性扩展来进行开发和应用,首先要很好的理解SPSS Statistics的基础是什么,以及它如何工作。SPSS支持三种应用方式下的开发:
- SPSS统计应用(SPSS Statistics),它有图形化用户界面,但是编程扩展不适用GUI(图形化用户界面)。
- SPSS服务器(SPSS Server),它是一个分布式的应用,拥有一个客户端/服务器架构。它为资源密集型操作分发客户端请求到一个强大的分析服务软件。请求由客户端提交,被SPSS统计服务器处理。
- SPSS统计批处理工具(SPSS Statistics Batch Facility),它包含在SPSS统计服务器里。它的任务是自动的数据管理和统计结果输出。自动生产提供了无须人为干预的命令提交。批量处理工具把输入的命令语言文件作为数据操作和统计的请求。它也没有图形用户界面。
通常,一个插件包含两种库文件,第一种是MyLanguageInvokeSPSSXD,负责装载spssxd.dll或者spssxd_p.dll,并且使外部语言可以使用SPSSXD API。第二种是InvokeMyLanguage,它通过spssdx.dll为SPSS激活外部处理器,是一个插件的备选组件。