系统架构
zhuweisky
微信号:oraycn。持续专注于即时通讯、实时音视频领域。平台涉及Windows、Linux、Android、Web、信创国产软硬件平台。
展开
-
我的架构经验小结(四)-- 实战中演化的三层架构
在06、07年的时候,我写过一些关于三层架构方面的东西(参见这里),现在看来,觉得有很多实用性的内容需要补充到里面去。我们还是先从架构图看起,然后一一解释,你就会发现相比于两年前,这个架构做了哪些变化和调整。一.三层架构图 二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提原创 2009-05-13 16:51:00 · 1284 阅读 · 2 评论 -
ESFramework 可复用的通信框架(序)
自从2004年7月开始,就一直从事N层C/S结构的服务端的开发,从最初的熟悉各种Windows Socket API、熟悉完成端口模型,探索高效稳定的服务端通信模型,时至今日,慢慢的积累了一些C/S服务端开发的经验,ESFramework便是这些经验的总结。ESFramework的前生是EnterpriseServerBase类库,后来我将EnterpriseServerBase中的Netw原创 2006-04-07 11:36:00 · 6130 阅读 · 8 评论 -
软件的艺术之美源于权衡(Trade-off)
软件架构师的主要职责是什么?是抉择、是权衡。把软件称为艺术一点都没有夸张,可以说软件是科学、工程、与艺术的结合体。软件的艺术体现在权衡上。在这一期的《程序员》杂志上看到了一篇“鱼与熊掌--完美主义架构师的梦魇”,其中关于权衡要素的论述正切合我之所想,现将主要部分转摘如下,如果想了解更详细内容,请在本期程序员阅读全文。(1)Time or Space 时间 vs. 空间原创 2005-08-16 11:37:00 · 2167 阅读 · 0 评论 -
数据安全--加密与解密(一)
数据安全--加密与解密基础(一) 2004.11 去年,MD5算法原创 2005-07-20 14:46:00 · 3441 阅读 · 0 评论 -
事务处理 基本要点
事务处理 基本知识点(2004.07)1. 事务:就是把多个不可分割的操作当作一个逻辑单元来执行。其特征为ACID 。2. 实现(支持)ACID的机制是:加锁(I),日志机制(A、D),事务管理机制(A、C)。3. 实现事务的三种方式(1) 通过后台数据库的SQL原创 2005-07-20 12:04:00 · 2636 阅读 · 0 评论 -
企业级服务器设计与实现经验之开篇
这个题目听起来蛮吓人的,毕竟本人的经验值也不高,却大放厥词在这里谈“企业级”。原因有二,一是把这一年以来的开发DataServer服务器的工作做个总结;二是希望能抛砖引玉,希望这方面的研究和交流繁荣起来,毕竟,目前讲这方面实战经验的文章资料太少了。 正式开题之前,绝对有必要先简单的介绍相关的背景。在写这篇文章的时候,我在航天量子数码科技有限公司(Ae原创 2005-07-03 22:00:00 · 10989 阅读 · 10 评论 -
企业级服务器设计与实现经验之插件系统--功能插件
在DataServer中,功能插件位于功能服务器上,被框架用于处理所有的功能请求,功能请求的表现形式是数据流,即字节数组。 在描述功能插件的外貌之前,先有必要了解这个被功能插件处理的数据流,这个数据流可能基于某种流协议格式,也可以是被序列化的请求对象。所谓“基于格式的流协议”是这样一种消息协议,它定义了数据流的固定偏移处接下来的几个字节的含义,比如规定数据流从偏移为4的地原创 2005-08-06 12:39:00 · 7196 阅读 · 2 评论 -
企业级服务器设计与实现经验之插件系统基础篇
最初之所以要采用插件的形式进行开发,主要是为了解决功能服务的“热插拔”问题,在决定采用“框架+插件”的方式进行设计后,我们就更进一步,打算将一个个可以分割开来的拥有完整功能的组件都做成插件的形式,并且使同类型的插件的接口兼容,这样在以后需要改变时就可以灵活的进行替换。比如,将通信部分做成通信插件、日志记录部分做成日志插件等等。首先,我们要弄清楚,什么是插件?我给出了一个定义,可能有原创 2005-07-17 15:32:00 · 8620 阅读 · 2 评论 -
企业级服务器设计与实现经验之系统框架(二)--功能/应用服务器主体框架
前面两篇文章已经介绍了功能服务器FS与应用服务器AS拆开的原因和它们各自的职责。这篇文章我们主要来看看FS和AS的主体框架是怎样的。首先要说明,无论FS或AS,它们都是一个复杂的系统,特别是AS,它有许多的管理、记录功能,所以单凭这一篇文章是不可能将它们的每一个方面描述清楚的。相反,我在此文中仅仅给出它们的骨架结构,许多细节都将忽略,看过第一篇文章读者可以根据主题目录知道,这些原创 2005-07-06 15:12:00 · 7961 阅读 · 1 评论 -
企业开发基础设施--序
所谓企业开发基础设施,指的是为那些几乎所有的企业开发都会遇到的共同的基础性的问题提供服务的设施,比如事务、日志、权限等等。其中很多设施都会以AOP的方式实现,有些则可能以类库的方式提供。我也一直在积累这方面的AOP组件和类库。 曾经做过一些关于日志、权限管理的AOP实现,这几天正在研究“类厂服务”,于是就有了写这个“企业开发基础设施”系列文章的想法,把自己的一些思想拿出来和原创 2005-09-13 17:01:00 · 1026 阅读 · 0 评论 -
企业开发基础设施--类厂服务
类厂服务的主要功能是简化创建具体工厂任务,使工厂访问代码和工厂创建代码解藕。类厂服务是以抽象工厂模式为基础,并且在其上进行再综合。 在正式进入正题之前,为了方便后面的叙述,先要澄清一些概念,把上下文(Context)搭建起来,然后,我们再在这个上下文中进行讨论。 首先是两个基本定义:族和系列。(这两个概念是我自创的,不知道常用的术语是什么,知道的朋友请留言告诉我:))原创 2005-09-13 17:01:00 · 1491 阅读 · 0 评论 -
框架?
( 本文源自《.NET通信框架的设计、实现与应用》书稿第一章内容,未经许可,不得转载。) 框架和类库等概念的出现都是源于人们对复用的渴望。“不要重复发明轮子”,成了软件界的一句经典名言。从最初的单个函数源代码的复用,到面向对象中类的复用(通常以类库的形式体现),再到基于组件编程中二进制组件(.NET中是以IL程序集形式存在的)的复用,人们复用软件的抽象层次越来越高。现在,原创 2007-04-16 11:54:00 · 1174 阅读 · 1 评论 -
我的架构经验小结(三)-- 深入三层架构
在 我的架构经验小结(二)-- 关于三层架构 一文中,已经比较深入的介绍过三层架构方面的一些经验了,现在,我们来使用一个更小的比例尺来近距离观察我所理解的三层架构。一.三层架构图 二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。Service Interface侧层用于将业务或数据原创 2007-04-02 16:54:00 · 1397 阅读 · 0 评论 -
我的架构经验小结(二)-- 关于三层架构
在 我的架构经验小结(一)-- 常用的架构模型 一文中简单介绍了我常采用的几种架构模型,本文将稍微深入地介绍其中的一种 -- 三层架构模型。一.三层架构图 二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。与UI平行的Service Interface层用于将业务发布为服务(如Web原创 2007-01-24 15:55:00 · 864 阅读 · 0 评论 -
我的架构经验小结(一)-- 常用的架构模型
经过这几年的积累,在系统架构方面逐渐积累了一些自己的经验,到今天有必要对这些经验作个小结。在我的架构思维中,主要可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。一.三种架构模型1.3/N层架构 这是经典的多层架构模型,对于稍微复杂一点或特别复杂的系统,不使用分层架构是很难想象的。下图是经典的3层架构: 如今,凡是个原创 2006-12-23 09:55:00 · 1358 阅读 · 0 评论 -
IoC与DI (转载)
(本文转自梦想风暴的blog)一个朋友发了封mail问了几个问题,其中的一个是关于IoC和DI的:Inversion of Control和Dependency Injection 是什么关系,我认为两个词代表的是同一个意思,只是两种不同的表示,对吗?下面是我对这个问题的一些理解。准确的说,IoC和DI并不相同,这一点从字面上就可以看出,否则,它们可以叫一个名字。^_^理解I原创 2006-01-19 13:00:00 · 838 阅读 · 1 评论 -
组件设计实战--组件之间的关系 (Event、依赖倒置、Bridge)
一个组件与另一个组件之间的关系可以通过三种方式建立起来:事件、依赖倒置、Bridge。现在我们只考虑单向依赖的关系,即信息提供者和信息消费者。事件是一种松耦合的信息发布方式,事件发布者(信息提供者)不需要关心事件预定者(即信息消费者)的任何信息,但是事件预定者需要依赖事件发布者;依赖倒置则反转了这种关系,在依赖倒置的方式中,信息提供者依赖信息消费者(你也许对这句话觉得奇怪,后面的原创 2005-12-20 21:00:00 · 1320 阅读 · 0 评论 -
企业开发基础设施--事件通知服务(Remoting双向通信)
事件通知服务用于解决多个应用程序之间的事件发布与预定的问题。在.NET平台上,跨应用程序的事件发布/预定通常以Remoting作为底层的通信基础,在此基础之上,事件通知服务使用中介者模式来简化跨应用程序的事件通知问题。 本文采用的解决方案中,有两个重要组件:事件服务器EventServer和事件客户端EventClient。EventServer作为中介者,并作为一个独立的原创 2005-09-26 15:01:00 · 1610 阅读 · 0 评论 -
企业级服务器设计与实现经验之系统框架(一)
我们将DataServer拆分为功能服务器和应用服务器,基于如下几个方面的考虑:(1) 能更简单的添加不同类型的应用。在这种拆分的状态下,如果需要增加一个新的应用,那么只需要增加一个新的应用服务器即可。比如,现有的应用服务器是以TCP的方式提供服务,如果我想增加一种以WebService方式来发布我们的服务,那么我只要增加一个WebService应用服务器,而不管是TCP应用原创 2005-07-04 17:54:00 · 8069 阅读 · 2 评论