软件工程课程设计·SOA架构搭建SSM框架的网上商城系统

项目简介

本系统利用SSM框架、Dubbo框架、Maven模块化开发等技术开发的一个网上商城项目,主要包括订单系统模块、购物车系统模块、搜索系统模块、后台管理系统模块等等,实现了一个完整的网上购物系统。

项目工程

项目工程及其对应介绍如图1表2所示。
图1 项目工程图

表2

项目工程 相关介绍
commons 存放Cookies、HttpClient等工具类
parent 父项目
pojo 实体类
service 服务接口
service-impl dubbo的生产者
manage 后台项目
order 订单模块
passport SSO单点登录模块
redis 缓存模块
search 搜索模块

项目Flow

项目Flow见下图

项目Flow图

系统相关技术介绍

技术选型:

后台框架:Spring、SpringMVC、MyBatis

前端技术:JSP、jQuery、EasyUI

数据库:Redis、MySQL

服务器:Tomcat、Nginx

服务调度:Dubbo

跨域技术:Jsonp、HttpClient

SOA架构(Service Oriented Architecture)

“面向服务的架构”:他是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用。
SOA架构示意图

SOA架构说明

将重复功能或模块抽取成组件的形式,对外提供服务,在项目与服务之间使用ESB(企业服务总线)的形式作为通信的桥梁。

SOA架构优点

重复功能或模块抽取为服务,提高开发效率。​可重用性高。可维护性高。

SOA架构缺点

各系统之间业务不同,很难确认功能或模块是重复的。抽取服务的粒度大。系统和服务之间耦合度高。

SOA架构实现高并发

SOA架构中每个子模块都是一个工程,都可以独立部署,把工程部署到不同服务器就可以轻松实现高并发,所以SOA架构可以说是为解决高并发而生的。

ESB(企业服务总线)

简单来说ESB就是一根管道,用来连接各个服务节点。为了集成不同系统,不同协议的服务,ESB做了消息的转化解释和路由工作,让不同的服务互联互通。

Dubbo框架

Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC(remote procedure call)框架,可以和Spring框架无缝集成。

Dubbo架构图(Dubbo官方提供)

节点 角色名称
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

– 虚线都是异步访问,实线都是同步访问
– 蓝色虚线:在启动时完成的功能
– 红色虚线(实线)都是程序运行过程中执行的功能

调用关系说明:

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Zookeeper介绍

Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 。 Dubbo官方推荐使用Zookeeper作为服务注册中心。

Zookeeper树型目录服务图

流程说明:

  • 服务提供者(Provider)启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址
  • 服务消费者(Consumer)启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
  • 监控中心(Monitor)启动时: 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址

maven介绍

maven 是一个项目管理工具,主要作用是在项目开发阶段对Java项目进行依赖管理和项目构建。其中依赖管理,就是对jar包的管理。通过导入maven坐标,就相当于将仓库中的jar包导入了当前项目中。项目构建是通过maven的一个命令就可以完成项目从清理、编译、测试、报告、打包,部署整个过程。

MySQL

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,使用SQL语言访问数据库,由于其体积小、速度快、成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

Redis

Redis数据库就是一款缓存数据库,用于存储使用频繁的数据,这样减少访问数据库的次数,提高运行效率。Redis其实就是说把表中经常访问的记录放在了Redis中,然后用户查询时先去查询Redis再去查询MySQL,确实实现了读写分离,也就是Redis只做读操作。由于缓存在内存中,所以查询会很快。

Redis示例图

跨域技术

跨域:一个 Servlet 容器(tomcat)中项目调用另一个 servlet 容器(tomcat)中项目,称为跨域。
原因:ajax 在研发时处于安全性考虑不允许跨域请求的. ​
解决方法1:使用 jsonp​。
解决方法2:由项目访问自己的控制器,自己的控制器访问自己的 service,在自己的service 中使用 httpclient 调用另一个项目的控制器方法。
二者区别见下表

项目介绍和效果展示

门户模块

门户模块主要包含网上购物商城系统的主页,其中包含登录注册、商品分类、各模块和商品的快捷入口,在这还展示了商城最新最热的商品推荐,用户可以在主页直接进行浏览购买。具体效果展示如下图2。
图2 门户模块图

购物车模块

购物车模块主要包含网上购物商城系统的购物车页面,用户可以把自己喜欢的物品加入到购物车中进行下一步挑选,在购物车模块用户可以删除商品、修改商品数量、进行结算等操作。具体效果展示如下图3。
图3 购物车模块图

商品模块

商品模块主要包含网上购物商城系统的商品展示页面,用户可以在本页面查看商品的具体参数,比如价格、性能和商品图片,用户如果喜欢也可以加入购物车,分享给好友等等。具体效果展示如下图4。
图4 商品模块图

后台模块

后台模块主要包含网上购物商城系统的后台管理页面,管理员可以在本页面管理用户和商品,可以对其进行增删改查操作。具体效果展示如下图5。
图5 后台模块图

订单模块

订单模块主要包含网上购物商城系统的订单页面,用户提交购买时来到本页面,进行收货人信息的完善和选择支付方式和配送方式等,在完成以上信息后,即可提交购买商品。具体效果展示如下图6。
图6 订单模块图

项目总结

本系统利用SOA架构实现了网上商城系统。SOA架构利用其面向企业商业流程、更好的适应性和扩展性、组件性和互用性、共用资源、高并发、易于维护等优点,在开发类似于网上商城这种高并发的大型项目时,具有得天独厚的优势。除了网上商城之外,一些在线聊天系统、博客网站等等在用户达到一定程度之后也可以使用SOA架构、微服务架构来解决高并发等问题。

