随笔分类 -  软件构架

摘要:转载原文地址:http://www.dbanotes.net/database/ebay_storage.html作为电子商务领头羊的eBay公司,数据量究竟有多大? 很多朋友可能都会对这个很感兴趣。在这一篇Web 2.0: How High-Volume eBay Manages Its Storage(从+1 GB/1 min得到的线索) 报道中,eBay 的存储主管 Paul Strong ... 阅读全文
posted @ 2009-10-30 17:11 李占卫 阅读(989) 评论(0) 推荐(0)
摘要:1:架构包含组成和决策2:软件开发具有工程化和创新两种特性,创新和工程化的桥梁就是架构3:架构包含5%-10%的代码4:重要用例决定架构5:结构化方法:自顶向下,逐步分解6:面向对象:动态,可变7:一个人可控制5到9人8:一个里程碑事件站总时间的1/129:先事件分解再过程分解10:从业务-》业务模型-》结构模型11:服务具有共享性和稳定性12:用做产品的思想来做架构13:主成功场景10步左右14... 阅读全文
posted @ 2009-09-29 10:01 李占卫 阅读(300) 评论(0) 推荐(0)
摘要:1:问题的引入过亿访问量站点的性能瓶颈是什么?相信有过经历的朋友一定会告诉你,是数据访问。有关数据访问这个话题可以说是博大精深,我今天就只针对“如何降低数据库的连接数”这个话题来说开去。2:问题发生的场景我们来看一下传统三层下的序列图我们透过现象看一下本质,图中的依赖关系决定我们要有两台服务器【不考虑负载均衡的前提下】。这样我们的问题就来了,什么问题那?接下来听我慢慢道来。... 阅读全文
posted @ 2009-09-22 11:04 李占卫 阅读(5986) 评论(29) 推荐(3)
摘要:原文地址:http://www.blogjava.net/Jack2007/archive/2009/01/30/252746.html摘要:在描述大而复杂的软件中,最复杂的抽象层次就是软件架构。因此,在这个抽象层次我们能更好的理解构件组装原理和交互方式。软件架构被认为是软件开发方面的驱动力,他允许指定每层那些方面和模型需要依照架构来设计。早期的架构描述语言ADL,比较独立,侧重结构抽象层次而忽略... 阅读全文
posted @ 2009-09-01 18:08 李占卫 阅读(803) 评论(1) 推荐(0)
摘要:1:项目目录划分的必要性A:产品目录提供了项目成员进行开发和管理的统一场所,并且满足不同的涉众(分析,设计,管理,测试以及支持人员),在不同阶段(启动,精化,构建,迁移以及维护),对不同类型的工件(代码,文档,模型以及安装包)进行访问到多种需求。2:目录的分类标准A:按照工件类型SRC,BIN,LIB,DOC,SCRIPTB:按照工件功能或用途build,test,exampleC:按照活动组织p... 阅读全文
posted @ 2009-09-01 18:04 李占卫 阅读(538) 评论(0) 推荐(0)
摘要:原文(英文)地址:http://www.mnot.net/cache_docs/ 版权声明:署名-非商业性使用-禁止演绎 2.0这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。 什么是Web缓存,为什么要... 阅读全文
posted @ 2009-08-28 13:11 李占卫 阅读(333) 评论(0) 推荐(0)
摘要:转自:http://database.csdn.net/page/b12503e6-9f14-4cc1-90dd-88632444a46e在Web 2.0时代,网站将会经常面临着快速增加的访问量,但是我们的应用如何满足用户的访问需求,而且基本上我们看到的情况都是性能瓶颈都是在数据库上,这个不怪数据库,毕竟要满足很大访问量确实对于任何一款数据库都是很大的压力,不论是商业数据库Oracle、MS sq... 阅读全文
posted @ 2009-08-28 11:50 李占卫 阅读(487) 评论(0) 推荐(0)
摘要:原文地址:http://www.infoq.com/cn/articles/ebay-scalability-best-practices作者Randy Shoup译者郭晓刚发布于 2008年6月12日 下午7时5分社区Architecture主题设计,性能和可伸缩性标签eBay在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面... 阅读全文
posted @ 2009-08-26 17:33 李占卫 阅读(336) 评论(0) 推荐(0)
摘要:1:面向对象的三要素1.1 封装【EncapSulation】A 封装=合理的隐藏数据的隐藏【隐藏在方法背后】实现的隐藏【隐藏在接口背后】变化的隐藏【隐藏在抽象背后】B 封装能够提高对象的复用性减低对象的耦合度C 良好的封装=对象的高内聚 1.2 继承【Inheritance】A 基于差异式编程B 继承与合成/聚合合成/聚合复用原则B 继承的方式类的继承接口的继承C 继承与实现1.3 多态【Pol... 阅读全文
posted @ 2009-06-23 14:13 李占卫 阅读(581) 评论(0) 推荐(0)
摘要:1:类图2:数据结构[代码])3:开发步骤1:从数据库申请文件ID,同时得到时间。然后结合文件类型建立文件路径。2:向服务端发送文件【文件的二进制流,文件在服务器上的路径】分布式数据访问分布式缓存 阅读全文
posted @ 2009-05-31 17:47 李占卫 阅读(2550) 评论(9) 推荐(0)
摘要:1:前言看到这个题目也许有的朋友会问对数据访问层扩展为分布式有没有意义,因为不管怎样到最后都是对数据库进行访问,瓶颈在数据库上。对于这个问题我的答案是“我们提供分布式的查询能力然后和缓存结合让数据库中的数据缓存起来”。解决这个问题后我们来进入正题,如何对数据访问层进行封装。其实数据访问层的方法我们常用的是ExecuteDataset,ExecuteNonQuery,Exec... 阅读全文
posted @ 2009-05-31 17:18 李占卫 阅读(3037) 评论(17) 推荐(0)
摘要:1:前言我们在开发系统的过程中,缓存是个有用的模块。下面我就把我们的缓存模块给大家做个简单介绍。2:类图3:简单介绍缓存分为两个部分。一个是缓存结构一个是存储结构。缓存结构主要解决对象什么时候过期而存储结构主要解决对象存储到什么地方。3.1缓存结构我们在处理缓存过期这个功能的时候提供了两种过期时间。一种是绝对过期一种是相对过期。所谓绝对过期指的是到了时间点该对象就从缓存中移除,而相对过期则指的是只... 阅读全文
posted @ 2009-05-31 15:23 李占卫 阅读(5205) 评论(12) 推荐(1)
摘要:1:类间关系的种类2:关联描述了系统中对象或实例之间的离散连接,关联带有系统中各个对象之间关系的信息。2.1关联表示法2.2聚集与组合 3:泛化,继承【Generalization】泛化关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。4: 实现【realization】实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,其中接口只是行为的说明而不是结构或者实现。5:依赖【Dependence】 依赖表示两个或多个模型元素之间语义上的关系。它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。它表示了这样一种情形,提供者的某些变化 阅读全文
posted @ 2009-05-22 14:46 李占卫 阅读(2030) 评论(9) 推荐(1)
摘要:一、什么是架构在牛津高阶词典(第7 版)中,架构(architecture)一词的解释是:the design an structure of a computer system,而架构师(architect)一词的解释是:a person who is responsible for planning or creating an idea, an event or a situation。针对... 阅读全文
posted @ 2009-05-06 18:33 李占卫 阅读(1024) 评论(0) 推荐(0)
摘要:淘宝网,是一个在线商品数量突破一亿,日均成交额超过两亿元人民币,注册用户接近八千万的大型电子商务网站,是亚洲最大的购物网站。那么对于淘宝网这样大规模的一个网站,我猜想大家一定会非常关心整个网站都采用了什么样的技术、产品和架构,也会很想了解在淘宝网中是否采用了开源的软件或者是完全采用的商业软件。那么下面我就简单的介绍一下淘宝网中应用的开源软件。 对于规模稍大的网站来说,其IT必然是一个服务器集... 阅读全文
posted @ 2009-01-08 09:35 李占卫 阅读(482) 评论(0) 推荐(0)
摘要:部署和体系结构 Use distributed architectures appropriately. Do not introduce distribution unnecessarily. 适当的使用分布式架构,不要在不必要的时候使用分布式(译注:这个不好把握,主要靠经验,或者讲一些具体例子大家更容易明白)。 Carefully select appropriate distributed ... 阅读全文
posted @ 2008-12-29 11:01 李占卫 阅读(323) 评论(0) 推荐(0)
摘要:在敏捷开发过程中,我们还需要对系统架构进行设计吗?事实上,Martin Fowler在《Is Design Dead?》一文中已经给出了答案,那就是我们同样不能忽略对系统架构的设计。与计划性的设计(Planned Design)不同,我们需要演进式的设计(Evolutionary Design)。在敏捷开发的生命周期中,我们通过每一次迭代来丰富与更新我们的设计方案,以使其最大限度地符合客户对系统的... 阅读全文
posted @ 2008-05-20 17:28 李占卫 阅读(626) 评论(0) 推荐(0)
摘要:MVC模式已经出现了几十年了,在GUI领域已经得到了广泛的应用,由于微软ASP.NET MVC Framework的出现,致使MVC一度成为.NET社区的热名话题。作为MVC的变种MVP模式,也已经出现好几年了,在微软模式与实践小组提供的 Web Client Software Factory中,给出了实现MVP模式的应用程序最佳实践,本文将试着对这两种实现比较一二。 MVC (Model-Vie... 阅读全文
posted @ 2008-03-25 15:01 李占卫 阅读(800) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2008-03-20 12:22 李占卫 阅读(389) 评论(0) 推荐(0)
摘要:一.三层架构图 二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。Service Interface侧层用于将业务或数据资源发布为服务(如WebServices)。2.BL(Business Logic)层的职责是按预定的业务逻辑处理UI层提交的请求。(1)Business Function 子层负... 阅读全文
posted @ 2008-03-20 12:16 李占卫 阅读(718) 评论(0) 推荐(0)