网构软件自主构件模型的设计与实现
- 格式:doc
- 大小:27.50 KB
- 文档页数:8
基于BIM的构件库系统设计与实现第一章 B一、技术概述随着建筑信息化技术的不断发展,建筑行业对BIM(Building Information Modeling,建筑信息模型)的应用越来越广泛。
BIM技术是一种基于三维可视化的建筑设计、施工和运营管理的新型方法,它通过将建筑物的各种信息进行数字化存储和管理,实现了建筑设计、施工、运营等各个阶段的协同工作,提高了工程质量和效率。
本文档主要介绍了基于BIM的构件库系统设计与实现的相关技术。
构件库是指在BIM模型中,对建筑物的构件进行分类、管理和检索的一种数据结构。
构件库系统是基于BIM技术的一种应用,它通过对建筑物的构件进行分类、管理和检索,为设计师、施工人员和运营管理人员提供了一个便捷的信息资源共享平台。
构件库系统的设计和实现涉及到多个方面的技术,包括BIM技术、数据库技术、计算机网络技术等。
本文档将介绍BIM技术的基本概念和特点,包括BIM模型的构建、数据管理、协同工作等方面的内容。
本文档将详细介绍构件库系统的设计原则和架构,包括构件库的分类、管理、检索等方面的内容。
本文档将对构件库系统的实现方法和技术进行详细的阐述,包括数据库设计、网络通信、界面设计等方面的内容。
通过本文档的学习,读者可以了解到基于BIM的构件库系统的基本原理和实现方法,为今后的研究和应用奠定基础。
1.1 B一、技术的发展历程BIM(Building Information Modeling,建筑信息模型)技术作为一种新兴的建筑设计和管理手段,自上世纪90年代诞生以来,已经在世界各地得到了广泛的应用和推广。
随着计算机技术的不断发展和普及,BIM技术也在不断地完善和发展,逐渐成为建筑设计和管理的重要工具。
BIM技术的发展起步较晚,但近年来得到了政府和行业的高度重视。
自2013年起,国家开始大力推广BIM技术在建筑行业的应用,先后出台了一系列政策和标准,为BIM技术的发展提供了有力的支持。
网构软件自主构件模型的设计与实现[摘要] 在传统构件模型的基础上借鉴软件自主性研究领域中对于实体的自主性的规约和支持手段,提出自主构件的概念用来刻画网构软件的实体元素,建立了自主构件模型,探讨了改进现有构件框架,从而为自主构件提供支撑的可行方案。
[关键词] 自主构件环境感知器规则引擎1、引言现有的构件模型在刻画组成网构软件的实体元素时,存在以下不足:第一,网构软件的实体元素是独立开发和交付并且分布在整个网络上,它们的运行是由所在的网络节点提供本地支持和控制。
同一系统中的不同构件可能分属于不同的所有者,因此现有模型缺乏对构件独立性的刻画。
第二,这些模型对于系统有这样的假设,系统在运行阶段和组装阶段的结构是一致的,构件与构件、构件与环境之间的依赖关系从系统组装部署阶段一直到运行过程中始终是稳定的,因此现有模型缺乏对构件的主动性的支持。
针对上述存在的问题,借鉴软件自主性研究领域中对于实体的自主性的刻画和支持手段,有必要构建一种新的用于刻画internet 上自主构件的统一的计算模型。
2、自主构件模型研究与设计构件模型是构件的本质特征以及构件之间关系的抽象描述。
自主构件模型则要关注自主构件的本质特征及自主构件之间的关系。
2.1 自主构件的模型定义自主构件的规约包括如下内容:自主构件应该声明它向外部提供什么服务,对“做什么”进行语义描述。
自主构件发布它所提供的服务时,应该说明使用其服务的方法,也即关于客户该如何请求自主构件的服务的约定。
该约定是构件与客户传递各种交互消息的依据,是对服务功能的语法描述。
2.2自主构件模型的语义表达在定义自主构件模型的时候,希望根据模型能够推导出构件的行为和属性。
可以从以下几个方面来讨论自主构件模型的语义表达:自主构件何时开始去实现目标?自主构件何时承诺提供服务?自主构件的目标是否能够实现?自主构件如何实现它的目标?构件是否能够成功的提供服务?构件如何提供服务?2.3自主构件模型的设计自主构件的内部结构主要包括知识层、行为层、环境感知层。
知识层主要用来对自主构件的目标、服务及所处的环境进行建模,行为层则主要关注如何实现自主构件的目标及向外提供服务,而环境感知层则用来感知环境中传递的各种服务请求信息。
环境感知层用于获取环境信息感知环境变化。
这一层的实现体主要是环境感应器。
自主构件之间的通信消息是携带环境信息的一种重要载体,因此环境感应器通过解析服务请求,来获取环境信息,并把捕获到的信息传递给行为层,一方面用来修改知识库,另一方面,作为推理器和规划器的输入使自主构件产生行为动作。
3、自主构件基本功能模块的实现自主构件主要功能模块主要包括环境感知器、规则引擎、规划图等。
3.1环境感知器的实现环境感知器负责感知环境的状态、获取和解析环境中的服务请求,然后将所捕获到的信息传递给行为层,一方面用来修改知识库,另一方面,被规则引擎ruleengine用来触发相关的规则。
下面是类sensor的主要成员变量和方法说明的实现:public interface sensor {/* 接收消息的邮箱 */protected act.ac.util.synchronizedqueue inbox;/* 负责发送消息的邮箱 */protected act.ac.util.synchronizedqueue outbox;/* 用于保存与本 sensor 所属的自主构件发生通信的其他自主构件的地址信息 */protected addressbook addressbook = new addressbook(); /* 消息接收线程,消息接收完毕后,将从消息中解析出的信息添加到知识库中*/protected server server;/* 消息发送线程, postman 从 outbox 中逐条取出消息,与消息接收者建立 socket连接把消息发送出去 */protected postman postman;/* 把要发送的消息 msg 投到发送邮箱里,当 needreply 为true 时,返回会话标识 */public string send(performative msg, boolean needreply); } 3.2 规则引擎的实现规则引擎是一个复杂的规则解释器,目前已有很多开源的非商业用途的规则引擎,其中jess[jess]是适用于java平台的一个轻量级规则引擎,使用rete算法处理规则匹配,而且支持后向推导,工作记忆查询,以及对java对象的直接操作和推理等功能。
类 ruleengine 的主要成员变量和方法的实现如下所示:public interface ruleengine extends thread {/* jess 规则引擎对象 */protected rete jessengine;/* 用于保存规则中的动作函数 */protected hashtable actionstable;/* 用于保存从通信层传入的 acl 消息,ruleengine 将按序根据规则处理 msgqueue 中的消息 */ protected synchronizedqueue msgqueue;/* 在构造函数中初始化 jess 规则引擎的事实库,导入规则文件 filename.clp ,并启动 jess 规则引擎 */public ruleengine(accontext context, string filename); /* 向 msgqueue 添加 acl 消息 */public void newmsg(performative msg);/* action封装了用户自定义的动作函数,addaction 把 action 加到 actionstable 中 */public void addaction(acaction action);/* 把自主构件提供服务的能力转换成事实写入事实库中 */ public void addacservices(hashtable servicetable); }3.3 规划引擎的实现规划是自主构件行为的一个动作序列,规划执行引擎负责执行这样的动作序列。
planengine 的主要成员变量和方法的实现如下所示:public interface planengine extends thread {/* 规划执行引擎中的任务队列 */protected synchronizedqueue queue;/* 向任务队列 queue 中添加任务,即动作结点 */public synchronized void add(node node);/* 依次执行任务队列 queue 中的任务 */public void run();/* 执行实现服务 service 的规划, input 是第一个动作的输入参数 */public void plan(string service, object input); }3.4 规划图的实现自主构件提供的每一个服务对应着一个任务规划,服务的实现通过规划的执行来完成。
由于采取离线方式来制定规划,因此需要用一个类来记录规划,这便是规划图类。
类 plangraph 的主要成员变量和方法的实现如下所示:public interface plangraph {/* 用于记录该图的拓扑结构。
二维数组的组成为:{{ 节点名,点的第一条边名,第一条边终点名,第二条边名,第二条边终点名 ......}{ 第二个节点名, ......} ......} */protected string[][] structure;/* 图的起始节点名 */protected string startnodename;/* 执行这个规划,把规划图中的起始结点放入规划引擎的执行队列,input 是起始结点的输入参数 */public void rungrpah(object input, graphengine engine); } 3.5 自主构件的实现自主构件是环境感知器、规则引擎、规划引擎、知识信息等的合成。
类 autonomouscomponent 的主要成员变量的实现如下所示:public interface autonomouscomponent {/* 环境感知器 */protected sensor sensor;/* 规则引擎 */protected ruleengine ruleengine;/* 规划引擎 */protected planengine planengine;/* 其他自主构件的信息 */protected vector acquaintances;/* 服务及服务所对应的规划图 */protected hashtable servicetable;/* 规则文件 */protected string rulefile; }由此,证明了自主构件模型的可行性。
参考文献:[1] 孙熙,庄磊,刘文,焦文品,梅宏,可定制的自主构件运行支撑框架,软件学报,2007 721-732.[2] 李斌,吕建,朱梧槚, 基于情境演算的智能体结构,软件学报,2003,vol.14,no.4.[3] 郭双宙,基于语义web规则的软件体系结构.doc,计算机工程,2010,vol.22,no.6.作者简介:黄建平(1973-),男,讲师,主研方向:计算机信息管理。