系统设计
zhangxzhi
这个作者很懒,什么都没留下…
展开
-
通用平台exception handling系统的设计与实现
现在设计一个exception handling系统。server端用的是Spring+ibatis. 大的构想是用spring的aop技术在合适的地方catch住异常,然后进行一些处理,处理模块基本上是.net的exception handling block的架构,简单的说就是配置exception handler,然后进行处理。常见的handler包括wrapExce...2008-11-12 22:02:48 · 142 阅读 · 0 评论 -
通用平台logging系统的设计与实现
通用平台logging系统的设计与实现基本上这个没有什么好说的,底层用的log4j,然后封装一下,定义自己的log level,然后有一些简单的API。对于使用,可以用class name作为logger name。或者可以配置为根据namespace解析为一个logger name,如com.xyz.user及com.xyz.user.dao等等都map到一个名为com.xy...2008-11-12 22:10:53 · 105 阅读 · 0 评论 -
Notification系统及其上的事件驱动
典型的Notification一般有两种架构,一种是点对点,一种是发布订阅模型。主要讨论发布订阅模型。主要的类如下:Topic,可以发布的话题。包含一个Topic的元数据。Subscription,一个消费者(可以是系统或者用户)的一个订阅,一个订阅可以订阅一个Topic,并且可以设置一些field来filter该Topic,比如只对发布与某个时间段的Topic进行订阅。N...2009-10-21 02:02:58 · 261 阅读 · 0 评论 -
基于代理的SSO设计
1 概念SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的一种机制。2 开源的josso,cas.开源的josso,cas的设计实现是差不多的。都是一个认证中心加数个sso代理的方式。主要看了josso,由于有一些限制,最后没有采用。如java web的认证方式有限制,用户统一管理。必须承认,安全问题是复杂的,sso作为一个跨...2009-12-23 15:57:12 · 226 阅读 · 0 评论 -
领域模型的粒度
领域模型的建模有时候是很复杂的,大量对象之间构成复杂的关系网,而一般这些领域对象都是存储在数据库里,所以对象的建立保存就会变得比较复杂。Lazy Load是一个缓解这个问题的一个办法,但是不是所有场合都适用。问题的解决还是应该回到领域模型的建立上来,当定义对象时,要对不同的关注点进行分离。当对象之间有复杂的关系网时,并不是相关对象的网络要一次的建立好。可以加一些对象的键来分离对象模...2009-08-21 00:59:17 · 310 阅读 · 0 评论 -
网站中异常设计思考
网站应用和其他应用(比如框架设计)有些不同之处,以下是对网站系统中异常设计和处理的一些思考。1 异常2 结果码3 问题1 异常首先是关于异常的选择,Java的异常分为检查型异常和运行时异常,关于这两种异常的优缺点已经有无数人的无数文章做过讨论。检查型异常是一个好东西,最大的优点是把异常作为了方法约定不可分割的一部分,强制性的要求方法调用者思考如果有异常该怎么处理...2010-08-15 10:33:30 · 96 阅读 · 0 评论 -
一个异常应该在一个log文件里面出现一次且只有一次
系统报了一堆异常,吓人一跳,看了看,发现有一个异常在同一个文件中,打了多次的情况。比如A->B,B->C,C系统有一个异常,打到了error.log中,然后又向上抛,B捕获了这个异常,打到了error.log中,又向上抛,C系统捕获了这个异常,打到了error.log中。感觉这种记录异常的方式是不合理的。当时这么做的思路是所有的异常打在一个文件里面,方便排查故障。但是这...2010-11-13 00:48:09 · 138 阅读 · 0 评论