0%

转自:http://www.cnblogs.com/artech/archive/2011/05/23/authentication_022.html
认证与凭证:X.509证书
在《上篇》中,我们谈到了常用的认证方式:用户名/密码认证和Windows认证。在下篇中,我们着重来介绍另外一种重要的凭证类型:X.509证书,以及针对X.509证书的认证方式。不过为了让读者能够真正地全面地了解X.509证书,我们需要先了解一些关于非对称密码学的背景知识。

目录
一、非对称密码学(Asymmetric Cryptography)
消息加密(Encryption)
数字签名(Digital Signature)
二、数字证书
数字证书的颁发机制
创建数字证书
三、通过凭证三个属性来分析X.509证书

阅读全文 »

【面向对象程序设计之CRC】CRC卡及其应用

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

1.什么是 CRC card?

CRC (Class-Responsibility-Collaborator) Card是目前比较流行的面向对象分析建模方法。在CRC建模中,用户、设计者、开发人员都有参与,完成对整个面向对象工程的设计。

CRC卡是一个标准索引卡集合,包括三个部分:类名、类的职责、类的协作关系,每一张卡片表示一个类。

· 类 代表一系列对象的集合,这些对象是对系统设计的抽象建模,可以是一个人、一件物品等等,类名写在整个CRC卡的最上方。

· 职责 包括这个类对自身信息的了解,以及这些信息将如何运用。诸如,一个人,他知道他的电话号码、地址、性别等属性,并且他知道他可以说话、行走的行为能力。这个部分在CRC卡的左边。

· 协作 指代另一个类,我们通过这个类获取我们想要的信息或者相关操作。这个部分在CRC卡的右边。

阅读全文 »

用了一个多月的Github博客,总结如下。Github 博客和普通第三方提供博客的优劣性分析:
1、Github博客就像毛坯房,可以由你来定义;普通第三方就像装修好的房子,直接可以入住,但是你不能做任何的改动;
2、Github博客知会存放你需要摆放的内容;普通第三方博客会插入服务商提供的默认的内容;
3、Github博客没有任何广告,干净的让你心旷神怡;普通第三方博客会弹出很多广告;
4、Github博客你掌握源代码,将来的迁移是非常方便的;普通第三方博客会有很多迁移的限制;
不过话说回来,Github博客适合有开发经验的人士,对普通人还是太复杂了。

Java2平台J2SE、J2EE、J2ME三大版本的区别
J2SE、J2EE、J2ME的区别
多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用。
Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本:
J2SE就是Java2的标准版,主要用于桌面应用软件的编程;
J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;
J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
◆StandardEdition(标准版)J2SE包含那些构成Java语言核心的类。
比如:数据库连接、接口定义、输入/输出、网络编程
◆EnterpriseEdition(企业版)J2EE包含J2SE中的类,并且还包含用于开发企业级应用的类。
比如:EJB、servlet、JSP、XML、事务控制
◆MicroEdition(微缩版)J2ME包含J2SE中一部分类,用于消费类电子产品的软件开发。
比如:呼机、智能卡、手机、PDA、机顶盒
他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类
应用场合,API的覆盖范围各不相同。
笼统的讲,可以这样理解:
J2SE是基础;
压缩一点,再增加一些CLDC等方面的特性就是J2ME;
扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。
补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。

用例图中的关系

看懂UML类图和时序图

自己的概括:
1、依赖和关联

2、聚合和组合

3、泛化和实现

UML类图符号 各种关系说明以及举例

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。

阅读全文 »

  许多人都喜欢引用一句据称是胡适的名言:“历史是个任人打扮的小姑娘”。其实,胡适并没说过这样的话,它是由其它话演变来的,原话出自胡适的《实验主义》:“实在是我们自己改造过的实在。这个实在里面含有无数人造的分子。实在是一个很服从的女孩子,她百依百顺地由我们替她涂抹起来,装扮起来。好比一块大理石到了我们手里,由我们雕成什么像。”胡适原本在讲哲学,与历史毫无关系,后来竟然被以讹传讹。这个讹传的源头似为哲学家冯友兰在“胡适思想批判”运动中的一段话:“实用主义者的胡适,本来认为历史是可以随便摆弄的。历史像个‘千依百顺的女孩子’,是可以随便装扮涂抹的。”

昨天给老板汇报了。一开始我们准备了一堆PPT和具体的Excel数据。但汇报的时候,从第一页开始,老板就叫停了,反思如下

  1. 汇报的时候需要站在老板的角度来考虑,老板关注什么;
  2. 我们准备的资料,基本是从系统功能的维度来考虑,但是老板关心的是整体

总结老板的要求就是

  1. 需要列出老板目前关注的问题、交代的问题有哪些?实现情况怎么样?用得怎么样?差异在哪里?准备怎么做(方案)?计划如何?系统能带来什么好处?
  2. 老板近期关心的问题是:
      1)管控点的实现情况(过程管理--生产运营)
        BI:总体(全流程\体系化、一体化)管控红绿灯、管控点实现情况一览表(结合业务流程)实现一栏表;
      2)投资经营分析的表格(事后管理--投资管理)
        BI:实现经营分析表、投资分析表等,让老板能看到运营和目标成本、全面预算、时间计划等的对标情况;
      3)系统要成一个体系、系统要能用
        要打通,不能总是半成品。
    其实总的来说,老板需要他的管控思路需要在系统落地,需要能看到运营情况和他要求的差异。
    不过从合dao的角度来说,其实也存在重开发、轻实施;重开发、轻应用的问题。导致系统开发出来之后使用效果不好。
    还有就是目前把一个大系统拆分成几个小系统,然后通过接口来对接的方式是否合理?因为根据统计,接口发现的问题占比达到35%左右。太多接口给系统带来更多的复杂度。

下面是自己本来想提的问题,不过比较,还是站在做事情的角度,没有站在老板的角度来提出问题,见下面:目前信息化的8个困境及建议

阅读全文 »

终于啃完这本近900页的大块头,一本讲述软件构建的最佳实践方面的书。
本书除了内容详实、通俗易懂之外,最大的一个优点就是翻译得特别好。
像作者说的,人的智力是有限的,而软件需要构建的世界是凌乱的,所以降低复杂度是软件开发的核心。
所以,如何降低复杂度是本书的核心,包括分层抽象、分解、复查、规范等等技术。
例如:

  • 将系统 “分解”,是为了使其更易于理解
  • 进行复查、测试,减少人为的失误
  • 将子程序编写得短小,以减少大脑的负荷
  • 基于问题而不是实现细节来编程,从而减少工作量
阅读全文 »

代码大全 - 个人性格
编程过程是非常耗费脑力的。 人们都知道聚精会神地一天8小时工资是多么困难。 也许你有过某天精力过分集中,以至于第二天就无精打采的经历。
编程工作本质上是项无法监督的工作,因为没人清楚你正在干什么。我们都有这样的经历:耗费80%的时间着力于项目的个别地方,而花费20%的时间来完成其余80%的工作。
一旦决心成为出色的程序员,你的发展潜力是很大的。 各种研究发现,不同的程序员创建的某个程序所需要的时间差异可达10:1;同时还发现,不同程序员调试程序所需的时候,程序实现规模,速度,错误率和检测出的错误数目也能打带10:1.
承认自己智力有限并通过学习来弥补,你会成为更好的程序员。

很好的编程做法能减轻你的脑力负担:

  • 将系统 “分解”,是为了使子更易于理解
  • 进行复查,测试, 减少人为的失误
  • 将子程序编写得短小,以减少大脑的负荷
  • 基于问题而不是实现细节来编程,从而减少工作量

关于冒烟测试,应该是微软首先提出来的一个概念,和微软一直提倡的每日build有很密切的联系。具体说,冒烟测试就是在每日build建立后,对系统的基本功能进行简单的测试。这种测试强调功能的覆盖率,而不对功能的正确性进行验证。从这一点看和所谓的“接受性(验收)测试(Acceptance Test)”非常相似。不同之处就在于他们执行的频率和被测的版本不同。

  至于冒烟测试这个名称的来历,大概是从电路板测试得来的。因为当电路板做好以后,首先会加电测试,如果板子没有冒烟在进行其它测试,否则就必须重新来过。类似的如果冒烟测试没有通过,那么这个build也会返回给开发队伍进行修正,测试人员测试的版本必须首先通过冒烟测试的考验。

阅读全文 »