自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

读万卷书,行万里路

deniro's thinking

  • 博客(991)
  • 资源 (9)
  • 收藏
  • 关注

原创 说说在 Canvas 中如何添加阴影

Canvas 的 context 中有四个参数可以用于设置阴影相关属性。方法名说明shadowOffsetX阴影 x 轴偏移量。可以为正值或负值;负值表示在左侧和上方创建阴影,正值表示在底部和右侧创建阴影。shadowOffsetY阴影 y 轴偏移量。其它特性与阴影 x 轴偏移量相同。shadowBlur设置阴影模糊程度。shadowColor设置阴影颜色。可以是颜色名称、rgb()、rgba() 或十六进制数值字符串。我们有一张 500×500 像素的

2020-10-07 11:37:49 1450

原创 说说在 Canvas 中如何用图片来填充形状

context 的 createPattern() 方法可以在指定的方向内重复指定的元素。语法为 context.createPattern(image,"repeat|repeat-x|repeat-y|no-repeat");。参数描述image要使用的图片、画布或视频元素。repeat默认值,表示在水平和垂直方向重复。repeat-x表示在水平方向重复。repeat-y表示在垂直方向重复。no-repeat表示只显示一次(不重复)。假设有一

2020-10-07 11:05:11 3859

原创 说说在 Canvas 中如何填充渐变颜色

渐变颜色填充方式有两种:线性或径向。线性渐变填充会创建一个水平 、 垂直或者对角线的填充图案。径向渐变填充会自中心点创建一个放射状填充图案。1 线性渐变1.1 线性水平渐变(1)基本形状Steve Fulton 与 Jeff Fulton 举了一个示例,来说明如何设置线性水平渐变。//创建渐变对象var gr = context.createLinearGradient(0, 0, 100, 0);//颜色断点gr.addColorStop(0, 'rgb(255,0,0)');

2020-10-07 09:21:46 3749

原创 系统架构设计笔记(97)—— 数据报

数据报是通过网络传输的数据的基本单元,包含一个报头( header )和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系。数据报是完备的 、 独立的数据实体,该实体携带要从源计算机传递到目的计算机的信息,该信息不依赖以前在源计算机和目的计算机以及传输网络间交换。在数据报操作方式中,每个数据报自身携带有足够的信息,它的传送是被单独处理的。整个数据报传送过程中,不需要建立虚电路,网络节点为每个数据报作路由选择,各数据报不能保证按顺序到达目的节点,有些还可能会丢失。同一报文的不同分组可以由不同的

2020-10-05 17:13:51 1823 3

原创 系统架构设计笔记(96)—— 丢包处理策略

