基于业务支撑组件的建筑开放平台的设计与实现毕业论文
2020-02-23 18:21:03
摘 要
中国建筑互联网开放平台(简称ICOP)是建筑行业新一代互联网产品,致力于为建筑行业提供高效、安全、可靠的信息化服务及解决方案,包括管理软件及服务、互联网平台服务、数据服务等等。ICOP是一个基于微服务架构的庞大的互联网系统,其中的微服务分为两类:一类是与某一具体业务紧密相关的,为实现某个特定的功能而存在的微服务;另一类是存在于ICOP底层的,为整个系统提供基础服务的微服务,例如本文讨论的业务支撑组件。
业务支撑组件是ICOP中用于提供底层公共业务的微服务,主要提供模块管理、功能管理、单据类型定义及管理、系统参数定义及管理、参照定义、搜索方案管理等服务,ICOP开发人员可在业务支撑组件中配置模块、功能、单据类型、系统参数、参照、搜索方案等数据,并通过RPC调用获得这些信息。
本文对业务支持组件(下称本系统)的设计与实现进行了探索和实践。本系统基于B/S模式;后端工程基于Spring MVC,为前端工程提供REST服务,同时利用dubbo实现RPC调用;前端工程应用React以及Ant Design开发;系统使用MySQL作为数据库存储数据。业务支撑组件在保证所有功能正常运行的同时,还保证以下三个特性:可独立部署、可嵌入ICOP平台中、服务高可用。
关键字:微服务;Spring MVC;Dubbo;React
Abstract
Internet Construction Open Platform of China (ICOP) is a new generation of Internet products in the construction industry. It is aim to providing efficient, safe and reliable information services and solutions for the construction industry, including management software and services, Internet platform services, data services, etc. . ICOP is a large-scale Internet system based on microservices architecture. The microservices are divided into two categories: one is a microservice that is closely related to a specific service to achieve a specific function; the other is It is a microservice that exists at the bottom of ICOP and provides basic services for the entire system, such as the Business Support Components discussed in this article.
Business Support Components is a microservice used to provide the underlying public services in ICOP. It mainly provide module management, function management, bill type definition and management, system parameter definition and management, reference definition, search template management and other services. ICOP developers can configure data such as modules, functions, bill types, system parameters, references, and search template with the Business Support Component, and obtains this information through RPC calls later.
This article explores and practices the design and implementation of business support components (hereinafter referred to as the system). The system is based on the B/S model; the back-end project is based on Spring MVC and provides REST services for the front-end project, while using dubbo to implement RPC calls; the front-end project uses React and Ant Design development; the system uses MySQL as the database to store data. The business support component ensures the normal operation of all functions and also guarantees the following three features: It can be deployed independently, it can be embedded in the ICOP platform, and the service is highly available.
Key Words:Microservices; Spring MVC; Dubbo; React
目录
第1章 绪论 1
1.1 研究背景 1
1.2 研究目的及意义 1
1.3 国内外研究现状 1
1.4 本文的主要研究内容及安排 2
1.5 本章小结 2
第 2 章 系统分析 3
2.1 可行性分析 3
2.1.1 技术可行性 3
2.2.2 经济可行性 3
2.2 需求分析 4
2.2.1 系统功能性需求 4
2.2.2 系统非功能性需求 4
2.3 开发环境 5
2.3.1 Spring MVC框架 amp; Dubbo 5
2.3.2 React框架 6
2.3.3 MySQL数据库 6
2.3.4 开发工具 6
第 3 章 总体设计 7
3.1 系统目标 7
3.2 系统整体结构 7
3.3 系统功能结构 8
3.4 实体关系建模 8
第 4 章 系统的详细设计与实现 10
4.1 系统前端页面及逻辑实现 10
4.1.1 前端工程的创建 10
4.1.2 界面实现 10
4.1.3 与后台交互 12
4.2 系统后台功能的实现 12
4.1.1 后端工程的创建 12
4.1.2 RESTful接口的提供 13
4.3 Dubbo接口的提供 14
4.4 数据库设计 15
第 5 章 系统测试 16
5.1 前端页面的测试 16
5.2 后端RESTful接口测试 17
5.3 Dubbo接口测试 17
第 6 章 总结和展望 19
6.1 开发总结 19
6.2 展望未来 19
参考文献 20
致谢 21
第1章 绪论
1.1 研究背景
随着互联网技术的飞速发展,各个传统领域的信息化程度也越来越高,建筑行业也是如此。ICOP是致力于提供建筑行业信息化解决方案的庞大的云服务平台,其采用灵活的微服务架构。一个微服务仅关注某一个相对独立的业务,因为职责单一,复杂度有限,所以通常情况下,微服务能高效可靠的完成该业务下的具体逻辑。微服务架构有效的控制了软件系统复杂度的增长速度,并能快速响应业务需求的变化。
本项目以ICOP为基础,设计并实现一个业务支撑组件,其本质是ICOP平台中的一个微服务。
1.2 研究目的及意义
中国建筑互联网开放平台(简称ICOP)是建筑行业新一代互联网产品,致力于为建筑行业提供高效、安全、可靠的信息化服务及解决方案,包括管理软件及服务、互联网平台服务、数据服务等等。
业务支撑组件是ICOP中用于提供底层公共业务的微服务[1],主要提供模块管理、功能管理、单据类型管理、系统参数管理、参照管理、搜索方案管理等服务。
要实现业务支撑组件,除了实现上述功能之外,还需满足下列要求:
(1)该微服务可独立部署。微服务架构中,要求每个微服务可独立部署,微服务之间使用轻量级的机制通信,本系统使用dubbo。
(2)可嵌入到ICOP平台中,并为其他微服务提供上述服务。
(3)服务高可用。由于业务支撑组件为ICOP提供基础服务,ICOP中几乎所有微服务都依赖于该组件,并发量较大,因此服务必须高可用。
1.3 国内外研究现状
目前国内外对于建筑工程信息化管理技术的探索比较少,该领域也尚未出现成熟的解决方案。
2016年9月,在中国城市科学研究会主办的第二届全国智慧结构学术会议上,彭路续,孙苗苗等人发表《基于“宝冶云”平台的建筑工程项目管理信息化研究》,以深圳人民医院项目进行实例论证,尝试对对工程项目进行信息化管理;但论证中,工程项目特殊性较高,平台不能灵活适应建筑行业多样的需求;所述解决方案局限于理论研究,未应用于生产实际。
但在当前互联网时代背景下,对于微服务架构的设计和实现已经比较成熟。
Dubbo是阿里巴巴公司在2012年开源的分布式服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,目前已在阿里巴巴公司内部和各种微服务架构中广泛使用。
国外同样致力于分布式微服务架构的框架还有Spring团队的Spring Cloud,它是一系列框架的有序集合,利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署[2]。目前应用同样十分广泛。
1.4 本文的主要研究内容及安排
本文主要分为六章,每章的内容及安排如下:
第一章为绪论,主要讨论了论文选题的研究背景和意义;简要阐述了在建筑行业互联网化方面的国内外的研究现状;同时,概括了本文的研究内容和安排。
第二章为系统分析,在可行性分析中分析了该项目的技术可行性和经济可行性,随后进行了需求分析,从多个角度分析系统的功能性需求和非功能性需求。最后再介绍了系统开发所需的开发环境。
第三章对项目进行了总体设计,包括了系统的整体结构,功能结构,业务实体之间的关系建模等。
第四章分别从前端和后端两个部分,详细地介绍了项目的设计和实现。其中重点描述了后端工程提供的RESTful接口以及dubbo接口。
第五章讲述了项目开发过程中或完成后,对系统进行的测试,测试分析和总结。
第六章主要对本项目的实践进行了总结,找出开发过程中遇到的问题及解决方案,归纳开发过程中的收获;最后对业务支持组件、ICOP以及整个建筑行业提出展望。
1.5 本章小结
本章主要概要性地描述了研究背景,介绍了ICOP、业务支撑组件以及研究的主要目标;然后简要分析了建筑行业互联网化的国内外现状以及微服务架构的发展现状;最后,简述了本文的主要研究内容及安排。
第 2 章 系统分析
本章对业务支撑组件进行系统分析。分别从技术和经济两方面进行可行性分析,得出结论:可行性高;然后进行了需求分析,明确了系统的功能性需求以及非功能性需求;最后简单介绍项目的开发环境。
2.1 可行性分析
2.1.1 技术可行性
项目采用前后端分离的开发方式。后端基于Spring MVC开发,使用dubbo实现RPC调用;前端使用npm作为包管理工具,基于React框架,使用组件库为Ant Design。
Spring MVC是一个Java Web框架,提供了构建Web应用程序的全功能MVC模块;其初始版本发布于2002年10月1日,不断完善至今,已有16年,是成熟可靠的Java Web框架;并且由于其多年来的活跃状态,沉淀了很多宝贵的经验,Web应用程序的各方面均有成熟的解决方案。Dubbo是一个开源的分布式框架,由阿里巴巴公司开发,使得应用程序可以通过高性能的RPC实现服务的输入和输出功能,在微服务架构中得到了广泛的应用[3];本系统采用dubbo可为ICOP系统中的其他微服务提供服务。
React是由Facebook开源的前端框架,本质是一个为数据提供渲染为HTML视图的JavaScript库[4];React框架中,HTML中的视图元素被视为一个个组件,当数据改变时,React重新渲染相关组件,从而更新HTML页面;Ant Design是一套开箱即用的高质量的React组件,使用它可快速的构建出项目前端的页面及逻辑。
综上,业务支撑组件的虽然业务繁多复杂,涉及的技术面广泛,但技术成熟可靠,开发速度较快,可实施性高,因此在技术方面,业务支撑组件的开发没有障碍。
2.2.2 经济可行性
在经济方面,成本来源可分为三个阶段:需求阶段,开发阶段,运维阶段。下面主要从这三个方面介绍项目的经济成本:
(1)在需求阶段,只需投入相应人力即可完成,并不需要额外的经济支持。
(2)开发阶段,使用开发工具为eclipse,Sublime Text等软件,这些软件均可免费使用,因此开发阶段也不需要投入额外的经济成本。
(3)在运维阶段,由于需要将项目的前后端工程部署到线上,因此需要向第三方购买云主机、域名以及SSL证书等,为了降低这方面的成本,初始阶段可选择配置较低的云主机,并视情况弹性扩容。
综合上述三个阶段,只需投入较低的经济成本,便可保证业务支撑组件的正常开发和运行。
2.2 需求分析
2.2.1 系统功能性需求
业务支撑组件本质上是ICOP系统中的一个微服务,它的作用是为ICOP中其他微服务提供公共的功能,包括模块管理、功能管理、单据类型管理、参数设置、参照管理和查询方案管理。
(1)模块管理;ICOP中的每一个微服务都作为一个模块在业务支撑组件中注册,业务支撑组件提供维护模块的功能。
(2)功能管理;每个模块可对外提供的服务,称之为功能,功能需要在业务支撑组件中注册才可被其他模块或者用户使用。
(3)单据类型管理;由于ICOP的业务中,涉及很多合同、收料单、出库单、报销单等等文件(统称为单据),因此在业务支撑组件中提供单据类型管理的功能,用于定义和管理单据类型,便于ICOP中其他业务引用。
(4)参数设置;定义并维护ICOP系统中的全局参数,例如数值精度、分页参数、页面大小等等,开发人员也可自定义参数,然后利用dubbo接口使用该参数。
(5)参照管理;参照是ICOP系统中不同模块之间用于共享数据的重要方式,是访问数据的门户;业务支撑组件提供参照的定义和维护功能,参照使用方只需指定参照编码便可轻易引用参照中的数据。
(6)查询方案管理;各个模块都可能产生数量巨大的单据,因此用户在浏览单据时,需要过滤和排序;查询方案为用户提供一个默认的过滤和排序规则,使某些单据对特定的用户不可见(例如总公司的单据,其子公司不可见);业务支撑组件提供查询方案的定义以及维护功能。
根据以上分析,模块管理、功能管理、单据类型管理、参照管理的使用者为模块管理员或者ICOP开发人员;参数设置使用者为模块管理员、运维人员或者ICOP系统管理员;查询方案管理使用者为模块管理员或者运维人员。据此绘制用例图如图1.1。
2.2.2 系统非功能性需求
非功能性需求是本系统除了满足上述功能性需求以外的,需要具备的特性。包括了系统的性能、页面交互的友好、可维护性等方面。系统的非功能性需求分析如下:
图1.1用例图
(1)在性能方面,由于业务支撑组件为ICOP提供基础服务,ICOP中几乎所有微服务都依赖于该组件,并发量较大,因此本系统必须具备较高的性能。
(2)页面交互的友好性:本系统面向的用户是ICOP中的技术人员,因此本系统界面不追求美观,但须简洁高效,风格统一。
(4)可维护性:在开发过程中,完善项目文档,适量编写注释,使系统便于维护。
2.3 开发环境
项目采用前后端分离的开发方式。后端基于Spring MVC开发,使用dubbo实现RPC调用;前端使用npm作为包管理工具,基于React框架,使用组件库为Ant Design。
2.3.1 Spring MVC框架 amp; Dubbo
Spring MVC是一个Java Web框架,提供了构建Web应用程序的全功能MVC模块[7];其初始版本发布于2002年10月1日,不断完善至今,已有16年,是成熟可靠的Java Web框架;并且由于其多年来的活跃状态,沉淀了很多宝贵的经验,Web应用程序的各方面均有成熟的解决方案。Dubbo是一个开源的分布式框架,由阿里巴巴公司开发,使得应用程序可以通过高性能的RPC实现服务的输入和输出功能,在微服务架构中得到了广泛的应用[3];本系统采用dubbo可为ICOP系统中的其他微服务提供服务。
2.3.2 React框架
React是由Facebook开源的前端框架,本质是一个为数据提供渲染为HTML视图的JavaScript库[4];React框架中,HTML中的视图元素被视为一个个组件,当数据改变时,React重新渲染相关组件,从而更新HTML页面[4]。Ant Design是一套开箱即用的高质量的React组件,使用它可快速的构建出项目前端的页面及逻辑。
2.3.3 MySQL数据库
MySQL数据库是一个流行的关系型数据库系统,搭配SpringData JPA可方便的进行数据的增删改查。
2.3.4 开发工具
项目使用到的开发环境及工具如表2.1所示。
表2.1开发工具
名称 | 版本 | 描述 |
JDK | 1.8 | Java代码编译调试 |
Eclipse | Oxygen Release | 后端代码编辑amp;调试工具 |
Sublime Text 3 | 3.1.1 | 前端代码编辑工具 |
NPM | 3.10.8 | 前端包管理工具 |
第 3 章 总体设计
3.1 系统目标
业务支撑组件是ICOP中用于提供底层公共业务的微服务,主要提供模块管理、功能管理、单据类型管理、系统参数管理、参照管理、搜索方案管理等服务。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: