自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(412)
  • 资源 (4)
  • 收藏
  • 关注

原创 大型网站系统架构演化实例_5.使用反向代理和CDN加速网站响应

随着网站业务不断发展,用户规模越来越大,由于区域的差别使得网络环境异常复杂,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。为了提供更好的用户体验,留住用户,网站需要加速网站访问速度。主要手段有使用CDN和反向代理。CDN和反向代理的基本原理都是缓存。使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力。

2024-04-19 22:48:29 165

原创 大型网站系统架构演化实例_4.数据库读写分离

网站在使用缓存后,使对大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分操作(缓存访问不命中、缓存过期)和全部的写操作都需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库读写分离,从而改善数据库负载压力。

2024-04-19 21:47:46 170

原创 大型网站系统架构演化实例_3.使用服务集群改善网站并发处理能力

使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器,对大型网站而言,不管多么强大的服务器,对大型网站而言,不管多强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。对网站架构而言,只要能通过增加一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性。应用服务器实现集群是网站可伸缩架构设计中较为简单成熟的一种。

2024-04-18 22:13:49 359

原创 大型网站系统架构演化实例_2.使用缓存改善网站性能

网站访问的特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。既然大部分业务访问集中在一小部分数据上,那么如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能了。网站使用的缓存可以分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数据量有限,而且会出现和应用程序争用内存的情况。远程分布式缓存。

2024-04-18 21:36:48 210

原创 大型网站系统架构演化实例_1.单体架构和垂直架构

大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得很棘手。通常大型网站架构主要解决这类问题。

2024-04-17 21:56:59 666

原创 软件架构演化评估方法

根据演化过程是否已知可将评估过程分为:演化过程已知的评估和演化过程未知的评估。演化过程已知的评估其目的在于通过对架构演化过程进行度量,比较架构内部结构上的差异以及由此导致的外部质量属性上的变化,对该演化过程中相关质量属性进行评估。当演化过程未知时,我们无法像演化过程已知时那样追踪架构在演化过程中的每一步变化,只能根据架构演化前后的度量结果逆向推测出架构发生了哪些改变,并分析这些改变与架构质量属性的关联关系。

2024-04-17 20:43:34 234

原创 软件架构演化原则

以下列举了18种软件架构可持续演化原则,并针对每个原则设计了相应的度量方案。这些度量方案看似简单,但每个方案都能紧抓该原则的本质,可以做到从架构(系统的整体结构)层面提供有价值的信息,帮助对架构进行有效观察。

2024-04-16 21:38:44 603

原创 软件架构动态演化

架构的动态演化主要来自两类需求:①软件内部执行所导致的体系结构改变,例如,许多服务器端软件会在客户请求到达时创建新的组件来响应用户需求;②软件系统外部的请求对软件进行的重配置,例如,操作系统在升级时无须重新启动,在运行过程中就完成对体系结构的修改。

2024-04-16 20:32:50 427

原创 软件架构静态演化

软件架构静态演化的需求是广泛存在的,可以归结为两个方面。在架构开发和实现过程中对原有架构进行调整,保证软件实现与架构的一致性以及软件开发过程的顺利进行。软件发布之后由于运行环境的变化,需要对软件进行修改升级,在此期间软件的架构同样要进行演化。

2024-04-15 21:17:01 444

原创 软件架构演化方式的分类以及架构演化时期

将软件架构演化方式分为4类(Jeffrey M.Barnes等人的分类方法):第1类是对演化的支持,如代码模块化的准则、可维护性的指示(如内聚和耦合)、代码重构等;第3类是架构变换的形式方法,包括系统结构和行为变换的模型,以及架构演化的重现风格等;第4类是架构演化的成本收益分析,决定如何增加系统的弹性。,前者发生在软件架构的设计、实现和维护过程中,软件系统还未运行或者处在运行停止状态;分类:基于过程和函数的演化、面向对象的演化、基于组件的演化和基于架构的演化。(3)针对软件架构的演化过程。

2024-04-15 19:55:38 235 1

原创 面向对象软件架构演化过程

在顺序图中,组件的实体为对象。组件本身包含了众多的属性,如接口、类型、语义等,这些属性的演化是对象自身的演化,对于描述对象之间的交互过程并无影响。因此,会对架构设计的动态行为产生影响的演化只包括AddObject(AO)和DeleteObject(DO)两种。AO表示在顺序图中添加一个新的对象。这种演化一般是在系统需要添加新的对象来实现某种新的功能,或需要将现有对象的某个功能独立以增加架构灵活性的时候发生。DO删除顺序图中现有的一个对象。