丢包的常用处理方法有: 丢包重传和前向纠错。1 丢包重传丢包重传又叫后向纠错,也称为自动重传请求(ARQ),Automatic Repeat-reQuest。它是 OSI 模型中数据链路层的错误纠正协议之一。它包括停止等待 ARQ 协议和连续 ARQ 协议,错误侦测( Error Detection ) 、 正面确认( Positive Acknowledgment ) 、 逾时重传( Retransmissionafter Timeout )与负面确认继以重传( Negative Acknowled

2020-10-05 16:51:32 670

原创 系统架构设计笔记(95)—— TCP 协议

传输控制协议( TCP , Transmission Control Protocol )是一种面向连接的 、 可靠的 、 基于字节流的传输层通信协议,由 IETF 的 RFC793 定义。TCP 旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠 TCP 提供可靠的通信服务。 TCP 假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上, TCP 应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。1 简介传输控制

2020-10-05 15:18:32 1239

原创 说说在 Canvas 中如何填充形状基本颜色

Canvas 的 fillSytle 属性可设置形状的填充颜色。该属性可接受多种类型的颜色描述值。(1)颜色字符串名称 context.fillStyle = "red"; context.fillRect(100, 100, 100, 100);运行结果:注意:HTML 4.0 只支持 16 种颜色名,它们是:aqua、black、blue、fuchsia、gray、green、lime、maroon、navy、olive、purple、red、silver、teal、white、yello

2020-10-05 08:32:15 4535

原创 系统架构设计师真题解析(5)—— 嵌入式系统

1 真题解析● 以下关于嵌入式系统开发的叙述,正确的是( 10 )。( 10 ) A . 宿主机与目标机之间只需要建立逻辑连接B. 宿主机与目标机之间只能采用串口通信方式C. 在宿主机上必须采用交叉编译器来生成目标机的可执行代码D. 调试器与被调试程序必须安装在同一台机器上宿主机即用于开发程序的机器;而目标机是最终运行程序的机器。宿主机与目标机之间的通信方式不止一种,所以选项 B 是错误的。像这种带有“只能”的选项,很可能就是错误的说法。依据嵌入式开发调试方式的不同,宿主机与目标机之间的

2020-10-04 15:18:02 2524 7

原创 系统架构设计笔记(94)—— 硬件抽象层

硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。1 简介硬件抽象层技术最初是由 Microsoft 公司为确保 Windows NT 的稳定性和兼容性而提出的。针对过去 Windows 系列操作系统经常出现的系统死机或崩溃等现象, Microsoft 总结发现,程序

2020-10-04 15:10:38 5032 3

原创 说说 Python 的双向队列

虽然可以使用 Python 列表的 .append 和 .pop 方法模拟栈或者队列,但删除列表的第一个元素或者在第一个元素之前添加一个新元素,都非常耗时。因为需要把列表中的所有元素向后移动。Python 的双向队列使用 collections.deque 类来实现。它是一个线程安全且可以快速从两端添加或者删除元素的类。deque /dɛk/也可以利用 collections.deque 类来实现缓存。首先先指定缓存队列的大小,然后从队首删除过期元素和在队尾添加新元素。Luciano Rama

2020-10-04 11:14:43 513 1

原创 系统架构设计师真题解析(4)—— 数据库模式与范式

1 真题解析● 某商场商品数据库的商品关系模式 P(商品代码,商品名称,供应商,联系方式,库存量),函数依赖集 F={ 商品代码 → 商品名称,(商品代码,供应商) → 库存量,供应商 → 联系方式 }。 商品关系模式 P 达到(7);该关系模式分解成(8)后具有无损连接的特性,并能够保持函数依赖 。(7) A . 1NF B . 2NF C . 3NF D . BCNF(8) A.P1 (商品代码,联系方式), P2 (商品名称,供应商,库存量) B.P1 (商品名称,联系方式), P2 (商

2020-10-04 10:29:47 1238 2

原创 说说 Python 的内存视图

Python 的内存视图(memoryview)是一个内置类,它能取出数组中的某一部分作为切片进行处理。切片的任何变化都会影响到数组。NumPy 的作者 Travis Oliphant 是这样看待内存视图的:内存视图其实是泛化和去数学化的 NumPy 数组。它让我们可以在不需要复制内容的前提下,实现在数据结构之间共享内存。其中数据结构可以是任何形式,比如 PIL 图片 、SQLite 数据库和 NumPy 数组等等。对于处理大型数据集合的场景,这个功能非常重要。PIL:Python Imaging L

2020-10-04 10:27:55 575

原创 系统架构设计师真题解析(3)—— 数据库设计

1 真题解析● 在数据库设计的需求分析阶段应当形成(5),这些文档可以作为(6)阶段的设计依据。(5) A. 程序文档 、 数据字典和数据流图B. 需求说明文档 、 程序文档和数据流图C. 需求说明文档 、 数据字典和数据流图D. 需求说明文档 、 数据字典和程序文档(6) A. 逻辑结构设计B. 概念结构设计C. 物理结构设计D. 数据库运行和维护答案: (5) C (6)B此题为记忆题。2 涉及知识点数据库设计阶段与输出成果。参考资料:数据库设计...

2020-10-02 11:32:46 385

原创 系统架构设计师真题解析(2)—— 操作系统进程管理

1 真题解析● 假设系统中有 n 个进程共享3台打印机,而且任一进程在任一时刻最多只能使用1台打印机。若用 PV 操作控制 n 个进程使用打印机,则相应信号量 S 的取值范围为(1);若信号量 S 的值为 -3 ,则系统中有(2)个进程等待使用打印机 。A . 0 , -1 , … ,-( n -1 )B . 3,2,1, 0 , -1 , … ,-( n -3 )C . 1, 0 , -1 , … ,-( n -1 )D . 2,1, 0 , -1 , … ,-( n -2)

2020-10-02 11:31:49 621

原创 系统架构设计笔记(93)—— 容错技术

容错技术是保证系统在某些组成部分出现故障或差错时仍能正常工作的技术。通常根据不同的系统配置方法而采用相应容错技术:单机容错技术 、 双机热备份技术和服务器集群技术。1 单机容错技术容错技术是保证系统在某些组成部分出现故障或差错时仍能正常工作的技术。系统的故障可分为两类:一类是 “ 致命的 ” ,不可能自行修复,例如系统的主要部件全部损坏;另一类是局部的,可能被修复,例如部分元件失效 、 线路故障 、 偶然干扰引起的差错等。容错技术正是用于构造一种能够自动排除非致命性故障的系统,即容错系统。在单机容错技

2020-10-02 11:30:54 4365 1

原创 系统架构设计笔记(92)—— 可靠性与故障模型

1 故障的来源以及表现下面先介绍几个概念。(1)失效:硬件的物理改变。(2)故障:由于部件的失效、环境的物理干扰、操作错误或不正确的设计引起的硬件或软件中的错误状态。(3)错误(差错):故障在程序或数据结构中的具体位置。错误与故障位置之间可能出现一定距离。故障或错误有如下几种表现形式。永久性:描述连续稳定的失效 、 故障或错误。在硬件中,永久性失效反映了不可恢复的物理改变。间歇性:描述那些由于不稳定的硬件或变化着的硬件或软件状态所引起的 、 仅仅是偶然出现的故障或错误。瞬时性:描述那些由于暂

2020-10-02 11:29:59 1280

原创 系统架构设计笔记(91)—— 安全性规章

1 安全管理制度信息系统安全,不仅要从技术角度采取若干措施,还要从组织管理的角度出发,制定明确的安全管理的规章制度,以确保安全技术实施的有效性。只有依靠安全管理规章的有力支持和保障,信息安全的技术解决方案才能够切实地取得预期的效果。事实上,管理的缺失是信息安全失败的非常重要的原因。有统计表明,危害信息系统安全的因素中, 70% 以上来自组织内部。系统管理员随意性的配置或者软件升级不及时造成的安全漏洞,使用脆弱的用户口令,随意下载使用来自网络的软件,在防火墙内部架设拨号服务器却没有对账号认证等严格限制,用

2020-10-02 11:29:02 460

转载 系统架构设计笔记(90)—— 系统的安全性设计

要设计一个安全的系统,除了要了解一些前面讲到的常用的保护手段和技术措施外,还要对系统中可能出现的安全问题或存在的安全隐患有充分的认识,这样才能对系统的安全作有针对性的设计和强化,即 “ 知己知彼,百战百胜 ”。1 物理安全问题与设计物理安全包括物理设备本身是否安全可靠,还包括设备的位置与环境的安全 、 限制物理访问 、 地域因素等几个方面。信息系统的所有重要的物理设备 、 设施都应该放在专门的区域,并尽可能集中,同时严格限制外来人员来访,尽可能地减少未经授权的访问。物理安全还要求在设计中注意物理设备的

2020-10-02 11:28:05 2008

原创 系统架构设计笔记(89)—— 网络安全体系

ISO 的 OSI /RM 是著名的网络架构模型,但是, OSI /RM 并没有在安全性方面作专门的设计,因此该模型本身的安全性是很弱的。为了改善网络的安全状况,提高网络安全强度, ISO 又在 OSI /RM 的基础上提出了一套 OSI 安全架构,用以强化网络的安全性。1 OSI 安全架构OSI 安全架构是一个面向对象的、多层次的结构,它认为安全的网络应用是由安全的服 务实现的,而安全服务又是由安全机制来实现的。1.1 OSI 安全服务针对网络系统的技术和环境, OSI 安全架构中对网络安全

2020-10-02 11:27:09 2890

原创 系统架构设计笔记(88)—— 身份认证与访问控制

访问控制是通过某种途径限制和允许对资源的访问能力及范围的一种方法。它是针对越权使用系统资源的保护措施,通过限制对文件等资源的访问,防止非法用户的侵入或者合法用户的不当操作造成的破坏,从而保证信息系统资源的合法使用。访问控制技术可以通过对计算机系统的控制,自动 、 有效地防止对系统资源进行非法访问或者不当地使用,检测出一部分安全侵害,同时可以支持应用和数据的安全需求。访问控制技术并不能取代身份认证,它是建立在身份认证的基础之上的。访问控制技术包括如下几方面的内容:(1)用户标识与认证用户标识与认证是一种

2020-10-02 11:26:01 4115

原创 系统架构设计笔记(87)—— 计算机病毒与防治

计算机技术和网络技术的飞速发展,为人们的工作 、 学习 、 生活带来了极大的方便。计算机已经成为人们不可缺少的现代化工具。但是计算机病毒的出现带给人们不安和忧虑,同时向人们提出了挑战。1 计算机病毒概述计算机病毒( Computer Virus )的概念最早是由美国计算机病毒研究专家 F.Cohen 博士提出的。对于计算机病毒的定义,不同的国家 、 不同的专家从不同的角度给出的定义也不尽相同。根据 《 中华人民共和国计算机信息系统安全保护条例 》 第 28 条规定: “ 计算机病毒,是指编制或者在计算机

2020-10-02 11:24:33 4487

原创 说说 Python 数组的高效性

如果我们需要一个只包含数字的列表,那么使用数组方式比 list 方式更高效。而且数组还支持所有跟可变序列有关的操作,比如移除列表中的一个元素(.pop)、插入元素(.insert) 和 在列表末尾一次性追加另一个序列中的多个值(.extend)。 除此之外,数组还定义从文件读取(.frombytes)与写入(.tofile)的效率更高的方法。创建数组需要一个类型码,形如 array(‘d’),这个类型码是用来表示在底层实现的 C 语言的数据类型。一般我们用的 Python 底层是用 C 语言编写实现的&n

2020-10-02 11:21:56 605

原创 系统架构设计笔记(86)——安全协议

Internet 是 IT 领域中发展的重大成就,它的迅速发展和全面普及给人们的生产 、 生活带来了很大的帮助。但是, Internet 在当初是为了让更多的人来使用网络 、 共享资源,并且容易扩充 、 容易治理等而设计的,因此它是一个全面开放的系统,而没有在安全方面作充分的考虑。加上日益增加的庞大的用户 、 各种不同的动机等因素,使得 Internet 上的安全事件层出不穷。在 Internet 安全中,网络通信的安全是一个非常重要的环节,因此有必要研究在网络上安全传输数据的方法。1 IPSec 协议

2020-10-01 13:41:53 1986 2

原创 说说 Python 的 bisect 模块

bisect 模块包含两个主要函数( bisect 和 insort),它们内部利用二分查找算法,分别用于在有序序列中查找元素与插入元素。bisect /baɪˈsekt/to divide sth into two equal parts 对半分;二等分1 bisect 函数Luciano Ramalho 举了这样一个在干草垛中找针的示例来说明如何使用 bisect.bisect 与 bisect.bisect_left。HAYSTACK = [1, 4, 5, 6, 8, 12, 15,

2020-10-01 12:09:29 549

原创 说说 Python 中 list.sort()方法与函数sorted() 之间的区别

(1) list.sort() 方法list.sort() 方法就地排序,也就是说会直接作用于当前列表,直接把当前列表变为已排序的列表。它会返回 None。在 Python 中 ,如果一个函数或者方法对对象进行的是就地改动操作,一般来说,它们会返回 None。这样做的目的是让 API 的使用者知道这个函数或者方法是就地改动操作。比如 random.shuffle 函数也有这个特性。shuffle() 方法会将序列的所有元素进行随机排序。有利就有弊,因为这些函数或者方法只能返回 None,所以无法

2020-10-01 08:28:28 1100

原创 说说 Python 序列增量赋值的效率

*= 在可变和不可变序列上在实现方式上是不同的。Luciano Ramalho 举了这样一个示例:l = [1, 2, 3]logging.info('id(l) -> %s', id(l))l *= 2logging.info('l -> %s', l)logging.info('id(l) -> %s', id(l))t = (1, 2, 3)logging.info('id(t) -> %s', id(t))t *= 2logging.info('t -

2020-10-01 08:27:16 297

原创 系统架构设计师真题解析(1)—— 文件系统物理结构

1 真题解析假设文件系统采用索引节点管理,且索引节点有8个地址项 iaddr[0] ~ iaddr[7] ,每个地址项大小为4B。 iaddr[0] ~ iaddr[4] 采用直接地址索引, iaddr[5] 和 iaddr[6] 采用一级间接地址索引, iaddr[7] 采用二级间接地址索引。假设磁盘索引块和磁盘数据块大小均为 1KB ,文件 File1 的索引节点如下图所示。若用户访问文件 File1 中逻辑块号为5和 261 的信息,则对应的物理块号分别为(3), 101 号物理块存放的是(4)。

2020-10-01 08:23:58 4466 5

原创 说说如何使用 Spring Security 保护 web 请求

利用 WebSecurityConfigurerAdapter 类的configure(HttpSecurity http) 方法,可以实现以下功能:只有满足特定条件的请求,才允许提供服务;自定义登录页;退出账户;预防跨站请求伪造。1 权限配置对 HTTP 请求路径进行权限配置。假设必须具有 ROLE_USER 角色的账户才能访问 /notice 与 /sms 路径;而其它路径无限制。具体配置代码如下: @Override protected void configure(Htt

2020-10-01 08:13:24 460

原创 说说如何使用 Spring Security 自定义账户权限体系

如果使用之前说过的基于 JDBC 的认证方案,那么必须遵循一定的规范,比如字段名名称限制等等。所以如果需要完全自定义,我们可以使用直接 Spring Data Repository。Craig Walls 举了这样一个示例,来说明如何自定义账户权限体系。1 定义账户实体类@Entity@Data@NoArgsConstructor(access = AccessLevel.PRIVATE, force = true)@RequiredArgsConstructorpublic class Us

2020-10-01 08:09:47 367

原创 说说 Spring Security 账户权限体系

Spring Security 为这套账户体系提供了多种方案,基于内存;基于 JDBC;基于 LDAP;自定义服务。不管使用哪种方法,都是通过覆盖 WebSecurityConfigurerAdapter 基础配置类中定义的 configure() 方法来实现的。1 基于内存方式@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter

2020-10-01 08:08:12 710

原创 Spring Security 概述

1 安装首先将 Spring Boot security starter 依赖包放入 pom.xml 中:  <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>当应用启动时,Spring Boot的自动配置功能

2020-10-01 08:06:58 153

原创 系统架构设计笔记(85)—— 数字证书与密钥管理

过去,人们总是依赖于对于加密算法和密钥的保密来增加保密的强度和效果。随着现代密码学的发展,大部分的加密算法都已经公开了。一些典型的算法(例如, DES 、 IDEA 、 RSA 等)更是成了国际标准,被广泛接纳。人们可以从多种途径来获取算法的细节,也已经有很多采用这些算法的软件 、 硬件设备可以利用。因此,在现代密码系统中,算法本身的保密已经不重要了,对于数据的保密在很大程度上,甚至完全依赖于对密钥的保密。只要密钥能够保密,即使加密算法公开,甚至加密设备丢失,也不会对加密系统的坚固性和正常使用产生多大影响

2020-10-01 08:03:27 1100

原创 系统架构设计笔记(84)—— 数字签名与数字水印

散列函数是一种公开的数学函数。散列函数运算的输入信息也可叫作报文。散列函数运算后所得到的结果叫作散列码或者叫作消息摘要。散列函数具有如下一些特点:(1)不同内容的报文具有不同的散列码,而一旦原始报文有任何改变,哪怕改变一位信息,则通过散列函数计算后得到的散列码也将完全不同。这样,这个散列码就好比是这个报文所特有的 “ 指纹 ”。(2)散列函数是单向的,即求解某一个报文的散列码非常容易,但是根据散列码来倒推原始报文是非常困难的。(3)对于任何一个报文,无法预知它的散列码。(4)散列码具有固定的长度,不

2020-09-26 09:38:39 698

原创 系统架构设计笔记(83)—— 加密和解密

加密技术源远流长,自从古代有了信息的传递和存储,就有了加密技术的运用。此后,很长一段时间里,加密及解密技术在军事 、 政治 、 外交 、 金融等特殊领域里被普遍采用,并经过长时间的研究和发展,形成了比较完备的一门学科 —— 密码学。密码学是研究加密方法 、 秘密通信的原理,以及解密方法 、 破译密码的方法的一门科学。加密和解密的过程大致如下:首先,信息的发送方准备好要发送信息的原始形式,叫作明文。然后对明文经过一系列变换后形成信息的另一种不能直接体现明文含义的形式,叫作密文。由明文转换为密文的过程叫作加密

2020-09-26 09:37:41 836 2

原创 系统架构设计笔记(82)—— 信息安全特性

随着科技进步 、 社会发展,尤其是以计算机为代表的信息技术飞速发展,各种信息呈爆炸式发展。计算机及信息技术的应用领域在不断扩展,计算机在政府 、 企业 、 民生等各个领域中都得到越来越广泛的应用。与此同时,网络攻击和入侵事件与日俱增,重要机构的信息系统遭黑客袭击的事件时有发生。攻击者可以从容地对那些缺乏足够安全保护的信息系统进行攻击和入侵,如进行拒绝服务攻击 、 从事非授权的访问 、 肆意窃取和篡改重要的数据信息 、 安装后门监听程序以便随时获得内部信息 、 传播计算机病毒 、 摧毁主机等。攻击和入侵事件给

2020-09-26 09:36:14 1131

原创 系统架构设计笔记(81)—— 企业应用集成

许多企业的信息系统在最初设计时没有考虑多个系统 “ 协同工作 ” 的需要。这主要是由于企业信息化建设者对信息系统由不熟悉到熟悉,从了解信息化的好处,到真正体会到好处需要一个长期的过程,这就客观上造成企业信息化建设缺乏一个整体规划,实际需要的时候才会想到。因而,企业的信息化往往是从单项业务系统开始的,不同系统的开发方式及对于开发规范的遵从程度都有所不同,这使得系统间存在很强的孤立性,再加上对企业外部的信息未予以足够的重视,致使各部门开发出的信息系统最终成为一个个信息孤岛,一个系统很难与其他系统交换信息。同时,

2020-09-26 09:35:05 784

原创 系统架构设计笔记(80)—— .NET

Microsoft .NET 战略基于一组开放的互联网协议,推出了一系列的产品 、 技术和服务,吹响了互联网技术变革的号角。关于 .NET ,微软公司 CEO 鲍尔默这样描述:“ Microsoft .NET 代表了一个集合 、 一个环境 、 一个可以作为平台支持下一代 Internet 的可编程结构 。” 这句话简单扼要地概括了 .NET 的外部特性。1 .NET 平台.NET 首先是一个环境。这是一个理想化的未来互联网环境,微软的构想是一个 “ 不再关注单个网站 、 单个设备与 Internet

2020-09-26 09:34:08 671

原创 系统架构设计笔记(79)—— J2EE

J2EE 是针对 Web Service 、 业务对象 、 数据访问和消息报传送的一组规范。这组应用编程接口确定了 Web 应用与驻留它们的服务器之间的通信方式。J2EE 注重两件事,一是建立标准,使 Web 应用的部署与服务器无关;二是使服务器能控制构件的生命周期和其他资源,以便能够处理扩展 、 并发 、 事务处理管理和安全性问题。J2EE 规范定义了以下几种构件:应用客户端构件 、 EJB构件 、 Servlets和JSP 、 Applet构件。 J2EE 采用的是多层分布式应用模型,意味着应用

2020-09-26 09:32:44 518

原创 系统架构设计笔记(78)—— 应用服务器技术

Web 应用开发大致经历了三个阶段。在第一阶段,大家都使用 Web 服务器提供的服务器扩展接口,使用 C 或者 Perl 等语言进行开发,例如 C GI、API等。这种方式可以让开发者自由地处理各种不同的 Web 请求,动态地产生响应页面,实现各种复杂的 Web 系统要求。但是,这种开发方式的主要问题是对开发者的素质要求很高,往往需要懂得底层的编程方法,了解 HTTP 协议,此外,这种系统的调试也相当困难。在第二阶段,大家开始使用一些服务器端的脚本语言进行开发,主要包括 ASP、PHP、Livewire

2020-09-26 09:31:44 777

原创 系统架构设计笔记(77)—— 中间件技术

中间件( middleware )是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处在操作系统 、 网络和数据库之上,应用软件的下层(如图 1 所示),也有人认为它应该属于操作系统中的一部分。1 中间件的概念中间件从诞生到现在,虽然仅有 10 多年时间,但发展极其迅速,是有史以来发展最快的软件产品,但在技术上还处于成长阶段,还没有统一的标准和模型,通常都是用 C++ 语言以面向对象的技术来实现的,但是它的特性已超出面向对象的表达能力,由于它属于可重用构件,目前趋向于用构件技术来实现。然而,中

2020-09-26 09:30:22 988

Nginx 1.18.0 以及相关依赖库

该压缩包内包含了 Nginx-1.18.0以及 Nginx所需要的依赖库。依赖库主要为: * 编译 Nginx 的GCC 编译器; * 未来使用 C++ 来编写 Nginx 的 G++ 编译器; * Perl 正则表达式(Nginx HTTP 模块依赖库); * zlib (网络数据包 gzip压缩依赖库); * openssl (提供HTTPS 支持以及 MD5、SHA1 等加密算法实现)。

2020-12-27

Vue.js 技术交流培训材料.pdf

包含数据绑定、计算属性、内置指令、组件、自定义指令、Render 函数、webpack、插件等内容。

2019-11-22

jasperreports-functions-6.3.1.jar

jasperreports 的函数依赖包,用于解决 jasperreports 抛出 Caused by: java.lang.NoClassDefFoundError: net.sf.jasperreports.functions.standard.DateTimeFunctions 的问题

2017-11-07

mysql 函数,可以将数字转换为中文大写形式

mysql 函数,可以将数字转换为中文大写形式。大写数字是中国特有的数字书写方式,利用与数字同音的汉字取代数字,以防止数目被涂改。 据考证,大写数字最早是由武则天发明,后经朱元璋改进完善。

2017-10-30

olap4j-0.9.7.309-JS-3.jar jasperreports 6.x 的依赖包

olap4j-0.9.7.309-JS-3.jar jasperreports 6.x 的依赖包哦

2017-10-20

axis1.4 包,一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。

axis全称Apache Extensible Interaction System 即阿帕奇可扩展交互系统。Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。Axis目前版本是为Java编写的,不过为C++的版本正在开发中。但Axis并不完全是一个SOAP引擎,它还是一个独立的SOAP服务器和一个嵌入Servlet引擎(例如Tomcat)的服务器

2017-09-29

Fiddler4 破解版,http协议调试代理工具

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。

2017-09-29

mdwiki 项目模板代码

可用于搭建 mdwiki 项目架构,mdwiki 是基于 markdown 的 wiki 系统。里面有一些基础文件,可在此基础上进行扩展。

2016-12-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除