使用XML和JAR实用工具API来建立一个以规则为基础的Java EE自动部署者

介绍

今天的Java EE应用程序部署是一个常见的任务,而不是一件容易的工作。如果你曾经参与了部署Java EE应用程序到大型企业环境中,毫无疑问,你都面临着一系列的挑战单击部署按钮之前。举例来说,你必须弄清楚如何配置JMS,数据源,数据库模式,数据迁移,第三方产品,如Documentum的Web发布,组件和它们的部署顺序,等等之间的依赖关系。虽然通过自己的管理界面,今天的大多数应用服务器支持的应用程序的部署,部署任务仍然远不是一个一键式操作。

在这篇文章的前几节中,我将讨论一些了Java EE部署的挑战。然后,我将介绍一种智能基于规则的自动部署应用程序,并解释它如何能显著降低了Java EE系统部署的复杂性。我也会给有关如何使用XStream的工具库,如何扩展和分析标准的Java EE包装(EAR)来构建XML规则一个完整的例子,并且只要按下一个按钮执行一个复杂的部署任务。

挑战1:包装限制

Java EE应用程序打包为企业应用程序归档文件(EAR)。的Java EE规范定义了一个EAR文件,如图1所示的格式。

图1
图1:标准的Java EE EAR文件结构

一个标准的EAR文件符合打包应用程序的Web和/或EJB应用程序,因为大多数的基于Web的Java EE应用程序是完全由基本要求。然而,它缺乏先进的封装Java EE应用程序模块的能力。例如,下面的模块通常用在Java EE应用程序的部署,但不能在一个标准的EAR文件中声明:

  • JDBC连接池和数据源对象

  • JMS连接工厂和目标对象

  • JMX MBean的

  • SQL语句

  • 其他资源文件

大多数Java EE应用程序需要的数据源,架构更改,数据迁移,OA办公系统,和JMS配置。如今,这些组件都必须手工配置,并通过由执行供应商提供的管理界面部署。这通常是系统管理员的责任。

挑战2:部署顺序和依赖关系

另一个挑战到一个应用程序部署的是,他必须知道部署的依赖关系,并按照正确的顺序为一个应用程序部署多个部署。

一个大型的Java EE应用程序可能对其他部署复杂的依赖关系。例如,必须建立相应的数据库表的应用程序可以部署之前; JDBC数据源必须提前一个JMS服务器的配置。在这些情况下,部署者首先必须与应用程序架构师和开发人员进行协调,以找出部署要求和相关性,然后做一个详细的部署计划。这个过程不是非常有效的; 我们需要一个更好的解决方案。

我们如何能够帮助部署者生存这些挑战?有没有一种方法来简化这个复杂的部署过程?一个可能的解决方案是使用厂商专有的功能来扩展你的耳朵更加智能化。例如,WebLogic Server支持封装JDBC和JMS模块到EAR文件中,并在WebLogic部署者可以部署你的应用程序以及应用程序范围的JDBC和JMS模块在一个动作中。是不是有用?等待一秒钟,但仍有局限性:

  • 紧密耦合 - 通过这样做,你的EAR是依赖一个供应商的应用程序服务器上。您的应用程序必须根据供应商的规格进行包装。这意味着如果你想让你的产品,可以在不同的应用程序服务器部署(或者,如果你的生产要支持多个应用程序服务器),你要保持多个EAR。

  • 复杂的包装 - 因为你必须遵循不同厂商的规格,包装的应用将是非常复杂的,很难理解。

  • 难以维持 - 对于一个应用程序,你需要保持不同版本的耳朵对不同的应用服务器,甚至是不同版本的同一应用程序服务器。

  • 不是真正的一键式部署。由于这种类型的部署充分利用供应商特定的工具,它可以不支持不支持的应用程序服务器部署任务。例如,一个应用程序可能需要执行的SQL语句来建立架构和负载参考数据或上传配置到LDAP服务器以显示其服务端点。

一个实际的解决方案是通过扩展的Java EE包装,做出明智的XML规则为基础的自动部署。

基于规则的自动部署者

该解决方案有三个主要部分:

  • 工具:使用XStream的部署XML规则生成器

  • 包装:扩大EAR包装,包括使用Ant规则的XML文档

  • 部署:使用Java的jar实用程序API,中耳分析仪和自动部署

所建议的部署的工作流程示于图2。

图2
图2。部署工作流

案例研究

让我们想想一个服务订单处理应用程序的部署到WebLogic服务器。以下是需要完成部署任务:

  • 配置JDBC连接池和数据源操作的顺序处理数据。

  • 执行数据库对象创建(表,触发器和引用数据等)的SQL语句。

  • 配置JMS队列调度服务令的请求。

  • 上传系统属性(例如,URL和JMS队列的JNDI名称为订单处理)到LDAP服务器。

  • 最后,将此应用程序部署到应用服务器

1,部署工具:使用XStream的XML规则生成器

第一步是生成从计划由应用程序组装一个XML规则。

步骤1:定义一个部署计划

要定义部署计划,应用程序组装讨论了与开发人员和架构师的部署要求。对于示例服务订单处理系统,部署计划的定义如下:

DataSource,t3://localhost:7001,NONXA,jdbc/testDS,colin,password,jdbc:oracle:thin:@localhost:1521:localdb,oracle.jdbc.driver.OracleDriver
SQL中,T3 :/ /本地主机:7001,JDBC / testDS,SQL / testDS.sql
JMS,t3://localhost:7001,PTP,testJmsServer,testJmsRes,jmsTestConnFactory,jms/conn,testQueue,jms/testQueue
LDAP,ldapread-server.com,489,CN = one_button_deployment,O = system_configuration,LDIF / test.ldif
应用,T3 :/ /本地主机:7001,SOManager,发布1.0版
步骤2:使用部署工具,从计划生成一个XML文档

该计划被定义后,应用程序组装运行部署工具应用程序中的计划,以饲料和生成XML规则文件。

该示例应用程序显示在图3。

图3
图3。样品部署工具


转载于:https://my.oschina.net/joa/blog/226443

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值