WEB智能应用系统开发运行支撑平台的总体设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WEB智能应用系统开发运行支撑平台的总体设计(欢迎讨论)
WEB智能应用系统开发运行支撑平台的总体设计
整个应用系统的运行工作原理
1,开发阶段
专家系统开发平台与服务端的交互过程:
图1,
(1),专家系统开发人员查询KBUDDI服务器,获取可用的知识库操作web服务列表,根据自己的需要选择相应的知识库操作web服务。
(2),专家系统开发人员查询组件库,获取可用的智能组件列表,根据自己的需要选择相应的智能组件,获取智能组件的id。
(3),专家系统开发人员根据所选的知识库和智能组件,从组件库中查询合适的输入界面组件并下载到本地,如果没有,则开发人员根据所选知识库操作Web服务返回的知识库文件所需要的初始事实列表创建相应的输入事实界面组件供本地使用,也可以注册到组件库中供以后重用。
(4),开发人员根据所要采用的智能组件下载相应组件的辅助组件(如,输出界面组件,显示界面组件,推理过程分析组件等)。
说明,a,输入界面组件,在生成后的专家系统上,能够通过该界面获取用户的输入,最终生成一个包含所有输入信息的对象,该对象能够传递给服务端的智能组件使用。b,所选择的知识库的表示形式应与智能组件匹配。c,在注册智能组件时需要为每个智能组件产生一个唯一id(例如产生GUID使用)。d,在向组件管理服务中注册智能组件时应提供辅助组件的注册,并与智能组件区别开,一个智能组件可以有多套辅助组件。e,知识查询服务由知识访问中间件提供,组件查询服务由组件管理服务提供。f,在开发过程中可以查看组件管理库中所有现有组件(智能组件和辅助组件)信息,每个组件要有详细的说明信息,方便用户从中选择。g,这里的界面指的不是某个可视化的控件,如一个按钮,一个标签等界面元素,而是完成相关的一种功能的一系列可视化控件及相关的工作流程的组合。h,界面组件可以用平台提供的界面开发工具开发,也可以用大型的IDE开发。i,辅助组件也可以不从组件库中下载,而是在本地开发出来使用。i,输入界面与知识库相关。
专家系统开发平台在本地进行开发的过程
图3,
(1),根据所采用的推理机组件,从本地选择一套合适的辅助组件,这里主要包括输入界面组件,输出界面组件等,将其与所要生成的专家系统绑定。
(2),将所用的知识库操作web服务与所要生成的专家系统绑定。
(3),开发人员为将要发布的专家系统绑定一个身份(方式可以是用户名密码或者授权证书),用于专家系统运行阶段的身份验证和授权。例如,开发人员以某种方式在容器中间件中为将要发布的专家系统注册一个帐号或者从容器中间件中选择一个合适的帐号,该帐号拥有专家系统正常运行所需的权限,帐号信息至少包括专家系统的ID和密码,作为专家系统的身份凭证,这个ID和密码与将要发布的专家系统绑定,专家系统在运行期间需要向容器中间件提交该ID和密码,由容器中间件进行身份验证。
(4),发布,产生一个领域专家系统。
说明,a,构建专家系统的时候可以提供两种选择,一种仅使用一个智能组件和一个知识库进行推理,没有协作功能,另一种是带有协作功能的,需要选择多个智能组件,一个知识源(每个智能组件使用的知识表示形式不一样,但知识的内容一样)。b,基于规则的推理机需要的初始输入信息包括初始事实列表,知识源,推理策略(考虑到网络运行,实际只能采取前向一次推理的策略)等。c,辅助组件的主要组成和目的,1,输出界面组件,解析容器中间件返回的推理结果(xml),在本地以用户可理解的界面显示出来。2,推理过程显示组件,将智能组件的计算过程在本地以直观的形式显示给用户。d,每一种推理机组件至少有一套辅助组件,每一套辅助组件至少包括输入界面组件,输出界面组件,还可以有推理过程显示组件。e,在开发时,开发人员对其选择的每个推理机组件,选择一套辅助组件(每一个推理机至少应有对应的输入界面组件,输出界面组件),下载到本地,将其与推理机组件绑定,这样开发完成后的专家系统就具有固定的界面。如果没找到所用推理机的辅助组件(主要是输入界面组件,输出界面组件),或者对已提供的辅助组件不满意,开发人员可以自己开发一套辅助组件使用,并可以将其注册到组件管理服务器上,与对应推理机组件关联。
2,运行阶段
开发出的专家系统的运行过程
图2,
(1),用户向输入界面中输入初始事实,推理策略等参数,产生一个输入对象作为推理机的初始化信息输入。
(2),专家系统根据绑定的知识库信息,访问知识访问中间件,获取所需的知识库。
(3)专家系统向容器中间件发送运行时所需信息,包括所要请求的智能组件信息,那些智
能组件需要的初始化参数信息(例如,对基于规则的推理机,可以有初始事实,推理策略,知识库等,其中,初始事实和推理策略可以封装到一个对象里面作为参数,知识库则以xml 流的形式,由专家系统向知识访问中间件发送请求,然后知识访问中间件直接返回给相应的的智能组件Web服务)。
(4),容器中间件根据所要请求的智能组件信息(智能组件的id)访问组件管理服务,定位所需的智能组件,并加载,然后将推理请求转发给对应的智能组件处理,智能组件需要读取传送过来的初始信息,完成推理工作,然后将处理后的结果(XML)返回给用户。需要的话,容器可以将智能组件的处理过程也返回给用户。
(5),如果需要的话,专家系统向容器中间件发出协作请求。
(6),容器中间件接受协作请求,调度相应的智能组件进行协作处理,并将结果返回。
(7),专家系统对返回的结果进行解析,以直观的方式显示给用户。
说明,a,容器中间件的接口和知识访问中间件的接口都以web服务的形式暴露出来。b,推理机组件需要的知识库由专家系统请求知识访问中间件,知识访问中间件将知识库直接返回给容器使用。c,智能组件不能直接被外部访问,其服务请求和参数由容器转发。d,容器中间件仅暴露一个web服务类,运行时通过专家系统传递的不同组件id,选择不同的智能组件运行。e,智能组件在注册到组件管理服务器上后,在组件库里保存对应的组件的位置,以利于容器在运行时加载相应的组件,组件管理服务器和容器服务器应是同一个机器,否则加载智能组件时就需要通过网络下载,而下载的组件和本地的组件拥有的运行权限(比如访问非托管资源的权限)不同,有可能不能正常提供推理功能。
在专家系统开发阶段,开发人员需要查询可用的知识库和组件。如果没有找到,二次开发人员需要开发相应的知识库和组件,知识库和智能组件需要注册到相应的服务模块才能使用。
需要进行如下工作:
对于自定义开发的智能组件:需要将其上传到组件管理服务中,并进行注册,注册时要提供足够详细的元数据信息,注册后产生一个组件id,保存在组件库中;
对于自定义开发辅助组件:包括输入界面组件,输出界面组件,推理过程显示组件等,需要注册到组件库中,使用时需要下载到本地。
对于自定义开发的知识库:1,知识访问中间件定义一套规范,用户可以使用自己的知识库开发工具或本系统提供的知识库开发工具开发满足规范的知识库(使用本系统的知识库开发工具开发的知识库其形式自然满足规范),这样可以进行不同知识表示形式之间的转换。2,如果用户有其他需要(用户拥有需要不满足规范的特殊知识表示形式的推理机组件,但没有相应表示形式的知识库),可以开发自定义表示形式的知识库(不满足规范),同时用户需提供相应的知识库操作Web服务,根据需要(用户具有特殊表示形式的知识库,但没有对应