2024-04-14 09:01:51 322

原创 软件架构演化和定义的关系

理解软件架构演化时,需要考虑具体的软件架构定义。例如,如果软件架构定义是SA={components,connectors,constraints),也就是说,软件架构包括组件(Components)、连接件(Connectors)和约束(Constraints)三大要素,这类软件架构演化主要关注的就是组件、连接件和约束的添加、修改与删除等。组件。

2024-04-13 20:50:14 325

原创 软件可靠性评价

软件可靠性评价是软件可靠性活动的重要组成部分,既适用于软件开发过程,也可针对最终软件系统。在软件开发过程中使用软件可靠性评价,可以使用软件可靠性模型,估计软件当前的可靠性,以确认是否可以终止测试并发布软件,同时还可以预计软件要达到相应的可靠性水平所需要的时间和工作量,评价提交软件时的软件可靠性水平。

2024-04-13 20:01:30 574

原创 软件可靠性测试

软件可靠性测试由可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析等主要活动组成。把可靠性测试过程进行规范化,有利于获得真实有效的数据,为最终得到客观的可靠性评价奠定基础。

2024-04-12 23:23:16 867

原创 软件可靠性设计

为了从根本上提高软件的可靠性,降低软件后期修改的成本和难度,人们提出了可靠性设计的概念。其实就是在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户的功能和性能需求的同时,全面满足软件的可靠性要求,即采用一些技术手段,把可靠性“设计”到软件中去。软件可靠性设计技术就是以提高和保障软件的可靠性为目的,在软件设计阶段运用的一种特殊的设计技术。软件可靠性设计要遵循的原则。(1)软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。

2024-04-12 21:27:58 1123

原创 软件可靠性管理

可靠性管理目前还停留在定性描述的水平上,很难用量化的指标来进行可靠性管理。怎样利用有限的可靠性投入,达到预期的可靠性目标是软件项目管理者常常要面对的难题。由于软件之间的差异较大,并且人们对可靠性的期望不同,对可靠性的投入不同,所以下面的每项活动并不是每一个软件系统的可靠性管理的必须内容,也不是软件可靠性管理的全部内容。(6)明确后续阶段的可靠性活动的详细计划。(5)明确后续阶段的可靠性活动的详细计划。(5)明确后续阶段的可靠性活动的详细计划。(7)明确后续阶段的可靠性活动的详细计划。

2024-04-11 20:43:52 473

原创 Win10安装sqlplus遇到报错的解决办法

然后到orcle官网下载了下载了一个64bit版本的sqlplus“instantclient-sqlplus-windows.x64-12.1.0.2.0.zip”安装包解压到本地, 如下图3所示。最近有用到sqlplus连接Oracle数据库执行自动化脚本,Orcle服务器版本是11.2.0.1。原来之前下的oci.dll就是32bit的客户端。所以这里的sqlplus.exe也要对应的是32bit的。解决办法:下载了一个32bit的sqlplus.exe,包含了oracle客户端的版本。

2024-04-11 13:47:03 249 1

原创 软件可靠性建模_2.软件可靠性的建模方法及模型分类

一个软件可靠性模型通常(但不是绝得)由以下几部分组成。模型是实际情况的简化或规范化,总要包含若干假设,例如测试的选取代表实际运行剖面,不同软件失效独立发生等。软件可靠性模型的输出量就是性能度量,如失效强度、残留缺陷数等。在软件可靠性模型中性能度量通常以数学表达式给出。某些可靠性度量的实际值无法直接获得,例如残留缺陷数,这时需通过一定的方法估计参数的值,从而间接确定可靠性度量的值。当然,对于可直接获得实际值的可靠性度量,就无须参数估计了。一个软件可靠性模型要求一定的输入数据,即软件可靠性数据。

2024-04-10 21:37:12 612

原创 软件可靠性建模_1.影响软件可靠性的因素

软件产品的特性指软件本身的性质,开发过程特性包括开发技术、开发工具、开发人员的水平、需求的变化频度等。影响软件可靠性的因素是纷杂而众多的,甚至包括技术以外的许多因素。结构对软件可靠性的影响主要取决于软件结构的复杂程度,一般来说,内部结构越复杂的软件,所包含的软件缺陷数就可能越多。软件可靠性的定义是相对运行环境而言的,一样的软件在不同的运行剖面下,其可靠性的表现是不一样的。软件规模也就是软件的大小,一个只有数十行代码的软件和几千、几万行代码的软件是不能相提并论的。影响软件可靠性的主要因素。

