【系统架构设计师】十一、系统架构设计(中间件|典型应用架构)

目录

九、中间件

9.1 基础概念

9.2 中间件分类

十、典型应用架构

10.1 J2EE和四层结构

10.2 JSP+Servlet+JavaBean+DAO

10.3 .NET和J2EE之争

往期推荐

历年真题练习


九、中间件

        之前总提到中间件,那么中间件到底是什么?在系统架构中又扮演者什么角色?一起来看看吧?教材 2.3.6 小结->中间件

9.1 基础概念

        中间件:在一个分布式系统环境中处于操作系统和应用程序之间的软件,可以在不同的技术之间共享资源,将不同的操作系统、数据库、异构的网络环境以及若干应用结合成一个有机的协同工作整体

        中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通信,有如下特点:

                (1)中间件是一类软件,而非一种软件;
                (2)中间件不仅仅实现互连,还要实现应用之间的互操作
                (3)中间件是基于分布式处理的软件,最突出的特点是其网络通信功能

        中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。

9.2 中间件分类

        按照中间件在分布式系统中承担的职责不同,可以划分以下几类中间件产品:

        (1)通信处理(消息)中间件,保证系统能在不同平台之间通信,例如 MQSeries。
        (2)事务处理(交易)中间件,实现协调处理顺序、监视和调度、负载均衡等功能,例如Tuxedo。
        (3)数据存取管理中间件,为不同种类数据的读写和加解密提供统一的接口。
        (4)Web 服务器中间件,提供 Web 程序执行的运行时容器,例如 Tomcat、JBOSS 等。
        (5)安全中间件,用中间件屏蔽操作系统的缺陷,提升安全等级。
        (6)跨平台和架构的中间件,用于开发大型应用软件。
        (7)专用平台中间件,为解决特定应用领域的开发设计问题提供构件库。
        (8)网络中间件,包括网管、接入、网络测试、虚拟社区和虚拟缓冲等,也是当前最热门的研发项目。

十、典型应用架构

10.1 J2EE和四层结构

        J2EE 平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件被分别部署到不同的机器中。

        客户层组件:J2EE应用程序可以是基于web方式的,也可以是基于传统方式的静态的HTML(标准通用标记语言下的一个应用)页面和Applets是客户层组件。

        Web 层组件:J2EEweb层组件可以是JSP 页面或Servlet。

        业务层组件:业务层代码的逻辑用来满足特定领域的业务逻辑处理。

        信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,和其它的遗留信息系统。例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。

10.2 JSP+Servlet+JavaBean+DAO

        JSP:用于显示、收集数据的部分。作为MVC中的视图V

        Servlet:作为业务逻辑层,用于处理复杂的业务逻辑,如验证数据、实例化JavaBean、调用DAO连接数据库等。作为MVC中的控制器C。在其中会调用Service方法处理服务。

        JavaBean:用于数据的封装,方便将查询结果在Servlet与JSP页面之间进行传递等。
        DAO:用于连接数据库及进行数据库的操作如:查询、删除、更改等。DAO与JavaBean合在一起为MVC中的模型M

        基本流程:JSP发一个数据到Servlet,Servlet收到后做下解析再根据数据调用相应的Service去服务,Service如果有要调用数据库就通过DAO跟数据库交互,使用JavaBean完成封装,返回结果给Servlet,Servlet再返回给JSP。如下(图是历年真题练习中捞出来的):

10.3 .NET和J2EE之争

         .NET平台:.NET框架处于操作系统和.NET应用语言之间,只适用于微软系统,而J2EE支持跨平台,任何安装了IM的平台。

        .NET和J2EE之争

                (1) JVM(将所有JAVA代码都编译为字节码,由IVM解释执行)和CLR(.NET核心技术,类似于JVM生成中间代码CLR,编译执行)。
                (2) 对多层分布式应用的支持,二者都支持多层分布式应用程序的开发:在表示层的平台支持上J2EE客户端支持多个平台,.NET只能在微软系统上运行,也正是因此,NET会对微软系统上的应用进行优化;在业务层,J2EE占优势,因为有许多开源的项目和代码供参考,开发就变得简单;在数据层,二者都支持多种数据库,都非常优秀。
                (3) 安全性,由于JAVA在.NET之后出来,借鉴了.NET优点,JAVA在运行时动态验证,.NET是静态全面验证,二者都非常优秀,不分上下。
                (4) 应用程序的部署,J2EE的部署相对来说较复杂,针对不同的系统要特别布置。
                (5) 可移植性,显然J2EE占优势,一次开发,到处运行。
                (6) 外部支持,J2EE占优势,得到了很多厂家的支持,.NET只是微软家。

往期推荐

