@startuml

sprite $bProcess jar:archimate/business-process
sprite $aService jar:archimate/application-service
sprite $aComponent jar:archimate/application-component
sprite $bEvent jar:archimate/business-event
sprite $aEquipment jar:archimate/physical-equipment



node  "用户客户端" #TECHNOLOGY{
    actor #Business "H5"  as H5
    actor #Business "微信小程序"  as 微信小程序
}

node  "商户客户端" #TECHNOLOGY{
    actor #Business "H5"  as 商户客户端H5
}

node  "mq" #TECHNOLOGY{
    actor #Business "H5"  as H5
    actor #Business "微信小程序"  as 微信小程序
}

archimate #Business "nginx for http"  as http服务nginx

node  "网关系统" #TECHNOLOGY{
    archimate #Business "用户模块"  as 用户模块
    archimate #Business "商户模块"  as 商户模块
}

node  "业务系统" #TECHNOLOGY{
    archimate #Business "订单模块"  as 订单模块
    archimate #Business "支付模块"  as 支付模块
    archimate #Business "充电桩模块"  as 充电桩模块
}

node  "充电桩" #TECHNOLOGY{
    archimate #Business "充电枪"  as 充电枪 <<physical-equipment>>
}

archimate #Business "nginx for tcp"  as 充电桩平台nginx



archimate #Business "充电桩平台服务\n同时支持联行协议(与充电桩保持长连接)和http协议"  as 充电桩平台服务



用户客户端 -down-> http服务nginx:http
商户客户端 -down-> http服务nginx:http

http服务nginx -down-> 网关系统
网关系统 -down-> 业务系统


充电桩模块 -down-> 充电桩平台服务:http下发指令
充电桩平台服务 -up-> 充电桩模块:重要通知


充电桩平台服务 -up-> mq:日志
mq -up-> 充电桩模块:消费日志

充电桩平台服务 -down-> 充电桩:下发指令

充电桩平台nginx -up-> 充电桩平台服务:转发
充电桩 -up-> 充电桩平台nginx:充电桩主动建立tcp连接，推送数据




@enduml