源码及其解释文件

免费提供源码
https://download.csdn.net/download/zjlwdqca/13621359

软件工程课程设计·SOA架构搭建SSM框架的网上商城系统相关推荐

  1. 基于SSM框架的服饰商城系统的设计与实现(文末附源码)

    摘要 现如今我们处于大数据时代,我们对网上商城的概念并不感到生疏,随着互联网科技的发展,网络在人们生活中的运用越来越广泛,网上购物已经成为了现代购物的主流趋势.网上购物具有多种选择.性价比高等优势,网 ...

  2. 毕业设计 课程设计 大作业 基于JAVA WEB的网上购物系统的设计与实现

    文章目录 前言 1 运行效果 2 系统设计说明 2.1 整体设计 2.1.1 实现的功能: 2.1.2 系统工作流程: 2.2 总体设计功能图 2.3 数据库设计 3 项目 前言 随着计算机网络技术的 ...

  3. 选题:基于SSM框架实现汽车配件商城系统

    项目编号:BS-SC-033 前言: 随着互联网技术逐渐的深入到生活,网站形式的展示窗口,已经成为大众迫切的需要.论文中的SSM网上商城购物网站专门是基于B/S模式建立起来的,为用户专门研发的一个易操 ...

  4. java ssm热带水果网上商城系统--

    目录 第一章 绪论 5 1.1 研究背景 5 1.2系统研究现状 5 1.3 系统实现的功能 6 1.4系统实现的特点 6 1.5 本文的组织结构 6 第二章开发技术与环境配置 7 2.1 Java语 ...

  5. SSM柳州博物馆文创产品网上商城系统 计算机毕设源码14620

    摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,博物馆文创产品网上商城系统当然也不能排除在外.博物馆文创产品网上商城系统是以实际运 ...

  6. 软件工程课程设计——技术栈【Go+Vue+PGSQL】的人事管理系统

    一.项目架构介绍 项目技术栈:Go+Vue+PGSQL 开发工具:IDEA2021.1 后端开发语言:Go 前端框架:Vue3.0(集成ElementUI组件) 后端框架:Gin.Gorm 数据库:P ...

  7. Spring框架学习笔记09:基于XML配置方式搭建SSM框架实现用户登录

    文章目录 一.采用MVC架构 二.用户登录运行效果 三.基于XML配置方式搭建SSM框架实现用户登录 (一)创建数据库与表 - simonshop (t_user) 1.创建数据库 - simonsh ...

  8. MVC架构和SSM框架的个人理解

    MVC架构和SSM框架的个人理解 前言 一.原生JavaWeb对应MVC架构 二.SSM框架对应MVC架构 第一块内容(MyBatis): 第二块内容(Spring): 第三块内容(SpringMVC ...

  9. ssm框架 html搭建,搭建SSM框架

    根据上篇文章搭建好开发环境后,就可以着手搭建SSM框架的开发架构了 1.打开eclipse 2.新建动态web项目 3.在项目的WebContent目录下的WEB-INF目录下的lib目录下复制所需的 ...

最新文章

  1. python 特征选择卡方_特征选择
  2. php多关键词精确查找,搜索引擎,全文搜索_请问有没有搜索引擎能做到Like级别的任意关键词精确查询?,搜索引擎,全文搜索,lucene,elasticsearch,百度 - phpStudy...
  3. Eclipse Android编程快捷键
  4. Python的Tkinter点击按钮触发事件
  5. arthas使用示例:profiler火焰图(CPU)
  6. hdoj2553(N皇后问题)
  7. undertow 怎么创建线程_为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow
  8. 50道编程小题目之【完数】
  9. java实现c语言的函数_C语言tolower函数介绍、示例和实现
  10. mysql enterprise backup 使用_mysql enterprise backup入门使用
  11. POJ 1192 最优连通子集(树形DP)
  12. 一台电脑如何同开两个或多个飞信?
  13. c 语言 二进制 十进制,C 语言实例 – 二进制与十进制相互转换 - C 语言基础教程...
  14. [Swift]LeetCode145. 二叉树的后序遍历 | Binary Tree Postorder Traversal
  15. Raki的读paper小记:Rational LAMOL: A Rationale-Based Lifelong Learning Framework
  16. 第5章 软件质量标准概述
  17. FFmpeg+SDL纯视频播放器
  18. 戴尔游匣G15 5520成功安装ubuntu2004 intel ax201 驱动(亲测可用)
  19. halcon深度图,平面拟合后,高度矫正
  20. 考研最卷的专业,我们替你查到了!

热门文章

  1. discuz 单点登录 ucenter
  2. java版溺尸掉三叉戟吗_溺尸 - Minecraft Wiki,最详细的官方我的世界百科
  3. 拯救地球精英【逻辑题】
  4. C++动态规划算法之0-1背包问题
  5. 神经网络算法英语,神经语言学英语
  6. 蓝桥杯——BASIC-3——基础练习 字母图形
  7. ArcEngine代码 地图制图点状要素符号化
  8. walking机器人入门教程-深度学习-使用yolov5进行物体识别
  9. Java波斯王子时之沙攻略_波斯王子时之沙详细操作按键指南
  10. 计算机毕业设计springboot+vue基本微信小程序的透析耗材管理系统