2024-04-10 20:42:57 499

原创 软件可靠性基本概念_2.目标及可靠性测试

失效严重程度类(Failure Severity Class)就是对用户具有相同程度影响的失效集合。对失效严重程度的分级可以按照不同的标准进行,最为常见的是按对成本影响、对系统能力的影响等标准划分软件失效的严重程度类。有了失效严重程度的划分,现在可以结合失效强度来定量地表示一个软件系统的可靠性目标了。可靠性目标是指客户对软件性能满意程度的期望。通常用可靠度、故障强度和平均失效时间(MTTF)等指标来描述,根据不同项目的不同需要而定。建立定量的可靠性指标需要对可靠性、交付时间和成本进行平衡。

2024-04-09 21:40:50 407

原创 软件可靠性基本概念_1.定义和定量描述

是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;规定功能是指为提供的服务,软件产品所必须具备的功能。

2024-04-09 21:29:23 970

原创 ATAM方法架构评估实践

用ATAM方法评估软件体系结构,其工作分为4个基本阶段,即演示、调查和分析、测试和报告ATAM。接下来分别就每个阶段的实践进行详细介绍。

2024-04-08 22:57:43 273

原创 系统架构评估_3.ATAM方法

从不同的架构角度,有3种不同类型的场景,分别是用例(包括对系统典型的使用、引出信息)、增长场景(用于涵盖那些对它的系统的修改)、探测场景(用于涵盖那些可能会对系统造成过载的极端修改)。例如,架构的描述、质量特征的分析、场景不确定性的处理、度量的应用架构分析和评价支持工具等,这些都影响和制约着分析评估技术的发展。ATAM还使用定性的启发式分析方法(Qualitative Analyse Heuristics),在对一个质量属性构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。

2024-04-08 22:20:11 691 2

原创 系统架构评估_2.SAAM方法

最初它用于比较不同软件体系的架构,以分析系统架构的可修改性,后来实践证明它也可用于其他质量属性如可移植性、可扩充性等,最终发展成了评估一个系统架构的通用方法。用一种易于理解的、合乎语法规则的架构描述软件架构,体现系统的计算构件、数据构件以及构件之间的关系(数据和控制)。SAAM指导对架构的检查,使其主要关注潜在的问题点,如需求冲突,或仅从某一参与者观点出发得出的不全面的系统设计。SAAM用于架构的最后版本,但早于详细设计。场景代表了描述架构属性的基础,描述了各种系统必须支持的活动和可能存在的状态变化。

2024-04-07 21:55:03 479 1

原创 系统架构评估_1.相关概念

系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它利用数学或逻辑分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、预测性和指令性的分析结果。通常可以分为3类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。

2024-04-07 20:57:03 478

原创 软件系统质量属性_3.质量属性场景描述

可用性质量属性场景所关注的方面包括系统故障发生的频率、出现故障时会发生什么情况、允许系统有多长是非正常运行、什么时候可以安全地出现故障、如何防止故障的发生以及发生故障时要进行哪种通知。可修改性质量属性场景主要关注系统在改变功能、质量属性时需要付出的成本和难度,可修改性质量属性场景可能发生在系统设计、编译、构建、运行等多种情况和环境下。易用性质量属性场景主要关注用户使用系统时的容易程度,包括系统的学习曲线、完成操作的效率、对系统使用过程的满意程度等。这可能是整个系统,也可能是系统的一部分。

2024-04-06 16:24:19 261

原创 软件系统质量属性_2.面向架构评估的质量属性

为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。

2024-04-06 10:36:27 1287

原创 软件系统质量属性_1.质量属性概念

软件系统的质量就是“软件系统与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件系统质量是软件与明确地叙述的功能和性能需求文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。根据GB/T 16260.1定义,从管理角度对软件系统质量进行度量,可将影响软件质量的主要因素划分为6种维度特性功能性、可靠性、易用性、效率、维护性与可移植性。其中功能性包括适合性、准确性、互操作性、依从性、安全性;可靠性包括容错性、已恢复性、成熟性;易用性包括易学性、以理解性、易操作性;

2024-04-05 22:14:13 327

原创 特定领域软件体系结构

简单地说,就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。从功能覆盖的范围的角度有两种理解DSSA中领域的含义的方式:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件体系结构。定义了在多个系统和多个系统族中功能区域的共有部分。在子系统级上涵盖多个系统族的特定部分功能。

