可配置流程的设计及开发

前提
随着互联网技术的发展,企业、政府等用人单位中提倡办公自动化理念,即使用计算机软件进行业务、工作的流程管理。但由于业务和工作的流程种类繁多,且经常会需要变化和改动,目前业务系统面临许多问题。如果人工进行业务代码修改,将会产生非常多的重复工作,维护的成本巨大。随着用户的迅猛发展,对业务的需求也相应的快速增长,对提供的服务要求也是越来越高。让用户能够感受到无时间限制、无所不能的服务成为解决目前应用需求的重要手段,随着业务不断推陈出新,现有系统业务承载将会面临严峻的考验。

架构演进
单体架构、分布式系统、RPC、SOA、微服务、集群

单体架构
单体架构也称为单体系统或者单体应用,就是把一种系统中的所有的功能、模块耦合在一个应用中的架构方式;

单体架构的特点:
基于单体架构的项目最终会打包成一个唯一的jar包或者war包;它会以一个进程的方式来运行;
优点:项目易于管理,部署简单。
缺点:测试成本高、可伸缩性差、可靠性差、系统的迭代困难、跨语言程度差、团队协作难。
在这里插入图片描述
分布式系统
分布式系统(distributed system)由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。
分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。
因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
分布式系统可以应用在不同的平台上如:PC、工作站、局域网和广域网上等。

分布式系统的特点:
分布式系统是若干个独立计算机(软件)的集合,这些计算机协同工作,以组成一个完整系统。
优点:
(一)可靠性(容错)
分布式计算系统中的一个重要的优点是可靠性。一台服务器的系统崩溃并不影响到其余的服务器。
(二)可扩展性
在分布式计算系统可以根据需要增加更多的机器。
(三)资源共享
共享数据是必不可少的应用,如银行,预订系统。
(四)灵活性
由于该系统是非常灵活的,它很容易安装,实施和调试新的服务。
(五)更快的速度
分布式计算系统可以有多台计算机的计算能力,使得它比其他系统有更快的处理速度。
(六)开放系统
由于它是开放的系统,本地或者远程都可以访问到该服务。
(七)更高的性能
相较于集中式计算机网络集群可以提供更高的性能(及更好的性价比)。
缺点:
(一)故障排除
故障排除和诊断问题。
(二)软件
更少的软件支持是分布式计算系统的主要缺点。
(三)网络
网络基础设施的问题,包括:传输问题,高负载,信息丢失等。
(四)安全性
开放系统的特性让分布式计算系统存在着数据的安全性和共享的风险等问题。
在这里插入图片描述
RPC(Remote Procedure Call) 远程过程调用
是一种进程间通信方式,是一个技术思想,允许一个程序远程调用另一个程序上的函数,而不需要显示编码远程调用细节
  主要实现:rmi,dubbo,restful api,thrift,grpc
在这里插入图片描述
SOA (Service Origented Architecture)
基于RPC再次净化,面向服务的结构。ESB(Enterprise Service Bus):企业服务总线,服务中介(商业应用),主要提供服务与服务之间的交互。ESB包含的功能:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
面向服务的架构,将服务程序的不同功能单元(子服务)通过定义良好的接口联系起来
可以简单理解为,在分布式系统的基础上,增加服务治理功能,统一管理服务的注册,发现

在这里插入图片描述

微服务

SOA的一种改变,相对更轻量级
集群
若干个独立计算机(应用程序),提供相同的能力集(分主工作人员,和备份人员等),主要是为了提供高可用,扩展性能

在这里插入图片描述
架构改变对程序员带来区别
在这里插入图片描述

配置实现
注解:是一种分散式的元数据,与源代码紧绑定
简单的使用注解例如:@Service和@Resource
简化配置
直观便于理解
类型安全(编译前进行校验)

注解简单概括:写起来比较简单、方便,看起来也简洁,但是修改麻烦

文件配置:是一种集中式的元数据,与源代码无绑定
复杂的使用文件例如:数据源配置,redis配置,缓存配置。
修改配置而无需变动现有程序
降低耦合,使容易扩展
对象之间的关系一目了然
软件更具扩展性,例如依赖配置在 xml 中,最大限度地提升应用的可扩展性
具有成熟的验证机制确保程序正确性,利用 Schema 或 DTD 可以对 xml 的正确性进行验证,避免了非法的配置导致应用程序出错

文件配置概括:写起来比较灵活、修改方便,但是写和维护麻烦

数据库:是一种集中式多数据结构,与源代码无绑定

规则引擎
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策

目前项目实现方式
文件配置
简单开关/开发人员操作建议文件配置
是否开启 单点登录
是否开启 多租户
是否开启 licnese
数据库
复杂业务/功能使用人员可变更流程建议数据库
特殊作业
定时任务

配置前提
相同功能,不同业务流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值