【系统架构设计师】十一、系统架构设计(层次架构风格|MVC|面向服务的架构风格|ESB)-CSDN博客文章浏览阅读835次,点赞16次,收藏15次。三层C/S架构:将处理功能独立出来,表示层和数据层都变得简单。表示层在客户机上,功能层在应用服务器上,数据层在数据库服务器上。既然将两层C/S架构中的数据从服务器中独立出来了。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。企业服务总线ESB:简单来说是一根管道,用来连接各个服务节点。ESB的存在是为了集成基于不同协议的不同服务,ESB 做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通。https://shuaici.blog.csdn.net/article/details/140383777【系统架构设计师】十一、系统架构设计(基于体系结构的软件设计|特定应用领域软件架构)-CSDN博客文章浏览阅读532次,点赞9次,收藏7次。基于体系结构(架构)的软件设计(ABSD)方法是体系结构驱动的,即指构成体系结构的商业、质量和功能需求的组合驱动的。在基于体系结构的软件设计方法中,采用视角与视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求。DSSA 就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。DSSA 就是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。https://shuaici.blog.csdn.net/article/details/140434104

历年真题练习

        1.以下关于软件中间件的叙述,错误的是()。
                A.中间件通过标准接口实现与应用程序的关联提供特定功能的服务
                B.使用中间件可以提高应用软件可移植性
                C.使用中间件有助于提高开发效率
                D.中间件位于客户机服务器的操作系统之下,应用程序之上。管理计算资源和网络通信。

        2.J2EE应用系统支持五种不同类型的构件模型,包括

                A.Applet、JFC、JSP、Servlet、EJB
                B.JNDI、IOP、RMI、EJB、JSP/Servlet
                C.JDBC、EJB、JSP、Servlet、JCA
                D.Applet、Servlet、JSP、EJB、Application Client

人工分割线-答案

        1.D        解析:中间件位于客户机服务器的操作系统之,应用程序之。管理计算资源和网络通信。

        2. D        解析:J2EE 核心组成
        容器:Applet Container、Application Container、Web Container、EJB Container
        组件:Applet、Application、JSP/Servlet、EJB

        服务:
                HTTP(Hypertext Transfer Protocol):超文本传输协议
                RMl-llOP(Remote Method Invocation over theInternet Inter-ORB Protocol):远程方法调用,融合了Java RMI 和CORBA(Common Object RequestBroker Architecture 公共对象请求代理体系结构)。
                Java lDL(Java Interface Definition Language)“Java接口定义语言,主要用于访问外部的CORBA 服务。
                JTA(Java Transaction API):用于进行事务处理操作的API
                JDBC(Java Database Connectivity):为数据库操作提供的一组API
                JMS(Java Massage Service):用于发送点对点消息的服务的
                。。。。。等等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/802441.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring与设计模式实战之策略模式

Spring与设计模式实战之策略模式 引言 在现代软件开发中,设计模式是解决常见设计问题的有效工具。它们提供了经过验证的解决方案,帮助开发人员构建灵活、可扩展和可维护的系统。本文将探讨策略模式在Spring框架中的应用,并通过实际例子展示…

C++ | Leetcode C++题解之第240题搜索二维矩阵II

题目&#xff1a; 题解&#xff1a; class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m matrix.size(), n matrix[0].size();int x 0, y n - 1;while (x < m && y > 0) {if (matrix[x][y] targ…

LabVIEW异步和同步通信详细分析及比较

1. 基本原理 异步通信&#xff1a; 原理&#xff1a;异步通信&#xff08;Asynchronous Communication&#xff09;是一种数据传输方式&#xff0c;其中数据发送和接收操作在独立的时间进行&#xff0c;不需要在特定时刻对齐。发送方在任何时刻可以发送数据&#xff0c;而接收…

AI自动生成PPT哪个软件好?高效制作PPT优选这4个

7.15初伏的到来&#xff0c;也宣告三伏天的酷热正式拉开序幕~在这个传统的节气里&#xff0c;人们以各种方式避暑纳凉&#xff0c;享受夏日的悠闲时光。 而除了传统的避暑活动&#xff0c;我们还可以用一种新颖的方式记录和分享这份夏日的清凉——那就是通过PPT的方式将这一传…

【Linux】权限管理与相关指令

文章目录 1.权限、文件权限、用户文件权限的理解以及对应八进制数值表示、设置目录为粘滞位文件类型 2.权限相关的常用指令susudochmodchownchgrpumaskwhoamifile 1.权限、文件权限、用户 通过一定条件&#xff0c;拦住一部分人&#xff0c;给另一部分权利来访问资源&#xff0…

Amazon EC2 部署Ollama + webUI

最近和同事闲聊&#xff0c;我们能不能内网自己部署一个LLM&#xff0c;于是便有了Ollama webUI的尝试 对于Linux&#xff0c;使用一行命令即可 curl -fsSL https://ollama.com/install.sh | shollama --help Large language model runnerUsage:ollam…

【Dison夏令营 Day 21】用Python编写绘图

绘画 - 在屏幕上绘制线条和形状。单击标记形状的起点&#xff0c;再次单击标记形状的终点。可使用键盘选择不同的形状和颜色。 """Paint, for drawing shapes.Exercises1. Add a color. 2. Complete circle. 3. Complete rectangle. 4. Complete triangle. 5. A…

大厂面试官问我:为什么Redis的rehash采用渐进式,而Java的hashmap是一次性rehash?【后端八股文十二:Redis hash八股文合集】

