design
firestone-sh
技术的蜗牛
展开
-
Top-Down and Botton-up
different perspectives SOA, the bottom-up approach, which is primarily IT driven.也即把现有的Java bean包装重用成Web Service等。 And BPM, the top-down approach, which is business driven,一切从头开始设计,包括WSDL等。原创 2012-10-08 13:39:09 · 764 阅读 · 0 评论 -
Java序列化
一般序列化的方式有:1. 通过JDK 的Serializable接口序列化成二进制字节流 RMI,EJB,分布式应用中需要用到 注意序列化的是类的数据成员,而不是方法 1.1 可以通过Externalizable接口( readExternal, writeExternal)定制Seriealizable过程 1.2 三种情况不会序列化 ...2010-03-08 09:01:47 · 71 阅读 · 0 评论 -
设计原则
SOLID1. SRP A Single Responsibility Principle A class should have one, and only one, reason to change.2. OCP A module should be open for extension but closed for modification. p...原创 2009-02-09 07:23:55 · 79 阅读 · 0 评论 -
Top-Down and Botton-up
different perspectives SOA, the bottom-up approach, which is primarily IT driven.也即把现有的Java bean包装重用成Web Service等。 And BPM, the top-down approach, which is business driven,一切从头开始设计,包括WSDL等。 ...原创 2009-06-28 09:09:36 · 152 阅读 · 0 评论 -
session 实现
我们知道session 实现有好几种机制,比如cookie, url-rewriting, etc. When cookie is disabled on client side, most of time we can refer to use response.encodeURL or encodeRedirectURL to add a param jsessionid to ide...原创 2009-07-07 06:49:08 · 83 阅读 · 0 评论 -
EJB
针对session EJB的应用,原因有二:1. Remote Session EJB的分布式功能(包括分布式事务传播)2. 即使只用Home EJB,也可以利用它的声明式事务功能2010-08-16 13:17:30 · 97 阅读 · 0 评论 -
SLSB的业务接口
今天在看EJB的相关知识时回忆起以前SLSB中业务接口的设计。声明一个业务接口继承自java.rmi.Remote接口(BTW,这是一个Marker interface). 该接口中声明所有业务需要的远程方法。EJB实现类实现这个业务接口即可,不需要直接实现java.rmi.Remote 该方案目的有二:1. 抽象出一个公共的业务接口并强迫EJB实现(编译时检查)2. 解耦EJ...原创 2010-08-17 07:37:12 · 181 阅读 · 0 评论 -
来自EJB的回忆
在EJB开发过程中,根据JNDI找到Home接口再生成远程接口对象是一个耗费资源的事。因为在很多遗留的EJB系统中有很多Cache的方案。一部分是Cache Home接口,一部分Cache 远程接口对象。怎么理解这两种方案的区别呢?答案是SFSB时Cache Home; SLSB时Cache 远程接口对象。以为SFSB只能跟Client的一次Session关联,多个Client不能重用(也即一次...原创 2010-08-17 07:44:34 · 81 阅读 · 0 评论 -
distributed caching and transaction
哪位兄弟可以谈谈这方面的理解?尤其是分布式Caching.2010-08-19 13:45:49 · 94 阅读 · 0 评论 -
我眼中的LLD
LLD一般与Functional Specification 和 HLD对应。包括:Purpose, Intended/Target Audience 1. Data Model2. 必要的UML图3. Logging处理4. Exception 处理5. Security处理6. Transaction处理7. Assumption8. Dependen...2010-08-23 11:01:25 · 149 阅读 · 0 评论 -
事务之CAP/BASE
CAP理论:ConsistencyAvailabilityTolerance of network partition一般来说,分区容忍性( partition Tolerance )是网站可伸缩性必需的,因此只能在Consistency和Availability之间做出取舍。 Base:Basically Available Soft state Eventuall...2010-08-23 21:17:25 · 93 阅读 · 0 评论 -
4+1架构
为了从不同stake holder的角度来看架构,架构设计文档从多个角度来说明 1. Logical View 关注 FS2. Process View 关注 Non-FS3. Implementation View 关注组件,层次实现及具体关系4. Data View 关注数据持久化 中心是 Use Case View,描述关键...原创 2010-08-26 17:09:56 · 177 阅读 · 0 评论 -
一个金融系统考虑到的
1. 为了安全起见,所有的写操作都要计入Audit表中2. 考虑效率(reconciliation&settlement),引入影子表(这是一个实表,非虚表). 影子表是对多个业务相关表的数据冗余。3. 数据库表设计时留了一些字段,并不表示任何业务意义,仅仅是为了以后扩充。虽丑陋但实用,能解决部分问题。4. 表结构设计时不设主键外键,提高性能?5. Portal支持SSL...原创 2010-08-27 17:14:01 · 82 阅读 · 0 评论 -
Enterprise Integration Pattern读中感
最近在拜读Martin Fowler的Enterprise Integration Pattern,对于基于消息系统的应用集成了解了不少。虽然以前的工作也涉及IBM MQ但体会总是不是很深。在不同应用,分布式环境中,的集成中,消息中间件在可靠性方面是优势。这跟我的第一印象是刚好相反的,以前总以为消息总会如同发出的信件一下,也许会石沉大海吧?哪有同步方式,比如打电话,可靠?仔细一想,其实不然。同步方...原创 2010-09-07 15:13:46 · 266 阅读 · 0 评论 -
测试知识
1. Quality Center9.2/10.0,以前称为Test Director 8管理Release, Cycle,Test Case, Test Case 执行,defect, 相互关联,报告,需求变更 2. 自动化测试2.1 Quick Test Professional, functional test2.2 IBM Rational Functonal Tes...原创 2011-03-11 10:35:59 · 81 阅读 · 0 评论 -
lazy loading实现
在进行O-R mapping时经常会碰到加载a graph of objects. 这是lazy loading应用的场景。你不想把所有数据库中关联的表对象都一次性load到内存吧? 可用的方法有:1. lazy initialization 简单来说就是使用前判断目标对象是否为null,是则真正从数据库加载。缺点是非null时并不总是代表对象加载了。还有一个缺点是domai...原创 2010-11-20 08:31:48 · 657 阅读 · 0 评论 -
架构考虑的
考量的是Non Functional factors, 其中有: 1. Response Time 处理一次请求的时间或者平均时间 2. Throughput 一般以 hits per second or transactions per second 度量 3. Scalability Scale up(Vertical Scalabili...原创 2010-11-20 14:02:09 · 83 阅读 · 0 评论 -
12306
1. manage 用户的expectation,不要造成无谓的刷网页。许多网友提出的分布式队列是个好的思路。买票是用户选择排队,并知道当前还有多少票,有多少人在排,就不会有恐慌的心理了。 2. 前端网页的优化是必须的,不知道现在有没有用到CDN 3. 为什么有很多钱付了,票没了的情况? 不知这其中的事务是怎么处理的。如果这是可接受并预先通知用户的话也罢......原创 2012-03-18 22:22:54 · 68 阅读 · 0 评论 -
Web相关
1. Tomcat load balance/cluster/fail off 2. SSO based on CAS tomcat JBoss portal SSL 3. Acegi filter / JAAS 4.原创 2009-11-12 22:09:25 · 89 阅读 · 0 评论 -
RESTful 笔记
REST(Representational State Transfer)是 Roy Fielding 提出的一个描述互联系统架构风格的名词。 Another way to say REST is in HTTP, any request a client can make involves a URL and an HTTP method. With REST, the URL is d...原创 2009-09-24 18:07:27 · 115 阅读 · 0 评论 -
日志系统
异步log to file1. 启动一个多线程,维护一个List列表。List中存放的是需要log的字符串。早期用Vector来考虑同步的问题,甚至可以包装Vector。加入wait/notify机制。2. 主程序启动时打开文件,主程序结束时关闭文件。其他还有异常,rotate file时也需要关闭文件。 // Open the file output stream log...2008-09-02 22:51:00 · 81 阅读 · 0 评论 -
RESTful 笔记
REST(Representational State Transfer)是 Roy Fielding 提出的一个描述互联系统架构风格的名词。原创 2012-10-08 13:40:00 · 338 阅读 · 0 评论 -
Web相关
1. Tomcat load balance/cluster/fail off 2. SSO based on CAS tomcat JBoss portal SSL 3. Acegi filter /原创 2012-10-08 13:54:07 · 297 阅读 · 0 评论 -
SLSB的业务接口
今天在看EJB的相关知识时回忆起以前SLSB中业务接口的设计。声明一个业务接口继承自java.rmi.Remote接口(BTW,这是一个Marker interface). 该接口中声明所有业务需要的远程方法。EJB实现类实现这个业务接口即可,不需要直接实现java.rmi.Remote 该方案目的有二:1. 抽象出一个公共的业务接口并强迫EJB实现(编译时检查)2. 解耦EJB中多余的接口声明。原创 2012-10-08 13:55:44 · 402 阅读 · 0 评论 -
事务之CAP/BASE
CAP理论:ConsistencyAvailabilityTolerance of network partition一般来说,分区容忍性( partition Tolerance )是网站可伸缩性必需的,因此只能在Consistency和Availability之间做出取舍。原创 2012-10-08 13:56:03 · 395 阅读 · 0 评论 -
设计原则
SOLID1. SRP A Single Responsibility Principle A class should have one, and only one, reason to change.2. OCP A module should be open for extension but closed for modification. polymorphism is原创 2012-10-08 13:37:02 · 314 阅读 · 0 评论 -
session 实现
我们知道session 实现有好几种机制,比如cookie, url-rewriting, etc. When cookie is disabled on client side, most of time we can refer to use response.encodeURL or encodeRedirectURL to add a param jsessionid to identif原创 2012-10-08 13:39:17 · 239 阅读 · 0 评论 -
Java序列化
一般序列化的方式有:1. 通过JDK 的Serializable接口序列化成二进制字节流 RMI,EJB,分布式应用中需要用到 注意序列化的是类的数据成员,而不是方法 1.1 可以通过Externalizable接口( readExternal, writeExternal)定制Seriealizable过程 1.2 三种情况不会序列化 1)static fi原创 2012-10-08 13:54:45 · 244 阅读 · 0 评论 -
EJB
针对session EJB的应用,原因有二:1. Remote Session EJB的分布式功能(包括分布式事务传播)2. 即使只用Home原创 2012-10-08 13:55:40 · 253 阅读 · 0 评论 -
来自EJB的回忆
在EJB开发过程中,根据JNDI找到Home接口再生成远程接口对象是一个耗费资源的事。因为在很多遗留的EJB系统中有很多Cache的方案。一部分是Cache Home接口,一部分Cache 远程接口对象。怎么理解这两种方案的区别呢?答案是SFSB时Cache Home; SLSB时Cache 远程接口对象。以为SFSB只能跟Client的一次Session关联,多个Client不能重用(也即一次原创 2012-10-08 13:55:47 · 293 阅读 · 0 评论 -
distributed caching and transaction
哪位兄弟可以谈谈这方面的理解?尤其是分布式Caching.原创 2012-10-08 13:55:55 · 304 阅读 · 0 评论 -
我眼中的LLD
LLD一般与Functional Specification 和 HLD对应。包括:Purpose, Intended/Target Audience 1. Data Model2. 必要的UML图3. Logging处理4. Exception 处理5. Security处理6. Transaction处理7. Assumption8. Dependencies/Third Party Jar原创 2012-10-08 13:55:57 · 401 阅读 · 0 评论 -
4+1架构
为了从不同stake holder的角度来看架构,架构设计文档从多个角度来说明 1. Logical View 关注 FS2. Process View 关注 Non-FS3. Implementation View 关注组件,层次实现及具体关系4. Data View 关注数据持久化 中心是 Use Case View,描述关键业务流程。原创 2012-10-08 13:56:05 · 412 阅读 · 0 评论 -
一个金融系统考虑到的
1. 为了安全起见,所有的写操作都要计入Audit表中2. 考虑效率(reconciliation&settlement),引入影子表(这是一个实表,非虚表). 影子表是对多个业务相关表的数据冗余。3. 数据库表设计时留了一些字段,并不表示任何业务意义,仅仅是为了以后扩充。虽丑陋但实用,能解决部分问题。4. 表结构设计时不设主键外键,提高性能?5. Portal支持SSL6. 逻辑删除表记录,如结原创 2012-10-08 13:56:07 · 359 阅读 · 0 评论 -
Enterprise Integration Pattern读中感
最近在拜读Martin Fowler的Enterprise Integration Pattern,对于基于消息系统的应用集成了解了不少。虽然以前的工作也涉及IBM MQ但体会总是不是很深。在不同应用,分布式环境中,的集成中,消息中间件在可靠性方面是优势。这跟我的第一印象是刚好相反的,以前总以为消息总会如同发出的信件一下,也许会石沉大海吧?哪有同步方式,比如打电话,可靠?仔细一想,其实不然。同步方原创 2012-10-08 13:56:12 · 659 阅读 · 0 评论 -
lazy loading实现
在进行O-R mapping时经常会碰到加载a graph of objects. 这是lazy loading应用的场景。你不想把所有数据库中关联的表对象都一次性load到内存吧? 可用的方法有:1. lazy initialization 简单来说就是使用前判断目标对象是否为null,是则真正从数据库加载。缺点是非null时并不总是代表对象加载了。还有一个缺点是domain类中加入了调用原创 2012-10-08 13:56:56 · 1380 阅读 · 0 评论 -
java modules
OSGI, Eclipse支持的Jigsaw, 推迟到 J2SE 9Jboss Modules,JBoss Modules 就是解决传统的层级机制的 ClassLoader 所带来的 Jar Hell 问题:(1) JAR 被加载后不使用导致资源浪费。(2) 同名 JAR 包的不同版本混在导致依赖冲突。JBoss Modules 使所有的 jar 都打包成为模块,一转载 2014-09-19 16:02:39 · 470 阅读 · 0 评论 -
sso
SAML即安全断言标记语言,英文全称是Security Assertion Markup Language。它是一个基于XML的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。在SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。 SAML是OASIS组织安全服转载 2014-09-19 16:02:26 · 359 阅读 · 0 评论 -
数据结构
1. bloom filter用于测试一个元素是否在一个很大的数据集中。方法是利用多个hash函数,数据集中的元素通过hash函数到一个位置。查询时,做相同的hash查找。只要有一个hash函数没有match到对应的位置就可以判定该元素不在数据集中。所以该方法可能有false positive但一定没有false Negative。 2. suffix array/tree把一个字...原创 2012-03-19 08:30:23 · 138 阅读 · 0 评论