1.1什么是SOA架构?

  SOA( Service Oriented Architecture)是一种面向服务的分布式架构,将每个实现特定功能的工程拆分为服务层和表现层。服务层负责处理业务逻辑,对外提供服务接口。表现层负责处理与前端的交互,具体业务逻辑只需调用服务层发布的接口。

  面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

  SOA是把服务分成了若干,表现层分成了若干。表现层和服务层没有耦合关系,表现层可以用任意一个服务层,开发的时候,仅仅是增加服务层和Web层2个工程,并不会把服务层和Web层当成一个整个工程,它们是独立的。

  1.2 Dubbo

  目前较为流行的SOA 架构开发方式是使用Dubbo 技术。在SOA 架构中,每个功能模块都会发布服务或调用服务,那么就需要有一 个服务中心对各个服务进行统一的资源调度与治理,Dubbo 就是这个服务中心的管理工具。 Dubbo 对 Spring 有很好的支持,只需在 Spring 配置文件中进行相关的配置即可使用。 Dubbo 中主要有服务提供者、服务消费者和注册中心三个角色,还有一个监控中心对每次服务调用进行监控与统计。服务提供者向注册中心发布自己提供的服务,服务消费者向注册中心订阅自己所需的服务,服务中心将服务提供者提供的服务及地址列表给服务消费者,即实现了服务调度。在项目中,服务层工程作为服务提供者,需要通过配置向注册中心暴露服务的接口。表现层工程作为服务消费者,需要通过配置从注册中心引用服务接口。注册中心推荐使用 Zookeeper,负责服务的注册与查找。

2.基于SOA架构的图书商城

  图书商城系统可以分为后台系统、前台系统、登陆/注册系统、搜索系统,每个子系统运行在各自的服务器上,互相之间通过调用接口实现整个网站的功能。商城SOA架构图如图所示:

  2.1后台系统

  后台系统的主要使用者为商家,提供图书管理、订单管理等功能,图书管理又可分为图书分类和图书基本管理。后台系统提供对图书、图书分类、订单增、删、改、查的功能。使用 FastDFS 作为图片服务器供图书图片的上传下 载。

  2.2前台系统

  前台系统的主要使用者为买家,买家在前台系统可以进行登陆注册、览图书、查看购物车、提交订单等,搜索图书等,前台系统相较于后台系统会有更高的访问量与并发量,涉及大量数据库操作时会很耗费时间。因此可以使用非关系型数据库Redis 作为业务层与数据层之间的缓存。Redis 作为非关系型数据库,比传统的关系型数据库效率要高出很多,处理大量数据时性能有明显优势。业务层需要数据时首先访问Redis,如果有数据就直接返回,如果没有再向关系型数据库中查找数据,然后返回给业务层并向Redis 中添加数据缓存。

  2.3搜索系统

  搜索系统给前台系统提供接口,为用户提供图书查找的服务。搜索功能需要对用户输入的关键词进行复杂的查询,使用传统的关系型数据库查询效率较低,针对这个问题,我们可以使用 Solr(实现快速搜索的搜索引擎系统)技术对数据进行快速索引。

  在使用前需要为Solr 配置中文解析器,并设置分词方法与图书信息的搜索域。然后将图书信息导入到Solr 索引库中,用户在搜索框中输入关键词开始搜索,服务端在Solr 索引库中根据事先设置的分词以及搜索域进行查找,有图书信息与之匹配将返回给浏览器显示。

  2.4登陆系统

  将登陆系统独立出来可以为所有用户提供一个统一的接口。用户信息在数据库中有一个字段来标识用户身份,输入用户名密码后,服务端会在数据库中进行比对,若是卖家,则进入后台系统,若是买家,则进入前台系统。

  

转载于:https://www.cnblogs.com/qilin20/p/10910367.html

