Sunday, August 26, 2007

代码分析和漏洞检测

  在InfoQ上看到了一些关于代码分析的文章,发现了两篇比较有意思而且有完整中文译文的,分别是:
  • 代码规范的自动化监管
      讲的很不错,印象最深刻的一点是,面对参差不齐的代码质量和编程习惯所带来的巨大挑战,传统的通过事后代码复查来试图纠正已经太晚了,而且会不可避免地导致编码人员的不良心理反应。因此,可能最好的办法就是实施自动化监管,把静态源代码分析和漏洞检测系统与版本构件系统进行整合,从而进行强代码制规范化,既一定程度上避免了垃圾代码进入产品构件系统,也使得编码人员更易于接受并积极改进。
  • Google单实例模式检测工具
      这个检测是在字节码层面上的,而不是通常的源代码层面。因此,从难度上来说要高不少,而且很难检测完全。相当于要从一堆字节码中检测出某些模式或者特征代码,有点像查病毒软件的原理吧。
      至于单例(Singleton)模式的问题与否,我个人认为,如果采用的是松耦合的资源注入方式,那么使用单例并不是问题非常大的;反之,如果控制逻辑和资源状态是混在一起的,相当于一种全局的static容器,那么这无疑增加了测试和理解的复杂性,理论上是不赞成的。大家觉得呢?
  最后,我也来介绍一个SAP的代码分析工具——JLin ,这个是可以通过简单地配置和构件系统整合在一起,然后生成代码质量报告。其本身是SAP NetWeaver Developer Studio的一个Eclipse插件,内置了一些基本的代码检测规则。在我们的日常开发中,任何Priority 1或者2的代码是不允许被带到产品的consolidate track上去的。虽然检测的范围还是比较有限,但还是在一定程度上起到了监管代码质量的作用。不过,就我的判断,在理论上,JLin的架构是能够支持更为复杂的源代码级或者字节码级的自动化代码审查和强制监管功能的。

by William Cui 崔伟毅

Labels: , ,

Monday, August 6, 2007

在线数据服务托管

  在线数据服务托管的理念是把数据存储和客户的具体应用分离,由第三方提供数据存储的基础设施,并将数据检索和存储服务按每月使用流量进行收费。
  先来看看这块市场的老大,来自Amazon的S3数据服务托管的价目表吧:

Storage
$0.15 per GB-Month of storage used

Data Transfer
$0.10 per GB - all data transfer in

$0.18 per GB - first 10 TB / month data transfer out
$0.16 per GB - next 40 TB / month data transfer out
$0.13 per GB - data transfer out / month over 50 TB

Data transfer "in" and "out" refers to transfer into and out of Amazon S3.
Data transferred between Amazon S3 and Amazon EC2 is free of charge

Requests
$0.01 per 1,000 PUT or LIST requests
$0.01 per 10,000 GET and all other requests*
* No charge for delete requests

Storage and bandwidth size includes all file overhead.

  我不是这一块的业内人士,不清楚它的定价合理与否,也不是很清楚国内是否已经有了模仿者。不过对于消费者来说,它的按需收费应该还是很受欢迎的,用多少算多少,大大降低了一次性投资风险,因此会特别受初创型互联网企业的欢迎吧。

  除了S3,还有以下已知的类似服务可以研究一下:
  从技术角度来说,以上所有服务都支持类似REST方式的数据访问API,并通过JSON/XML格式交换数据。对于他们在数据安全性方面的解决方案,个人比较感兴趣,正打算着啥时候再研究讨论一下吧。

by William Cui 崔伟毅

Labels: ,