SAS9应用- 转化IntrNet架构的应用到IT架构的应用

类别:编程语言 点击:0 评论:0 推荐:

 

一、概述
由于9版后SAS Integration Technology产品提供了一种与SAS/IntrNet非常相似的技术线路,这便于IntrNet到IT的升级

1、broker的功能由SAS Integration Technology中的SAS Web Infrastructure Kit 中的SAS StoredProcess Web Application,(以下简称STPWA)替代,这是一套以java servlet形式部署的WEB应用。
2、以load-balancing方式配置的SAS StoredProcess Server 可提供与SAS/IntrNet中的PoolService类似的应用服务和性能调节功能。
3、Object Spawner提供了与Intrnet中loadmgr及spawner类似的任务调度和服务进程启动功能。
4、SAS StoredProcess Server中也自动定义了_webout fileref用于至web browser信息的输出。

简言之,用于支持应用的SAS Integration Technology有关环境如下:

1. STPWA,部署在web server机上,其上需要安装配置诸如Tomcat的java servlet container。以下假设使用Tomcat。
2. SAS Metadata Server,部署在metadata server机上,其上必须安装Base SAS。
3. SAS StoredProcess Server,部署在SAS StoredProcess Serve机上,其上必须安装Base SAS,SAS Integration Technology,必须存在ObjectSpawner。
注:以上三机为逻辑分类,其物理对应可以是同一机,也可是多机,以下为叙述方便按逻辑分类引用。

二、安装
1、于3机上安装包括Base SAS,SAS Integration Technology在内的SAS foundation部分。
2、于2机上安装包括Base SAS在内的SAS foundation部分。
3、于1机上安装JDK1.4.2_02。于autoexec.bat中设置JAVA_HOME环境变量。
4、于1机上安装Tomcat4.1.18。目录名中不能有空格。
5、于1机上安装整理后的STPWA包。即将SASStoredProcess目录安装至或拷贝至tomcat的webapps目录中。
6、于1机上安装application webserver files。即javascript,image,style,htc等目录。
7、于3机上安装application SAS files。即crlibp,crlibm,spawner目录。

三、配置
1、 用户定义
1. 1
于2机上定义一个用于启动和设置metadata server的管理用户,若NT或2000则须具有“act as part of OS”权限,例如appmadm。再定义一个用于读取metadata信息的普通用户,具有“以批作业登录”权限,例如appmuser。
1.2
于3机上定义一个用于启动ObjSpawner的管理用户,若NT或2000则具有“act as part of OS”、“Increase Quota”、“Replace the process level token”权限,例如appsadm。若XP则具有“Adjust memory quotas for a process”、 “Replace the process level token”权限。再定义一个用于StoredProcess Server运行的名义用户,具有“以批作业登录”权限,例如appsuser,若NT或2000还须具有“act as part of OS”权限。

2、MetadataServer配置
2. 1
以appmadm用户登录2机,创建目录如appmeta,在其中再创建rpos和rposmgr两个目录,创建appmeta\StartMetaDataServer.bat文件,使其包含如下命令:
@echo off
cd /d "directory of this bat"
start/min "metaserver" "SAS9.1root\sas.exe" -nosplash -noterminal -objectserver -objectserverparms "applevel=1 protocol=bridge port=metaport instantiate classfactory=2887E7D7-4780-11D4-879F-00C04F38F0DB" -sasuser . -log m#d#b#y.log -logparm "rollover=auto open=replaceold write=immediate"
其中
directory of this bat
SAS9.1root
metaport
三处要符合当前实际情况,start/min开始为一完整行。

创建appmeta\omaconfig.xml文件,含以下内容:
<OMAconfig>
  <OMA AUTHCHCK="NONE"/>
  <OMA ADMINUSERS="appmeta目录的实际绝对路径\adminUsers.txt"/>
</OMAconfig>

创建appmeta\adminUsers.txt文件,含以下内容:
本机hostname\appmadm

2.2
执行appmeta\StartMetaDataServer.bat
2.3
启动SAS Management Console,建立连接profile,用户名即为appmadm, 主机即为本机,端口即为2。1中的metaport;
创建基础元数据存储库,名为FoundationRposForapplication, 物理位置即2。1中的appmeta\rpos
的实际绝对路径。
2.4
创建运行SASStoredProcess Server的用户描述信息,即
在用户管理器中新建组,名为appsuser,登录定义为:  本机hostname\appsuser
2.5
创建SASStoredProcess Server描述信息,即
在服务器管理器中新建服务器,选择服务器类型为Object Spawner,服务器名为3机hostname加空格加Spawner,主机名为3机hostname,可采用默认端口;当询问可用的服务器时新建存储过程服务器,服务器名为appserver,主机名为3机hostname,此过程完毕后在导航树上找到新建的appserver,将其转换成负载平衡服务器,并且在其下生成的定义项的属性中的启动命令处改为:
sas -rsasuser -autoexec "3机spawner目录的绝对路径\autoForStp.sas" -logparm "rollover=session write=immediate" -log "3机spawner目录的绝对路径\%y_%m_%d_%v.log"
将此处高级选项中的凭证登录设为2。4中定义的用户。
注:上述命令中规定了SAS StoredProcess Server的运行日志。
2.6
在该定义项处新添连接(multibridge)若干个,即对应将来StoredProcessServer的实际SAS进程,名称和端口自定,主机须设为3机的hostname。
2.7
在导航树上找到新建的spawner服务器定义,新添一个用于负载平衡的连接,名称和端口自定。
2.8
在导航树上存储过程管理器定义存储过程描述,即先新建一个目录为app,在其中新建存储过程定义,其所在服务器为2。5中所建服务器,存储库位置为3机spawner目录的绝对路径,名称自定,如cw_entry,程序文件名为该目录中实际存在的某个.sas文件,如cw_entry.sas,输出类型选为“流”。

