2017年9月18日

软件架构设计学习总结(23):软件架构设计的6大原则

摘要: 1. 单一职责原则(Single Responsibility Principle - SRP) 原文:There should never be more than one reason for a class to change. 译文:永远不应该有多于一个原因来改变某个类。 理解:对于一个类而 阅读全文

posted @ 2017-09-18 16:04 云潇洒 阅读(531) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(22):软件架构——分层架构、事件驱动架构、微内核架构、微服务架构、基于空间的架构

摘要: 分层架构 (Layered Architecture) 分层架构是最常见的架构,也被称为n层架构。多年以来,许多企业和公司都在他们的项目中使用这种架构,它已经几乎成为事实标准,因此被大多数架构师、开发者和软件设计者所熟知。比如MVC。 分层架构的一个特性就是 关注分离(separation of c 阅读全文

posted @ 2017-09-18 16:02 云潇洒 阅读(2722) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(21):淘宝技术发展(分布式时代:服务化)

摘要: 在系统发展的过程中,架构师的眼光至关重要,作为程序员,把功能实现即可,但作为架构师,要考虑系统的扩展性、重用性,这种敏锐的感觉,有人说是一种代码洁癖。淘宝早期有几个架构师具备了这种感觉。一指开发的Webx是一个扩展性很强的框架,行癫在这个框架上插入了数据分库路由的模块、session框架等等。在做淘 阅读全文

posted @ 2017-09-18 15:53 云潇洒 阅读(544) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(20):高性能服务器架构思路

摘要: 在服务器端程序开发领域,性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而,服务器端程序在性能问题上应该有何种基本思路,这个却很少被这些项目的文档提及。本文正式希望介绍服务器端解决性能问题的基本策略和经典实践,并分为几个部分来说明: 1. 缓存策略的概念和实例 阅读全文

posted @ 2017-09-18 15:50 云潇洒 阅读(707) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(19):详解分布式系统中的session同步问题

摘要: 几周前,有个盆友问老王,说现在有多台服务器,怎么样来解决这些服务器间的session同步问题?老王一下就来精神了,因为在n年以前,老王还在学校和几个同学一起所谓创业的时候,也遇到了类似的问题。当时查了很多资料,没有解决,于是后来投身百度,终于学到了“葵花宝典”,方才大彻大悟。所以,今天想跟大家分享一 阅读全文

posted @ 2017-09-18 15:48 云潇洒 阅读(305) 评论(0) 推荐(1) 编辑

软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征

摘要: 1.基于web开发中最原始的jsp+Servlet 图形化理解jsp+servlet结构: 1.从结构上分析jsp+servlet图解原理: 在基于mvc设计模式下的最原始的jsp+Servlet框架,在某种程度上是不能够达到mvc最直观的体现。当客户端发送请求到服务器时,服务器会将从客户端接收到的 阅读全文

posted @ 2017-09-18 15:45 云潇洒 阅读(817) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(17):架构和框架的区别

摘要: 7层是框架还是架构? 框架: 1、定义: 框架(framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法,另一种定义为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从墓地的方面给出的定义。 框架是一个可服用的设计构件,通常以构件库的形式出现,但构架库 阅读全文

posted @ 2017-09-18 15:33 云潇洒 阅读(1639) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(16):大型网站架构不得不考虑的10个问题

摘要: 大型网站架构不得不考虑的10个问题 (转帖)http://www.dabaoku.com/jiaocheng/fabu/web/201003084540.shtml 这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的 阅读全文

posted @ 2017-09-18 15:32 云潇洒 阅读(313) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(15):远程通信(RPC,Webservice,RMI,JMS、EJB、JNDI的区别)对比

摘要: 总结这些概念都是易混淆,最基本概念定义复习和深入理解,同时也是架构师必备课程 RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.met 阅读全文

posted @ 2017-09-18 15:30 云潇洒 阅读(440) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(14):大型网站技术架构(八)网站的安全架构

摘要: 从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页,注入恶意HTML脚本,在用户访问网页时, 阅读全文

posted @ 2017-09-18 15:25 云潇洒 阅读(510) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(13):大型网站技术架构(七)网站的可扩展性架构

摘要: 扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。 设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性。模块通过分布式部署,独立的模块部署在独立的服务器上(集群)从物理上分离模块之间的耦合关系。 模块分布式部署以后具体聚合方式主要有分布式消息 阅读全文

posted @ 2017-09-18 15:24 云潇洒 阅读(290) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(12):大型网站技术架构(六)网站的伸缩性架构

摘要: 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能,通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的伸缩性设计可以分成两类,一类是根据功能进行物理分离实现伸缩,一类是单一功能通过集群实现伸缩。前者是不同的 阅读全文

posted @ 2017-09-18 15:23 云潇洒 阅读(325) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(11):大型网站技术架构(五)网站高可用架构

摘要: 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)=故障修复时间点-故障发现(报告)时间点 网站年度不可用时间=(1-网站不可用时间/年度时间)× 100% 可用性指标时网站架构设计的重要指标,对外是服务承诺,对内是考核指标,具 阅读全文

posted @ 2017-09-18 15:21 云潇洒 阅读(352) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(10):大型网站技术架构(四)网站的高性能架构

摘要: 网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时间。如下列出了系统常用的操作响应时间表. 操作 响应时间 打开一个网站 几秒 数据库查询一条记录(有索引) 阅读全文

posted @ 2017-09-18 15:20 云潇洒 阅读(307) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(9):大型网站技术架构(二)架构模式

摘要: 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行灯一系列问题与挑战。为此,在实践中提出了许多解决方案,以实现网站高性能、高可靠性、易伸缩、可扩展、安全 阅读全文

posted @ 2017-09-18 15:18 云潇洒 阅读(251) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(8):大型网站技术架构(三)架构核心要素

摘要: 所谓架构,一种通俗的说法就是“最高层次的规划,难以改变的决定”,这些规划和决定奠定了事物未来发展的方向和最终的蓝图。 而软件架构即“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计”。一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素。 1、性能 性能是网站 阅读全文

posted @ 2017-09-18 15:18 云潇洒 阅读(193) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(7):大型网站技术架构(一)大型网站架构演化

摘要: 说道大型网站,就的先说大型网站的特点:高并发,大流量,高可用,海量数据等。下面就说说大型网站的架构演化过程吧。 1、初始阶段的网站架构 初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图。 2、应用服务和数据服务分离 随着网站业务的发展,一台服务器逐渐不能满足需求;这时候就需要将应用和数据 阅读全文

posted @ 2017-09-18 15:16 云潇洒 阅读(334) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(6):应用系统架构设计

摘要: 我们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里我将针对在微软dotNet平台 阅读全文

posted @ 2017-09-18 15:13 云潇洒 阅读(700) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(5):软件架构学习小结

摘要: 软件架构设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单。本文从架构师职责、软件架构定义、设计架构、评估架构、架构管理等方面来描述了解软件架构的含义和怎样设计软件架构。 一、软件架构师的职责 架构师分为以下几大类:业务架构师、主题 阅读全文

posted @ 2017-09-18 15:11 云潇洒 阅读(4509) 评论(0) 推荐(0) 编辑

软件架构设计学习总结(4):大数据架构hadoop

摘要: 摘要:Admaster数据挖掘总监 随着互联网、移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海量数据的分析已经成为一个非常重要且紧迫的需求。 随着互联网、移动互联网和物联网的发展,谁也无法否认, 阅读全文

posted @ 2017-09-18 15:09 云潇洒 阅读(686) 评论(0) 推荐(0) 编辑

导航