部署Rhstudio应用程序之前,首先必须构建一个部署环境,其中包括以下的组件:
-
Java Runtime Environment (JRE) 6 (5 on Mac OS/X)
-
Application server with Java Servlet support - Apache Tomcat 6.0.x
-
Database server - HSQLDB, PostgreSQL, MySQL (Commercial DBMSs such as Microsoft SQL Server 2000/2005, DB/2, Oracle are supported by our 商业企业版)
-
Rhstudio Server
可以在Linux,Mac,Windows(或任何其他Java兼容平台)上使用RH Server部署RhStudio应用程序。
一旦建立了部署环境,就可以通过将项目从RhStudio环境复制到服务器环境并创建特定于应用程序的上下文(application-specific context)文件来部署Rhstudio应用程序。
1. 设置Rhstudio部署的环境
1.1. 安装 a Java Runtime Environment (JRE)
已测试的版本: 6 (5 on Mac OS/X)
-
观看 Java SE Downloads page.
-
向下到 Java Runtime Environment (JRE) 6ux 项目。
-
点击 Download 按钮选择适合的版本给你的平台, 接受许可证,并下载。
-
安装 JRE Installation Instructions.
-
我们将把JRE的安装目录,称为 [JRE root].
1.2. 安装 JavaBeans Activation Framework (JAF)
已测试的版本: 1.0.2-1.1
-
这一步可以跳过,如果您已经安装了JRE版本6。
-
观看 JAF download page.
-
向下, 点击 Download 按钮, 然后按照指示接受许可证并下载归档。
-
提出归档,然后复制 jaf-1.1/activation.jar 到 [JRE root]/lib/ext.
1.3. 安装 JavaMail API
已测试的版本: 1.3.3-1.4
-
观看 JavaMail API download page.
-
向下, 点击 Download 按钮, 然后按照指示接受许可证并下载归档。
-
提出归档,然后复制 javamail-1.4/mail.jar 到 [JRE root]/lib/ext.
1.4. 安装 Java Advanced Imaging (JAI) API
-
观看 Java Advanced Imaging (JAI) API download page.
-
向下到 CLASSPATH 项目, 点击 Download 按钮, 然后按照指示选择您的平台,接受许可证,并下载 CLASSPATH 安装。
-
执行或提取下载,然后复制内容从 lib/ subdirectory (JARs and DLLs/SOs) 到 [JRE root]/lib/ext.
1.5. 安装 Apache Tomcat
已测试的版本: 6.0.x
-
观看 Apache Tomcat download page.
-
向下到 Binary Distributions -> Core 项目。
-
Windows 用户应该下载 Windows Service Installer。
如果使用其他平台,用户应该下载 .tar.gz or .zip.
-
观看 Tomcat documentation 详细的安装,启动和配置Tomcat(在开始就启动)的细节。
当你安装Tomcat后,记下目录(directory),我们将把Tomcat的安装目录,称为 [Tomcat root].
Windows-specific instructions:
By default, 安装t器会安装和启动 Apache Tomcat service 并加载到 Monitor Tomcat utility.
要配置 Apache Tomcat Service 自动启动,执行以下:
-
双击 Apache Tomcat 图标在 Windows taskbar notification area, 打开 Apache Tomcat Properties 窗口。
-
在 General 标签, 设置 Startup type 为 Automatic, 然后点击 OK.
-
确保成功完成安装,可以通过指向本地浏览器, http://localhost:8080; 这应该打开Tomcat的主页。
请注意,Apache Tomcat服务的常规操作不需要Tomcat监视器实用程序(显示Apache Tomcat通知区域图标)。 您将要执行以下步骤时保持运行,但一旦部署完成,您可以右键单击图标并选择退出来关闭它。
1.6. 安装 数据库服务器(Database Server)和 驱动程序(Driver)
Rhstudio支持以下的数据库服务器。
如果你不知道安装哪个数据库服务器,我们建议你安装 HSQLDB, 因为它是一个轻量级(lightweight), 纯-Java, 开源数据库引擎(open-source database engine) -> (Rhstudio Studio's embedded 应用服务器在使用)。 部署 HSQLDB 只需要复制一个 jar 文件(其中包括服务器(server)和驱动程序(driver), 并允许你部署应用程序和输入的数据, 同时也可以测试应用程序(in Rhstudio Studio's embedded application server)。
请注意, 为每个数据库指定的版本是我们测试的版本,较新版本通常也可以工作。 有关详细信息,请参阅第三方组件版本页面。
部署在同一服务器中的不同应用程序可能会使用不同的数据库 - 因此,您可以安装多个数据库。
HSQLDB
数据库服务器(Database Server) and 驱动程序 (Driver)
下载 (也在 [Rhstudio Server root]/WEB-INF/lib/)
已测试的版本: 1.7.3
如果要安装, 提取下载的归档, 然后复制 hsqldb/lib/hsqldb.jar 到 [JRE root]/lib/ext.
PostgreSQL
数据库服务器(Database Server)
下载
已测试的版本: 8.3
如果要安装, 请按照 PostgreSQL 安装指示, 提供在下载网页上。
驱动程序(Driver) (PosgtreSQL JDBC 3)
下载 (也在 [Rhstudio Server root]/WEB-INF/lib/)
已测试的版本: 8.1 (目前的新版本不支持).
如果要安装, 复制 postgresql-8.1-[nnn].jdbc3.jar 到 [JRE root]/lib/ext.
MySQL
数据库服务器(Database Server)
下载
已测试的版本: 5.0.51
如果要安装, 请按照 MySQL 安装指示, 提供在 MySQL Documentation 网页。
驱动程序(Driver) (MySQL Connector/J)
下载
已测试的版本: 3.1.8a
如果要安装, 提取 Connector/J 归档, 然后复制 mysql-connector-java-3.1.8/mysql-connector-java-3.1.8-bin.jar 到 [JRE root]/lib/ext.
1.7. 安装 Rhstudio 服务器
下载
首先, 请确保你的服务器版本(server version) 适合你的开发环境版本( development environment version)
如果要安装服务器, 把RH服务器的压缩文件放到一个空的目录。 建议的位置是: /Rhstudio-server/
记下安装的目录, 我们将把它称为 [Rhstudio Server root].
Rhstudio服务器的组件的default配置是强制执行用户认证。(authentication of users) 如果你要部署的应用程序不需要认证 (i.e.,不使用授权模块(Authorization module)), 你应该做以下:
-
重命名 [Rhstudio Server root]/WEB-INF/web.xml 为 [Rhstudio Server root]/WEB-INF/web.xml.authenticated
-
重命名 [Rhstudio Server root]/WEB-INF/web.xml.not_authenticated 为 [Rhstudio Server root]/WEB-INF/web.xml
注意:不同的应用程序可部署在同样的服务器来使用两种认证(authentication)模式, 这可以通过在不同的目录下安装两个副本的服务器。
2. 部署 Rhstudio 应用程序
一旦部署环境(deployment environment)设置完成, 您可以部署多种的应用程序, 通过从工作室复制它到服务器环境,并给每个应用程序创建 application-specific context 文件。
2.1. 复制应用程序到部署环境
应用程序项目文件在 [Rhstudio Studio root]/workspace/[Application Project name]/。 我们将把这位置称为 [Application Development root]。
在部署服务器上创建一个新的目录。 建议的位置是: /Rhstudio-applications/[Application Project name]/。 我们将把这位置称为 [Application Deployment root].
复制所有以下的文件和目录从 [Application Development root] 到 [Application Deployment root]:
-
.project
-
.timestamp
-
models/
-
web/ (if exists)
-
database/ (可选 - 此目录包含由Rhstudio 创建的HSQLDB数据库,如果要使用HSQLDB进行部署并希望访问在建模过程中输入的数据,则应复制该数据;如果要复制此目录,请首先确保应用程序未运行 Studio的嵌入式应用服务器)
注意::
-
在工作室, 使用 文件 -> 导出 来创建你的归档项目,然后可以复制到部署服务器,并提取到 [Application Deployment root].
-
如果部署环境可以连接到 [Application Development root] 你就可以选择不复制你的应用程序。 这样的做法在生产方案中应该避免,因为所更改的东西在Rhstudio 将会立即部署到生产环境。
2.2. 创建 Application Context 文件
这 application context 文件是一个XML文件,它指定由Tomcat所需的各种参数,以便能够加载应用程序。
你可以下载 application context file 文件模板从这里, 并替换参数 ( ${parameter_name}) 以下:
-
${Application_Name} - 应用程序的名称。该名称将显示在url中(其格式为http://hostname:8080/${Application_Name}),建议使用项目名称。
-
${Rhstudio_Server_Root} - 根目录 (root directory) 用于指定 Rhstudio Server (= [Rhstudio Studio root])。
-
${Application_Deployment_Root} - 根部署目录(root deployment directory) 应用程序目录(= [Application Deployment root])。
-
${Root_System} -根系统模型的路径(=应用程序根模型的refId属性值)。通常(和默认情况下)这是$ {Application_Name} / $ {Application_Name})。
-
${Initialize_Database} -将此参数设置为true,如果希望Rhstudio Server将“ Database Record”模型元素中的更改与现有数据库结构进行同步,否则将其设置为false。
-
${Check_Database} - 将此参数设置为true,如果希望Rhstudio Server将"Database Record"模型元素与现有数据库结构进行比较,则将其设置为false。
-
${Development_Mode} -将此参数设置为true,如果希望Rhstudio Server在developer mod中运行应用程序,允许创建跟踪文件,否则将其设置为false。
-
${Database.Driver} - 您选择的数据库版本对应的JDBC驱动程序类名。
HSQLDB - org.hsqldb.jdbcDriver
PostgreSQL - org.postgresql.Driver
MySQL - com.mysql.jdbc.Driver)
-
${Database.Username} - 数据库的用户名 (由Rhstudio Studio创建的HSQLDB数据库的用户名为‘sa’,对于其他数据库,请参阅其安装文档)。
-
${Database.Password} - 数据库的密码 (没有为Rhstudio Studio创建的HSQLDB数据库设置密码,对于其他数据库,请参阅其安装文档)。
-
${Database.URL} - 您选择的数据库版本的jdbc url。
HSQLDB - jdbc:hsqldb:file://${Application_Deployment_Root}/database/${Application_Name}. (由Rhstudio 创建的数据库)
PostgreSQL - jdbc:postgresql://${Database_Hostname}/${Database_Name}
MySQL - jdbc:mysql://${Database_Hostname}/${Database_Name}
-
${Database_Hostname} - 数据库服务器正在运行的主机名(和可选的端口) - 如果数据库服务器与Rhstudio Server安装在同一台机器上,则应该是localhost。 (注意,此参数不直接显示在上述的上下文文件模板中,而是在某些数据库的$ {Database.URL}中)。
-
${Database_Name} - 包含应用程序将使用的数据库(schema)的名称。 (注意,此参数不直接显示在上述的上下文文件模板中,而是在某些数据库的$ {Database.URL}中)。
-
${Database.Validation_Query} -启动应用程序并执行有效的SQL语句以验证数据库是否可以正常访问。此参数是可选的 - 您可以使用简单的选择语句(例如select now())。
-
${Authentication.Begin_Comment} … ${Authentication.End_Comment} - 如果应用程序需要身份验证,请删除这2个参数,并使<Realm ... />元素保持可用状态。如果不需要验证,请完全删除此块(包括<Realm ... />元素),或者注释掉该块(使用<! - 和 - >)。
2.3. 保存 Application Context 文件
把创建的 application context 文件称为 ${Application_Name}.XML 然后保存在 [Tomcat root]/conf/Catalina/localhost/。
2.4. 测试部署的应用程序
-
重新启动 Tomcat.
-
打开 Tomcat Web Application Manager, 浏览器指向 http://localhost:8080/manager/html.
-
当被提示,输入指定用户/密码当在安装时 (默认的用户是 admin, 密码是空的)。
-
应用程序管理器将显示所有Tomcat正在运行的应用 (不仅是 Rhstudio-based 的应用)。 /${Application_Name}/ 应该作为列表中的路径之一显示,Rhstudio作为显示名称。
如果运行列显示为false,请单击开始链接。应该重新加载应用程序列表,并在顶部显示一条消息,确认应用程序已经启动。
如果应用程序未启动,请查看application context file文件以及位于[Tomcat root] / logs(可能包含相关错误消息)的日志文件的内容。
应用程序启动后,单击/ $ {Application_Name}查看应用程序。
如果出现提示,输入用户密码(即如果您在以前的步骤中配置了应用程序来进行身份验证)
请注意,用户应通过使用URL:http:// [hostname]:8080 / $ {Application_Name}直接访问应用程序。
3. 表现和安全考虑
为了简化部署,本文档使用一般的安装默认值。一旦基本部署完成,就应该处理这些缺省值,以提高性能并保护应用程序。
启用HTTP消息内容的压缩,以提高Tomcat的整体性能。默认情况下,所有现代浏览器都支持此功能。要启用压缩,请执行以下操作:
在文本编辑器中打开[Tomcat root] /conf/server.xml
在端口8080上编辑HTTP连接器的定义,以粗体添加文本:
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript"/>
保存server.xml并重新启动Tomcat以使更改生效。
指定Tomcat的内存分配参数。您应该同时指定初始值和最大值。
在Windows上,可以通过Tomcat Monitor实用程序(Java选项卡)设置这些参数。
在Linux上,这些参数应在命令行中使用vmargs开关提供。
作为经验法则,将配置分配给物理内存的¼(初始)和½(最大)。
如果您在Windows上安装Tomcat,请注意,默认情况下,Windows安装程序将创建一个用户管理员,无需密码和权限即可访问Tomcat管理和Tomcat Manager Web应用程序。应该更改安全部署。有关详细信息,请参阅Tomcat文档。
如果您的应用程序包含授权模块来验证用户,则应删除默认用户标识为Super,或至少更改其密码。有关详细信息,请参阅授权模块文档。