3. StoredProcessServer配置
3. 1
以appsadm用户登录3机,修改spawner\StartSpawner.bat中
directory of this bat
thishostname
SAS9.1root
三处至当前实际情况
3.2
修改spawner\MetadataServer.xml中
metadataserverhostname
metaport
userid_used_to_read_metadata_info
encoded_password_to_specify
四处要修改为符合Metadata Server的实际情况。Encodedpassword可用SAS pwencode过程产生,如proc pwencode in=’before’;run;日志中便显示出编码后的口令。

4. STPWA配置
4. 1
将专用的Tomcat启动脚本startEnvForSAS.bat
从SASStoredProcess\FoundationServiceRelated中拷至tomcat_home\bin中,并修改其中CATALINA_HOME参数的赋值为当前实际情况。
4.2
将app web files 访问定义添加到server.xml中,如
      <Context debug="0" docBase="e:/app2/webserver" path="/app" reloadable="true">
      </Context>
4.3
在catalina.policy文件末尾加入
grant codeBase "file:${catalina.home}/webapps/SASStoredProcess/-" {
  permission java.security.AllPermission;
  permission java.net.SocketPermission
  "thishostname:1024-", "listen, connect, accept, resolve";
};
其中thishostname修改为本机实际hostname。
4.4
拷贝sas_services_idp_local_omr.xml.orig为sas_services_idp_local_omr.xml,并替换其中如下字符串为实际情况(SASStoredProcess\FoundationServiceRelated中):
host_to_specify  metadata server的hostname
port_to_specify  metadata server的 port number
domain_to_specify metadata server 所在domain
userid_used_to_read_metadata_info
encoded_password_to_specify
4.5
拷贝logging_config_stp.xml.orig为logging_config_stp.xml,并替换其中如下字符串为实际情况(SASStoredProcess\FoundationServiceRelated中):
your_tomcat_home_to_specify   斜杠须为/
4.6
拷贝system_properties.config.orig为system_properties.config,并替换其中如下字符串为实际情况(SASStoredProcess\FoundationServiceRelated中):
your_tomcat_home_to_specify   斜杠须为\\
4.7
拷贝login.config.orig为login.config,并替换其中如下字符串如同4。4(SASStoredProcess\FoundationServiceRelated中):
host_to_specify  metadata server的hostname
port_to_specify  metadata server的 port number
domain_to_specify metadata server 所在domain
4.8
拷贝web.xml.orig为web.xml,并替换其中如下字符串为实际情况(SASStoredProcess\WEB-INF中):
userid_used_to_read_metadata_info
your_tomcat_home_to_specify
注:其中初始化参数inputEncoding保证汉字信息正确传到SAS StoredProcess Server中。
4.9
拷贝sas_metadata_source_client.properties.orig为
sas_metadata_source_client.properties,并替换其中如下字符串为实际情况(SASStoredProcess\WEB-INF\conf中):
your_tomcat_home_to_specify
4.10
拷贝params.config.orig为params.config,并替换前几行中如下字符串为实际情况(SASStoredProcess\中):
userid_used_to_read_metadata_info
encoded_password_to_specify
domain_to_specify
注:此设置保证首次访问servlet时不提示用户登录,而自动以此用户的身份继续随后处理。

四、运行
1、于2机上启动Metadata server。
2、于3机上启动Object Spawner。
3、于1机上启动Tomcat。
4、于客户端IE中键入如下类似地址
http://websereverhostname:8080/SASStoredProcess/do?_PROGRAM=%2Fapp%2Fcw_entry&_id=login&_type=0

注:多个应用时,上述autoForStp.sas和入口存储过程cw_entry.sas 的使用要点:

首先前者是SAS服务进程的autoexec文件,并且其中的设置会被它发起的子sas线程继承,这是与IntrNet appserver的不同之处。因此若希望节省入口存储过程的每次请求所导致的重设置时间,可将application应用环境所需库等设置置于其中,而对应的入口存储过程中不必进行任何设置,在元数据中针对不同的应用定义单独的STP server和单独的入口存储过程即可;若希望共享STP server,简化定义,则仅将各application应用共性的设置置于autoForStp.sas中,针对不同应用制作单独的入口存储过程,其中进行各应用的个性设置。

 

 

本文地址:http://com.8s8s.com/it/it26827.htm