Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip
title客户端服务器配置视频教程

http://58.246.62.194:16808/cs/cs.html

运行模式 

     URule支持两种运行模式,既嵌入模式和独立服务模式。所谓的嵌入模式就是将URule嵌入到目标应用当中运行,这种模式的特点部署起来简单、方便,便于系统开发与调试;独立服务模式就是将URule打包成一个和独立的应用单独部署,我们的业务系统则通过远程方式获取URule Server中定义的知识包进行计算,独立服务模式适用于多应用、集群部署环境下使用。

...

Tip
title独立服务模式下客户端获取服务端知识包的方式

在独立服务模式下,URule Server上给客户端提供的是若干个已经构建好的知识包对象,当有客户端需要进行规则计算时,它会检查当前客户端中配置的“urule.knowledgeUpdateCycle”属性值,如果为0,那么就直接请求URule Server获取指知识包;如果为1,那么它会首先检查客户端本地缓存当中是否存在指定的知识包,如果存在,就取本地缓存中的,如果不存在,则到URule Server下请求指定的知识包,然后将请求到的知识包缓存到客户端内存中,这样下次就不再到URule Server上下载;如果“urule.knowledgeUpdateCycle”属性值大于1,那么客户端会首先检查本地缓存中是否存在指定的知识包,如果存在,那么就拿当前时候与本地缓存中的知识包的时间戳进行比较,如果小于“urule.knowledgeUpdateCycle”属性值,那么就直接取这个知识包,如果大于它,那么就到URule Server上取对应的知识包对象,取到后更新客户端本地缓存中的对应知识包对象。

搭建URule Server应用

       搭建URule Server应用的与2.安装与配置中介绍的完全相同,就是在一个普通的java web应用中将URule Console模块添加进去。需要注意的是,在URule Server应用搭建好了之后,要保证“/urule/loadknowledge”这个URL在可以匿名访问,比如输入类似下面的地址,看看应用会有什么样的响应。

...

       如果出现我们应用中的登录界面之类,那就说明“/urule/loadknowledge”这个URL在不能匿名访问,需要我们再做进一步配置,使“/urule/loadknowledge”URL在可以匿名访问。做好这个工作,那么URule Server的搭建工作就完成了,下面我们看看如果配置客户端应用。

配置URule客户端应用

       配置客户端应用,首先要解决的是如果将URule客户端所需要的jar包添加到项目中,这里我们分maven项目以及非maven项目分别进行讨论。

maven项目配置

       如果当前客户端是基于maven的项目,那么我们需要在其pom.xml中添加以下依赖

...

       到这里,pom的配置就完成了,我们再来看看一个标准的非maven的Web项目如何配置成URule客户端。

非maven项目配置

       如果是一个非maven普通的java web项目,添加URule客户端就是将urule-core的jar包及其依赖的第三方jar包放到客户端应用的/WEB-INF/lib目录下即可,urule-core的jar包我们可以到http://nexus.bsdn.org上下载最新的urule-core-2.x的jar包,对于依赖的第三方jar包,可以点击此处下载

加载spring配置文件

       URule客户端所需要的jar包添加到客户端项目中后,接下来我们还需要加载urule-core模块中的spring配置文件。urule-core模块中的spring配置文件位于classpath根下,名为urule-core-context.xml。

...

       这样urule-core的spring配置文件的加载配置就完成了。

配置web.xml

       对于URule Server来说,如果在规则项目中配置了URule的客户端地址,那么在知识包发布时会自动推送到这些客户端。所以对于我们的URule客户端来说,还需要配置一个可以接收URule Server推送的知识包的Servlet。打开项目的web.xml,在其中添加如下servlet配置:

Code Block
title接收服务端推送决策包的Servlet配置
themeEclipse
linenumberstrue
languagehtml/xml
	<servlet>
		<servlet-name>uruleClientServlet</servlet-name>
		<servlet-class>com.bstek.urule.KnowledgePackageReceiverServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>uruleClientServlet</servlet-name>
		<url-pattern>/knowledgepackagereceiver</url-pattern>
	</servlet-mapping>

配置服务器地址

       对于URule客户端应用来说,在进行规则计算时,如果客户端本地缓存没有相应的知识包,那么它会到URule Server上请求对应的知识包,要给URule客户端应用配置对应的URule Server地址,我们需要添加一个properties文件,比如在项目的WEB-INF目录下新建一个名为configure的properties文件,然后在我们项目中任意一个spring配置文件中添加如下配置加载这个properties文件:

...

       到这里,URule客户端的配置就全部完成了,最后我们再来看看如何在URule Server上配置客户端,以实现在Server上发布知识包自动推送到对应的客户端的功能。

URule Server上客户端配置

       打开URule的控制台,在规则项目中右键,在弹出的菜单中选择“配置接收推送客户端”,就可以打开客户端配置页面,如下图:

...