本文为【Redis hash八股文合集】初版&#xff0c;后续还会进行优化更新&#xff0c;欢迎大家关注交流~ hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏…

PostgreSQL使用(二)

说明&#xff1a;本文介绍PostgreSQL的DML语言&#xff1b; 插入数据 -- 1.全字段插入&#xff0c;字段名可以省略 insert into tb_student values (1, 张三, 1990-01-01, 88.88);-- 2.部分字段插入&#xff0c;字段名必须写全 insert into tb_student (id, name) values (2,…

Windows 11几个常用的快捷键

WinQ/WinS&#xff1a;快速打开一键搜索 WinCtrlD&#xff1a;快速新建虚拟桌面。可以通过四根手指在触摸板划动进行切换&#xff0c;也可以通过WinTAB进行虚拟桌面切换 WinTAB&#xff1a;虚拟桌面切换 WinA&#xff1a;打开快速设置面板 WinD&#xff1a;快速切换到桌面&a…

springboot+vue+mybatis鲜花管理系统+PPT+论文+讲解+售后

随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;鲜花管理系统当然也不能排除在外。鲜花管理系统是以实际运用为开发背景&#xff0c;运用软件工程开发方法&#xff0c;采用SSM技…

如何建设微模块数据中心机房

建设微模块数据中心机房涉及多个步骤和技术要点&#xff0c;以下是基于现代技术和行业最佳实践的建设流程概览&#xff1a; 1. 需求分析与规划 确定需求&#xff1a;分析业务需求&#xff0c;包括IT容量、电力、冷却和空间需求。 选址评估&#xff1a;选择靠近关键基础设施的位…

秋招突击——7/16——复习{滑动窗口——无重复最长子串}——新作{相交链表,环形链表,滑动窗口——找到字符串中所有字母异位词}

文章目录 引言模板——滑动窗口/双指针复习无重复最长子串复习实现 新作相交链表个人实现参考实现 环形链表个人实现参考实现——快慢指针 找到字符串中所有字母的异位词个人实现参考实现 总结 引言 今天本来想完成指标的&#xff0c;但是做着做着&#xff0c;发现大部分做的比…

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战

Day07-ES集群加密&#xff0c;kibana的RBAC实战&#xff0c;zookeeper集群搭建&#xff0c;zookeeper基本管理及kafka单点部署实战 0、昨日内容回顾:1、基于nginx的反向代理控制访问kibana2、配置ES集群TSL认证:3、配置kibana连接ES集群4、配置filebeat连接ES集群5、配置logsta…

用go实现限流算法

文章目录 固定窗口优缺点&#xff1a;适用场景&#xff1a;总结&#xff1a; 滑动窗口优缺点&#xff1a;适用场景&#xff1a;总结&#xff1a; 漏桶限流器优缺点&#xff1a;适用场景&#xff1a;总结&#xff1a; 令牌桶优缺点&#xff1a;适用场景&#xff1a;总结&#xf…

保障低压设备安全!中国星坤连接器精密工艺解析!

在现代电子设备中&#xff0c;连接器扮演着至关重要的角色&#xff0c;它们是电子系统之间沟通的桥梁。随着技术的发展&#xff0c;对连接器的需求也在不断提升&#xff0c;特别是在低电压应用领域。中国星坤最新推出的低压连接器&#xff0c;以其精密性和安全性&#xff0c;为…

AI算法18-最小角回归算法Least Angle Regression | LARS

​​​ 最小角回归算法简介 最小角回归&#xff08;Least Angle Regression, LAR&#xff09;是一种用于回归分析的统计方法&#xff0c;它在某些方面类似于最小二乘回归&#xff0c;但提供了一些额外的优点。最小角回归由Bradley Efron等人提出&#xff0c;主要用于处理具有…

10.1 标注、注记图层和注记整体说明

文章目录 前言标注、注记图层和注记QGis中的标注QGis中的注释(Annotation)图层QGis中的注记 总结 前言 介绍标注、注记图层和注记说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 标注、注记图层和注记 有时地图需要使用一些文字信息说明其中的地理要素或其…

如何用一个例子向10岁小孩解释高并发实时服务的单线程事件循环架构

I/O密集型进程和CPU密集型进程 聊天应用程序、MMO&#xff08;大型多人在线&#xff09;游戏、金融交易系统、等实时服务需要处理大量并发流量和实时数据。 这些服务是I/O密集型的&#xff0c;因为它们花费大量资源处理输入输出操作&#xff0c;例如高吞吐量、低延迟网络通信…

泉盛UV-K5扩容2Mbit EEPROM

泉盛UV-K5扩容2Mbit EEPROM 步骤 分离前面板与背板。 拆下电池&#xff0c;底部有个空隙&#xff0c;从缝隙撬开背板。分离前面板时注意喇叭连接线&#xff0c;不要扯断了。 分离屏幕。 先从箭头位置向上挑起&#xff0c;屏幕稍微松动即可左右晃动&#xff0c;直至完全取出。注…