为了满足客户日益复杂的业务需求,确保能够在第一时间里推出市场所需的服务、并且业务支撑系统的改动量最小,华慕科技采用目前主流、稳定的微服务(micro services)架构。适用于中大型JavaEE企业级开发项目。
每个服务足够内聚,足够小,代码容易理解、开发效率提高;服务之间可以独立部署,微服务架构让持续部署成为可能;每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据客户的需要部署到合适的硬件服务器上;容易扩大软件开发团队,可以针对每个服务(service)组件开发团队;提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;系统不会被长期限制在某个技术栈上。
通过将业务功能和业务流程拆分,以集成的方式提供应用功能。使 IT 系统变得更有弹性,以便更好地发展和优化业务流程,从而能更快更好地响应业务对系统的需求的变化。
以上述架构为基础,结合功能和非功能性需求,我们软件外包平台主要以如下技术架构,详见下图
整体架构设计说明:
1. 权限认证、数据认证是通过平台安全策略控制,具有一定权限的用户角色,包括普通用户、领导、运营管理人员等角色。
2. 展现层是呈现在用户面前的表示层,以良好的、美观的UI向用户展示平台功能,用户在使用系统各项操作时具有良好的用户体验。
3. 通讯层负责各个系统间、接口与接口间、不同终端之间的统一接入,提供协议适配、认证鉴权、安全控制、页面集成、路由与调度等服务。
4. 服务层是支持平台运营的运营支撑平台,提供商家与平台的核心运营能力,统一支付能力、统一的能力开放接口等。
5. 集成与开发框架层为平台集成、开发提供底层的框架,平台所有模块均基于相同的框架来开发。
一、展现层
WEB端
对于用户,这一层的功能就是将来自系统的信息显示给用户,并将用户提交的数据传递给系统。vue技术支完成这一层的任务。这里,我们使用 vue 框架、Axios 、Element UI。
对于第三方系统,本层的表现为需要支持已有的服务的 WebService/Rest 接口,以及为支持第三方系统而提供的专有接口,例如为支持第三方系统而开放的 json 数据服务,以及基于文件的其他接口服务。
IOS端:
架构方式:
在项目的主体的设计上通常主要用 MVC,部分有 MVVM 或者 MVP 模式
开发语言:
1. Objective-C 语言
2. Swift 语言
以 Objective-C 语言为主。
安卓端:
架构方式:
MVP 模式开发,通过接口的方式对 view 层和 model 层进行解耦并将业务逻辑清晰的在 Presenter 层,利于后期代码维护和增加代码阅读性。
MVVM 模式,主要是通过 Google 的 dataBinding 框架来实现响应式的 ui 渲染。在某些复杂 UI 或者参数较多场景时能极大的减轻开发者的代码量。
开发语言:
1. Java 语言
2. Kotlin 语言
以 Java 语言为主
二、服务层
核心业务基于Spring Cloud 架构实现微服务化。 如图所示
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud做为大管家需要管理好这些微服务。
三、数据层
数据层组件负责最终实现存取系统数据、调用外部系统的数据和服务。主要使用框架如下:
mongodb:存储非结构化、关联性弱的业务数据。如控制器下发的指令数据,监测设备收集的传感器数据。
mysql:存储事务性数据,以及关联性将强的数据。如,订单、资金、交易数据;
HDSF:存储监控设备上传的图片和视频,以及报表文件;
ElasticSearch:实现ELK,存储日志数据;
华慕科技技术团队10+年开发经验,累积1000+成功案例,专注于创新型IT解决方案服务的领先企业,致力于通过产品设计及软件技术助力企业开启创新的互联网转型和信息化作业。我们始终以客户为中心,结合技术的可能性和行业最佳实践,为全行业企业提供定制化数字解决方案。