基于SOA的图书商城系统分析相关推荐

  1. 基于PHP的图书商城系统

    基于PHP的图书商城系统 一 介绍 图书商城系统基于原生PHP开发,数据库mysql,前端bootstrap.用户可注册登录,购物下单等,管理员登录后台进行管理.(附带参考设计文档) 技术栈 php+ ...

  2. 基于Servlet的图书商城系统-一天完成毕业设计,就这么简单

    项目技术栈 整个项目架构为B/S架构.分层架构 技术栈相对基础和底层,前端使用JSP和bootstrap, 后端原生的Servlet,使用DButils封装JDBC,动态SQL方式访问数据库. 适合对 ...

  3. (附源码)php+mysql+基于django的图书商城管理系统 毕业设计110938

    目 录 摘要 1 1 绪论 1 1.1 研究背景 1 1.2国内外研究现状 1 1.3论文结构与章节安排 1 2 图书销售管理系统系统分析 3 2.1 可行性分析 3 2.1.1 技术可行性分析 3 ...

  4. 【网页设计】基于HTML在线图书商城购物项目设计与实现----(图书商城 7页 带登录注册)

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商 ...

  5. 基于php的网上商城系统报告,基于PHP的网上商城系统分析与设计

    第一章绪论 1.1电子商务概述 电子商务是伴随着信息经济的高速发展而产生的一个较新的概念,是一种新型的商业运营模式.可以概括为电子商务Web服务器IT信息技术+企业业务.发展电子商务是不可阻挡的趋势, ...

  6. 【网页设计】基于HTML在线图书商城购物项目设计与实现_(图书商城10页) bootstarp响应式

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商 ...

  7. php商城系统文和答题_基于PHP的网上商城系统分析与设计

    1 目录 目录 .............................................................. 1 摘 要 ....................... ...

  8. php商城系统文和答题_基于PHP的网上商城系统分析和设计

    专业知识分享 目录 目录 .............................................................. 1 摘 要 .................. ...

  9. 【网页设计】基于HTML在线图书商城购物项目设计与实现

最新文章

  1. Mac 技术篇-设置Finder文件管理显示文件路径
  2. 开发转运维有什么好点的理由_企业微信SCRM哪家好点?
  3. Python与R的区别和联系
  4. JAVA入门[22]—thymeleaf
  5. react 更新input 默认值setfieldsvalue_值得收藏的React知识点查漏补缺
  6. linux xampp图形界面,linux下安装xampp,XAMPP目录结构
  7. [Pro]斐波那契数列阿【斐波那契数列】
  8. Oracle11gR1中细粒度访问网络服务(转)
  9. 李雅普诺夫(第二方法)稳定性分析+例题
  10. 仿药易通输入单位信息后如果没有则自动加入功能
  11. 使用jqery模拟网易严选购物车功能
  12. 使用开源组件slidingmenu_library来模拟实现人人客户端的主页侧滑界面
  13. 德州奥斯汀大学计算机专业,德克萨斯大学奥斯汀分校计算机系
  14. 新手学习python零基础_一个零基础新手学习Python应该知道的学习步骤与规划
  15. 电脑控制手机,脚本帮你实现更强大的功能
  16. Linux — 系统账号及权限管理
  17. 打包失败,Gradle构建失败问题良心解决,看完这个一定让你轻松
  18. 【Html——浪漫花瓣特效(效果+代码)】
  19. 玩转 Java8 Stream 流,常用方法,详细用法大合集!
  20. PS教程:仙气十足的摄影后期技巧

热门文章

  1. 2020年 Google 开发者大会可以预约了
  2. extjs jquery使用场合
  3. 每天进步一点点《ML - Sklearn库简单学习》
  4. 漫步微积分五——速度和变化率
  5. Apache Shiro入门
  6. 2022牛客寒假算法基础集训营1 ——H 牛牛看云
  7. QT [005] 数据库设计 - 一个被忽略的数据库show类 - ConnectionWidget Class
  8. c语言头文件格式图片_c语言中的.h头文件的格式
  9. java n 转换_自己写的Java N进制互相转换(2=N=16)
  10. linux系统如何创建python文件_请问linux下如何创建pycharm的快捷方式?