当前位置: 首页 > news >正文

【系统分析师】高分论文:论面向服务方法在信息系统开发中的应用

【摘要】
2024年1月,作为公司的系统分析师,本人有幸参与了某省公安厅新一代智慧警务管理系统的开发,该项目合同金额为1200万元,工期 11 个月,项目旨在实现警务信息数字化及协同化,使得警务资源高度融合,提高公安服务便捷性,主要功能包括重点人员管控、报警管理、舆情监控、情报分析等管理模块。在本项目的设计开发中,本人主要负责系统分析及系统设计等工作。鉴于本项目的总体框架明确,每个模块功能独立并且要求模块间松耦合以适应业务的不断变化,我选择了面向服务方法的设计。本文将结合项目实践详细描述等面向服务方法的开发过程,阐述项目实践中遇到的问题及解决方法。得益于面向服务方法的使用,系统按期交付且成功上线,得到领导及客户的一致好评。

【正文】
近年来,随着公安信息化建设的持续推进,我国公安机关的警务改革己开始迈上智能化发展的快车道,警务和人之间的相互,感知、联系越来越紧密,报警、與情监控、综合情报分享等智慧警务建设已成为当代警务发展的新超势,构建智慧警务将极大提高公安机关警务 管理的精细化和科学化水平,极大提升公安机关的执法水平和服务水平。新一代智慧警务管理系统,就在此背景下诞生,项目金额为1200万元,工期11 个月,项目的主要功能包括重点人员管控、报警管理、與情监控、情报分析等管理模块。本项目中,我有幸担任系统分析师,主要负责系统分析和茶统设计等工作。

鉴于本项目的总体功能明确,每个模块功能明确并且要求模块间松耦合以适应业务的不浙变化,考虑到面向服务的方法可以将不同功能的单元通过良好的接口和契约联系起来,把应用功能以服务的形式交付,具有高内聚、松耦合、弹性扩展等特点,可以将企业的 IT 资源集成成可操作、基于标淮的服务,使其能被重新组合和应用,因此我提议经项目组讨论后决定使用面向服务的方法设计。众所周知,基于面向服务的开发方法将系统的不同功能单元定义为服务接口,这些接口独立于硬件、操作系统和编程语言,服务以统一和通用的方式进行交互,其主要过程有:
1.识别服务。根据系统的需求,从业务流程中抽象出具有业务功能的服务,从而识别出系统中需要的服务,形成候选服务列表,并进行服务暴露决策。
2.设计服务。对每项服务进行详细的设计,包括服务的输入和输出、接口、实现、数据模型、安全性约束、响应时间等。
3. 实现服务。根据设计,实现每个服务,通过表示层、服务层、业务逻辑层及数据持久层等分层方式进行。
4. 测试服务。对每项服务进行单元测试,确保其功能正确。
5.组合服务。将各个服务组合成系统,进行整体测试。
6. 部署服务。将系统部署到生产环境中。

基于本项目中的重点人员管控、报警管理、與情监控、情报分析等功能具备自包含、粗粒度、松耦合、可复用等特点,为使各个功能子系统可以独立演化,我决定采用面向服务的方法来指导项目开发。

一、项目前期进行业务过程分析,获取关键服务列表
由于我司深耕公安警务行业多年,在警务系统研发方面积累了超过10年的研发实施经验,团队核心成员均具有多年行业相关的研发经验,能深刻理解业务。首先,项目组进一步梳理业务需求,使用 UML 进行建模,实施识别服务方法,确定核心用例、聚合关系、对大粒度服务进行构件识别:并将智慧警务这个业务总目标分解成重点人员管控、报警管理、與情监控、情报分析等子目标;然后分析哪些服务是用来实现这些子目标的,分别得出重点人员服务发现和定位接口、报警信息接入服务接口、與情监控的采集服务接口以及情报的多种模型分析接口等。其次,对这些服务候选者进行组合,并且按照各个子目标的业务范围,划分为服务目录。最后,将这些发现的服务目录提交到项目组讨论并最终确定。实践证明,将系统目标分解成功能独立的子目标,发现与各个子目标对齐的候选服务并确定及组合调整,可以确保关键的服务在流程分解和己有资产分析的过程中没有被遗漏。

二、中期阶段设计及细化服务
发现各个服务并形成服务列表后,项目组迅速开始设计及细化服务。