2024-04-05 07:32:50 740

原创 软件架构复用

软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理、复用、集成新的系统。包括软件架构及其可剪裁的元素,更广泛地,它还包括设计方案及其文档、用户手册、项目管理的历史记录(如预算和进度)、软件测试计划和测试用例。复用核心资产(特别是软件架构),更进一步采用产品线将会惊人地提高生产效率、降低生产成本和缩短上市时间。软件复用。

2024-04-04 10:13:12 910

原创 软件架构风格_5.独立构件体系结构风格

独立构件风格主要强调系统中的每个构件都是相对独立的个体,它们之间不直接通信,以降低耦合度,提升灵活性。独立构件风格主要包括进程通信和事件系统风格。

2024-04-04 09:07:39 300

原创 软件架构风格_4.虚拟机体系结构风格

虚拟机体系结构风格的基本思想是人为构建一个运行环境,在这个环境之上,可以解析与运行自定义的一些语言,这样来增加架构的灵活性。虚拟机体系结构风格主要包括解释器风格和规则系统风格。

2024-04-03 22:42:01 293 1

原创 软件架构风格_3.以数据为中心的体系结构风格

以数据为中心的体系结构风格主要包括仓库体系结构风格和黑板体系结构风格。仓库(Repository)是存储和维护数据的中心场所。黑板系统的传统应用是信号处理领域,如语音识别和模式识别。另一应用是松耦合代理数据共享存取。

2024-04-03 20:31:12 500

原创 C#使用Selenium驱动Chrome浏览器

最新版本chromedriver 下载地址:这里有自动测试用到的chrome版本以及驱动。

2024-04-03 15:09:32 483

原创 软件架构风格_2.调用/返回体系结构风格

是指在系统中采用了调用与返回机制。利用调用-返回实际上是一种分而治之的策略,其主要思想是将一个复杂的大系统分解为若干子系统,以便降低复杂度,并且增加可修改性。程序从其执行起点开始执行该构件的代码,程序执行结束,将控制返回给程序调用构件。调用/返回体系结构风格主要包括主程序/子程序风格、面向对象风格、层次型风格以及客户端/服务器风格。

2024-04-02 23:17:16 851

原创 软件架构风格_1.概述及数据流体系结构风格

软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。

2024-04-02 21:59:33 391

原创 使用Activator.CreateInstance方法实例化对象

包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。此类不能被继承。方法通过调用与指定参数最匹配的构造函数来创建程序集中定义的类型的实例。如果未指定参数,则调用不采用任何参数的构造函数,即无参数构造函数。

2024-04-02 13:39:11 162

原创 基于架构的软件开发方法_2.基于体系结构的开发模型

把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现和演化6个子过程。如图1所示。图1 体系结构开发模型。

2024-04-01 22:09:07 995

原创 时区信息TimeZoneInfo

对于一个开放于全球的网站或服务,在时间上的显示是一个问题,因为各个国家都会有所谓的时差,好在 .Net Framework 提供 TimeZoneInfo 类来解决这个问题。TimeZoneInfo 类的成员支持以下操作:检索操作系统已定义的时区。枚举系统上可用的时区。在不同时区之间转换时间。创建操作系统尚未定义的新时区。序列化时区,供以后检索使用。

2024-04-01 17:34:16 289

原创 基于架构的软件开发方法_1.概述和相关概念及术语

方法。ABSD方法是由体系结构驱动的,即指由构成体系结构的商业、质量和功能需求的组合驱动的。使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求抽取和分析还没有完成(甚至远远没有完成),就开始了软件设计。设计活动的开始并不意味着需求抽取和分析活动就可以终止,而是应该与设计活动并行。特别是在不可能预先决定所有需求时(例如,产品线系统或长期运行的系统),快速开始设计是至关重要的。ABSD方法有3个基础。第1个基础是功能的分解。

2024-03-31 19:11:26 455

Tcpwrapper 62056-47

Tcpwrapper 62056-47 DLMS GPRS IPV4 PDF文档。37页

2016-04-04

winform开发图标

winform开发图标.可以美化你的用户界面,刚下过来,就拿出来分享了

2014-03-12

C#.NET网络核心编程

网络核心编程 .net技术 C# 多线程 异步

2014-03-12

跟我学C#程序设计

这是一本很不错的书哦!学习C#,还是要多练习哦

2013-01-07

空空如也

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

TA关注的人

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