首先,项目组利用 Soapul 工具,使用标准的 Web 服务描述语言 WSDL 来定义各个服务,规范性地描述各个服务各个方面的属性,包括输入和输出、规则、服务、安全性约束、响应时间;同时进行相关消息、事件的定义和管理等,比如在重点人管控模块定义了20 个多服务接口,包括“位置定位服务”“位置上传服务”“重点人关联服务”等,每一个接口提供的服务均与需求 SRS 文档一一对应。與情管理模块,则定义了 “與情采集服务”“舆情主题服务”“舆情影响范围服务”等10 多个服务接口,可以供报警管理模块和情报分析模块集成调用。

其次,项目组对所有的服务进行讨论与服务暴露决策,决定哪些服务暴露和哪些服务不暴露。在这个过程中,项目组主要遵循服务暴露的三个原则:业务对齐、可组装、可重用。比如报警管理模块中”报警人社会图谱“就因为数据保密性决定不对其他模块开放,仅作为模块内部调用;而”地图 GIS 服务“可重用,决定暴露给重点人管理模块、與情管理模块和情报分析模块集成。

最后,所有的服务以文档的形式固定下来并在项目组中多次评审最后达成共识。实践证 明,清晰、详细的服务的定义,可以帮助系统进一步明确各个服务的服务边界;可以使得各个服务具备独立自主、自包含、松耦合的特点:能减少歧义,为后续实现服务打下良好的基础。

三、后期实现服务并最终完成开发系统
在完成服务详细的定义后,项目组开始完成每个服务的实现。具体而言,项目中的重点人员管控、报警管理、與情监控、情报分析等管理模块的各个业务逻辑层的各个服务均是标准的 Web 服务。系统基于 J2EE 平台开发运行,服务端使用 SSM 架构,应用服务器使用 Tomcat,数据库是MySOL,Web 服务的工具使用了开源的 Apache CXF。

报警管理模块的表示层,实现了”PGIS 服务“提供大屏上地图显示功能。情报分析模块分为表示层、业务逻辑层及数据持久层。其中,情报分析模块表示层,收到模型计算请求后确定服务接口,根据接口服务定义 WSDL 相关地址进行服务绑定,返回结果;业务逻辑层则主要根据情报模型进行计算,结果以JSON 格式返回;数据持久层的服务则在 MyBatis 中实现,负责与底层数据源交互。层与层之间职责分明,分工明确,遵循依赖倒置原则,层之间以接口交互,降低了耦合,同时有利于复用和替换。实践证明,按照层次分别实现的各个接口,能够快速把控系统的方向,提高了开发的效率,降低错误的几率,为后续交付打下良好的基础。

项目经过 11 个月艰苦奋战研发,系统经过多次交付、迭代发布之后于 2024 年 12 月成功上线,现己稳定运行 4 个多月,得到客户、领导的一致认可。现如今己经向某省公安厅所有部门推广使用。通过本次项目的设计与实现,我更加体会到选择正确的系统开发方法能够让整个项目开发工作节省很多不必要的时间、精力、财力的支出和浪费,从而得到事半功倍的效果。

http://www.xdnf.cn/news/1413523.html

相关文章:

  • 基于CotSegNet网络和机器学习的棉花点云器官分割和表型信息提取
  • 获取某天的零点日期
  • 解锁GPU计算潜能:深入浅出CUDA架构与编程模型
  • Day18 (前端:JavaScript基础阶段)
  • Langflow 评估与迭代技术深度分析
  • Cookie、Session 和 JWT
  • git中使用SSH的配置
  • 堆排序:高效稳定的大数据排序法
  • 【图论】 Graph.jl 概览
  • 面试问题详解十三:Qt 多线程同步【QReadWriteLock】讲解
  • 24数学建模国赛C
  • 【数据分享】上市公司-国际化程度-营业收入指标(2005-2023)
  • Linux软件升级方法总结
  • (树)Leetcode94二叉树的中序遍历
  • RK3568平台开发系列讲解:瑞芯微平台4G模块篇移植
  • Java 类加载器解析
  • macos自动安装emsdk4.0.13脚本
  • 【开题答辩全过程】以 家庭理财管理系统的设计与实现为例,包含答辩的问题和答案
  • Playwright 中Codegen的优点与局限性分析
  • a3002盘式制动器刹车cad➕三维图➕设计说明书
  • flutter工程
  • kkfileview自建cdn引入
  • 血缘元数据采集开放标准:OpenLineage Integrations Compatibility Tests Structure
  • 利用 Java 爬虫获取淘宝拍立淘 API 接口数据的实战指南
  • 基于VS平台的QT开发全流程指南
  • 蓝牙AOA助力智慧仓储管理系统
  • MongoDB 从零到入门:实用指南
  • OSWatcher安装和使用(简化版)
  • 其他八股总结
  • Day 01(01): Hadoop与大数据基石