﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-桔子园-随笔分类-other</title><link>http://www.blogjava.net/orangelizq/category/24407.html</link><description>orangelizq</description><language>zh-cn</language><lastBuildDate>Fri, 20 Aug 2010 14:12:38 GMT</lastBuildDate><pubDate>Fri, 20 Aug 2010 14:12:38 GMT</pubDate><ttl>60</ttl><item><title>[转]有效编写软件的75条建议 </title><link>http://www.blogjava.net/orangelizq/archive/2010/08/19/329411.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 19 Aug 2010 12:15:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2010/08/19/329411.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/329411.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2010/08/19/329411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/329411.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/329411.html</trackback:ping><description><![CDATA[<p>有效编写软件的75条建议 <br />
建议只是建议而已。<br />
&nbsp;1. 你们的项目组使用源代码管理工具了么？ <br />
应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。<br />
&nbsp;<br />
2. 你们的项目组使用缺陷管理系统了么？<br />
&nbsp;应该用。ClearQuest太复杂，我的推荐是BugZilla。 </p>
<p>3. 你们的测试组还在用Word写测试用例么？　<br />
&nbsp;不要用Word写测试用例（Test Case）。应该用一个专门的系统，可以是Test Manager，也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。<br />
&nbsp;<br />
4. 你们的项目组有没有建立一个门户网站？　<br />
　要有一个门户网站，用来放Contact Info、Baselined Schedule、News等等。推荐Sharepoint Portal Server 2003来实现，15分钟就搞定。买不起SPS 2003可以用WSS (Windows Sharepoint Service)。 </p>
<p>5. 你们的项目组用了你能买到最好的工具么？　<br />
　应该用尽量好的工具来工作。比如，应该用VS.NET而不是Notepad来写C#。用Notepad写程序多半只是一种炫耀。但也要考虑到经费，所以说是"你能买到最好的"。<br />
&nbsp;<br />
6. 你们的程序员工作在安静的环境里么？　<br />
　需要安静环境。这点极端重要，而且要保证每个人的空间大于一定面积。<br />
&nbsp;<br />
7. 你们的员工每个人都有一部电话么？<br />
需要每人一部电话。而且电话最好是带留言功能的。当然，上这么一套带留言电话系统开销不小。不过至少每人一部电话要有，千万别搞得经常有人站起来喊："某某某电话"。《人件》里面就强烈谴责这种做法。<br />
&nbsp;<br />
8. 你们每个人都知道出了问题应该找谁么？　<br />
　应该知道。任何一个Feature至少都应该有一个Owner，当然，Owner可以继续Dispatch给其他人。 </p>
<p>9. 你遇到过有人说"我以为&#8230;"么？　<br />
　要消灭"我以为"。Never assume anything。<br />
&nbsp;<br />
10. 你们的项目组中所有的人都坐在一起么？　<br />
　需要。我反对Virtual Team，也反对Dev在美国、Test在中国这种开发方式。能坐在一起就最好坐在一起，好处多得不得了。<br />
&nbsp;<br />
11. 你们的进度表是否反映最新开发进展情况？ 　<br />
　应该反映。但是，应该用Baseline的方法来管理进度表：维护一份稳定的Schedule，再维护一份最新更改。Baseline的方法也应该用于其它的Spec。Baseline是变更管理里面的一个重要手段。<br />
&nbsp;<br />
12. 你们的工作量是先由每个人自己估算的么？　<br />
　应该让每个人自己估算。要从下而上估算工作量，而不是从上往下分派。除非有其他原因，比如政治任务工期固定等。<br />
&nbsp;<br />
13. 你们的开发人员从项目一开始就加班么？　<br />
　不要这样。不要一开始就搞疲劳战。从项目一开始就加班，只能说明项目进度不合理。当然，一些对日软件外包必须天天加班，那属于剥削的范畴。<br />
&nbsp;<br />
14. 你们的项目计划中Buffer Time是加在每个小任务后面的么？　<br />
　不要。Buffer Time加在每个小任务后面，很容易轻易的就被消耗掉。Buffer Time要整段的加在一个Milestone或者checkpoint前面。<br />
&nbsp;<br />
15. 值得再多花一些时间，从95%做到100%好值得，非常值得。　<br />
　尤其当项目后期人困马乏的时候，要坚持。这会给产品带来质的区别。<br />
&nbsp;<br />
16. 登记新缺陷时，是否写清了重现步骤？<br />
　要。这属于Dev和Test之间的沟通手段。面对面沟通需要，详细填写Repro Steps也需要。<br />
&nbsp;<br />
17. 写新代码前会把已知缺陷解决么？<br />
&nbsp;要。每个人的缺陷不能超过10个或15个，否则必须先解决老的bug才能继续写新代码。<br />
&nbsp;<br />
18. 你们对缺陷的轻重缓急有事先的约定么？　<br />
　必须有定义。Severity要分1、2、3，约定好：蓝屏和Data Lost算Sev 1，Function Error算Sev 2，界面上的算Sev 3。但这种约定可以根据产品质量现状适当进行调整。<br />
&nbsp;<br />
19. 你们对意见不一的缺陷有三国会议么？<br />
&nbsp;必须要有。要有一个明确的决策过程。这类似于CCB (Change Control Board)的概念。<br />
&nbsp;<br />
20. 所有的缺陷都是由登记的人最后关闭的么？ 　<br />
　Bug应该由Opener关闭。Dev不能私自关闭Bug。<br />
&nbsp;<br />
21. 你们的程序员厌恶修改老的代码么？　<br />
　厌恶是正常的。解决方法是组织Code Review，单独留出时间来。XP也是一个方法。<br />
&nbsp;<br />
22. 你们项目组有Team Morale Activity么？　<br />
　每个月都要搞一次，吃饭、唱歌、Outing、打球、开卡丁车等等，一定要有。不要剩这些钱。<br />
&nbsp;<br />
23. 你们项目组有自己的Logo么？　<br />
　要有自己的Logo。至少应该有自己的Codename。<br />
&nbsp;<br />
24. 你们的员工有印有公司Logo的T-Shirt么？　<br />
　要有。能增强归属感。当然，T-Shirt要做的好看一些，最好用80支的棉来做。别没穿几次就破破烂烂的。 </p>
<p>25. 总经理至少每月参加次项目组会议要的。　<br />
　要让team member觉得高层关注这个项目。<br />
&nbsp;<br />
26. 你们是给每个Dev开一个分支么？　<br />
　反对。Branch的管理以及Merge的工作量太大，而且容易出错。<br />
&nbsp;<br />
27. 有人长期不Check-In代码么？　<br />
　不可以。对大部分项目来说，最多两三天就应该Check-In。<br />
&nbsp;<br />
28. 在Check-In代码时都填写注释了么？　<br />
　要写的，至少一两句话，比如"解决了Bug No.225（给bug编号）"。如果往高处拔，这也算做"配置审计"的一部分。<br />
&nbsp;<br />
29. 有没有设定每天Check-In的最后期限？　<br />
　要的，要明确Check-In Deadline。否则会Build Break。<br />
&nbsp;<br />
30. 你们能把所有源码一下子编译成安装文件吗？ 　<br />
　要的。这是每日编译（Daily Build）的基础。而且必须要能够做成自动的。<br />
&nbsp;<br />
31. 你们的项目组做每日编译么？　<br />
　当然要做。有三样东西是软件项目/产品开发必备的：1. bug management; 2. source control; 3. daily build。 </p>
<p>32. 你们公司有没有积累一个项目风险列表？　<br />
　要。Risk Inventory。否则，下个项目开始的时候，又只能拍脑袋分析Risk了。<br />
&nbsp;<br />
33. 设计越简单越好越简单越好。　<br />
　设计时候多一句话，将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scope management。 </p>
<p>34. 尽量利用现有的产品、技术、代码千万别什么东西都自己Coding。<br />
BizTalk和Sharepoint就是最好的例子，有这两个作为基础，可以把起点提高很多。或者可以尽量多用现成的Control之类的。或者尽量用XML，而不是自己去Parse一个文本文件；尽量用RegExp，而不是自己从头操作字符串，等等等等。这就是"软件复用"的体现。<br />
&nbsp;<br />
35. 你们会隔一段时间就停下来夯实代码么？　<br />
　要。最好一个月左右一次。传言去年年初Windows组在Stevb的命令下停过一个月增强安全。Btw，"夯"这个字念"hang"，第一声。 </p>
<p>36. 你们的项目组每个人都写Daily Report么？　<br />
　要写。五分钟就够了，写10句话左右，告诉自己小组的人今天我干了什么。一则为了沟通，二则鞭策自己（要是游手好闲一天，自己都会不好意思写的）。 </p>
<p>37. 你们的项目经理会发出Weekly Report么？　<br />
　要。也是为了沟通。内容包括目前进度，可能的风险，质量状况，各种工作的进展等。<br />
&nbsp;<br />
38. 你们项目组是否至少每周全体开会一次？　<br />
　要。一定要开会。程序员讨厌开会，但每个礼拜开会时间加起来至少应该有4小时。包括team meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。<br />
&nbsp;<br />
39. 你们项目组的会议、讨论都有记录么？　<br />
　会前发meeting request和agenda，会中有人负责主持和记录，会后有人负责发meeting minutes，这都是effective meeting的要点。而且，每个会议都要形成agreements和action items。<br />
&nbsp;<br />
40. 其他部门知道你们项目组在干什么么？　<br />
　要发一些Newsflash给整个大组织。Show your team's value。否则，当你坐在电梯里面，其他部门的人问："你们在干嘛"，你回答"ABC项目"的时候，别人全然不知，那种感觉不太好。<br />
&nbsp;<br />
41. 通过Email进行所有正式沟通<br />
Email的好处是免得抵赖。但也要避免矫枉过正，最好的方法是先用电话和当面说，然后Email来确认。 </p>
<p>42. 为项目组建立多个Mailing Group 　<br />
　如果在AD+Exchange里面，就建Distribution List。比如，我会建ABC Project Core Team，ABC Project Dev Team，ABC Project All Testers，ABC Project Extended Team等等。这样发起Email来方便，而且能让该收到email的人都收到、不该收到不被骚扰。<br />
&nbsp;<br />
43. 每个人都知道哪里可以找到全部的文档么？　<br />
　应该每个人都知道。这叫做知识管理（Knowledge Management）。最方便的就是把文档放在一个集中的File Share，更好的方法是用Sharepoint。<br />
&nbsp;<br />
44. 你做决定、做变化时，告诉大家原因了么？　<br />
　要告诉大家原因。Empower team member的手段之一是提供足够的information，这是MSF一开篇的几个原则之一。的确如此，tell me why是人之常情，tell me why了才能有understanding。中国人做事喜欢搞限制，限制信息，似乎能够看到某一份文件的人就是有身份的人。大错特错。权威、权力，不在于是不是能access information/data，而在于是不是掌握资源。<br />
&nbsp;<br />
45. Stay agile and expect change 要这样。　<br />
　需求一定会变的，已经写好的代码一定会被要求修改的。做好心理准备，对change不要抗拒，而是expect change。<br />
&nbsp;<br />
46. 你们有没有专职的软件测试人员？　<br />
　要有专职测试。如果人手不够，可以peer test，交换了测试。千万别自己测试自己的。<br />
&nbsp;<br />
47. 你们的测试有一份总的计划来规定做什么和怎么做么？<br />
&nbsp;这就是Test Plan。要不要做性能测试？要不要做Usability测试？什么时候开始测试性能？测试通过的标准是什么？用什么手段，自动的还是手动的？这些问题需要用Test Plan来回答。<br />
&nbsp;<br />
48. 你是先写Test Case然后再测试的么？　<br />
　应该如此。应该先设计再编程、先test case再测试。当然，事情是灵活的。我有时候在做第一遍测试的同时补上test case。至于先test case再开发，我不喜欢，因为不习惯，太麻烦，至于别人推荐，那试试看也无妨。<br />
&nbsp;<br />
49. 你是否会为各种输入组合创建测试用例？　<br />
　不要，不要搞边界条件组合。当心组合爆炸。有很多test case工具能够自动生成各种边界条件的组合--但要想清楚，你是否有时间去运行那么多test case。 </p>
<p>50. 你们的程序员能看到测试用例么？　<br />
　要。让Dev看到Test Case吧。我们都是为了同一个目的走到一起来的：提高质量。 </p>
<p>51. 你们是否随便抓一些人来做易用性测试？ 　<br />
　要这么做。自己看自己写的程序界面，怎么看都是顺眼的。这叫做审美疲劳--臭的看久了也就不臭了，不方便的永久了也就习惯了。<br />
&nbsp;<br />
52. 你对自动测试的期望正确么？　<br />
　别期望太高。依我看，除了性能测试以外，还是暂时先忘掉"自动测试"吧，忘掉WinRunner和LoadRunner吧。对于国内的软件测试的现状来说，只能"矫枉必须过正"了。 </p>
<p>53. 你们的性能测试是等所有功能都开发完才做的么？　<br />
　不能这样。性能测试不能被归到所谓的"系统测试"阶段。早测早改正，早死早升天。<br />
&nbsp;<br />
54. 你注意到测试中的杀虫剂效应了么？　<br />
　虫子有抗药性，Bug也有。发现的新Bug越来越少是正常的。这时候，最好大家交换一下测试的area，或者用用看其他工具和手法，就又会发现一些新bug了。<br />
&nbsp;<br />
55. 你们项目组中有人能说出产品的当前整体质量情况么？　<br />
　要有。当老板问起这个产品目前质量如何，Test Lead/Manager应该负责回答。<br />
&nbsp;<br />
56. 你们有单元测试么？　<br />
　单元测试要有的。不过没有单元测试也不是不可以，我做过没有单元测试的项目，也做成功了--可能是侥幸，可能是大家都是熟手的关系。还是那句话，软件工程是非常实践、非常工程、非常灵活的一套方法，某些方法在某些情况下会比另一些方法好，反之亦然。 </p>
<p>57. 你们的程序员是写完代码就扔过墙的么？　<br />
　大忌。写好一块程序以后，即便不做单元测试，也应该自己先跑一跑。虽然有了专门的测试人员，做开发的人也不可以一点测试都不做。微软还有Test Release Document的说法，程序太烂的话，测试有权踢回去。<br />
&nbsp;<br />
58. 你们的程序中所有的函数都有输入检查么？　<br />
　不要。虽然说做输入检查是write secure code的要点，但不要做太多的输入检查，有些内部函数之间的参数传递就不必检查输入了，省点功夫。同样的道理，未必要给所有的函数都写注释。写一部分主要的就够了。<br />
&nbsp;<br />
59. 产品有统一的错误处理机制和报错界面么？　<br />
　要有。最好能有统一的error message，然后每个error message都带一个error number。这样，用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因，就像SQL Server的错误那样。同样，ASP.NET也要有统一的Exception处理。可以参考有关的Application Block。<br />
&nbsp;<br />
60. 你们有统一的代码书写规范么？　<br />
　要有。Code Convention很多，搞一份来发给大家就可以了。当然，要是有FxCop这种工具来检查代码就更好了。<br />
&nbsp;<br />
61. 你们的每个人都了解项目的商业意义么？　<br />
　要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息化作先驱者，或者时不时的告诉team member，这个项目能够为某某某国家部门每年节省多少多少百万的纳税人的钱，这样就有动力了。平凡的事情也是可以有个崇高的目标的。<br />
&nbsp;<br />
62. 产品各部分的界面和操作习惯一致么？　<br />
　要这样。要让用户觉得整个程序好像是一个人写出来的那样。<br />
&nbsp;<br />
63. 有可以作为宣传亮点的Cool Feature么？　<br />
　要。这是增强团队凝聚力、信心的。而且，"一俊遮百丑"，有亮点就可以掩盖一些问题。这样，对于客户来说，会感觉产品从质量角度来说还是acceptable的。或者说，cool feature或者说亮点可以作为质量问题的一个事后弥补措施。<br />
&nbsp;<br />
64. 尽可能缩短产品的启动时间要这样。　<br />
　软件启动时间（Start-Up time）是客户对性能好坏的第一印象。<br />
&nbsp;<br />
65. 不要过于注重内在品质而忽视了第一眼的外在印象程序员容易犯这个错误：太看重性能、稳定性、存储效率，但忽视了外在感受。而高层经理、客户正相反。这两方面要兼顾，协调这些是PM的工作。<br />
&nbsp;<br />
66. 你们根据详细产品功能说明书做开发么？　<br />
　要这样。要有设计才能开发，这是必须的。设计文档，应该说清楚这个产品会怎么运行，应该采取一些讲故事的方法。设计的时候千万别钻细节，别钻到数据库、代码等具体实现里面去，那些是后面的事情，一步步来不能着急。<br />
&nbsp;<br />
67. 开始开发和测试之前每个人都仔细审阅功能设计么？　<br />
　要做。Function Spec review是用来统一思想的。而且，review过以后形成了一致意见，将来再也没有人可以说"你看，当初我就是反对这么设计的，现在吃苦头了吧" </p>
<p>68. 所有人都始终想着The Whole Image么？<br />
要这样。项目里面每个人虽然都只是在制造一片叶子，但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领，反对过分的把软件制造看成流水线、车间。参见第61条。<br />
&nbsp;<br />
69. Dev工作的划分是单纯纵向或横向的么？　<br />
　不能单纯的根据功能模块分，或者单纯根据表现层、中间层、数据库层分。我推荐这么做：首先根据功能模块分，然后每个"层"都有一个Owner来Review所有人的设计和代码，保证consistency。<br />
&nbsp;<br />
70. 你们的程序员写程序设计说明文档么？　<br />
　要。不过我听说微软的程序员1999年以前也不写。所以说，写不写也不是绝对的，偷懒有时候也是可以的。参见第56条。<br />
&nbsp;<br />
71. 你在招人面试时让他写一段程序么？　<br />
　要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等，既不偏向过于考算法，也不偏向过于考特定的API。<br />
&nbsp;<br />
72. 你们有没有技术交流讲座？　<br />
　要的。每一两个礼拜搞一次内部的Tech Talk或者Chalk Talk吧。让组员之间分享技术心得，这笔花钱送到外面去培训划算。 </p>
<p>73. 你们的程序员都能专注于一件事情么？　<br />
　要让程序员专注一件事。例如说，一个部门有两个项目和10个人，一种方法是让10个人同时参加两个项目，每个项目上每个人都花50%时间；另一种方法是5个人去项目A，5个人去项目B，每个人都100%在某一个项目上。我一定选后面一种。这个道理很多人都懂，但很多领导实践起来就把属下当成可以任意拆分的资源了。<br />
&nbsp;<br />
74. 你们的程序员会夸大完成某项工作所需要的时间么？　<br />
　会的，这是常见的，尤其会在项目后期夸大做某个change所需要的时间，以次来抵制change。解决的方法是坐下来慢慢磨，磨掉程序员的逆反心理，一起分析，并把估算时间的颗粒度变小。<br />
&nbsp;<br />
75. 尽量不要用Virtual Heads 最好不要用Virtual Heads。　　Virtual heads意味着resource is not secure，shared resource会降低resource的工作效率，容易增加出错的机会，会让一心二用的人没有太多时间去review spec、review design。一个dedicated的人，要强过两个只能投入50%时间和精力的人。我是吃过亏的：7个part time的tester，发现的Bug和干的活，加起来还不如两个full-time的。参见第73条。73条是针对程序员的，75条是针对Resource Manager的。<br />
&nbsp;</p>
<p>记住建议就是建议！！！ </p>
 <img src ="http://www.blogjava.net/orangelizq/aggbug/329411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2010-08-19 20:15 <a href="http://www.blogjava.net/orangelizq/archive/2010/08/19/329411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]计算机语言的形式语义研究</title><link>http://www.blogjava.net/orangelizq/archive/2009/12/18/306558.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Fri, 18 Dec 2009 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/12/18/306558.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/306558.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/12/18/306558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/306558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/306558.html</trackback:ping><description><![CDATA[
		<p>计算机科学对语言的研究（包括对自然语言和对人工语言）大致有三个路向：语法syntax、语义semantics、语用pragmatics，语法研究语言的形态结构，语义研究语言与其所指代对象的联系，语用研究语言和其使用者之间的联系（从使用者角度、按使用者的需求对语料进行差异化）。计算机没有智能，计算机智能都是假的，是人给它安装上去的（像是变魔术，有人创造，目的在骗人，当然达到了目的：娱乐、教育、传递信息等），所以计算机语言最大的特点是形式化（Formalization，包含规范化Normalization的意思），计算机语言的形式化分为语法形式化和语义形式化两个方面，形式语义学研究语义形式化，包括操作语义学、指称语义学、公理语义学和代数语义学四种。具体可参考：</p>
		<p>陆汝钤，计算机语言的形式语义.北京:科学出版社,1992<br />屈延文，形式语义学基础与形式说明.北京:科学出版社,1998<br />周巢尘，形式语义学引论，长沙：湖南科学技术出版社，1985<br />另外上海师范大学物理信息学院陈仪香教授对此也有深入研究。以下对四种语义学的简介来即自陈教授"形式语义的论语理论研究进展"一文（见下列著作第二章：陆汝钤主编，《知识科学与计算科学》.北京：清华大学出版社，2003）</p>
		<p>
				<font color="#ff3333">操作语义</font>的基本思想是建立一个抽象机器以模拟程序在执行过程中如何进行数据处理。<br /><font color="#ff3300">指称语义</font>的思想是使语言的每一成分对应于一个数学对象，该对象称为该语言成分的指称，程序看作输入域到输出域的映射，输入域和输出域统称为论域。因此论域与映射是指称语义的基本研究对象。<br /><font color="#ff0000">公理语义</font>实在程序正确性验证的基础上发展起来的，它给出一种方法，使人们在给定的前提下，验证某种特性是否成立。<br /><font color="#ff0000">代数语义</font>的基本思想是把描述语义的逻辑体系和满足这个逻辑系统的各种模型统一在一起，同时把模型的集合看成是以代数机构，研究这些模型之间的关系。<br /><br />戴维民主编的《信息组织》一书（高等教育出版社.2004 面向21世纪课程教材）中认为语法、语义和语用信息的分法是"按照信息组织的层次分"，具体解释如下：<br />"从认知的角度，可把信息分为语法信息、语义信息和语用信息。由于主体具有观察力，能够感知事物运动状态及其变化方式的外在形式，由此获得的信息称为语法 信息；由于主体具有理解力，能够领悟事物运动状态及其变化方式的逻辑含义，由此获得的信息称为语义信息；又由于主体具有明确的目的性，能够判断事物运动状 态及其变化方式的效用，由此获得的信息称为语用信息。"有一定道理，好像又不是很确切。不知道这种理解出自何处？语言学？哲学？认识论？</p>
		<p>
				<br />计算机形式语义学参考书：</p>
		<p>1、周巢尘，《形式语义学引论》，湖南科技出版社（绝版）<br />2、周之英，翻译，《计算机形式规范概论》，清华大学出版社（绝版）<br />3、屈延文，《形式语义学基础与形式说明》，科学版（绝版）<br />4、陆汝钤，《计算机语言的形式语义》，科学版<br />5、陈意云，（实际是编译的），《形式语义学基础》，中国科技大学出版社<br />6、陈意云，（实际是编译的），《程序设计语言理论》，中国科技大学出版社<br />7、宋国新，翻译，《程序设计语言的形式语法及语义》，机工版</p>
		<p>
				<br />从发展来说，国内的形式语义学或程序理论的教材，落后国外十年以上。国外现在最流行的几本教材是：</p>
		<p>1、《Semantics of Programming Languages》（Carl A.Gunter）MIT Press 1992<br />这是目前也许是最流行的一本教材，主要采用了简单类型的Lambda Calculus和范畴学来表达语义学，内容取舍比较合理，章节安排也不错，属于高级教程，评价也很高，很多大学都推荐使用。</p>
		<p>2、《The Formal Semantics of Programming Languages》（Glynn Winskel）MIT Press 1993<br />另一本流行的一本教材，作者Winskel是剑桥大学的教授，该书在欧洲几乎成为标准教材了，评价也很高，中高级教程，很多大学都推荐使用，已经出了中文版，大家可以到书店买到。</p>
		<p>3、《Foundations for Programming Languages 》（John C. Mitchell ）MIT Press 1996<br />作为桌案上的参考书就最好了，作者是斯坦福教授。这本书是一本巨作，内容齐全，大量泛代数内容，绝对是超高级教程，但作为教材的话内容太多了，850页，真的是本大部头</p>
		<p>4、《Theories of Progamming Languages》（John C. Reynolds）Cambridge Press 1998<br />Reynolds是CMU教授，他的这本教材出发角度和上面的几本有所不同，按作者的话来说，就是尽量避免使用高深的数学理论，诸如范畴学之类的东西，同时这本书内容涉及也比较广，甚至有并发理论和CSP。该书在评价非常高，推荐大家看。</p>
		<p>5、《Semantics of Programming Languages》（R.D. Tennent）Prentice-Hall 1990<br />这本书的最大特点就是采用imperative language作为研究对象，和国内的教学最符合了，国外很多大学，特别是欧洲的大学，普遍采用函数式汝ML语言作为研究和教学语言。作者R.D. Tennent在八十年代初，曾经出版过一本《Principles of Programming Languages》，国际国内都很多人参考过这本书。</p>
		<p>6、《Introduction to the Theory of Programming Languages》（Bertrand Meyer）Prentice-Hall 1988<br />作者大家都很熟悉了，他的另一本书《Object-Oriented Software Construction》前几年就已经引进中国了。这本书几乎没有高深的数学内容，可能这本书出的比较早些，书的内容要比前面的几本书都要容易浅些，但作为入门的书，我推荐这本。</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/306558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-12-18 15:15 <a href="http://www.blogjava.net/orangelizq/archive/2009/12/18/306558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]WiKi程序大全－开源WIKI程序</title><link>http://www.blogjava.net/orangelizq/archive/2009/10/31/300455.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 31 Oct 2009 02:47:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/10/31/300455.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/300455.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/10/31/300455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/300455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/300455.html</trackback:ping><description><![CDATA[<p>[转自]http://www.nieqiang.com/archive/wiki-system.html<br />
<br />
一，ASP的WiKi程序。ASP的WiKi程序总体感觉比较弱，或许开放的WiKi更喜欢开放的linux系统吧 <br />
<span style="color: #0000ff">1，Operator&nbsp;Wiki&nbsp;0.3 </span><br />
语言环境：ASP+ACCESS <br />
官方主页：http://cosoft.org.cn/projects/operatorwiki/ <br />
演示：http://my.yeew.net/maxzone/operatorwiki/wiki.asp <br />
下载：http://down2.codepub.com/codepubcom/2006/4/8/operatorwik03.rar <br />
介绍：免费开源的国产WIKI程序，ASP+JavaScript写的&nbsp;Wiki&nbsp;引擎，支持多语言、ACL，综合各种&nbsp;WIKI&nbsp;的功能。 <br />
Operator&nbsp;Wiki&nbsp;升级日志0.3:. <br />
*&nbsp;完整的用户权限 <br />
*&nbsp;支持&nbsp;ACL&nbsp;进行权限控制 <br />
*&nbsp;修正了一个标记冲突问题 <br />
*&nbsp;修正登录问题 <br />
*&nbsp;源代码采用&nbsp;Tab&nbsp;代替空格，进一步缩小体积，主程序目前仅&nbsp;34.4K <br />
*&nbsp;更良好的多语言支持 <br />
*&nbsp;修正数十个关于表格和列表的问题 <br />
<br />
<span style="color: #0000ff">2，OpenWiki&nbsp;中文版Build20060328 </span><br />
语言环境：ASP+ACCESS/SQLServer <br />
官方主页：http://www.openwiki.com/ <br />
演示：http://www.3d-gis.com/yow/ <br />
下载：http://down2.codepub.com/codepubcom/2006/4/8/openviki_yow.rar <br />
介绍：国外的一个ASP&nbsp;Wiki程序，3d-gis汉化。 <br />
<br />
<span style="color: #0000ff">3,JsWiki&nbsp;-&nbsp;开源ASP&nbsp;WIKI程序 </span><br />
语言环境：ASP <br />
官方主页：http://sourceforge.net/projects/jswiki/ <br />
演示：http://www.jswiki.com/ <br />
下载：http://down2.codepub.com/codepubcom/2006/2/10/jswiki.rar <br />
介绍：安装只需要一个文件jswiki.asp <br />
使用javascript写成，能够运行于任何一台支持asp的windows主机 <br />
支持丰富而方便的text语法(混合了标准wiki/textile/markdown三种常见文法) <br />
支持页面的历史记录和版本差异 <br />
支持页面锁定和保密 <br />
支持RSS输出最近更新内容 <br />
提供InterWiki?链接 <br />
使用宏提供额外的功能和扩展 <br />
<br />
二，CGI的WiKi程序 <br />
<span style="color: #0000ff">4，TWiki&nbsp;Release&nbsp;4.0.2 </span><br />
语言环境：Perl <br />
官方主页：http://twiki.org/ <br />
演示：http://www.stlchina.org/twiki/bin/view.pl/TWiki/TWikiQickStart <br />
下载：http://down2.codepub.com/codepubcom/2006/4/8/TWiki-4.0.2.tgz <br />
介绍：TWiki是一个开源（GPL）的wiki程序。软件定位为&#8220;灵活、强大、易于使用的企业协作平台&#8221;，运行于Perl环境。 <br />
TWiki从2001年开始开发，大约每年发行一个重要版本。最新稳定版本为2004-9-4版本，最新beta版本为2006-01-31版本。 <br />
Twiki被很多大型商业公司采用，例如Yahoo、SAP、Motorola、Wind&nbsp;River等。 <br />
TWiki的官方站点内容有版权，TWiki名称是Peter&nbsp;Thoeny所有的一个注册商标，内容的贡献属于Peter&nbsp;Thoeny和其贡献者共同所有。 <br />
TWiki的特点: <br />
TWiki是一个功能完善的wiki系统 <br />
专注于为网站赋予结构，所有页面自动归为TWiki&nbsp;Web，这样就很容易创建协作小组。拥有编程技能的人可以使用变量创建动态页面，譬如内容表格，或者嵌入式搜索结果的页面。 <br />
易于定制和扩展 <br />
允许页面编辑：Darkar版本已经支持所见即所得编辑。 <br />
访问控制:&nbsp;细化的授权机制让管理员可以限制不同部门的读写访问权限。 <br />
TWIKI完全是一个不需要任何数据库，完全基于文件目录的格式化引擎。 <br />
<br />
<span style="color: #0000ff">5，UseModWiki&nbsp;Version&nbsp;1.0 </span><br />
语言环境：Perl <br />
官方主页：http://www.usemod.com/ <br />
演示：http://www.usemod.com/ <br />
下载：http://down2.codepub.com/codepubcom/2006/4/8/usemod10.tar.gz <br />
介绍：September&nbsp;12,&nbsp;2003:&nbsp;Version&nbsp;1.0,官方应该是停止了更新！ <br />
UseModWiki(Usenet&nbsp;Moderation&nbsp;Project&nbsp;(Usemod))是Clifford&nbsp;Adams&nbsp;所开发的维基引擎，它采用Perl做为开发的程序语言，它最大的特点是不使用任何的数据库管理系统来储存页面内容，任何的新增页面都直接储存于档案系统内，维基百科曾采用UseModWiki做为所有语言版本的维基引擎，之后才自行开发MediaWiki做为现有的接口。 <br />
功能特色: <br />
采取单一档案就可以运作 <br />
不需要任何的延伸扩充程序 <br />
所有的变量都直接撰写于程序码中 <br />
页面直接储存于档案系统 <br />
采用CamelCase的连结样式 <br />
可透过对照表而修改其显示语言 <br />
<br />
三，PHP的WiKi程序 <br />
<span style="color: #0000ff">6，MediaWiki&nbsp;1.6.2&nbsp;-应用最广的WiKi程序 </span><br />
语言环境：PHP+MySQL <br />
官方主页：http://www.mediawiki.org/ <br />
演示：http://www.mediawiki.org/ <br />
下载：http://down2.codepub.com/codepub&nbsp;...&nbsp;iawiki-1.6.2.tar.gz <br />
介绍：MediaWiki全球最著名的开源wiki引擎，运行于PHP+MySQL环境。从2002年2月25日被作为维基百科全书的系统软件，并有大量其他应用实例。目前MediaWiki的开发得到维基媒体基金会的支持。 <br />
wiki的重要特征 <br />
记录所有的改动版本，能方便的查阅历史更新记录，这使得开放性编辑成为可能 <br />
自动产生链接，编辑文本中中括号中的内容（如&#8220;[[X条目]]&#8221;）将自动产生链接 <br />
允许使用模板，方便对相同内容的重复使用、更新 <br />
支持分类，并根据分类在不同的文章之间自动产生关联 <br />
允许每个用户自行选择系统外观 <br />
中文支持好 <br />
<br />
<span style="color: #0000ff">7，Tikiwiki&nbsp;v1.9.2&nbsp;多国语言版&nbsp;-&nbsp;又是WiKi又是CMS系统 </span><br />
语言环境：PHP+MySQL <br />
官方主页：http://tikiwiki.org/ <br />
演示：http://tikiwiki.org/ <br />
下载：http://down2.codepub.com/codepubcom/2005/11/13/tikiwiki192.rar <br />
介绍：非常优秀的网站内容管理系统，基于&nbsp;PHP+ADOdb+Smarty等技术构建，功能非常齐全，主要特点： <br />
　　1、有文章、论坛、分类目录、blog、图库、文件下载、在线调查、Wiki等功能。 <br />
　　2、用户权限管理很棒，可以设置启用哪些功能，设置哪些用户使用哪些功能。 <br />
　　3、管理后台和用户界面合在一起，通过用户权限控制界面的显示。 <br />
　　4、界面被分割成上中下、左中右区域，非常结构化。 <br />
　　5、有很多实用模块，如菜单、登录、搜索、在线调查、最新发表文章等等，可以灵活定制显示在左右界面区域。 <br />
　　6、界面很简洁，有很多界面模版来换肤。 <br />
<br />
<span style="color: #0000ff">8，CooCooWakka&nbsp;v0.09&nbsp;rc3&nbsp;-&nbsp;国人开放的PHP&nbsp;WiKi程序 </span><br />
语言环境：PHP+MySQL <br />
官方主页：http://coo.hsfz.net/wiki/ <br />
演示：http://coo.hsfz.net/wiki/[/ <br />
下载：http://down2.codepub.com/codepubcom/2006/3/6/CooCooWakka.tar.gz <br />
介绍：文wiki引擎程序，2004年被很多网站采用。2004年9月后基本停止更新，一直到2005年7月发布v0.0.9rc1,2006年2开发布0.0.9rc3,支持PHP5。 <br />
CooCooWakka是咕咕基于WakkaWiki&nbsp;0.1.2进行修改强化而来。 <br />
CooCooWakka从2003年开始开发，作为CooYip的一项业余小爱好，现在CooCooWakka也是cosoft.org.cn和sourceforge.net的开源项目。至今（2005年4月）已经发布了8个主要的版本。 <br />
CooCooWakka&nbsp;是一种重于合作的超文本编辑环境(基于PHP+MYSQL的Wiki引擎)，简单来说，对于基于CooCooWakka的网站，任何人（包括你！）都可以在线编辑他的几乎（视管理员意愿）任何页面。CooCooWakka可以用于共笔系统、读书会、档案开发、写书、翻译、资料整理（例如课堂笔记、软件使用资料）、常见问题整理等等。由于其使用及扩展方面的快速便捷，CooCooWakka甚至可以作为小型的CMS系统。 <br />
CooCooWakka并不是Wakka的汉化版本，有60%~70%的Wakka代码被CooCooWakka修改或重写（有兴趣的可以比较一下，如果希望得到相似于&nbsp;WakkaWiki?的版本请下载0.0.2,0.0.3，当时自己对修改还是比较节制）。许多特性和策略也有所改变，所以CooCooWakka的站点不支持回复到WakkaWiki?。此外，CooCooWakka也对整个WakkaWiki?进行了多国语言支持化，所以，CooCooWakka支持多种语言——现在提供中文（包括简体gb,utf-8,繁体big5,utf-8），英语的支持。此外，CooCooWakka会自动针对中文站进行功能上的优化。 <br />
咕咕最早是在参与WikiPedia的时候对Wiki产生兴趣的,后来也不知道有什么WIKI好用,结果就下载了WAKKA&nbsp;0.1.2. <br />
结果这套引擎刚好不像MoinMoin或者Tavi那样支持中文，自己就从改charset开始，对wakka0.1.2开始建立自己觉得好用的&nbsp;WikiEngine.本来是本着改给自己用的想法去做CooCooWakka的,结果发现有很多朋友都希望拿份代码试试,也提供了很多好意见,就这样&nbsp;CooCooWakka发展到了现在.(更多历史:History) <br />
<br />
<span style="color: #0000ff">9，PhpWiki&nbsp;1.3.12p2&nbsp;released <br />
</span>语言环境：PHP <br />
官方主页：http://phpwiki.sourceforge.net/ <br />
演示：http://phpwiki.sourceforge.net/p&nbsp;...&nbsp;83fc0492e961639b13f <br />
下载：http://down2.codepub.com/codepub&nbsp;...&nbsp;iki-1.3.12p2.tar.gz <br />
介绍：无需数据库的小巧WIKI程序。架设简单，权限控制、插件扩展都不错。 <br />
<br />
<span style="color: #0000ff">10，PmWiki&nbsp;2.1.5 </span><br />
语言环境：PHP <br />
官方主页：http://www.pmwiki.org/ <br />
演示：http://www.emacs.cn/ <br />
下载：http://down2.codepub.com/codepubcom/2006/4/8/pmwiki-latest.tgz <br />
介绍：PmWiki，一款用PHP编写的,无需数据库支持的维基,个人网站尤其适合。 <br />
在国内还是有不少的应用，演示站点是linuxsir.org旗下一个站点。 <br />
<br />
四，JSP的WiKi程序 <br />
<span style="color: #0000ff">11，JSPWiki&nbsp;stable&nbsp;release&nbsp;v2.2.33 </span><br />
语言环境：JDK+tomcat <br />
官方主页：http://www.jspwiki.org/ <br />
演示：http://www.jspwiki.org/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3 <br />
下载：http://down2.codepub.com/codepub&nbsp;...&nbsp;wiki-2.2.33-src.rar <br />
介绍：JSPWiki是一个不错的wiki引擎，纯jsp/servlet写的。JSPWiki不使用现成的数据库管理软件，所有的文件以文本文件的形式存放。它利用类似CVS的机制保证了文件版本的完整性。支持中文，支持版本比较、权限管理等功能！ <br />
<br />
五，其他WiKi程序 <br />
<span style="color: #0000ff">12，MoinMoin&nbsp;1.5.3&nbsp;RC1 </span><br />
语言环境：Python <br />
官方主页：http://www.wikiwikiweb.de/ <br />
演示：http://www.wikiwikiweb.de/ <br />
下载：http://down2.codepub.com/codepub&nbsp;...&nbsp;in-1.5.3-rc1.tar.gz <br />
介绍：MoinMoin是一个基于Python环境的wiki引擎程序，支持包括中文在内的多语种特性。 <br />
MoinMoin程序是遵循GNU&nbsp;GPL的开源项目，启动于2000年7月20日，最初由J&#252;rgenHermann撰写。最近的版本为2006年02月05日发布的1.5.2，最高稳定版本为1.3.5，并一直保持正常的更新。 <br />
MoinMoin可运行在Windows、Linux/BSD/UNIX、OS&nbsp;X等环境下。目前能够处理英文、德文、繁简体中文、日文、俄文等约20种语言。 <br />
MoinMoin的特点： <br />
完全使用文件来存储内容，不使用数据库 <br />
实现了全部Wiki规范，Unicode编码支持多语种 <br />
完整实用的wiki文本约定，编辑规则比较轻巧易学 <br />
支持多种扩展方式:&nbsp;宏，插件，预处理&#8230;&#8230; <br />
为数众多的插件中包括Tex科技文本输入、FreeMind思维图谱、GraphViz示意图、gnuplot数据图表绘图等 <br />
支持几种很实用的不同页面样式 <br />
真正跨平台 <br />
<br />
<span style="color: #0000ff">13，TiddlyWiki&nbsp;2.0.7 </span><br />
语言环境：CSS+HTML+javascript <br />
官方主页：http://www.osmosoft.com/ <br />
演示：http://www.tiddlywiki.com/ <br />
下载：http://down2.codepub.com/codepubcom/2006/4/8/ptw-2.0.7.rar <br />
介绍：TiddlyWiki是个非常小巧酷炫的wiki引擎，全部程序只是一个一百多K的HTML页面。TiddlyWiki用CSS+HTML+javascript写成，可以在多种浏览器上使用。 <br />
TiddlyWiki页面所有元素都能都订制,能方便地修改页面结构和CSS表现形式.它不需要任何服务器端的脚本支持,你要你的电脑有有浏览器就能运行.非常适合放在U盘里到处带着走的个人做记事本。 <br />
TiddlyWiki无法真正将数据存储到服务器上，因而不能用来进行团体协作。 <br />
一个使用过的用户这样评价TiddlyWiki&nbsp;： <br />
TiddlyWiki是一个好玩的Wiki记事本，支持Tag，支持丰富的Wiki语法，还支持搜索，用来做记事本不错。 <br />
它很简单，界面简单、操作简单，文件简单到所有内容只有一个html文件，所以最适合随身携带，想起了以前U盘携带的Wordpress，再带上TiddlyWiki就齐了。 <br />
TiddlyWiki是一个纯Javascript操作的Wiki，所有动作都是AJAX的，感觉好酷，要研究AJAX的又多了一个对象。 <script type="text/javascript" src="http://www.nieqiang.com/count.php?do=add&amp;id=385"></script></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/300455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-10-31 10:47 <a href="http://www.blogjava.net/orangelizq/archive/2009/10/31/300455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]UUID和GUID</title><link>http://www.blogjava.net/orangelizq/archive/2009/09/05/293995.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 05 Sep 2009 07:22:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/09/05/293995.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/293995.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/09/05/293995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/293995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/293995.html</trackback:ping><description><![CDATA[<p>UUID </p>
<p>通用惟一标识符（UUID）是128位比特的数字，用来惟一地标识因特网上的某些对象或者实体。</p>
<p>A Universally Unique Identifier is an identifier standard used in software construction, standardized by the Open Software Foundation (OSF) as part of the Distributed Computing Environment (DCE). The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination. Thus, anyone can create a UUID and use it to identify something with reasonable confidence that the identifier will never be unintentionally used by anyone for anything else. Information labelled with UUIDs can therefore be later combined into a single database without need to resolve name conflicts. The most widespread use of this standard is in Microsoft's Globally Unique Identifiers (GUIDs) which implement this standard.</p>
<p>一个UUID 是一个标识符标准用于软件架构，是由开放软件基金会（OSF）作为分布式计算环境（DCE）的一部分而制定的标准。UUIDs的目的就是使分布式系统可以不需要重要的中央调合系统而能唯一地标识信息。这样，任何人能创造一个UUID 和使用它来标识一些东西，而且，你有足够的信心来确定这个标识是永远不会被任何人无意地使用在任何东西上。因此，信息加上了UUID标签就能合并到单个数据库中而不用去解决命名冲突的问题。这个标准的广泛应用在微软的全球唯一标识符（GUIDs）上，GUID实现了这个标准。</p>
<p>A UUID is essentially a 16-byte number and in its canonical form a UUID may look like this:</p>
<p>:550E8400-E29B-11D4-A716-446655440000</p>
<p>And has this structure in the C programming language:</p>
<p>typedef struct {<br />
unsigned32 time_low;<br />
unsigned16 time_mid;<br />
unsigned16 time_hi_and_version;<br />
unsigned8 clock_seq_hi_and_reserved;<br />
unsigned8 clock_seq_low;<br />
byte node6;<br />
} uuid_t;</p>
<p>The J2SE 5.0 release of Java provides a class that will produce 128-bit UUIDs. The API documentation for the class refers to ISO/IEC 11578:1996.</p>
<p>关于UUID的定义，详细内容可参考http://www.ietf.org/rfc/rfc4122.txt，文档里面还有C语言对UUID标准的各种实现。</p>
<p>GUID</p>
<p>A Globally Unique Identifier or GUID is a pseudo-random number used in software applications. While each generated GUID is not guaranteed to be unique, the total number of unique keys (2128 or 3.4028&#215;1038) is so large that the possibility of the same number being generated twice is very small.</p>
<p>一个全球唯一标识符 或 GUID 是一个假随机数用于软件中。虽然每个产生的GUID是不保证唯一的，但不同的标识符总数是（2128 也就是3.4028&#215;1038）如此之大，以至于相同的数字被产生两次的机率是很相当小的。</p>
<p>The GUID is an implementation by Microsoft of a standard called Universally Unique Identifier (UUID), specified by the Open Software Foundation (OSF).</p>
<p>GUID 是微软对UUID这个标准的实现。UUID是由开放软件基金会（OSF）定义的。</p>
<p>UUID还有其它各种实现，不止GUID一种，其它的在此不详细说明。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/nidehong/archive/2006/11/22/1406125.aspx</p>
<br />
---------------------<br />
<br />
http://blog.csdn.net/happyflystone/archive/2007/11/27/1903854.aspx<br />
<br />
<p>UUID是是128位整数(16字节)的全局唯一标识符(Universally Unique Identifier)，指在一台机器上生成的数字，它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUID的API。UUID按照开放软件基金会(OSF)制定的标准计算，用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合：当前日期和时间(UUID的第一个部分与时间有关，如果你在生成一个UUID之后，过几秒又生成一个UUID，则第一个部分不同，其余相同)，时钟序列，全局唯一的IEEE机器识别号（如果有网卡，从网卡获得，没有网卡以其他方式获得），UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。 </p>
<p>UUID，其格式为：xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16)，其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为：xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx (8-4-4-4-12)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在建立数据库的时候，需要为每张表指定一个主键，所谓主键就是能够唯一标识表中某一行的属性或属性组，一个表只能有一个主键，但可以有多个候选索引。因为主键可以唯一标识某一行记录，所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。数据库的主键生成有多种方式，每种方式都有其优点和缺点，应该根据不同的需求在主键的时间和空间效率上做平衡折中，从而选择不同的主键生成策略。归纳起来，对主键的选择主要有以下四种方式：</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp; 自动增长字段</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自动增长型字段允许我们在向数据库添加数据时，不考虑主键的取值，记录插入后，数据库系统会自动为其分配一个值，确保绝对不会出现重复。</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp; 手动增长字段</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 手动增长型的字段，也就是说主键的值需要自己维护，通常情况下需要建立一张单独的表存储当前主键键值。</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp; GUID类型</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GUID是Globally Unique IDentifier的缩写，是一个128位的随机数,并保证不产生重复。</p>
<p>4.&nbsp;&nbsp;&nbsp;&nbsp; COMB类型</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMB（combine）型可以理解为一种改进的GUID，它通过组合GUID和系统时间，以使其在索引和检索事有更优的性能。 </p>
<p>&nbsp;</p>
<p>COMB数据类型的基本设计思路是这样的：既然GUID数据因毫无规律可言造成索引效率低下，影响了系统的性能，那么能不能通过组合的方式，保留GUID的10个字节，用另6个字节表示GUID生成的时间（DateTime），这样我们将时间信息与GUID组合起来，在保留GUID的唯一性的同时增加了有序性，以此来提高索引效率。</p>
<p><br />
下面转自：温少，首发于博客园</p>
<p>替代方案之一，就是使用关系数据库的自增长字段，自增长字段的一个问题是，无法预先创建一个ID，只能够在保存的时候才能生成ID，这对于批量关联插入数据来说，不满足需求。</p>
<p>替代方案之二，就是使用一个记录ID的表，每次加一，在事务中使用Select FOR UPDATE来读取然后UPDATE SET FVALUE = FVALUE + 1，或者使用我之前文章中所提到的CAS算法。 这样做，会导致性能低下，每生成一个ID的成本都很高。</p>
<p>替代方案之三，就是把ID分成两部分，Seed和IncrementID。Seed采用上面的方案二或者其他办法生成，IncrementID使用一个AtomicInteger来每次递增生成。SEED转化为九进制数字，这样SEED就不会包含9，于是使用9作为分隔符，把SEED和IncrementID隔开。这样做，就可以做高性能产生ID，而且确保不重复。甚至可以更进一步，SEED由一个中心服务器生成。使用9个分隔符号隔开SEED和IncrementID，好处是SEED是变长，而不是使用固定位数来保存SEED，这样产生的ID会更短，可读性更好。</p>
<p>举例，34915，其中34时SEED，15是IncrementID，9是分隔符，SEED部分采用九进制表示法，确保不出现9，第一个9之后的内容属于IncrementID。</p>
<p>&nbsp;</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/happyflystone/archive/2007/11/27/1903854.aspx</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/293995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-09-05 15:22 <a href="http://www.blogjava.net/orangelizq/archive/2009/09/05/293995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]UML建模工具-Java开源</title><link>http://www.blogjava.net/orangelizq/archive/2009/08/27/292843.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 27 Aug 2009 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/08/27/292843.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/292843.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/08/27/292843.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/292843.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/292843.html</trackback:ping><description><![CDATA[<table align="center" border="0" width="760">
    <tbody>
        <tr valign="top">
            <td colspan="2">
            <table class="content" align="center" border="0" height="3696" width="754">
                <!--dwlayouttable-->
                <tbody>
                    <tr>
                        <td class="content" valign="top">
                        <p><strong>ArgoUML</strong></p>
                        <p>使用java编写的开源UML产品，功能比较全。最受欢迎的UML建模工具。 </p>
                        <p><strong>Alma</strong> </p>
                        <p>Alma是一个软件建模分析的工作平台，它读取几种不同的源代码，帮你设计面向对像的模型，修改结构和源代码，输出新的源代码、文档和图表。</p>
                        <p><strong>UMLet </strong></p>
                        <p>UMLet是一个开放源代码轻量级UML建模工具。UMLet能够让你快速建模，并且能够导出各种格式SVG, JPG, PDF and
                        LaTeX-friendly EPS。</p>
                        <p><strong>UML/Dot </strong></p>
                        <p>UML/Dot这个项目从Java源代码或字节码中生成UML类。使用GraphViz
                        Dot生成图表。用户可以完全控制处理过程，可以隐藏或显示任意提取的元素。需要：JAVA v1.4 或更高版本，GraphViz。 </p>
                        <p><strong>JUG </strong></p>
                        <p>Java UML Generator
                        是用于从Java类文件自动生成UML类图的工具。最初设计为一个命令行工具，将.class/.jar文件转换到.emf/.eps文件，现在它提供了一个可视化环境。
                        </p>
                        <p><strong>Violet </strong></p>
                        <p>Violet是一种轻量级的UML建模工具。易学易用 可以快速绘制类图、对象图、时序图和状态图 跨平台 支持中文 源码开放 </p>
                        <p><strong>UMLGraph</strong></p>
                        <p>UMLGraph支持说明性规约（Declarative Specification),类图(Class Diagram) ,顺序图(Sequence
                        Diagrams).</p>
                        <p><strong>Fujaba Tool Suite</strong> </p>
                        <p>Fujaba Tool Suite结合UML类图与UML行为视图来提供一个强大,易于使用,而且是整齐均称的系统设计与规范语言. 而且Fujaba Tool
                        Suite还支持从整个系统设计生成Java源代码从完美地实现了一个可执行的模型．同样也支持相反操作，因此源代码可以被解析并被表现在UML中．</p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/Background.gif" height="130" width="400"  alt="" /></p>
                        <p><strong>UniMod </strong></p>
                        <p>UniMod是Executable
                        UML思想的实现。UniMod是以Eclipse插件形式存在。可以通过UniMod提供的一个在线Demo了解更多的详细资料。</p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/UniMod.gif" height="301" width="400"  alt="" /></p>
                        <p><strong>Taylor MDA </strong></p>
                        <p>Taylor MDA是一个基于Eclipse的UML建模工具。它专注于EJB3企业应用程序的生成。Taylor MDA当前支持生成：</p>
                        <ul>
                            <li>EJB3 Entity Beans
                            </li>
                            <li>EJB3 Stateless Session Beans
                            </li>
                            <li>利用JBoss内置容器的JUnit Tests
                            </li>
                            <li>Maven Project
                            </li>
                            <li>以后将支持生成：
                            </li>
                            <li>用于CRUD Portlets的Seam代码
                            </li>
                            <li>用于商业处理与页面流(page flows)的jBPM/Seam代码 </li>
                        </ul>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/modeling.gif" height="295" width="400"  alt="" /></p>
                        <p><strong>StarUML </strong></p>
                        <p>StarUML是一个运行在Win32上快速，灵活，可扩展，功能强大的UML/MDA平台。开源项目StarUML的目的是提供一个可以用来代替知名商业UML工具比如Rational
                        Rose,Together等的建模工具和平台。</p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/classdiagram.gif" height="258" width="400"  alt="" /></p>
                        <p><strong>Quick Sequence Diagram Editor </strong></p>
                        <p>这个简单的工具能够利用对像与信息的描述文本来生成UML时序图。它采用Java5开发并打包成一个可执行的Jar文件。</p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/QuickSequence.gif" height="317" width="400"  alt="" /></p>
                        <p><strong>TinyUML </strong></p>
                        <p>TinyUML是一个能够帮助你快速和轻松地绘制UML2图的开源工具。采用Java5开发。</p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/TinyUML.gif" height="365" width="400"  alt="" /></p>
                        <p><strong>Papyrus</strong> </p>
                        <p>Papyrus是一个基于Eclipse平台UML2建模工具。遵从Eclipse UML2、支持由OMG规定的UML2标准和DI2 （Diagram
                        Interchange）标准、Papyrus的整个架构是可扩展的允许用户增加新的图样（diagram）和新的代码生成器等、支持UML2
                        Profile开发、嵌套Profile支持等。</p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/UseCase_PAPYRUS.jpg" height="198" width="292"  alt="" /></p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/ClassDiag_Reg.jpg" height="198" width="292"  alt="" /></p>
                        <p><img src="http://www.uml.org.cn/UMLTools/images/ComponentDiag.jpg" height="198" width="327"  alt="" /></p>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/orangelizq/aggbug/292843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-08-27 16:46 <a href="http://www.blogjava.net/orangelizq/archive/2009/08/27/292843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]与林昊一起探讨OSGi</title><link>http://www.blogjava.net/orangelizq/archive/2009/08/18/291639.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 18 Aug 2009 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/08/18/291639.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/291639.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/08/18/291639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/291639.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/291639.html</trackback:ping><description><![CDATA[在今年5月份的网侠大会上，InfoQ中文站有幸与国内OSGi的先锋林昊（BlueDavy）在一起探讨了OSGi的相关话题，包括它的优势、复杂度以及Java下的实现等等。<br />
<br />
在谈到采用OSGi作为开放服务框架的基础架构能带来好处时，林昊是这么阐述的：<br />
<br />
&nbsp;&nbsp;&nbsp; 相信SOA现在已经是整个业界的焦点话题了。因为现在很多人都开始用OSGi，或者说学习OSGi，可能很多人都会想，OSGi 和SOA是不是有结合点？因为OSGi在R4以后，也就是说从他发行的第四个版本的规范来看，OSGi在R4中引入了面向服务的组建模型，而这个可以说几乎是整个SOA体系中，第一个明确提出的一个实现级的规范。但是由于OSGI是SingleVM的，也就是说他只是在单VM中的规范，这样的话可能跟 SOA有些不同，像SOA通常都是分布式领域的，这样来看的话OSGi可能是有点欠缺的。不过目前OSGi也在这方面不断的做出努力，包括在今年年底，OSGi将会推出RFC 119，那这个规范的话，其实就是OSGi用于分布式领域的规范。<br />
<br />
&nbsp;&nbsp;&nbsp; 我们最近从OSGi联盟了解到的一些消息，OSGi和现在SCA的结合可能会变得更加紧密，相信在Java领域规范中可能会将采用OSGi列入规范。<br />
<br />
&nbsp;&nbsp;&nbsp; 来看OSGi对SOA体系的支持的话，其实主要仍然是他的面向服务的组件模型。在这方面呢，OSGi在面向服务组件模型中明确定义了服务到底是个什么东西。那这个的话，其实在SOA体系中以前可能没有告诉你，你写一个服务，到底应该是什么样的。然后你的组件之间应该怎么样来交互等等，这一系列在OSGi中都定义的非常清楚，OSGi可能现在用于来做SOA的实现还不是很齐全，毕竟它缺少分布式领域里的一些规范，但是OSGi在整个服务模型上的思想是值得我们参考的<br />
<br />
<strong>下面是访谈文字记录：</strong><br />
今天在InfoQ中文站有幸在阿里巴巴举办的第二届中国网络工程师侠客行大会上请到OSGi演讲嘉宾林昊，林昊你好，请向大家介绍一下你自己好吗？<br />
大家好，我是林昊，网名 BlueDavy。现在在淘宝工作。之前先后写了一些OSGi的中文宣传材料，包括OSGi实战、OSGi进阶——这两篇OpenDoc，主要是结合我自己的经验来推广OSGi在中国的应用，我大概也了解到，经过这两篇OpenDoc，中国也有一些公司开始考虑采用OSGi了，这是一件很好的事情。目前，我们主要是在筹办OSGi的中文官方站，这个是得到了OSGi官方认可的，全球第六个国家级别的User Group性质的站点。目前这个站我们还在进行之中，可能近期会全面对外公布，大概是这些。<br />
好。 OSGI是一门存在了很长时间的一门技术。那么但是在近年来，在Java社区这里边，关于它的探讨、实现，然后以及应用已经越来越火热了，尤其在最近宣布的Spring Source Application Server里边更是以OSGI作为他的核心技术。作为国内在OSGI方面的先驱者，你还能不能跟不熟悉OSGI的这些读者介绍一下OSGI到底是什么吗？<br />
是这样的，近来我们可以看到，几乎所有现在的应用服务器都已经宣称基于OSGi或者run on OSGI或者兼容OSGI， 像Spring的话，之前大概花了一两年的时间做Spring DM，但Spring之前一直都是基于他自己的IOC容器的，如果全面迁移到Spring DM的话可能还需要一段时间，但最近推出的Spring Source Application Platform是一个全新的东西，他基本上就已经开始全面采用Spring DM了，这个和以前的Spring的兼容方式是有点不同的。OSGI简单来讲，就像OSGI官方站上的一句话来描述话，OSGI是一个为Java提供的动态模块化的系统，这是一个他非常好的简称。<br />
<br />
然而经过近两年的发展，OSGI已经逐渐在改变他的推广方式了，也就是说从以前的for Java开始不大提这个词，开始提他是全面的、统一的中间件。采用这个名词的话，其实可以看出OSGI的目的是想脱离语言的限制，否则以前的话都是for Java，for Java。从OSGi目前简单的介绍词中，我们可以看到OSGI最重要的就在两个方面，一个是动态化，一个是模块化。在Java体系中模块化一直以来都是比较弱的一点，而OSGI在这方面突出的表现，让它吸引到了现在几乎所有的大公司的关注，在模块化，以及动态化方面呢， OSGI都是从规范角度来做，已经提供了支持，在没有OSGi的情况下通常我们都是自己想各种各样的办法来实现，但毕竟不是官方级的规范，现在OSGI的发展已经影响到了整个业界，包括Sun，经过这么久的斗争还是开始慢慢接受了OSGI，这也是一个很明显的体现。<br />
那采用OSGI作为开放服务框架的基础架构能带来哪些好处呢？<br />
相信SOA现在已经是整个业界的焦点话题了。因为现在很多人都开始用OSGI，或者说学习OSGI，可能很多人都会想，OSGI和SOA是不是有结合点？因为OSGI在R4以后，也就是说从他发行的第四个版本的规范来看，OSGI在R4中引入了面向服务的组建模型，而这个可以说几乎是整个SOA体系中，第一个明确提出的一个实现级的规范。但是由于OSGI是SingleVM的，也就是说他只是在单VM中的规范，这样的话可能跟SOA有些不同，像SOA通常都是分布式领域的，这样来看的话OSGi 可能是有点欠缺的。不过目前OSGI也在这方面不断的做出努力，包括在今年年底，OSGI将会推出RFC 119，那这个规范的话，其实就是OSGI用于分布式领域的规范。<br />
<br />
我们最近从OSGI联盟了解到的一些消息，OSGI和现在SCA的结合可能会变得更加紧密，相信在Java领域规范中可能会将采用OSGI列入规范。<br />
<br />
来看OSGI对SOA体系的支持的话，其实主要仍然是他的面向服务的组件模型。在这方面呢，OSGI在面向服务组件模型中明确定义了服务到底是个什么东西。那这个的话，其实在SOA体系中以前可能没有告诉你，你写一个服务，到底应该是什么样的。然后你的组件之间应该怎么样来交互等等，这一系列在OSGI中都定义的非常清楚，OSGI可能现在用于来做SOA的实现还不是很齐全，毕竟它缺少分布式领域里的一些规范，但是OSGI在整个服务模型上的思想是值得我们参考的。<br />
<br />
Apache Tomcat开发团队和JSR 277的邮件组中都有人质疑过，OSGI是否违背了KISS原则，那么Peter Kriens在博客中对这个观点也进行反驳，请问你对OSGI的重量级以及它的复杂度持有什么观点呢？<br />
这一点其实是这样的，对于了解OSGi规范的人而言，都可以看得出OSGI一直以来都是轻量级的，而且他也是比较简单的，并不是很复杂。因为这个从OSGI的起源可以看得出。OSGI最早的时候是为Smart Home来提供服务的，也就是说他是为家居网关这一块来制定规范的。那在这一块的规范中，他是不可能做得很复杂的，所以OSGI他本身的规范在复杂度这方面应该不会是很大问题的。但OSGI R4的实现Eclipse Equinox，看起来是比较重量级的，如果我们去下这个包的话，大概会在几兆以上，相对来讲，这个看起来会让人觉得OSGI的实现是比较复杂和比较重量级的。如果你再去看更聪明的Spring DM，那就更大了。这些东西可能会让别人产生一定的错觉，这个问题Peter在官方的BLOG上也曾经提到的，他对于Spring目前在OSGI上面的一些做法并不是相当认同。他认为Spring目前已经把OSGI引入一个复杂化的路线，所以这一点Peter也是持否认的观点的，我们其实可以看得出，OSGI的实现像Felix的话，大概在100K左右，从这个数量级我们可以看得出，他本身是个相当小的东西。<br />
<br />
你刚才提到的 Felix 还有Spring DM，目前除了这些框架以外，<strong>在Java下边有哪些OSGI规范的这些实现呢</strong>？他们各自都有哪些特色？<br />
<br />
目前现在Java中真正实现OSGI规范的应该是有三个，最出名的当然是Eclipse Equinox，Spring DM的话，他应该是采用Equinox来做扩展实现的，Felix基本上是自己完全重新实现的一套。其实还有一个可能不是很出名的，是 Newton ，但是Newton的话，是一个SCA的实现，所以我们可能不能完全以OSGI的规范的实现来评判它，不过他是基于OSGI来实现SCA的，所以要算的话他也可以算一个。在这三者当中的话，Equinox名声比较大一点。Equinox毕竟是OSGI第一个官方认可的实现，也是第一个通过了官方验证的实现，他的使用也已经得到了验证。因为Equinox毕竟是 Eclipse的核心，而且现在Equinox已经提升到了 Eclipse 的Top Level的Project，而这一点可以看得出 Eclipse 其实对这个的重视已经越来越高了，之后他可能也会改名成 Eclipse Core Runtime，成为Eclipse的运行核心。<br />
<br />
Equinox整体来讲他的实现是比较完整的，而且他投入的力量也比较大，这基本上是非常值得期待的，可以一直跟随着他。Equinox在OSGI的发展上其实是起到了很大的作用的，包括我们可以看到Equinox之前他起动了一个 Server side的沙箱，那这个的话，对OSGI的发展起到了很明显的推动作用，因为我们目前可以看到现在最新的RFC应该是 66，在66里面其实已经开始提到吸取了现在Equinox在Server side上的一些做法，我想对于了解OSGI的同学而言，应该知道OSGI的Http Services是只支持 servlet以前的老版本。新版本像2.3以上的servlet规范中的像filter，这些都是没法支持的，在RFC 66中则会开始逐步支持这些东西了， Equinox另外一个最大的贡献可能是在扩展方面，因为他引用了Eclipse做的非常成功的扩展点，扩展点现在几乎已经成为了OSGI的非事实性的规范，也就是其实目前OSGI所有的实现中都会提供，因为扩展点对模块的可扩展性方面提供了很大的帮助。以前的话，在OSGI官方规范中是没有这一点的。然后我们可以来看Felix，Felix的话，其实他是Apache后期开始做的，也就是说它比Equinox晚挺多的。Felix的话，我们可以看他基本上是一个非常轻量级的OSGI实现，目前很多采用OSGI的人都开始逐步才用Felix，可能是因为大家觉得Equinox太重量级了。<br />
<br />
Felix 除了轻量级以外，还有一个比较突出的特色，是他把之前Peter一直想做得OBR这一块，就是OSGI的bundle仓库这一块做得非常非常好了，而这一块对于OSGI其实是非常重要的，Bundle仓库这一块大概会在OSGI的R5列入规范，所以Felix在这一块的作用应该是很明显的，我相信OSGI R5的规范会参考他来做。然后 Newton的话，Newton本身是基于OSGI实现的，它带来的最大作用也许是他让所有人认可了OSGI是能够应用于分布式服务领域的，这对于OSGI进军分布式领域是有一定的好处的，也许RFC 119会在Newton的基础上做一定的参考来做规范了。<br />
对于目前Java 7中将支持OSGI的消息有什么看法？JSR 277跟OSGI之间的争论呢？<br />
我想OSGI和JSR 277的争论在整个OSGI业界绝对是一场非常非常漫长的战争，几乎了解的人可能都知道，JSR 277很早就成立了。一直以来，其实最早的时候，277的规范组的成员是没有列入Peter的，而其实大部分人都知道，Peter在模块化以及动态化方面的经验几乎在全世界都是顶尖级的。之前Peter自己也申请过要加入JSR 277，但被拒绝了。在今年Javaone第二天的大会上Sun官方明确的宣布了在Java 7中将会支持OSGI。这一点虽然没有比他说采用OSGI让人激动，因为他毕竟只是兼容而已。但是从这一点可以看到，Sun已经做了比较大的让步了，因为之前其实他从来没有考虑过，他一定是要自己完全做一套的，而我们从Sun在JavaOne上的第二天的一些讲演中可以看出，Sun自己目前也在非常强调模块化这一方面的工作，包括他自己在JavaEE 6以及Java 7上都是明确的说，最重要的一点的，就是说在他的规范中最需要重视的就是模块化的规范这一点，这也说明Sun对JSR 277是非常非常重视的。不过也正因为他对这一块非常非常重视，所以可能很难接纳一个已有的模块化的标准，否则Sun可能在这一块会难以立足。不过我们可以看得出，在JavaOne宣布了以后。Peter在自己的官方博客上透露了一个消息，JSR 277 Leader已经邀请Peter加入JSR 277专家组，那这个的话，可能也证明了JSR 277专家组是认为需要Peter这样的顶尖专家的，不过Peter自己仍然在考虑之中。因为Sun毕竟已经制订了一系列的东西，这也意味着他可能不会完全采用OSGI，这个对Peter来说可能是有点疑问的。<br />
记得上一次在InfoQ中文站的文字访谈中，您说过当时OSGI应用最重要的问题还是落在如何去构建模块化、动态化和可扩展的系统上面。那么近年来OSGI在这方面上取得了什么进展吗？<br />
其实OSGI他本身的规范程度上应该来讲，他在模块化以及动态化还有可扩展性方面都已经有了一定的规范了。包括像模块化的话，是他一直以来的特色，然后动态化方面应该也是支持的一直都比较好，只是在可扩展性方面的话，因为OSGI以前只是借助DS，就是它的R4中的 Declarative Services 来做这方面的支持，那相对来讲比Equinox的扩展点的话，应该是有一定的弱势的。<br />
<br />
不过目前的话OSGI应该也会逐步考虑，就是说在他的R5中可能会考虑Equinox扩展点怎么样嵌进去，来提升他在扩展性这一方面的支持。虽然OSGI从规范中支持了这些（模块化、动态化和可扩展），包括框架的实现上也是可以支持模块化这些特性的，但是我们最关键的仍然还是怎么样去使用OSGI了。因为如果你使用OSGI的时候，不遵循他的这些原则的话，其实最后设计出来的系统仍然是你以前的非模块化，非动态化的系统。<br />
作为OSGI在国内中文社区里边的一个活跃分子，也算是一个领军人物了。那么你觉得目前国内社区这块在OSGI的现状是怎么样子的，今后又是一个怎么样发展方向呢？<br />
<br />
之前呢，其实在国内的社区中应该是没有，就是没有OSGI的集中讨论场所的，包括我们知道可能在JavaEye上面会有OSGI的圈子，但是并不是专栏性质的，或者说不是这种社区，极大的一个集中式的社区性质的。然后OSGI之前的社区更多是在Equinox上面，之前我们在Equinox的maillist上面可能会有一些讨论。然后在中国方面的话，其实一直以来都没有做这方面的工作，不过OSGI中文官方站筹划已经很久了，但是因为要官方认可的话，需要跟官方做一些交互，还有一些协议方面的，因为要得到他们的授权，这个商标必须是拿到允许才能使用的。所以我们跟官方交涉了一段时间，最近应该也是在今年年初的时候，才拿到了OSGI的授权。在拿到授权之后呢，我们现在已经在开始建设我们的OSGI中文官方站了。在OSGI中文社区里面我们已经做了一定的推广，就是已经告诉了大家这个站是怎么样访问，然后大家可以怎么样加入这里来为OSGi做贡献，就是说为整个OSGI的推广做贡献。因为其实在目前，我们OSGI官方站大概的做法主要是翻译官方站的一些东西，包括官方站的一些新闻，这样大家可以了解到整个OSGI业界的最新的发展动向。然后另外的话，我们会翻译一些OSGI官方上的一些精品的 BLOG。那这些BLOG其实会给大家有很高的指导意义。<br />
<br />
另外一方面我们可能会加强包括OSGI中国方面自己的一些原创性质的文章。因为其实以前是很少有原创性质的一些文章的。那这些方面的话，可能在近两年应该会好一些。因为随着OSGI在国内慢慢开始得到应用，大家都会开始在这一块有一定的经验了。在有了经验之后，我们希望有更多人能写出关于OSGI方面深入文章。这对于推广，包括你自己对OSGI的一些想法，我们也会把一些写得比较好的OSGI的原创文章翻译成英文，然后推荐给OSGI官方联盟。这样的话，对于整个OSGI发展也会有一定的好处。<br />
<br />
在中文官方站上，我们可能也会成立一个开源的社区，这里面可能会包括论坛等，另外一方面就是提供一些基于OSGI的开源项目，这些应该是会对推广OSGI起到一定的作用。<br />
<br />
&nbsp;个人简介<br />
林昊，三年前接触OSGi，目睹了OSGi从最初的不够受关注到现在几乎成为了各大应用平台厂商的必选，同时也得到了Sun的官方认可，而自己也随着对于OSGi的应用经验的增长，编写了《OSGi实战》、《OSGi进阶》两篇 Opendoc，这两篇是目前OSGi领域中仅有的中文文档资料，国内不少公司、IT从业人士因为这两篇文档进入了OSGi领域，在去年通过和OSGi官方联盟交涉后拿到了官方联盟的授权，建立了OSGi官方认可的全球第6个User Group<br />
<br />
来自：http://www.infoq.com/cn/interviews/linhao-osgi<br />
<img src ="http://www.blogjava.net/orangelizq/aggbug/291639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-08-18 15:12 <a href="http://www.blogjava.net/orangelizq/archive/2009/08/18/291639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)做人、做事，做架构师——架构师能力模型解析</title><link>http://www.blogjava.net/orangelizq/archive/2009/06/22/283647.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Mon, 22 Jun 2009 13:07:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/06/22/283647.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/283647.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/06/22/283647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/283647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/283647.html</trackback:ping><description><![CDATA[<div class="g_t_center g_c_pdin g_p_center c07 content" style="width: 760px;" id="blogtext_fks_085074087081085066083095086095087094081070083083085065">
<p style="text-indent: 2em;">要想从一名普通程序员发展成为优秀的架构师，&#8220;个人特性&#8221;与&#8220;技术技能&#8221;缺一不可；而&#8220;技术专业能力&#8221;、&#8220;人际关系能力&#8221;和&#8220;业务能力&#8221;更是优秀架构师重要的三种能力。</p>
<p style="text-indent: 2em;">文 / 周爱民（《程序员》2008年4月刊）</p>
<p style="text-indent: 2em;">引子</p>
<p style="text-indent: 2em;">究竟是什么让你在同一个位置上——例如程序员或技术负责人——工作了三年、五年或者更久，而
仍然得不到任何的发展空间？你觉得自己已成为技术圈中的大牛，并信心满满地去拿明天就要颁发的某某大奖，然而却仍然停留在同样的技术职位上，去年到今年涨
的薪水甚至填不平物价升幅？于是，你开始对老板不满，对员工不满，对昨天升职的那个同事不满&#8230;&#8230;你开始计划明天就要跑单，或者准备考虑提出加薪却又心怀忐
忑。</p>
<p style="text-indent: 2em;">如果技术人员有发展的轨迹，那么他要么&#8220;看透工具的本质，把关注点转移到&#8216;团队&#8217;的圈子里去
&#8221;，要么&#8220;顺着代码铺就的道路，亦步亦趋地成为良匠大师&#8221;。仅以技术方向而言，你大概可以做到架构师、总架构师甚至首席架构师；但问题是：你现在还只是一
个程序员。那要如何才能踏上通往架构师之路呢？本文为你解析一个架构师的能力模型。</p>
<p style="text-indent: 2em;">你能不能做一个好的架构师？</p>
<p style="text-indent: 2em;">架构师不是界定一个技术高下的职位名称，而是一个职务。所谓职务，包括职——职位，务——工作。前者决定了你具备哪些资源，可以影响到怎样的范围，以及面向的机构，后者则简单地是你需要完成的工作列表。</p>
<p style="text-indent: 2em;">所以我说&#8220;架构师&#8221;不是指&#8220;一个能做架构的人&#8221;。前者是把架构师当职能，后者是当工人。能做
一份工作列表中的事，并不等于就成为相应职位上的人。在管理体系里面，你的个人特性决定了你在哪个位置，而技术技能只是做事实施的必需。架构师这个职务，
同时要求较高的个人素质和技术能力，因此它的进取之路总结起来就是：做人、做事，做架构师。</p>
<p style="text-indent: 2em;">因此&#8220;模型&#8221;由&#8220;个人特性&#8221;和&#8220;技术技能&#8221;两个方面构成，在第一张图中，我特别说明&#8220;个人特性&#8221;既包括人际关系的能力，也包括（具体）业务能力；&#8220;技术技能&#8221;也是如此。所以个人特性主要与&#8220;做人&#8221;有关，部分地也包含&#8220;做事&#8221;的要素。</p>
<p style="text-indent: 2em;">
<div align="center"><img title="(转)做人、做事，做架构师——架构师能力模型解析 - oliwen - oliwen" alt="(转)做人、做事，做架构师——架构师能力模型解析 - oliwen - oliwen" src="http://images.csdn.net/20080530/123.jpg" border="0" /></div>
</p>
<p style="text-indent: 2em;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 图1 架构师能力模型</p>
<p style="text-indent: 2em;">&#8220;有效沟通&#8221;以及&#8220;学会谈判&#8221;与做具体的事无关，是个人能力特性的公共方面。前者是过程，后
者是知道如何定目标与求结果。而&#8220;风险与防备&#8221;是做事过程控制的关键，与前面两项正好构成了一个做事基本能力的完整体系。基本上，这三项个人特性都是一个
&#8220;普通程序员&#8221;所不具备的，甚至在大多数情况下，普通程序员并不愿意去具备这样的个人特性，因为在许多陷于技术泥淖的开发人员看来：沟通总是会使事情变得
更加麻烦，谈判则徒耗时间而无济于事。然而事实上，在整个的架构决策过程中，架构师需要不停地沟通与谈判。将&#8220;架构&#8221;变成&#8220;决策&#8221;的过程，其实就是对各个
技术角色（及其思想）兼容并包的过程，你需要不断地协调需求、实现之间的各种问题，也需要面对各种投资者（时间、资金、人才等方面的决策者）进行谈判，以
确定项目的规模——没有规模也就没有范围，没有范围如何展开设计呢？</p>
<p style="text-indent: 2em;">一部分开发人员会认为上述过程是&#8220;项目经理&#8221;的事情，但真的如此吗？当你作为一个更高级别的架构师，以至于要影响到多个项目的决策时，你就全然不会有这种感受了。因为这种情况下，你的决策将先于项目的启动，或者说你已经不单单是一个技术角色了。</p>
<p style="text-indent: 2em;">设计是架构能力的一部分，但架构师不是设计师——看清楚二者之间的不同，你才真正迈出了架构师职业生涯的第一步。</p>
<p style="text-indent: 2em;">抽象是思维能力、模型化是表达能力</p>
<p style="text-indent: 2em;">个人特性中另一个非常重要的方面是&#8220;抽象思维&#8221;，而这是与架构师角色直接相关的一种能力。这种能力既有职业技能特征，又是普遍性的能力。</p>
<p style="text-indent: 2em;">所谓普遍性的能力，是指&#8220;抽象&#8221;在我们——作为人这种个体的——生活中无处不在。例如我们说
花、草，说桌、椅&#8230;&#8230;我们用语言去指称任何一个既已存在的（可以脱离我们的语言而自然存在的）事物时，就用到了抽象。说&#8220;桌子&#8221;的时候，既没有描述桌子的
具体形式，也没有说明它的规格，但我们用这个名词时，所有人都知道&#8220;桌子是什么&#8221;。所以，名词概念是整个抽象逻辑系统中的主体。如果失去了这些名词定义，
我们基本上不能说话，也不能描述任何东西——那便到了&#8220;只可意会不可言传&#8221;的境地。</p>
<p style="text-indent: 2em;">用现有的成熟语汇去描述你的系统时，大多数人会理解你所表达的含义，例如我们说&#8220;这个系统设
计为一个三层结构&#8221;。然而架构师面临的系统在许多细节上并不见得能够用成熟的语汇去描述，因此必须自已构建一个抽象系统，这就需要概念抽象能力、概念表达
能力和基于概念的逻辑表达能力。</p>
<p style="text-indent: 2em;">概念抽象能力是一种思维能力。简单地说，就是&#8220;把目标分解或概括清楚&#8221;：你要么概而言之&#8220;它
是什么&#8221;，要么详细地说明&#8220;它包括什么&#8221;。必须使用大量的语汇来陈述这个&#8220;什么&#8221;，这不单单是表达为文字，也表达为你在思想过程中的一个完整系统。通常用
的方法是&#8220;映射系统&#8221;。例如你可以用数学中的&#8220;数轴&#8221;来映射&#8220;实数域&#8221;。将目标系统形式化为一个概念化的、可讨论的结构系统后，你的抽象过程就基本结束
了。</p>
<p style="text-indent: 2em;"><img title="(转)做人、做事，做架构师——架构师能力模型解析 - oliwen - oliwen" alt="(转)做人、做事，做架构师——架构师能力模型解析 - oliwen - oliwen" src="http://images.csdn.net/20080530/%E6%9E%B6%E6%9E%842.jpg" border="0" /></p>
<p style="text-indent: 2em;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 图2 能力模型中的个人特性</p>
<p style="text-indent: 2em;">然而这个&#8220;抽象系统&#8221;可能只构建在你的思维意识里，还必须把它描绘出来。因为不能只是你自己思考清楚，系统就能设计完成。这个&#8220;描绘&#8221;就依赖于后面两种表达能力，一种是描绘概念实体，一种是描绘实体上的逻辑——有趣的是，这似乎又回到了&#8220;程序＝结构＋算法&#8221;。</p>
<p style="text-indent: 2em;">现在大家回过头来看看UML，或者更多种类的ML（建模语言），他们就用于表达这两个方面的东西：要么是概念实体（例如用一个框表明系统边界），要么是实体上的逻辑（例如用箭头表明逻辑时序）。</p>
<p style="text-indent: 2em;">所以大家应该清楚，我们再如何称赞UML，它也只是一种对模型化系统的&#8220;表达能力&#8221;，你只能把它当一种辅助表达的工具去使用，它本身既不能帮助思考，也不见得能作为抽象过程中的或抽象思维环境中的参考。</p>
<p style="text-indent: 2em;">任何一个优秀的架构师都有自己独特的思考方式，这决定了他如何抽象系统，以及如何&#8220;创造性地
&#8221;设计与构画这个系统。这种&#8220;独特的思考方式&#8221;贯彻他从孩童开始的整个成长过程，直至他形成独立的社会观、人生观与世界观。他认识世界的方式和接受世界的
能力决定于他如何思考，也反映了他这种思考方式的&#8220;独特性&#8221;。但这并不表明他有特立独行的行为特性（我们这里只说他的思考方式），我们不应介意他是否用某
种语言（例如UML或者形式化编程语言）来表达他的思考结果。</p>
<p style="text-indent: 2em;">推动：设计做大，实施做小</p>
<p style="text-indent: 2em;">架构师首先是把问题的真正目标确定下来，然后变成系统设计、平台设计或架构设计。而在此之后
设计输出将会有两个方向的发展，一是被忠实地贯彻下来，二是被变形地发展下去。两个方向都存在致命的危险：架构最终能否被完整实现。对前者来说，可能是架
构设计过度，或设计本身出现了错误；后者则是对架构直接的伤害。</p>
<p style="text-indent: 2em;">所以架构师必须参与实施的全程——尤其是在架构被映射为目标系统的前期。在这个阶段中，架构
师的任务就是推动架构实施，以保证在项目全程的设计／架构／体系的一致性。除了直接跟设计师或设计团队沟通，以保证他们的设计在你可以控制的范围之内以
外，架构师还必须有阶段化设计的能力。这种能力用于将一个原本规模宏大的架构设计，变成较小的、易于实施的、对开发团队来说可控的关键点。例如在体系层次
的规划上，设计可能是独立、异质的、可迁移的存储框架来实现数据层，但在（前期的）实施上，这里可能被表达为本地数据库，并要求前端开发人员必须通过一个
清晰的数据交互层来访问——例如一组数据存取接口，或一个独立数据服务组件。开发人员可能在这里遇到障碍：因为要通过这些中间层来访问本地数据库，纯粹是
多余的。然而，正是这&#8220;多余的工作&#8221;提供了系统弹性，为并行团队开发公共存储服务争取了周期，也为将来的灵活部署与数据迁移提供了可能。</p>
<p style="text-indent: 2em;">这里的关键就在于，无论原始系统设定有多大，实施时总是在&#8220;做小&#8221;。每一个局部的实施块都是
可控的，并为它在整个体系空间中留下了位置和接口，这样才可能由&#8220;小的部分&#8221;做大。一个大系统的架构师可能同时在考虑许多个项目中的、不同位置的架构，并
且清楚这些项目最终的总体规模。而这，就是平台架构师和体系架构师所涉的领域。</p>
<p style="text-indent: 2em;"><img title="(转)做人、做事，做架构师——架构师能力模型解析 - oliwen - oliwen" alt="(转)做人、做事，做架构师——架构师能力模型解析 - oliwen - oliwen" src="http://images.csdn.net/20080530/%E6%9E%B6%E6%9E%843.jpg" border="0" /></p>
<p style="text-indent: 2em;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 图3 架构师模型图中的&#8220;实现能力&#8221;</p>
<p style="text-indent: 2em;">架构真的是&#8220;好不好&#8221;的问题吗？如同我对工程的理解一样，架构问题的根本，也并不在于它是否
完美或漂亮，而是在于是否合用。因此架构师必须对实施架构的团队以及实施过程有充分了解，知道他们的能力缺陷，知道实现过程要消耗的资源，清楚每个环节可
能的故障以及先兆。只有这样，架构师才能设计一个让这个团队能实现，而且在实现过程中能受控的架构。</p>
<p style="text-indent: 2em;">要知道，你作为架构师被请来，不是画几张图纸交给项目经理，说：你们去做吧，做不出来是你们
不会做。即使你可以身体力行，在这个团队中教大家、培养大家，那么公司的开销呢？风险呢？这些东西难道就不考虑了？项目的周期因为实现的复杂程度而无法控
制时，项目就死掉了。那么，追根究底来说，是不是架构师的问题？是啊，你为什么会做了一份&#8220;不合用&#8221;的架构呢？——你都不知道项目如何开发、由谁实施、如
何管理等等，又如何能面对这些实际环境去设计架构呢？</p>
<p style="text-indent: 2em;">所以这一部分能力，是要在你的开发经验、团队经验以及用人识人的经验中去找的。参考模型图的&#8220;实现能力&#8221;下的&#8220;设计能力&#8594;了解你的主要沟通对象&#8221;和&#8220;架构推行&#8221;等分支，对你或有一些可用的提示。</p>
<p style="text-indent: 2em;">局部与全局</p>
<p style="text-indent: 2em;">架构是一个从全局到局部的过程，而实施正好反过来，是从局部到全局。这也正是&#8220;设计做大，实施做小&#8221;的另一个层面的含义。设计大才可以见到全局，才知道此全局对彼全局的影响；实施小才可能关注细节，才谈得上品质与控制。</p>
<p style="text-indent: 2em;">事实上，大多数情况下架构是在为&#8220;当前项目之外&#8221;去考虑，这可以看成全局关注的一个组成部分。因此我们需要界定所谓&#8220;全局&#8221;的范围：超出公司或整个产品系列、产品线或规划的范围才是多余的。</p>
<p style="text-indent: 2em;">所以当架构决策谈及&#8220;全局&#8221;时，其目标并不见得是&#8220;保障当前项目&#8221;，而又必须由当前项目去完成。</p>
<p style="text-indent: 2em;">一个经常被用到的例子是：如果仅为当前项目考虑，那么只需要做成DLL模块；如果为产品线考虑，可能会是&#8220;管道＋插件&#8221;的结构形式。而&#8220;管道＋插件&#8221;的形式显然比做成DLL模块更费时，这个时间成本（以及其它成本）就变成了当前项目的无谓开销。</p>
<p style="text-indent: 2em;">这种全局策略对局部计划的影响是大多数公司不能忍受的，也被很多团队所垢病。然而这却是架构
师角色对体系的&#8220;近乎必然&#8221;的影响——如果你试图在体系中引用架构师这个角色的话。一些情况下，体系能够容纳这种影响，例如&#8220;技术架构师&#8221;试图推动某种插
件框架，而正好开发人员对这项技术感兴趣，那就顺其自然地花点工夫去实现了。但如果不是这样，实施者或实施团队看不到&#8220;多余的部分&#8221;对他们的价值时，来自
局部的抵触就产生了。</p>
<p style="text-indent: 2em;">这种情况下，平衡这些抵触就成了架构推行的实务之一。在我看来，&#8220;平衡&#8221;是全局的艺术和局部
的技术。也就是说，一方面架构师要学会游说，另一方面也要寻求更为简洁的、成本更小的实现技术。只有当整个体系都意识到（你所推行的）架构的重要性，而且
实施成本在他们可以接受的范围之内时，他们才会积极行动起来。</p>
<p style="text-indent: 2em;">所以所谓平衡，其实也是折衷的过程。构架师只有眼中见大，才知道哪些折衷可以做，而哪些不
能。所谓设计评估（模型图中的实现能力-&gt;设计能力-&gt;设计评估分支）并不是去分析一个设计结果好或不好，而是从中看到原始的需求，看到体系
全局的意图，然后知道在将设计变得更为&#8220;适当&#8221;时可以做哪些折衷。同样的原因，架构师也必须知道自己的决策会产生的影响，才能控制它们，以防它们变成团队
的灾难。有些时候，架构师甚至需要抛弃一些特性，以使得项目能够持续下去。因为产品的阶段性产出只是整个战略中的一个环节，而不是全部。</p>
<p style="text-indent: 2em;">其它</p>
<p style="text-indent: 2em;">&#8220;怎么做一个架构师&#8221;这个问题得分成两个部分来看，一个是&#8220;做到&#8221;，一个是&#8220;做好&#8221;。由于架构师本身不过是一个技术职位，所以时机成熟了自然会做得到。但问题是，真有一天你被放在这个位置上了，你能做得好吗？</p>
<p style="text-indent: 2em;">我浏览过几套所谓培训机构的有关架构师的教程，也翻阅过一些讲架构的书。我发现他们普遍地是
将架构作为一种&#8220;职业技术&#8221;来讲，就像培养程序员或者缝纫工一样来教育。但就我的经验来说，架构并不是一件纯粹表现技术能力的工作，所以并不是翻几本书学
几种方法就可以投入&#8220;实战&#8221;的。更深层的问题是，架构师其实不是&#8220;战&#8221;出来的。昨天跟同事讨论这个话题，他把我们这几年来的一些思考用了三句话来概括，非
常精彩：从无到有的，是架构；从表到里的，是抽象；从粗到细的，是设计。</p>
<p style="text-indent: 2em;">那么到底什么是架构呢？从上面的概括中你是看不到答案的。到底如何做架构呢？从本文中你也是
看不到答案的。然而我说，&#8220;你看不到答案&#8221;的根源其实是在于你的眼光与心性——后面这个词换成现代白话，就是&#8220;思想&#8221;。真正阻碍了你成为优秀架构师的，也
许正是你既有的知识与思想方法，扔掉它们，接受一些全然有别的信息，也许正是良好的开端。</p>
<p style="text-indent: 2em;">或许你现在正愤愤然：这篇文章怎么空洞无物？——我甚至能想象到一些读者的表情。然而请在问题面前停下来，不要急于给出答案。正如你将&#8220;?&#8221;稍微变下形，它就成为了&#8220;!&#8221;一样，问题的本身，就是答案。</p>
<p style="text-indent: 2em;">作者简介</p>
<p style="text-indent: 2em;">周爱民（aimingoo），具有十余年的软件开发、项目管理和团队建设的经验，现担任盛大网络的平台架构师，著有《大道至简》、《Delphi源代码分析》等。</p>
<p style="text-indent: 2em;">&nbsp;
</p>
<p style="text-indent: 2em;">原文地址： <a href="http://vipnews.csdn.net/newscontent.aspx?pointid=2008_05_30_150239242">http://vipnews.csdn.net/newscontent.aspx?pointid=2008_05_30_150239242</a></p>
</div>

<img src ="http://www.blogjava.net/orangelizq/aggbug/283647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-06-22 21:07 <a href="http://www.blogjava.net/orangelizq/archive/2009/06/22/283647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Tomcat集群与负载均衡</title><link>http://www.blogjava.net/orangelizq/archive/2008/12/25/248212.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 25 Dec 2008 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/12/25/248212.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/248212.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/12/25/248212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/248212.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/248212.html</trackback:ping><description><![CDATA[<p>在进入集群系统架构探讨之前，先定义一些专门术语：<br />
&nbsp;<br />
1. 集群(Cluster)：是一组独立的计算机系统构成一个松耦合的多处理器系统，它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送，实现分布式计算机。 <br />
2. 负载均衡(Load Balance)：先得从集群讲起，集群就是一组连在一起的计算机，从外部看它是一个系统，各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群，对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。 <br />
3. 特点：在现有网络结构之上，负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量，加强网络数据处理能力，提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题： <br />
高可靠性（HA）：利用集群管理软件，当主服务器故障时，备份服务器能够自动接管主服务器的工作，并及时切换过去，以实现对用户的不间断服务。 <br />
高性能计算（HP）：即充分利用集群中的每一台计算机的资源，实现复杂运算的并行处理，通常用于科学计算领域，比如基因分析，化学分析等。 <br />
负载平衡：即把负载压力根据某种算法合理分配到集群中的每一台计算机上，以减轻主服务器的压力，降低对主服务器的硬件和软件要求。 </p>
<p>目前比较常用的负载均衡技术主要有： <br />
　　1. 基于DNS的负载均衡 <br />
　　通过DNS服务中的随机名字解析来实现负载均衡，在DNS服务器中，可以为多个不同的地址配置同一个名字，而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此，对于同一个名字，不同的客户机会得到不同的地址，他们也就访问不同地址上的Web服务器，从而达到负载均衡的目的。 </p>
<p>　　2. 反向代理负载均衡 （如Apache+JK2+Tomcat这种组合） <br />
　　使用代理服务器可以将请求转发给内部的Web服务器，让代理服务器将请求均匀地转发给多台内部Web服务器之一上，从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同，标准代理方式是客户使用代理访问多个外部Web服务器，而这种代理方式是多个客户使用它访问内部Web服务器，因此也被称为反向代理模式。 </p>
<p>　　3. 基于NAT（Network Address Translation）的负载均衡技术 （如Linux Virtual Server，简称LVS） <br />
　　网络地址转换为在内部地址和外部地址之间进行转换，以便具备内部地址的计算机能访问外部网络，而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时，地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址，此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信，从而达到负载分担的目的。 </p>
<p>介绍完上面的集群技术之后，下面就基于Tomcat的集群架构方案进行说明： </p>
<p>上面是采用了Apache httpd作为web服务器的，即作为Tomcat的前端处理器，根据具体情况而定，有些情况下是不需要Apache httpd作为 web 服务器的，如系统展现没有静态页面那就不需要Apache httpd，那时可以直接使用Tomcat作为web 服务器来使用。使用Apache httpd主要是它在处理静态页面方面的能力比Tomcat强多了。 <br />
1、 用户的网页浏览器做完本地 DNS和企业授权的DNS之的请求/响应后，这时候企业授权的DNS（即21cn BOSS DNS）会给用户本地的DNS服务器提供一个NAT请求分配器（即网关）IP。 </p>
<p><br />
2、 NAT分配器，它会根据特定的分配算法，来决定要将连接交给哪一台内部 Apache httpd来处理请求。大多数的NAT请求分配器提供了容错能力：根据侦测各种WEB服务器的失效状况，停止将请求分配给已经宕掉的服务器。并且有些分配器还可以监测到WEB服务器机器的负载情况，并将请求分配给负载最轻的服务器等等。Linux Virtual Server是一个基于Linux操作系统上执行的VS-NAT开源软件套件，而且它有丰富的功能和良好的说明文件。商业硬件解决方案 Foundry Networks的ServerIron是目前业界公认最佳的请求分配器之一。 </p>
<p><br />
3、 Apache httpd + Mod_JK2在这里是作为负载均衡器，那为什么要做集群呢？如果集群系统要具备容错能力，以便在任何单一的硬件或软件组件失效时还能100%可用，那么集群系统必须没有单点故障之忧。所以，不能只架设一台有mod_jk2的Apache httpd，因为如果 httpd或mod_jk2失效了，将不会再有请求被会送交到任何一个Tomcat 实例。这种情况下，Apache httpd就是瓶劲，特别在访问量大的网站。 </p>
<p><br />
4、 Mod_JK2负载均衡与故障复原，决定把Apache httpd当成web服务器，而且使用mod_jk2将请求传送给Tomcat，则可以使用mod_jk2的负载均衡与容错功能。在集群系统中，带有mod_jk2的Apache httpd可以做的事情包括： <br />
A、 将请求分配至一或多个Tomcat实例上 <br />
你可以在mod_jk2的workers.properties文件中，设定许多Tomcat实例，并赋于每个实例一个lb_factor值，以作为请求分配的加权因子。 </p>
<p><br />
B、 侦测Tomcat实例是否失败 <br />
当Tomcat实例的连接器服务不再响应时，mod_jk2会及时侦测到，并停止将请求送给它。其他的Tomcat实例则会接受失效实例的负载。 </p>
<p><br />
C、 侦测Tomcat实例在失效后的何时恢复 <br />
因连接器服务失效，而停止将请求分配给Tomcat实例之后，mod_jk2会周期性地检查是否已恢复使用性，并自动将其加入现行的Tomcat实例池中。 </p>
<p><br />
5、 Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。这里提示一下就是，对每个请求的处理，Tomcat都会进行会话复制，复制后的会话将会慢慢变得庞大。 </p>
<p><br />
6、 Mod_jk2同时支持会话亲和和会话复制。在tomcat 5中如何实现会话亲和和会话复制？把server.xml中的标签去掉就实现会话亲和，把标签加上就实现会话复制。 </p>
<p><br />
7、 会话亲和：就是表示来自同会话的所有请求都由相同的Tomcat 实例来处理，这种情况下，如果Tomcat实例或所执行的服务器机器失效，也会丧失Servlet的会话数据。即使在集群系统中执行更多的Tomcat实例，也永远不会复制会话数据。这样是提高集群性能的一种方案，但不具备有容错能力了。 </p>
<p><br />
8、 使用会话复制，则当一个Tomcat实例宕掉时，由于至少还有另一个Tomcat实例保有一份会话状态数据，因而数据不会丧失。但性能会有所降低。 </p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/248212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-12-25 10:36 <a href="http://www.blogjava.net/orangelizq/archive/2008/12/25/248212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]http 请求报头详解</title><link>http://www.blogjava.net/orangelizq/archive/2008/12/25/248206.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 25 Dec 2008 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/12/25/248206.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/248206.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/12/25/248206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/248206.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/248206.html</trackback:ping><description><![CDATA[<p>http头的组成：&nbsp;&nbsp;&nbsp; <br />
==============&nbsp;&nbsp;&nbsp; <br />
&nbsp;HTTP头字段包括4类：&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; general-header ;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; request-header ;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; response-header ;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; entity-header .&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
*******************************************************************************&nbsp;&nbsp;&nbsp; <br />
&nbsp;General Header Fields&nbsp;&nbsp;&nbsp; <br />
=============================&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; general header是request、response都可用的, 但是不能用于entity.&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Cache-Control&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Connection&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Date&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Pragma&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Trailer&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Transfer-Encoding&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Upgrade&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Via&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Warning&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
*******************************************************************************&nbsp;&nbsp;&nbsp; <br />
&nbsp;Request Header Fields&nbsp;&nbsp;&nbsp; <br />
======================&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; request-header fields 允许客户端传递关于request和客户端的附加信息到服务端，&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Charset&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Encoding&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Language&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Authorization&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Expect&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ From&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Host&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Match&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Modified-Since&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-None-Match&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Range&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Unmodified-Since&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Max-Forwards&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Proxy-Authorization&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Range&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Referer&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ TE&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ User-Agent&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
*******************************************************************************&nbsp;&nbsp;&nbsp; <br />
&nbsp; Response Header Fields&nbsp;&nbsp;&nbsp; <br />
===============================&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; response-header fields 允许服务端传递关于response的、不能放到Status-Line的附加信息。&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; 这些头给出关于服务端的信息。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Ranges&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Age&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ ETag&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Location&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Proxy-Authenticate&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Retry-After&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Server&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Vary&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ WWW-Authenticate&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
*******************************************************************************&nbsp;&nbsp;&nbsp; <br />
&nbsp;Entity Header Fields&nbsp;&nbsp;&nbsp; <br />
========================&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; Entity-header fields 定义关于entity-body的metainformation(标题字段数据),&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; 如果当前没有body, 则定义被request确定的资源信息.&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; 一些metainformation是可选的; 一些是必须的。&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Allow&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Encoding&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Language&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Length&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Location&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-MD5&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Range&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Type&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Expires&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Last-Modified&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ extension-header&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
【转自】http://www.x5dj.com/userforum/00100239/00305167.shtml&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
一、基础篇&nbsp;&nbsp;&nbsp; <br />
HTTP（HyperTextTransferProtocol）是超文本传输协议的缩写，它用于传送WWW方式的数据，关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求，请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应，相应的内容包括消息协议的版本，成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。&nbsp;&nbsp;&nbsp; <br />
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行，一个或者多个头域，一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头，请求头，响应头和实体头四个部分。每个头域由一个域名，冒号（:）和域值三部分组成。域名是大小写无关的，域值前可以添加任何数量的空格符，头域可以被扩展为多行，在每行开始处，使用至少一个空格或制表符。&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
1、通用头域&nbsp;&nbsp;&nbsp; <br />
通用头域包含请求和响应消息都支持的头域，通用头域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。对通用头域的扩展要求通讯双方都支持此扩展，如果存在不支持的通用头域，一般将会作为实体头域处理。下面简单介绍几个在UPnP消息中使用的通用头域。&nbsp;&nbsp;&nbsp; <br />
Cache-Control头域&nbsp;&nbsp;&nbsp; <br />
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no- store、max-age、max-stale、min-fresh、only-if-cached，响应消息中的指令包括public、 private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、 max-age。各个消息中的指令含义如下：&nbsp;&nbsp;&nbsp; <br />
Public指示响应可被任何缓存区缓存。&nbsp;&nbsp;&nbsp; <br />
Private指示对于单个用户的整个或部分响应消息，不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息，此响应消息对于其他用户的请求无效。&nbsp;&nbsp;&nbsp; <br />
no-cache指示请求或响应消息不能缓存&nbsp;&nbsp;&nbsp; <br />
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。&nbsp;&nbsp;&nbsp; <br />
max-age指示客户机可以接收生存期不大于指定时间（以秒为单位）的响应。&nbsp;&nbsp;&nbsp; <br />
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。&nbsp;&nbsp;&nbsp; <br />
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值，那么客户机可以接收超出超时期指定值之内的响应消息。&nbsp;&nbsp;&nbsp; <br />
Date头域&nbsp;&nbsp;&nbsp; <br />
Date头域表示消息发送的时间，时间的描述格式由rfc822定义。例如，Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时，换算成本地时间，需要知道用户所在的时区。&nbsp;&nbsp;&nbsp; <br />
Pragma头域&nbsp;&nbsp;&nbsp; <br />
Pragma头域用来包含实现特定的指令，最常用的是Pragma:no-cache。在HTTP/1.1协议中，它的含义和Cache-Control:no-cache相同。&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
2、请求消息&nbsp;&nbsp;&nbsp; <br />
请求消息的第一行为下面的格式：&nbsp;&nbsp;&nbsp; <br />
Method　SP　Request-URI　SP　HTTP-Version　CRLF　&nbsp;&nbsp;&nbsp; <br />
Method表示对于Request-URI完成的方法，这个字段是大小写敏感的，包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。方法GET和HEAD应该被所有的通用WEB服务器支持，其他所有方法的实现是可选的。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息，只是可以在响应时，不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息，可以用于提交表单，向新闻组、BBS、邮件群组和数据库发送消息。&nbsp;&nbsp;&nbsp; <br />
SP表示空格。&nbsp;&nbsp;&nbsp; <br />
Request-URI遵循URI格式，在此字段为星号（*）时，说明请求并不用于某个特定的资源地址，而是用于服务器本身。&nbsp;&nbsp;&nbsp; <br />
HTTP-Version表示支持的HTTP版本，例如为HTTP/1.1。&nbsp;&nbsp;&nbsp; <br />
CRLF表示换行回车符。&nbsp;&nbsp;&nbsp; <br />
请求头域允许客户端向服务器传递关于请求或者关于客户机的附加信息。请求头域可能包含下列字段Accept、Accept-Charset、Accept- Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If- Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、Max-Forwards、 Proxy-Authorization、Range、Referer、User-Agent。对请求头域的扩展要求通讯双方都支持，如果存在不支持的请求头域，一般将会作为实体头域处理。&nbsp;&nbsp;&nbsp; <br />
典型的请求消息：&nbsp;&nbsp;&nbsp; <br />
GEThttp://class/download.microtool.de:80/somedata.exe&nbsp;&nbsp;&nbsp; <br />
Host:download.microtool.de&nbsp;&nbsp;&nbsp; <br />
Accept:*/*&nbsp;&nbsp; <br />
Pragma:no-cache&nbsp;&nbsp; <br />
Cache-Control:no-cache&nbsp;&nbsp; <br />
Referer:http://class/download.microtool.de/&nbsp;&nbsp; <br />
User-Agent:Mozilla/4.04[en](Win95;I;Nav)&nbsp;&nbsp; <br />
Range:bytes=554554-&nbsp;&nbsp; <br />
上例第一行表示HTTP客户端（可能是浏览器、下载程序）通过GET方法获得指定URL下的文件。棕色的部分表示请求头域的信息，绿色的部分表示通用头部分。&nbsp;&nbsp; <br />
Host头域&nbsp;&nbsp; <br />
Host头域指定请求资源的Intenet主机和端口号，必须表示请求url的原始服务器或网关的位置。HTTP/1.1请求必须包含主机头域，否则系统会以400状态码返回。&nbsp;&nbsp; <br />
Referer头域&nbsp;&nbsp; <br />
Referer头域允许客户端指定请求uri的源资源地址，这可以允许服务器生成回退链表，可用来登陆、优化cache等。他也允许废除的或错误的连接由于维护的目的被追踪。如果请求的uri没有自己的uri地址，Referer不能被发送。如果指定的是部分uri地址，则此地址应该是一个相对地址。&nbsp;&nbsp; <br />
Range头域&nbsp;&nbsp; <br />
Range头域可以请求实体的一个或者多个子范围。例如，&nbsp;&nbsp; <br />
表示头500个字节：bytes=0-499&nbsp;&nbsp; <br />
表示第二个500字节：bytes=500-999&nbsp;&nbsp; <br />
表示最后500个字节：bytes=-500&nbsp;&nbsp; <br />
表示500字节以后的范围：bytes=500-&nbsp;&nbsp; <br />
第一个和最后一个字节：bytes=0-0,-1&nbsp;&nbsp; <br />
同时指定几个范围：bytes=500-600,601-999&nbsp;&nbsp; <br />
但是服务器可以忽略此请求头，如果无条件GET包含Range请求头，响应会以状态码206（PartialContent）返回而不是以200（OK）。&nbsp;&nbsp; <br />
User-Agent头域&nbsp;&nbsp; <br />
User-Agent头域的内容包含发出请求的用户信息。&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
3、响应消息&nbsp;&nbsp; <br />
响应消息的第一行为下面的格式：&nbsp;&nbsp; <br />
HTTP-Version　SP　Status-Code　SP　Reason-Phrase　CRLF&nbsp;&nbsp; <br />
HTTP-Version表示支持的HTTP版本，例如为HTTP/1.1。&nbsp;&nbsp; <br />
Status-Code是一个三个数字的结果代码。&nbsp;&nbsp; <br />
Reason-Phrase给Status-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别，Reason-Phrase主要用于帮助用户理解。Status-Code的第一个数字定义响应的类别，后两个数字没有分类的作用。第一个数字可能取5个不同的值：&nbsp;&nbsp; <br />
1xx:信息响应类，表示接收到请求并且继续处理&nbsp;&nbsp; <br />
2xx:处理成功响应类，表示动作被成功接收、理解和接受&nbsp;&nbsp; <br />
3xx:重定向响应类，为了完成指定的动作，必须接受进一步处理&nbsp;&nbsp; <br />
4xx:客户端错误，客户请求包含语法错误或者是不能正确执行&nbsp;&nbsp; <br />
5xx:服务端错误，服务器不能正确执行一个正确的请求&nbsp;&nbsp; <br />
响应头域允许服务器传递不能放在状态行的附加信息，这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age、 Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW- Authenticate。对响应头域的扩展要求通讯双方都支持，如果存在不支持的响应头域，一般将会作为实体头域处理。&nbsp;&nbsp; <br />
典型的响应消息：&nbsp;&nbsp; <br />
HTTP/1.0200OK&nbsp;&nbsp; <br />
Date:Mon,31Dec200104:25:57GMT&nbsp;&nbsp; <br />
Server:Apache/1.3.14(Unix)&nbsp;&nbsp; <br />
Content-type:text/html&nbsp;&nbsp; <br />
Last-modified:Tue,17Apr200106:46:28GMT&nbsp;&nbsp; <br />
Etag:"a030f020ac7c01:1e9f"&nbsp;&nbsp; <br />
Content-length:39725426&nbsp;&nbsp; <br />
Content-range:bytes554554-40279979/40279980&nbsp;&nbsp; <br />
上例第一行表示HTTP服务端响应一个GET方法。棕色的部分表示响应头域的信息，绿色的部分表示通用头部分，红色的部分表示实体头域的信息。&nbsp;&nbsp; <br />
Location响应头&nbsp;&nbsp; <br />
Location响应头用于重定向接收者到一个新URI地址。&nbsp;&nbsp; <br />
Server响应头&nbsp;&nbsp; <br />
Server响应头包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释，产品标识一般按照重要性排序。&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
4、实体信息&nbsp;&nbsp; <br />
请求消息和响应消息都可以包含实体信息，实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息，实体头包括Allow、Content-Base、Content-Encoding、Content-Language、 Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、 Etag、Expires、Last-Modified、extension-header。extension-header允许客户端定义新的实体头，但是这些域可能无法未接受方识别。实体可以是一个经过编码的字节流，它的编码方式由Content-Encoding或Content-Type定义，它的长度由Content-Length或Content-Range定义。&nbsp;&nbsp; <br />
Content-Type实体头&nbsp;&nbsp; <br />
Content-Type 实体头用于向接收方指示实体的介质类型，指定HEAD方法送到接收方的实体介质类型，或GET方法发送的请求介质类型Content-Range实体头&nbsp;&nbsp; <br />
Content-Range实体头&nbsp;&nbsp; <br />
用于指定整个实体中的一部分的插入位置，他也指示了整个实体的长度。在服务器向客户返回一个部分响应，它必须描述响应覆盖的范围和整个实体长度。一般格式：&nbsp;&nbsp; <br />
Content-Range:bytes-unit　SP　first-byte-pos - last-byte-pos/entity-legth&nbsp;&nbsp; <br />
例如，传送头500个字节次字段的形式：Content-Range:bytes0-499/1234如果一个http消息包含此节（例如，对范围请求的响应或对一系列范围的重叠请求），Content-Range表示传送的范围，Content-Length表示实际传送的字节数。&nbsp;&nbsp; <br />
Last-modified实体头&nbsp;&nbsp; <br />
Last-modified实体头指定服务器上保存内容的最后修订时间。&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
5、 HTTP 头参考（microsoft）&nbsp;&nbsp; <br />
HTTP 请求和 HTTP 响应都使用头发送有关 HTTP 消息的信息。头由一系列行组成，每行都包含名称，然后依次是冒号、空格、值。字段可按任何顺序排列。某些头字段既能用于请求头也能用于响应头，而另一些头字段只能用于其中之一。&nbsp;&nbsp;&nbsp; <br />
许多请求头字段都允许客户端在值部分指定多个可接受的选项，有时甚至可以对这些选项的首选项进行排名。多个项以逗号分隔。例如，客户端可以发送包含 &#8220;Content-Encoding: gzip, compress,&#8221;的请求头，表示可以接受各种压缩类型。如果服务器的响应正文使用 gzip 编码，其响应头中将包含&#8220;Content-Encoding: gzip&#8221;。&nbsp;&nbsp; <br />
有些字段可以在单个头中出现多次。例如，头可以有多个&#8220;Warning&#8221;字段。&nbsp;&nbsp; <br />
下表列出了 HTTP 1.1 头字段。注意：有些头字段是 MIME 字段。MIME 字段在 Internet Engineering Task Force (IETF) 文档 RFC 2045 中进行了定义，但也可用于 HTTP 1.1 协议。有关 MIME 和 HTTP 1.1 规范的详细信息，请参阅 IEIF 页。&nbsp;&nbsp; <br />
一般头字段&nbsp;&nbsp; <br />
一般头字段可用于请求消息和响应消息。&nbsp;&nbsp; <br />
　名称　　　　　　　　　　示例值&nbsp;&nbsp;&nbsp; <br />
Cache-Control　 "max-age=10"&nbsp;&nbsp;&nbsp; <br />
Connection　　　　"close"&nbsp;&nbsp;&nbsp; <br />
Date　　　　　　　　　　"Tue, 11 Jul 2000 18:23:51 GMT"&nbsp;&nbsp;&nbsp; <br />
Pragma　　　　　　　 "no-cache"&nbsp;&nbsp;&nbsp; <br />
Trailer　　　　　　　　 "Date"&nbsp;&nbsp;&nbsp; <br />
Transfer-Encoding "chunked"&nbsp;&nbsp;&nbsp; <br />
Upgrade　　　　　　 "SHTTP/1.3"&nbsp;&nbsp;&nbsp; <br />
Via　　　　　　　　　　　 "HTTP/1.1 Proxy1, HTTP/1.1 Proxy2"&nbsp;&nbsp;&nbsp; <br />
Warning　　　　　　　"112 Disconnected Operation"&nbsp;&nbsp;&nbsp; <br />
请求头字段&nbsp;&nbsp;&nbsp; <br />
请求头字段仅用于请求消息。&nbsp;&nbsp; <br />
　　 名称　　　　　　　　　　　　 示例值&nbsp;&nbsp;&nbsp; <br />
Accept　　　　　　　　　　 "text/html, image/*"&nbsp;&nbsp;&nbsp; <br />
Accept-Charset　　　"iso8859-5"&nbsp;&nbsp;&nbsp; <br />
Accept-Encoding 　"gzip, compress"&nbsp;&nbsp;&nbsp; <br />
Accept-Language　"en, fr"&nbsp;&nbsp;&nbsp; <br />
Authorization　　　　 [credentials]&nbsp;&nbsp;&nbsp; <br />
Content-Encoding　"gzip"&nbsp;&nbsp;&nbsp; <br />
Expect　　　　　　　　　　 "100-continue"&nbsp;&nbsp;&nbsp; <br />
From　　　　　　　　　　　 "user@microsoft.com"&nbsp;&nbsp;&nbsp; <br />
Host　　　　　　　　　　　　"www.microsoft.com"&nbsp;&nbsp;&nbsp; <br />
If-Match　　　　　　　　　"entity_tag001"&nbsp;&nbsp;&nbsp; <br />
If-Modified-Since "Tue, 11 Jul 2000 18:23:51 GMT"&nbsp;&nbsp;&nbsp; <br />
If-None-Match　　　 "entity_tag001"&nbsp;&nbsp;&nbsp; <br />
If-Range　　　　　　　　 "entity_tag001" or "Tue, 11 Jul 2000 18:23:51 GMT"&nbsp;&nbsp;&nbsp; <br />
If-Unmodified-Since "Tue, 11 Jul 2000 18:23:51 GMT"&nbsp;&nbsp;&nbsp; <br />
Max-Forwards　　　　"3"&nbsp;&nbsp;&nbsp; <br />
Proxy-Authorization [credentials]&nbsp;&nbsp;&nbsp; <br />
Range　　　　　　 "bytes=100-599"&nbsp;&nbsp;&nbsp; <br />
Referer　　　　　 "http://www.microsoft.com/resources.asp"&nbsp;&nbsp;&nbsp; <br />
TE　　　　　　　　　　"trailers"&nbsp;&nbsp;&nbsp; <br />
User-Agent　　 "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
&gt;&gt;请求头字段的具体含义&nbsp;&nbsp; <br />
Accept：浏览器可接受的MIME类型。&nbsp;&nbsp;&nbsp; <br />
Accept-Charset：浏览器可接受的字符集。&nbsp;&nbsp;&nbsp; <br />
Accept-Encoding：浏览器能够进行解码的数据编码方式，比如gzip。&nbsp;&nbsp; <br />
Accept-Language：浏览器所希望的语言种类，当服务器能够提供一种以上的语言版本时要用到。&nbsp;&nbsp;&nbsp; <br />
Authorization：授权信息，通常出现在对服务器发送的WWW-Authenticate头的应答中。&nbsp;&nbsp;&nbsp; <br />
Connection：表示是否需要持久连接。如果Servlet看到这里的值为&#8220;Keep-Alive&#8221;，或者看到请求使用的是HTTP 1.1（HTTP 1.1默认进行持久连接），它就可以利用持久连接的优点，当页面包含多个元素时（例如Applet，图片），显著地减少下载所需要的时间。要实现这一点， Servlet需要在应答中发送一个Content-Length头，最简单的实现方法是：先把内容写入ByteArrayOutputStream，然后在正式写出内容之前计算它的大小。&nbsp;&nbsp; <br />
Content-Length：表示请求消息正文的长度。&nbsp;&nbsp;&nbsp; <br />
Cookie：设置cookie,这是最重要的请求头信息之一&nbsp;&nbsp; <br />
From：请求发送者的email地址，由一些特殊的Web客户程序使用，浏览器不会用到它。&nbsp;&nbsp;&nbsp; <br />
Host：初始URL中的主机和端口。&nbsp;&nbsp;&nbsp; <br />
If-Modified-Since：只有当所请求的内容在指定的日期之后又经过修改才返回它，否则返回304&#8220;Not Modified&#8221;应答。&nbsp;&nbsp;&nbsp; <br />
Pragma：指定&#8220;no-cache&#8221;值表示服务器必须返回一个刷新后的文档，即使它是代理服务器而且已经有了页面的本地拷贝。&nbsp;&nbsp;&nbsp; <br />
Referer：包含一个URL，用户从该URL代表的页面出发访问当前请求的页面。&nbsp;&nbsp;&nbsp; <br />
User-Agent：浏览器类型，如果Servlet返回的内容与浏览器类型有关则该值非常有用。&nbsp;&nbsp; <br />
UA-Pixels，UA-Color，UA-OS，UA-CPU：由某些版本的IE浏览器所发送的非标准的请求头，表示屏幕大小、颜色深度、操作系统和CPU类型。&nbsp;&nbsp;&nbsp; <br />
响应头字段&nbsp;&nbsp;&nbsp; <br />
响应头字段仅用于响应消息。&nbsp;&nbsp; <br />
　 名称　　　　　　　　　 示例值&nbsp;&nbsp;&nbsp; <br />
Accept-Ranges　　"none"&nbsp;&nbsp;&nbsp; <br />
Age　　　　　　　　　　　　"2147483648(2^31)"&nbsp;&nbsp;&nbsp; <br />
ETag　　　　　　　　　　　"b38b9-17dd-367c5dcd"&nbsp;&nbsp;&nbsp; <br />
Last-Modified　　　 "Tue, 11 Jul 2000 18:23:51 GMT"&nbsp;&nbsp;&nbsp; <br />
Location　　　　　　　　"http://localhost/redirecttarget.asp"&nbsp;&nbsp;&nbsp; <br />
Proxy-Authenticate [challenge]&nbsp;&nbsp;&nbsp; <br />
Retry-After　　　　　 "Tue, 11 Jul 2000 18:23:51 GMT" or "60"&nbsp;&nbsp;&nbsp; <br />
Server　　　　　　　　　"Microsoft-IIS/5.0"&nbsp;&nbsp;&nbsp; <br />
Vary　　　　　　　　　　　 "Date"&nbsp;&nbsp;&nbsp; <br />
WWW-Authenticate [challenge]&nbsp;&nbsp;&nbsp; <br />
实体头字段&nbsp;&nbsp;&nbsp; <br />
实体头字段可以用于请求消息或响应消息。实体头字段中包含消息实体正文的有关信息，如使用的编码格式。&nbsp;&nbsp; <br />
　　 名称　　　　　　　　　　　 示例值&nbsp;&nbsp;&nbsp; <br />
Allow　　　　　　　　　　　　　　"GET, HEAD"&nbsp;&nbsp;&nbsp; <br />
Content-Encoding　　 "gzip"&nbsp;&nbsp;&nbsp; <br />
Content-Language　　"en"&nbsp;&nbsp;&nbsp; <br />
Content-Length　　　　 "8445"&nbsp;&nbsp;&nbsp; <br />
Content-Location　　　"http://localhost/page.asp"&nbsp;&nbsp;&nbsp; <br />
Content-MD5　　　　　　 [md5-digest]&nbsp;&nbsp;&nbsp; <br />
Content-Range　　　　 "bytes 2543-4532/7898"&nbsp;&nbsp;&nbsp; <br />
Content-Type　　　　　　"text/html"&nbsp;&nbsp;&nbsp; <br />
Expires　　　　　　　　　　　"Tue, 11 Jul 2000 18:23:51 GMT"&nbsp;&nbsp;&nbsp; <br />
Last-Modified　　　　　 "Tue, 11 Jul 2000 18:23:51 GMT"&nbsp;&nbsp;&nbsp; <br />
&gt;&gt;实体头字段的具体含义&nbsp;&nbsp; <br />
Allow 服务器支持哪些请求方法（如GET、POST等）。&nbsp;&nbsp; <br />
Content-Encoding 文档的编码（Encode）方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的下载时间。Java的GZIPOutputStream可以很方便地进行gzip压缩，但只有Unix上的Netscape和Windows上的IE 4、IE 5才支持它。&nbsp;&nbsp; <br />
Content-Length 表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。&nbsp;&nbsp; <br />
Content-Type 表示后面的文档属于什么MIME类型。Servlet默认为text/plain，但通常需要显式地指定为text/html。&nbsp;&nbsp; <br />
Date 当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。&nbsp;&nbsp;&nbsp; <br />
Expires 应该在什么时候认为文档已经过期，从而不再缓存它？&nbsp;&nbsp;&nbsp; <br />
Last-Modified 文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期，该请求将被视为一个条件GET，只有改动时间迟于指定时间的文档才会返回，否则返回一个304（Not Modified）状态。&nbsp;&nbsp; <br />
Location 表示客户应当到哪里去提取文档。Location通常不是直接设置的，而是通过HttpServletResponse的sendRedirect方法，该方法同时设置状态代码为302。&nbsp;&nbsp;&nbsp; <br />
Refresh 表示浏览器应该在多少时间之后刷新文档，以秒计。除了刷新当前文档之外，你还可以通过setHeader("Refresh", "5; URL=http://host/path")让浏览器读取指定的页面。&nbsp;&nbsp;&nbsp; <br />
注意这种功能通常是通过设置HTML页面HEAD区的＜META HTTP-EQUIV="Refresh" C＞实现，这是因为，自动刷新或重定向对于那些不能使用CGI或Servlet的HTML编写者十分重要。但是，对于Servlet来说，直接设置 Refresh头更加方便。&nbsp;&nbsp;&nbsp; <br />
注意Refresh的意义是&#8220;N秒之后刷新本页面或访问指定页面&#8221;，而不是&#8220;每隔N秒刷新本页面或访问指定页面 &#8221;。因此，连续刷新要求每次都发送一个Refresh头，而发送204状态代码则可以阻止浏览器继续刷新，不管是使用Refresh头还是＜META HTTP-EQUIV="Refresh" ...＞。&nbsp;&nbsp;&nbsp; <br />
注意Refresh头不属于HTTP 1.1正式规范的一部分，而是一个扩展，但Netscape和IE都支持它。&nbsp;&nbsp;&nbsp; <br />
请求头示例&nbsp;&nbsp; <br />
以下是 HTTP 请求的简单示例。&nbsp;&nbsp; <br />
GET /articles/news/today.asp HTTP/1.1&nbsp;&nbsp; <br />
Accept: */*&nbsp;&nbsp;&nbsp; <br />
Accept-Language: en-us&nbsp;&nbsp;&nbsp; <br />
Connection: Keep-Alive&nbsp;&nbsp;&nbsp; <br />
Host: localhost&nbsp;&nbsp;&nbsp; <br />
Referer: http://localhost/links.asp&nbsp;&nbsp;&nbsp; <br />
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)&nbsp;&nbsp;&nbsp; <br />
Accept-Encoding: gzip, deflate&nbsp;&nbsp;&nbsp; <br />
该请求具有请求行，其中包括方法 (GET)、资源路径 (/articles/news/today.asp) 和 HTTP 版本 (HTTP/1.1)。由于该请求没有正文，故所有请求行后面的内容都是头的一部分。紧接着头之后是一个空行，表示头已结束。&nbsp;&nbsp;&nbsp; <br />
响应头示例&nbsp;&nbsp;&nbsp; <br />
Web 服务器可以通过多种方式响应前一个请求。假设文件是可以访问的，并且用户具有查看该文件的权限，则响应类似于：&nbsp;&nbsp;&nbsp; <br />
HTTP/1.1 200 OK&nbsp;&nbsp;&nbsp; <br />
Server: Microsoft-IIS/5.0&nbsp;&nbsp;&nbsp; <br />
Date: Thu, 13 Jul 2000 05:46:53 GMT&nbsp;&nbsp;&nbsp; <br />
Content-Length: 2291&nbsp;&nbsp;&nbsp; <br />
Content-Type: text/html&nbsp;&nbsp;&nbsp; <br />
Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ; path=/&nbsp;&nbsp;&nbsp; <br />
Cache-control: private&nbsp;&nbsp;&nbsp; <br />
...&nbsp;&nbsp;&nbsp; <br />
响应的第一行称为状态行。它包含响应所用的 HTTP 版本、状态编码 (200) 和原因短语。示例中包含一个头，其中具有五个字段，接着是一个空行（回车和换行符），然后是响应正文的头两行。&nbsp;&nbsp;&nbsp; <br />
有关HTTP头完整、详细的说明，请参见http://www.w3.org/Protocols/的HTTP规范。&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
附录:HTTP协议状态码的含义&nbsp;&nbsp;&nbsp; <br />
　　状态代码 状态信息 含义&nbsp;&nbsp;&nbsp;&nbsp; <br />
100 Continue 初始的请求已经接受，客户应当继续发送请求的其余部分。（HTTP 1.1新）&nbsp;&nbsp;&nbsp; <br />
101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议（HTTP 1.1新&nbsp;&nbsp;&nbsp; <br />
200 OK 一切正常，对GET和POST请求的应答文档跟在后面。&nbsp;&nbsp;&nbsp; <br />
201 Created 服务器已经创建了文档，Location头给出了它的URL。&nbsp;&nbsp;&nbsp; <br />
202 Accepted 已经接受请求，但处理尚未完成。&nbsp;&nbsp;&nbsp;&nbsp; <br />
203 Non-Authoritative Information 文档已经正常地返回，但一些应答头可能不正确，因为使用的是文档的拷贝（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
204 No Content 没有新文档，浏览器应该继续显示原来的文档。&nbsp;&nbsp;&nbsp; <br />
205 Reset Content 没有新的内容，但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
206 Partial Content 客户发送了一个带有Range头的GET请求，服务器完成了它（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
300 Multiple Choices 客户请求的文档可以在多个位置找到，这些位置已经在返回的文档内列出。如果服务器要提出优先选择，则应该在Location应答头指明。&nbsp;&nbsp;&nbsp;&nbsp; <br />
301 Moved Permanently 客户请求的文档在其他地方，新的URL在Location头中给出，浏览器应该自动地访问新的URL。&nbsp;&nbsp;&nbsp;&nbsp; <br />
302 Found 类似于301，但新的URL应该被视为临时性的替代，而不是永久性的。注意，在HTTP1.0中对应的状态信息是&#8220;Moved Temporatily&#8221;，出现该状态代码时，浏览器能够自动访问新的URL，因此它是一个很有用的状态代码。注意这个状态代码有时候可以和301替换使用。例如，如果浏览器错误地请求http://host/~user（缺少了后面的斜杠），有的服务器返回301，有的则返回302。严格地说，我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。&nbsp;&nbsp;&nbsp;&nbsp; <br />
303 See Other 类似于301/302，不同之处在于，如果原来的请求是POST，Location头指定的重定向目标文档应该通过GET提取（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求（一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档）。服务器告诉客户，原来缓冲的文档还可以继续使用。&nbsp;&nbsp;&nbsp; <br />
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取（HTTP 1.1新）。&nbsp;&nbsp;&nbsp; <br />
307 Temporary Redirect 和302（Found）相同。许多浏览器会错误地响应302应答进行重定向，即使原来的请求是POST，即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因，HTTP 1.1新增了307，以便更加清除地区分几个状态代码：当出现303应答时，浏览器可以跟随重定向的GET和POST请求；如果是307应答，则浏览器只能跟随对GET请求的重定向。（HTTP 1.1新）&nbsp;&nbsp;&nbsp;&nbsp; <br />
400 Bad Request 请求出现语法错误。&nbsp;&nbsp;&nbsp;&nbsp; <br />
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头，浏览器据此显示用户名字/密码对话框，然后在填写合适的Authorization头后再次发出请求。&nbsp;&nbsp;&nbsp;&nbsp; <br />
403 Forbidden 资源不可用。服务器理解客户的请求，但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。&nbsp;&nbsp;&nbsp;&nbsp; <br />
404 Not Found 无法找到指定位置的资源。这也是一个常用的应答，&nbsp;&nbsp;&nbsp;&nbsp; <br />
405 Method Not Allowed 请求方法（GET、POST、HEAD、DELETE、PUT、TRACE等）对指定的资源不适用。（HTTP 1.1新）&nbsp;&nbsp;&nbsp;&nbsp; <br />
406 Not Acceptable 指定的资源已经找到，但它的MIME类型和客户在Accpet头中所指定的不兼容（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
407 Proxy Authentication Required 类似于401，表示客户必须先经过代理服务器的授权。（HTTP 1.1新）&nbsp;&nbsp;&nbsp; <br />
408 Request Timeout 在服务器许可的等待时间内，客户一直没有发出任何请求。客户可以在以后重复同一请求。（HTTP 1.1新）&nbsp;&nbsp;&nbsp;&nbsp; <br />
409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突，因此请求不能成功。（HTTP 1.1新）&nbsp;&nbsp;&nbsp; <br />
410 Gone 所请求的文档已经不再可用，而且服务器不知道应该重定向到哪一个地址。它和404的不同在于，返回407表示文档永久地离开了指定的位置，而404表示由于未知的原因文档不可用。（HTTP 1.1新）&nbsp;&nbsp;&nbsp; <br />
411 Length Required 服务器不能处理请求，除非客户发送一个Content-Length头。（HTTP 1.1新）&nbsp;&nbsp;&nbsp; <br />
412 Precondition Failed 请求头中指定的一些前提条件失败（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求，则应该提供一个Retry-After头（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
414 Request URI Too Long URI太长（HTTP 1.1新）。&nbsp;&nbsp;&nbsp;&nbsp; <br />
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。（HTTP 1.1新）&nbsp;&nbsp;&nbsp;&nbsp; <br />
500 Internal Server Error 服务器遇到了意料不到的情况，不能完成客户的请求。&nbsp;&nbsp;&nbsp;&nbsp; <br />
501 Not Implemented 服务器不支持实现请求所需要的功能。例如，客户发出了一个服务器不支持的PUT请求。&nbsp;&nbsp;&nbsp; <br />
502 Bad Gateway 服务器作为网关或者代理时，为了完成请求访问下一个服务器，但该服务器返回了非法的应答。&nbsp;&nbsp;&nbsp;&nbsp; <br />
503 Service Unavailable 服务器由于维护或者负载过重未能应答。&nbsp;&nbsp;&nbsp; <br />
504 Gateway Timeout 由作为代理或网关的服务器使用，表示不能及时地从远程服务器获得应答。（HTTP 1.1新）&nbsp;&nbsp;&nbsp;&nbsp; <br />
505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本&nbsp; <br />
</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/248206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-12-25 10:25 <a href="http://www.blogjava.net/orangelizq/archive/2008/12/25/248206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]什么是开源软件？</title><link>http://www.blogjava.net/orangelizq/archive/2008/11/19/241307.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Wed, 19 Nov 2008 03:20:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/11/19/241307.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/241307.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/11/19/241307.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/241307.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/241307.html</trackback:ping><description><![CDATA[<p>作者：硅谷动力　　2008-11-07 10:20:46&nbsp;&nbsp;<br />
<br />
&nbsp;<br />
　　1997春天，自由软件社团的一些领导者聚集到加利福尼亚州。这个社团包括EricRaymond，TimO&#8217;Rerlly，VA Research的总裁Larry Augustin等人，他们所关心的是一种寻找方式，来向以前躲避自由软件思想的人们推广这种思想。他们担心，自由软件基金会的反商业信条会让人们对自由软件敬而远之。</p>
<p>　　在Eric Raymond的坚持下，这群人同意他们所缺乏的是市场营销活动，这个活动的目的是赢得思想，而不仅仅是市场份额。最后讨论的结果产生了一个新的术语来描述他们所推进的软件：Open Source(开烦扰软件)。他们制定了一系列的指导原则，用来描述哪些软件可以有资格被称为开源软件。</p>
<p>　　Bruce Perens 为制定开源软件的定义做了很多基础性的工作。GNU工程的正式目标之一就是创造一个自由可用的操作系统，以作为平台来运行GNU软件。从软件引导（softwera boottstrapping）的传统观点来看，Linux已经成为那个平台，L inux是在GNU工具的帮助下创造出来的。Perens曾经是Debian工程的领导者，它所管理的Linux发行版本，只包括那些符合GNU精神的软件。Perens已经在&#8220;Debian社会契约&#8221;（Debian Social Contract）中明确地阐明了这一立场。开源软件的定义是&#8220;Debian社会契约&#8221;的直接产物，因此开源软件是与GNU的精神一脉相承的。</p>
<p>　　与GPL相比，开源软件的定义允许更大授权自由。特别是当软件中混合了专有软件和开源软件时，开源软件的定义允许在它们的基础上生成更大的混合。</p>
<p>　　结果是，开源软件许可证能令人信服地允许使用和再分开开源软件，而不必考虑补偿或者信用问题。举例来讲，你可以得到伟大的Netscape浏览器的源代码，并且把它作为连同另一个软件（可能是专有软件）一起发布出去，而用不着去通知网景（Netscape）公司。网景为什么会希望如此呢？原因很多，最引人注目的是，这样做可以为他们的客户端代码赢得更大的市场份额。这些代码与他们的商业软件一起工作得的非常好。从这个角度来说，奉送源代码是建立平台的一个很好的方式。这也是网景的人不使用GPL的原因之一。</p>
<p>　　这在社团中可不是小事一桩。1998年下半年，曾经有一场重要的争论对Linux威胁极大，几乎Linux社团破裂。裂痕是因出现了两个软件系统GNOME和KDE而引发的，它们两者都试图建立一个面向对象的桌面界面。一方面，KDE利用了Troll Technology公司的Qt库，其中的一部分属于专有代码，但是很稳定、很成熟。另一方面，GNOME决定使用GTK+库，尽管它不如Qt成熟，但是它是完全自由的库。</p>
<p>　　过去，Troll Technology不得不在使用GPL和维持他们的专有软件立场之间进行选择。GNOME和KDE的裂痕本来会持续下去。然而，在开源软件出现后，虽然Troll仍然控制他们想要的技术，但是Troll可以为希望Qt符合开源软件定义的人改变他们的许可证。Linux社团两个重要部分的裂痕看来要弥合了。</p>
<p>　　开源软件的意义</p>
<p>　　在AMD追赶英特尔的漫漫长途中，一句广为流传的话是这样说的：&#8220;AMD的存在，不仅深受AMD客户的拥护，也是英特尔用户的福气，因为它打压了英特尔的高价垄断。&#8221;同样，开源软件相对于商业软件也是同样的道理，尤其是对那些具有垄断性质的软件来说，开源软件更显其深远意义。</p>
<p>　　君不见在IBM、Sun等公司推动OpenOffice系统成为业界标准的进逼下，顽固如微软者也不得不把MS Office拿出来充公。显然，随着开源软件的流行，商业软件不仅被压缩了发展空间，同时也促使软件商们不断地降低软件价格，给消费者带来了显而易见的利益。</p>
<p>　　身兼开放源代码应用基金会(OSAF)总裁和主席以及Mozilla基金会主席的Kapor先生就表示，这两个基金会并不是要创建新的杀手程序，而是要利用开源软件的模式削弱微软在网络浏览器和电子邮件软件领域的垄断地位。</p>
<p>　　事实上，对一些发展中国家，或者说那些软件业欠发达国家来说，开源软件还为他们制造了后发优势，提供了追赶和超越发达国家软件业的机会。毕竟，对于像中国这样的发展中国家，软件业的发展严重滞后，完全依靠国内的资金和人才要想赶超像美国这样的软件大国，几乎是没有机会的，充其量只能是一种理想。但是，如果能在基于开源软件的基础上加大投入的话，这种理想就有了实现的可能。</p>
<p>　　 当然，不得不提的是，业界也有人怀疑，开源软件是否会扼杀国内软件人士的努力。就像AMD前段时间向我们提供X86技术一样，有人担心会使国人失去研究龙芯的兴致。还有人认为，像MS Office这样的软件如果都开源的话，那么微软们就不可能再投入大量的资金进行开发和升级，从而也会间接地阻碍软件业的发展。这些言论有一定道理，但开源的意义就是为了挖掘新的产业模式，这种探索精神正是我们世代所鼓励的。 </p>
<p>赢利模式是开源软件发展的根本</p>
<p>　　8月3日上午，以火狐(Firefox)浏览器闻名于世的Mozilla基金会，宣布成立一家子公司Mozilla Corporation，以便投入可创造收益的商业活动。作为一家著名的开源软件组织，Mozilla的行为招致大量质疑。人们之所以有这样的反应，就是因为认定开源软件出现的初衷就是免费和开放源代码，Mozilla的行为看起来无疑是违背了二大法条之一的免费。</p>
<p>　　但是，开源软件的免费说至少就目前看来，可能是人们的一种误解。让我们简单地扫描一下当前开源软件的运营模式：第一种，软件完全免费，后续服务收费。像当前的Red Hat Linux就是使用这样的模式。但是，这种模式并不是每一家开源企业都能使用的，也只有像Red Hat这样的行业领先者才有这样的资本。第二种，软件免费，没有售后服务，在软件市场成熟后，靠出售专利谋生。这种方式的代表是Foxmail。第三种，应用服务提供模式。在这种模式下，软件和服务都是免费，企业按时间交纳使用费。最主要的运营模式也就是这几种，其他种类的模式其实都是这几种模式的演化和变种。从中我们可以看出，开源软件本身的确是免费的，但开发者最初的意图其实是为了通过后续服务或出售专利等方式获利。从这个层面来说，天下的确没有免费的误餐。</p>
<p>　　当然，不排除一些真正的免费的开源软件，不过这只能是一些小型的软件。这些软件不需要集中太多人的就能开发出来，后续也不需要太多人的来维护和升级。而对一些大型软件诸如操作系统等，当前不可能成为免费的开源软件。因此说，如果开源软件找不到自己的赢利模式的话，就很难生存下去，更别提发展了。上海中标软件有限公司常务副总经理秦勇就表示，&#8220;在中国国内Linux市场上，虽然现在起得很快，但是整个市场容量、整个市场还不够大，还不足以养活号称国内有9家企业的庞大的Linux家族。&#8221;这句话背后的潜台词，很显然企业还是要靠Linux赢利的。</p>
<p>　　在笔者看来，开源软件的意义就在意源代码的开源，免费只能说是它的一种说法，并不代表实质性意义。因此说，开源软件企业要想生存和发展下去，肯定得寻找自己的赢利模式。然而，就目前来说，能通过开源软件赢利的太少了，即使像Red Hat这样的业界巨头，2004年才实现2亿美金的营业额，别的企业业绩如何可想而知。</p>
<p>　　事实上，当前无论是国际还是国内的开源软件组织和企业都是少之又少，原因何在，就是因为这些组织和企业没有找到可行的赢利模式，从而没有足够的资金支持企业持续发展下去。</p>
<p>　　高级人才是开源软件发展的瓶颈</p>
<p>　　就像本文开篇时说的那样，国内外开源软件业都存在缺乏高级人才的问题。当前，开源软件业的一致观点就是：人才数量不缺，缺的是质量。实际上这句话更准确地表示应该是：人数不缺，缺的是人才。据业内人士分析，开源软件目前能够想到的赢利模式都是为企业服务的。但是，目前的开源企业总体上规模很小，由几个人到几十人公司都有，然而，大型企业对这样的小企业，包括几百人的软件企业，都会持不信任的态度。Novell中国区市场与渠道总监罗威就表示，在两年前，Novell之所以收购SUSE，一方面当然是业务发展的需要，另一方面其实也有扩大规模的动机。当前，Novell公司在全球已有数千人。Novell通过这种扩张，就是想把非常好的技术放到坚实的企业平台上，两者结合，探索出新的，为企业级支撑提供好的方法的盈利的比较好的道路。</p>
<p>　　然而，开源软件虽然发展几乎与商业软件同步，甚至可以说更早，但其真正以产业的形式问世，不过几十年时间。在这么短的时间里，又受限于规模的制约，不可能培养大批的开源软件人才，而缺乏开源软件人才又进一步制约着开源软件的发展，这就形成了开源软件当前面临的恶性循环。同时，由于开源软件本身的免费，对于刚起步的企业来说，就存在资金的瓶颈，在没有投资者注资的情况下，企业就很难持续提供高薪给企业员工，这实际上也是制约开源软件发展的重要原因。毕竟，高级管理人才是从普通员工培养而来的，没有大批的后备队伍，高级管理人才从何而来啊？</p>
<p>　　就目前来说，虽然开源软件的高级管理人才工资很高，但这只不过是极少数的人，对普通员工来说，工资其实并不高。所以说，从行业的角度分析，开源软件缺的可能不是人才，而是资金。大丈夫何患无妻，开源软件业有钱了又何患无人呢。<br />
</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/241307.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-11-19 11:20 <a href="http://www.blogjava.net/orangelizq/archive/2008/11/19/241307.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]web 3.0 的思考</title><link>http://www.blogjava.net/orangelizq/archive/2008/03/24/188329.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Mon, 24 Mar 2008 11:18:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/03/24/188329.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/188329.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/03/24/188329.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/188329.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/188329.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; web 3.0 的思考<br />
<br />
钱宏武, 原SOHU互动产品部技术主管, 负责规划系统结构和设计, 产品包括 SOHU社区和SOHU直播间。个人空间：http://spaces.msn.com/qianhw/</p>
<p>&nbsp;&nbsp;&nbsp; 俺们老大总是说一句话，叫&#8220;WEB 2.0", 让他很是郁闷的是很多叫不上口，摆不上桌面的网站也叫嚣自己是正宗的web2.0， 就像俺们街口的小贩前面放一个&#8221;正宗臭豆腐&#8220; 牌子一样，只是俺写程序出身，从来看不清楚什么叫WEB2.0,或者说web2.0和所谓1.0 有什么不同， 因为按照他们归纳这个WEB2.0 包括博客，社区，等等我看来和CMS没有什么不一样， 后来俺和一个MM讨论社区的时候，发现一个人的思维是有一个定式的，而且你不太可能改变， MM认为BBS和社区不是同一个东西，BBS是需要登陆，注意这个mm她从来都是用TELNET的方式上清华bbs，然后用IE上sohu社区看减肥，在她的思维观念中， 这是两个完全不同的世界，我怎么说，也无法说服她，最后只能放弃，而她男友在旁边幸灾乐祸，估计他早料到这结果，让俺这个傻乎乎的鸡蛋去碰石头。从这个文科MM或者说他们这种文科的思维方式，是形式决定内容的方式。<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; 看来我需要转换一个观点，从形式来看这个WEB2.0, 这些产品的特征都是发的人众多，博客，社区，都是这样，2。0是把写作从一个少数人权力变成全天下都能使用的权力， 就像演戏一样，李亚朋这种视觉的噩梦能让普通人代替，虽然他们未必出彩，但起码能够让俺们怎么看都不会吐。由于这种特征，可见2.0更多的体现的是一种平民参与的意识，就是说在能控制的范围内，你能做以前只有少数所谓精英人群才能做的事情。从这个方面来看，RSS基本不太能算到2.0里面去，他只能算是1.0的扩展表现形式。而博客是淋漓尽至的体现。&nbsp; 并且将一种人群扩大了，就是演员，因为观众越来越多，演员也需要越来越多，从而能够从不同的方面来吸引的越来越多的人来参与。茅台开封是香飘万里，俺们习惯了让人喜欢都是香的，对于臭豆腐，或者怪味豆都理所当然认为不好，却不知道这些东西喜欢的也是众多的， 所以在这里束缚我们发展的，更多的是我们自己的观点。<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; 而2.0的好处就是说你的观点无法约束这些表现形式，他只是一个平台，一个展示的平台，舞的好不好，标准是观众，而不是一个审判台好不好是掌握在少数，或者说一个人手里手里。所以为什么俺们老大不停的说这个WEB2.0, 就是想改变这种公司的网站象审判台感觉，希望更多选择权力能让大众参与，从社区战略， 博客战略，都是这种思维，所以最大的老大提出技术回归也是这个道理，毕竟平台的制作需要的是技术，说的明白一点就是需要一群好工人，搭一个足够大的架子，制作一个规则，然后起码能装下全北京的人，让后让这帮人在里面HAPPY.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 而这个时候，俺发现这个时候，从来都是位于最后面一层的技术开始面对直接面对用户了，以前都是编辑，销售什么的，而技术面对直接用户最大的问题仍然是一个思维方式，就是是技术观点约束我们自己的发展，可见这个时候如此多的人和内容的时候，如何组织就成了一个巨大的问题，就像网路上讨论航空母舰一样，有人说，按照我们造船能力，造一个航母不成问题， 只是如何造和如何管理是一个巨大的问题， 换句话来说，到了2。0时候， 面对海量的内容和观众，这个规则就成了一个巨大的问题，一个大的规则来定义所有的内容和观众，肯定是不行，现在不是文革，个性话需求会越来越多，靠所谓的产品人员来想规则，则仍然回到了1.0的审判台时代，这一小群人来管理控制一个大的不可思亦的东西，就像恐龙头上一个小的可怜的大脑，最后结果当然和恐龙一样，就是绝种，如何让这个身躯庞大的东西运行起来，非需要一个超大智慧不可。 谁能解决这个问题，并且付足于现实，谁就能再次一统江湖<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; 于是就有了web3.0之说，这个很早是俺看的一个哥们提出的： 叫下一代WEB3.0是大家来定义规则，俺当时看的很是云里雾里，就像算命的说俺未来什么样子， 就说一个竭语，什么遇腊而擒， 个人认为又是某个弱智出来混淆视听，而今天看见"雅虎推四种新编程接口 能自行开发网络应用", 突然想到，我靠，那个WEB3.0好像也YAHOO的一个乌龟提出来的， 这个WEB3.0， 我在今年玩魔兽的时候体会很深，这好象不是一个弱智的呓语，而真的是一个可以实现的东西，作为世界游戏的王者，暴雪，从来不缺天才的想法和创意，在星际中，就有地图编辑器，我当时还不明白为什么， 到了魔兽的编辑器出来，发现在魔兽最好玩的地图，都是网友开发出来的，很多地图，如：幻想群侠传，&nbsp; 玩着玩着， 我都很惊诧， 这帮人是怎么想到的， 还有三国系列， 超级金字塔， 真的让人叹为观止， 而这些，我想， 如果说GAME能够这么分，暴雪已经实现了GAME 3.0。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 而web 3.0 也是需要仿照他一样， 就是说我们的程序规则也需要有一个方式让普通人能够参与进来，从而我们不是搭一个台子让这些人进行游戏，而是给这些人工具，让他们帮我们搭一个足够大的世界， 来容纳下足够大的内容和观众，想一下，一个平台能容纳多少人来搭建， WEB1.0时代，我们需要编辑，最多有多少，1000个? 2.0时代，社区每天发贴的人是5－7万，多一点就能上十万，博客甚至能包括象徐进雷这样的名记， 同样，在3.0 时代，我们能够建立建立规则能够让普通网友参与这个平台的建设，就像我们在全世界各地有无数工程师一样， 而且是无数天才的工程师～ ，想想看，普通的写文章，通过平台，就能产生这么大的能量， 号称现代工业社会之魂的工程师协助我们建设这个平台，将是怎样的一种盛况。</p>
<p>&nbsp;&nbsp; 这个YAHOO就走在前面，作为互联网的始坐勇者， 搜索是他最早提出的，却因为没有坚持，这个不知道会怎么样？<br />
</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/188329.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-03-24 19:18 <a href="http://www.blogjava.net/orangelizq/archive/2008/03/24/188329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《网络时代的软件工程》报告--有感</title><link>http://www.blogjava.net/orangelizq/archive/2008/03/18/186970.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 18 Mar 2008 04:32:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/03/18/186970.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/186970.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/03/18/186970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/186970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/186970.html</trackback:ping><description><![CDATA[<span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">前段时间去听了一场 <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">李德毅</span> <span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">院士 </span>报告会：</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">《网络时代的软件工程》</span> <br />
<span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">仅仅讲了</span><span lang="EN-US">40</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分钟，但所展现的观点非常新颖，有深度，而且还深入浅出，真不愧是大师啊！将其主要观点整理如下：</span>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="color: blue; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件是在系统里工作的吗？</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 150%; mso-outline-level: 1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: red"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>NO1. </span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件在网络环境下工作</span><span lang="EN-US" style="color: red"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件工程</span><span lang="EN-US">40</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年的尴尬，一直以自我为中心。</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="color: blue; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需求是软件生命周期中的一个阶段吗？</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 150%; mso-outline-level: 1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: red"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>NO2. </span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件工程向需求工程倾斜</span><span lang="EN-US" style="color: red"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件是服务业</span><span lang="EN-US">)</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="color: blue; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件工程是分层结构吗？</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 150%; mso-outline-level: 1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: red"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>NO3. </span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件结构可以用网络拓扑来表示。</span><span lang="EN-US" style="color: red"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件最重要的是其交互。</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">网络上软件的交互一般有三种：单向消息，双向数据交互，方法调用</span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt"><span lang="EN-US" style="color: blue; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件是强结构好，还是弱结构好？</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 150%; mso-outline-level: 1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: red"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>NO4. </span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">问题形式化向本体描述方向发展</span><span lang="EN-US" style="color: red"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">体系结构</span><span lang="EN-US">(architecture) </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不如</span><span lang="EN-US"> Framework</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US" style="color: blue">5. </span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件是开发出来的吗？</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 150%; mso-outline-level: 1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: red"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>NO5. </span></strong><strong style="mso-bidi-font-weight: normal"><span style="color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件在演化中生长完善。</span><span lang="EN-US" style="color: red"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">资源与服务：</span> </strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">资源是所拥有的，服务是用户所需求的。</span><span lang="EN-US"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></strong></p>
<p class="MsoNormal"><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件工程和其他工程其实没有什么不同，只是因为软件是无形的，所以更难以测试。</span><span lang="EN-US"><o:p></o:p></span></strong></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/186970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-03-18 12:32 <a href="http://www.blogjava.net/orangelizq/archive/2008/03/18/186970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搜索英文论文的网站</title><link>http://www.blogjava.net/orangelizq/archive/2008/01/03/172566.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 03 Jan 2008 12:30:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/01/03/172566.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/172566.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/01/03/172566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/172566.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/172566.html</trackback:ping><description><![CDATA[<p><font style="background-color: #eff8f0">搜索英文论文的网站</font></p>
<p><font style="background-color: #eff8f0">http://citeseer.ist.psu.edu/<br />
http://dblp.uni-trier.de/<br />
http://www.computer.org/portal/site/ieeecs/index.jsp<br />
http://smealsearch2.psu.edu/index.html/<br />
http://portal.acm.org/portal.cfm<br />
http://www.vldb.org/</font></p>
  <img src ="http://www.blogjava.net/orangelizq/aggbug/172566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-01-03 20:30 <a href="http://www.blogjava.net/orangelizq/archive/2008/01/03/172566.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>事业部制组织结构 与 矩阵式组织结构</title><link>http://www.blogjava.net/orangelizq/archive/2007/12/02/164686.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 02 Dec 2007 11:59:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/12/02/164686.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/164686.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/12/02/164686.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/164686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/164686.html</trackback:ping><description><![CDATA[<p><span style="color: #0000ff">事业部制组织结构</span> 与 <span style="color: #0000ff">矩阵式组织结构<br />
<br />
<br />
<span style="color: #0000ff">事业部制组织结构</span></span></p>
<p>事业部制最早是由美国通用汽车公司总裁斯隆于1924年提出的，故有&#8220;斯隆模型&#8221;之称，也叫&#8220;联邦分权化&#8221;，是一种高度（层）集权下的分权管理体制。它适用于规模庞大，品种繁多，技术复杂的大型企业，是国外较大的联合公司所采用的一种组织形式，近几年我国一些大型企业集团或公司也引进了这种组织结构形式。 <br />
事业部制是分级管理 、分级核算、自负盈亏的一种形式，即一个公司按地区或按产品类别分成若干个事业部，从产品的设计，原料采购，成本核算，产品制造，一直到产品销售，均由事业部及所属工厂负责，实行单独核算，独立经营，公司总部只保留人事决策，预算控制和监督大权，并通过利润等指标对事业部进行控制。也有的事业部只负责指挥和组织生产，不负责采购和销售，实行生产和供销分立，但这种事业部正在被产品事业部所取代。还有的事业部则按区域来划分。这里就产品事业部和区域事业部做些简单的介绍。 </p>
<p><br />
(1)产品事业部（又称产品部门化） <br />
按照产品或产品系列组织业务活动，在经营多种产品的大型企业中早已显得日益重要。产品部门化主要是以企业所生产的产品为基础，将生产某一产品有关的活动，完全置于同一产品部门内，再在产品部门内细分职能部门，进行生产该产品的工作。这种结构形态，在设计中往往将一些共用的职能集中，由上级委派以辅导各产品部门，做到资源共享。 </p>
<p>产品部门化的优点是： <br />
①有利于采用专业化设备，并能使个人的技术和专业化知识得到最大限度的发挥； <br />
②每一个产品部都是一个利润中心，部门经理承担利润责任，这有利于总经理评价各部门的政绩； <br />
③在同一产品部门内有关的职能活动协调比较容易，比完全采用职能部门管理来得更有弹性； <br />
④容易适应企业的扩展与业务多元化要求。<br />
&nbsp;<br />
产品部门化的缺点是： <br />
①需要更多的具有全面管理才能的人才，而这类人才往往不易得到； <br />
②每一个产品分部都有一定的独立权力，高层管理人员有时会难以控制； <br />
③对总部的各职能部门，例如人事、财务等，产品分部往往不会善加利用，以至总部一些服务不能获得充分的利用。 </p>
<p><br />
(2)区域事业部制（又称区域部门化） <br />
对于在地理上分散的企业来说，按地区划分部门是一种比较普遍的方法。其原则是把某个地区或区域内的业务工作集中起来，委派一位经理来主管其事。按地区划分部门，特别适用于规模大的公司，尤其是跨国公司。这种组织结构形态，在设计上往往设有中央服务部门，如采购 、人事、财务、广告等，向各区域提供专业性的服务。 </p>
<p>部门化的优点是： <br />
①责任到区域，每一个区域都是一个利润中心，每一区域部门的主管都要负责该地区的业务盈亏； <br />
②放权到区域，每一个区域有其特殊的市场需求与问题，总部放手让区域人员处理，会比较妥善、实际； <br />
③有利于地区内部协调； <br />
④对区域内顾客比较了解，有利于服务与沟通； <br />
⑤每一个区域主管，都要担负一切管理职能的活动，这对培养通才管理人员大有好处。 </p>
<p>其缺点是： <br />
①随着地区的增加，需要更多具有全面管理能力的人员，而这类人员往往不易得到； <br />
②每一个区域都是一个相对独立的单位，加上时间，空间上的限制，往往是&#8220;天高皇帝远&#8221;，总部难以控制； <br />
③由于总部与各区域是天各一方，难以维持集中的经济服务工作。 <br />
总体来说，事业部必须具有三个基本要素：即相对独立的市场；相对独立的利益；相对独立的自主权。 <br />
事业部制的好处是：总公司领导可以摆脱日常事务，集中精力考虑全局问题；事业部实行独立核算，更能发挥经营管理的积极性，更利于组织专业化生产和实现企业的内部协作；各事业部之间有比较，有竞争，这种比较和竞争有利于企业的发展；事业部内部的供、产、销之间容易协调，不像在直线职能制下需要高层管理部门过问；事业部经理要从事业部整体来考虑问题，这有利于培养和训练管理人才。 <br />
事业部的缺点是：公司与事业部的职能机构重叠，构成管理人员浪费；事业部实行独立核算，各事业部只考虑自身的利益，影响事业部之间的协作，一些业务联系与沟通往往也被经济关系所替代。甚至连总部的职能机构为事业部提供决策咨询服务时，也要事业部支付咨询服务费。 </p>
<p>&nbsp;</p>
<p><span style="color: #0000ff">矩阵式结构<br />
</p>
<p><br />
<span><span style="color: #000000">矩阵式结构的出现是企业管理水平的一次飞跃。当环境一方面要求专业技术知识，另一方面又要求每个产品线能快速做出变化时，就需要矩阵式结构的管理。职能式结构强调纵向的信息沟通，而事业部式结构强调横向的信息流动，矩阵式就是将这两种信息流动在企业内部同时实现。 </span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">在实际操作中，这种双重管理的结构建立和维持起来都很困难，因为有权力的一方常常占据支配地位。因此比较成熟的矩阵式管理模式为带有项目／产品小组性质的职能型组织。职能部门照常行使着管理职能，但公司的业务活动是以项目的形式存在的。项目由项目经理全权负责，他向职能经理索要适合的人力资源，在项目期间，这些员工归项目经理管理。而职能经理的责任是保证人力资源合理有效的利用。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">与前两种结构不同，矩阵式结构很少能从组织结构图中判断出来，需要根据企业具体的管理行为加以判断。而企业是否应该实行矩阵式管理，应该依据下面三个条件加以判断： </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">条件一：产品线之间存在着共享希缺资源的压力。该组织通常是中等规模，拥有中等数量的产品线。在不同产品共同灵活地使用人员和设备方面，组织有很大压力。比如，组织并不足够大，不能为每条产品线安排足够的工程师，于是工程师以兼职项目服务的形式被指派承担产品服务。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">条件二：环境对两种或更多的重要产品存在要求。例如对技术质量和产品快速更新的要求。这种双重压力意味着在组织的职能和产品之间需要一种权力的平衡。为了保持这种平衡就需要一种双重职权的结构。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">条件三：组织所处的环境条件是复杂和不确定的。频繁的外部变化和部门之间的高度依存，要求无论在纵向还是横向方面要有大量的协调与信息处理。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">根据上面的条件可以看出，提供咨询服务的公司最适合采用矩阵式结构。例如中型规模的咨询公司，这样的公司规模在几十人至上百人，咨询顾问可以根据业务专业划分为不同的职能团队，例如财务咨询，生产、工程咨询，管理咨询小组。由于咨询顾问的成本较高，优秀的咨询顾问资源相对稀缺，而咨询公司没有统一的产品，需要根据客户的具体情况进行二次设计，每一个项目都是一个全新的产品，无法通过流水线作业完成。而且，产品的质量需要由项目经理和职能经理共同控制。矩阵式的结构能最好的满足以上的条件。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">矩阵式结构的优势在于它能使人力、设备等资源在不同的产品／服务之间灵活分配，组织能够适应不断变化的外界要求。这种结构也给员工提供了获得职能和一般管理的两方面技能。在矩阵式组织里，关键组织成员的角色定位非常重要。这些关键组织成员包括：高层领导者、矩阵主管和员工。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　高层领导者的主要职责是维持职能经理和产品经理之间的权力平衡。高层领导者也必须愿意进行决策委托，鼓励职能经理和产品经理直接接触，共同解决问题，这将有助于信息共享和协调。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">矩阵主管的问题在于如何控制他们的下属。由于下属接受两个主管同时领导，不自觉的员工会利用这个机会钻空子，造成主管对他的管理真空化。因此，职能和产品主管必须一起工作，解决问题。职能主管主要解决下属的技术水平问题，而项目主管则具体管下属在这个项目上的行为、工作结果和绩效。这些活动需要大量的时间、沟通、耐心以及和别人共同工作的技巧，这些都是矩阵管理的一部分。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">员工接受双重领导，经常能体会到焦虑与压力。他的两个直接经理的命令经常会发生冲突。这时双重主管的员工必须能够面对产品经理和职能经理的指令，形成一个综合决策来确定如何分配他的时间。员工们必须和他的两个主管保持良好关系，他们应该显示出对这两个主管的双重忠诚。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">矩阵式结构最早应用于飞机制造和航天器械的生产项目中。职能部门包括研发、工程、安装、测试等等。每一个项目都需要全新的产品，例如新型飞机、宇宙火箭等。现在，矩阵式结构已经在跨国公司里普遍使用，最有代表性的公司要数&#8220;世界电器巨人ABB公司。ABB公司全球拥有25万员工，在每一个国家都采取矩阵式结构，将公司按区域和业务维度划分。这样做是为了既保证公司产品的本土化特点，又保证规模效应和技术的领先性。ABB本土的经理负责自行开发新产品，开发市场与政府攻关，而业务经理负责全球的产品战略决策。根据这样的结构，ABB在全球范围成立合资企业，每个合资企业规模都很小（ABB全球有1200个合资公司），但大约1100个合资公司的总经理都同时向区域经理汇报，也向全球业务经理汇报。通过这样的管理，ABB仍然作为一个有整体战略的公司，成为世界电气巨人。通过矩阵式结构，ABB有效地将全球化战略和本地化产品相结合，将跨国公司的规模优势和小公司的灵活、低成本优势相结合，但双重管理需要的沟通难度可想而知。ABB大部分管理文件的内容在描述区域经理和业务经理的职责和相互关系上，并通过不断地培训使经理们明白他们的角色。同时，他们还开发新的信息管理系统，加强信息共享。即便这样，沟通问题现在依然是ABB最迫切解决的问题。 近些年来，IBM、HP等著名的外国企业都采用矩阵式的组织结构。尽管在管理学的教科书上看到过对矩阵组织优劣的探讨，但很难有切身的感受。这次听叶成辉先生谈起自己经历着的IBM公司的矩阵组织，感到获益不浅。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　1987年，加州伯克利大学电子工程专业出身的叶成辉在美国加入IBM旧金山公司，成为一名程序员。因为不喜欢编程等技术类的工作，梦想着做生意(DOBUSINESS)、当经理(比较喜欢跟人沟通)，他便主动请缨到销售部门去做，经过了差不多5年时间的努力，获得提升，成为一线的经理。随后，叶先生回到IBM香港公司，做产品经理。由于个人&#8220;斗志旺盛&#8221;，业绩不错，而且&#8220;官运亨通&#8221;，差不多每两年他都能够蹦一个台阶，如今，叶成辉已经是IBM大中华区服务器系统事业部AS/400产品的总经理。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　从旧金山到香港，再到广州到北京；从普通员工到一线经理，再提升到现在做三线经理；从一般的产品营销，到逐步专注于服务器产品，再到AS/400产品经理，10多年来，叶成辉一直在IBM的&#8220;巨型多维矩阵&#8221;中不断移动，不断提升。他认为，IBM的矩阵组织是一个很特别的环境，&#8220;在这个矩阵环境中，我学到了很多东西。&#8221;IBM是一个巨大的公司，很自然地要划分部门。单一地按照区域地域、业务职能、客户群落、产品或产品系列等来划分部门，在企业里是非常普遍的现象，从前的IBM也不例外。&#8220;近七八年以来，IBM才真正做到了矩阵组织。&#8221;这也就是说，IBM公司把多种划分部门的方式有机地结合起来，其组织结构形成了&#8220;活着的&#8221;立体网络--多维矩阵。IBM既按地域分区，如亚太区、中国区、华南区等；又按产品体系划分事业部，如PC、服务器、软件等事业部；既按照银行、电信、中小企业等行业划分；也有销售、渠道、支持等不同的职能划分；等等，所有这些纵横交错的部门划分有机地结合成为一体。对于这个矩阵中的某一位员工比如叶成辉经理而言，他就既是IBM大中华区的一员，又是IBM公司AS/400产品体系中的一员，当然还可以按照另外的标准把他划分在其他的部门里。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　IBM公司这种矩阵式组织结构带来的好处是什么呢？叶成辉先生认为，非常明显的一点就是，矩阵组织能够弥补对企业进行单一划分带来的不足，把各种企业划分的好处充分发挥出来。显然，如果不对企业进行地域上的细分，比如说只有大中华而没有华南、华东、香港、台湾，就无法针对各地区市场的特点把工作深入下去。而如果只进行地域上的划分，对某一种产品比如AS/400而言，就不会有一个人能够非常了解这个产品在各地表现出来的特点，因为每个地区都会只看重该地区整盘的生意。再比如按照行业划分，就会专门有人来研究各个行业客户对IBM产品的需求，从而更加有效地把握住各种产品的重点市场。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　&#8220;如果没有这样的矩阵结构，我们要想在某个特定市场推广产品，就会变得非常困难。&#8221;叶成辉说。比如说在中国市场推广AS/400这个产品吧，由于矩阵式组织结构的存在，我们有华南、华东等各大区的队伍，有金融、电信、中小企业等行业队伍，有市场推广、技术支持等各职能部门的队伍，以及专门的AS/400产品的队伍，大家相互协调、配合，就很容易打开局面。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　&#8220;首先，我作为AS/400产品经理，会比较清楚该产品在当地的策略是什么。在中国，AS/400的客户主要在银行业、保险业，而不像美国主要是在零售业和流通业；在亚太区，AS/400的产品还需要朝低端走，不能只走高端；中国市场上需要AS/400的价位、配置以及每个月需要的数量等，只有产品经理，才能比较清楚。从产品这条线来看，我需要跟美国工厂订货，保证货源供应。从产品销售的角度看，AS/400的产品部门需要各相关地区的职能部门协助，做好促销的活动；然后需要各大区、各行业销售力量把产品销售出去。比如，我需要在媒体上做一些访问，就要当地负责媒体公关的部门协助。再如，我认为&#8220;莲花宝箱&#8221;(为中国市场量身定制的AS/400)除了主打银行外，还要大力推向中小企业市场，那么就需要跟中国区负责中小企业的行业总经理达成共识。当然，&#8220;莲花宝箱&#8221;往低端走，还需要分销渠道介入，这时，就需要负责渠道管理的职能部门进行协调。从某种意义上讲，我们之间也互为&#8220;客户&#8221;关系，我会创造更好的条件让各区、各行业更努力推广AS/400。&#8221;叶成辉说。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　任何事情都有它的&#8220;两面性&#8221;。矩阵组织在增强企业产品或项目推广能力、市场渗透能力的同时，也存在它固有的弊端。显然，在矩阵组织当中，每个人都有不止一个老板，上上下下需要更多的沟通协调，所以，&#8220;IBM的经理开会的时间，沟通的时间，肯定比许多小企业要长，也可能使得决策的过程放慢。&#8221;叶成辉进一步强调，&#8220;其实，这也不成为问题，因为大多数情况下还是好的，IBM的经理们都知道一个好的决定应该是怎样的。&#8221;另外，每一位员工都由不同的老板来评估他的业绩，不再是哪一个人说了算，评估的结果也会更加全面，&#8220;每个人都会更加用心去做工作，而不是花心思去讨好老板。&#8221;同时运用不同的标准划分企业部门，就会形成矩阵式组织。显然，在这样的组织结构内部，考核员工业绩的办法也无法简单。在特定客户看来，IBM公司只有"唯一客户出口"，所有种类的产品都是一个销售员销售的；产品部门、行业部门花大气力进行产品、客户推广，但是，对于每一笔交易而言，往往又是由其所在区域的IBM员工最后完成；等等。问题是，最后的业绩怎么计算？产品部门算多少贡献，区域、行业部门又分别算多少呢？叶成辉说：&#8220;其实，IBM经过多年的探索，早已经解决这个问题了。现在，我们有三层销售--产品、行业和区域，同时，我们也采取三层评估，比如说经过各方共同努力，华南区卖给某银行10套AS/400，那么这个销售额给华南区、AS/400产品部门以及金融行业部门都记上一笔。&#8221;当然，无论从哪一个层面来看，其总和都是一致的。比如从大中华区周伟锟的立场来看，下面各分区业绩的总和，大中华区全部行业销售总额，或者大中华区全部产品(服务)销售总额，三个数字是一样的，都可以说明他的业绩。 </span></span></span></p>
<p><span><span style="color: #000000"><span style="color: #000000">　　在外界看来，IBM这架巨大的战车是稳步前进的，变化非常缓慢。叶成辉认为，这其实是一种误会。对于基层的员工，对于比较高层的经理，这两头的变化相对比较小，比较稳定。比如说一名普通员工进入IBM，做AS/400的销售，差不多四五年时间都不会变化，然后，可能有机会升任一线经理。再比如亚太区的总经理，也可能好多年不变，因为熟悉这么大区域的业务，建立起很好的客户关系，也不太容易。所以，外界就觉得IBM变动缓慢。&#8220;但是，在IBM矩阵内部的变化还是很快的。中间层的经理人员差不多一两年就要变化工作，或者变化老板，变化下属，这样就促使整个组织不断地创新，不断地向前发展。&#8221;叶成辉说，&#8220;我在IBM公司10多年，换了10多位老板。每一位老板都有不同的长处，从他们那里我学到了很多。其实，IBM的每一位员工都会有这样的幸运。&#8221;矩阵组织结构是有机的，既能够保证稳定地发展，又能保证组织内部的变化和创新。所以，IBM公司常常流传着一句话：换了谁也无所谓。</span></span></span></span></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/164686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-12-02 19:59 <a href="http://www.blogjava.net/orangelizq/archive/2007/12/02/164686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]资深程序员给新人程序员的八点建议</title><link>http://www.blogjava.net/orangelizq/archive/2007/12/01/164492.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 01 Dec 2007 06:06:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/12/01/164492.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/164492.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/12/01/164492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/164492.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/164492.html</trackback:ping><description><![CDATA[<p>[转]资深程序员给新人程序员的八点建议&nbsp;&nbsp; 作者: 王玉磊 出处:Csdn　</p>
<p>07年已经是陈皓在程序员行业里的第十个年头了。总结这十年，毕业的头两年，陈皓在银行中昏昏沉沉中度过，&#8220;这是我最失败的时候，两年的时间几乎完全白费了。&#8221;后来在上海的两年，我拼命地学习看书，并不断总结所做的项目，这个阶段是我补课的阶段，也是我量变的阶段。到了北京的这五年，是我从量变向质变转换的阶段。</p>
<p>拼命看书</p>
<p>刚毕业的时候，陈皓也像很多刚毕业的学生一样，根本没有对自己的职业进行过比较好的规划。&#8220;还记得当时什么都没有想，就是想做一些实际的事情，好好的钻研一些技术。实在没有别的什么想法。&#8221;在毕业头三年中（1998年到2001年），不要说是对未来的职业有所规划，对所学的技术也是毫无规划。</p>
<p>离开银行后到上海加入了一家专做银行的系统集成的公司，发现自己和别人的差距非常的大，所以开始拼命地看书和学习，在到上海的头一年中，看了四、五十本书，研究的技术包括PB, delphi, SQL, HTML, CSS, DHTML, java, Perl, CGI, ASP, PHP, JSP, XML, UML, MFC, Lotus Notes, Unix, Oracle, Informix, C++, ActiveX, ODBC, ADO, .NET, COM, 乃至CISCO路由器的配置，Photoshop, 3DMAX&#8230;&#8230;陈皓学得很杂很泛，完全没有目的，只是觉得别人懂的自己也要懂。</p>
<p>&#8220;看了许多许多的书，完全没有好好想想自己应该走什么方向。现在回头看来也不知道是好还是不好。&#8221;</p>
<p>也许是看的书太多，懂的东西太多，后来有机会参与了一次全国性质的项目。后台是AIX+Informix用C开发，前台是用PB的PFC做界面，通过IBM的CICS这个中间件连通前后台。在开发这个项目的一年时间里，陈皓对Unix/C/C++以及分布式系统有了非常深刻地认识，并深深地迷上了它们，同时对大型软件工程的流程和管理有了非常深刻的了解。</p>
<p>这个项目对陈皓的影响非常大，除了技术上的收获之外，更让陈皓逐渐确定了自己的规划。</p>
<p>技术之外</p>
<p>2002年底，北京一家做分布式计算/网格计算平台的加拿大公司对我产生了兴趣，经过5轮面试陈皓拿到了offer，又一次开始了我的奔走——从上海来到了北京。</p>
<p>新的公司让陈皓的Unix/C/C++得到了非常大的巩固，&#8220;这个公司也让我这个土狼学到了很多很多，特别是认识和观念上。&#8221;特别是在带领一个team对公司欧洲用户做Customer Service方面的工作时，陈皓学到了很多客户管理的知识，英语能力、与人沟通的能力以及对软件的认识得到了完全的升华。</p>
<p>陈皓开始使用一种和以前完全不一样的方法去思考问题——从用户的角度对问题进行思考。&#8220;此时，技术方向对我来说已不重要，技术对我来说已经变得非常简单，因为技术只需要看书看文档就可以获取。&#8221;陈皓开始用全新的方式思考如何管理一个团队，如何制造一个成功的软件，如何管理客户。并由此有了更进一步的职业规则——成为一个成功的技术主管、建立一个成功的团队、开发一个成功的软件产品。</p>
<p><br />
<span style="color: #0000ff">给新人程序员的八点建议</span></p>
<p>走过弯路，有过迷茫，回首九年陈皓感慨万千。&#8220;今天，我对许多刚上路的朋友都会说，人生的规则很重要，从上大学时就要好好规划。&#8221;他结合自身经历，对许多刚踏入程序员行列的新人程序员，他给出了以下八点建议：</p>
<p>1.在大学的时候尽量多地进入公司参与实际工作，一方面积累工作经验，另一方面，提前认识工作和自己，以便毕业时更准确地把握自己的方向。</p>
<p>2.从毕业开始到毕业后至少5年内，踏踏实实地专研技术，这是一个积累过程，千万不要把心思放在钱和职位上。钱和职位只是能力的附属品，不要让其喧宾夺主。</p>
<p>3.从毕业后3年到7年的时间，注意学习工作当中的方法以及相关的管理和流程，不但要知其然，还要知其所以然。</p>
<p>4.30岁以前，踏踏实实地学习。学技术，学做人，学做事。30岁以后再谈自己的发展。</p>
<p>5.毕业后的前5年主要是量的积累，要不停地积累知识和方法。毕业后的5到10年主要是质变，应该着重于思维和想法的更新。后五年应该有很强的包容能力和接受新东西的能力，千万不要太过固执和坚持自己的想法。</p>
<p>6.换工作要&#8220;承前启后&#8221;，前面的工作会成为后面工作的一个基础，而后面的工作又会成为前面工作的一个很自然的延续。</p>
<p>7.不要只把心思放在技术上，技术是hard skill，只要下工夫就一定会掌握。更要注意与人沟通等为人处事的soft skill上。hard skill像一个大树的根，而soft skill则像一个大树的枝叶。树根是你的根基，能让你站得很稳，而枝叶能让你向天空伸展，获得发展。</p>
<p>8.对于程序员来说，应该始终记住，技术不是主要的，主要的是通过技术能够解决什么样的问题。一定经常想要解决什么的问题，要满足什么样的需求，而不是要用什么样的技术</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/164492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-12-01 14:06 <a href="http://www.blogjava.net/orangelizq/archive/2007/12/01/164492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>六度空间理论 [源自Baidu]</title><link>http://www.blogjava.net/orangelizq/archive/2007/10/22/155106.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Mon, 22 Oct 2007 13:41:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/10/22/155106.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/155106.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/10/22/155106.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/155106.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/155106.html</trackback:ping><description><![CDATA[有一个<a href="http://baike.baidu.com/view/1284.htm" target="_blank">数学</a>领域的<a href="http://baike.baidu.com/view/84388.htm" target="_blank">猜想</a>，名为<strong>Six Degrees of Separation</strong>，中文翻译包括以下几种： <a href="http://baike.baidu.com/view/200573.htm" target="_blank">六度分割理论</a>、六度空间理论以及小世界理论等。 <br />
<br />
你和任何一个陌生人之间所<a href="http://baike.baidu.com/view/757951.htm" target="_blank">间隔</a>的人不会超过六个，也就是说，最多通过六个人你就能够认识任何一个陌生人。这就是六度空间理论，也叫小世界理论。<br />
<br />
社会<a href="http://baike.baidu.com/view/3487.htm" target="_blank">网络</a>其实并不高深，它的理论基础正是&#8220;六度分隔&#8221;。而社会性软件则是建立在真实的社会网络上的增值性软件和服务。有这么一个故事，几年前一家<a href="http://baike.baidu.com/view/3762.htm" target="_blank">德国</a>报纸接受了一项挑战，要帮<a href="http://baike.baidu.com/view/24690.htm" target="_blank">法兰克福</a>的一位<a href="http://baike.baidu.com/view/528134.htm" target="_blank">土耳其烤肉</a>店老板，找到他和他最喜欢的影星<a href="http://baike.baidu.com/view/137834.htm" target="_blank">马龙&#183;白兰度</a>的关联。结果经过几个月，报社的员工发现，这两个人只经过不超过六个人的私交，就建立了<a href="http://baike.baidu.com/view/117.htm" target="_blank">人脉</a>关系。原来烤肉店老板是<a href="http://baike.baidu.com/view/7692.htm" target="_blank">伊拉克</a>移民，有个朋友住在<a href="http://baike.baidu.com/view/526914.htm" target="_blank">加州</a>，刚好这个朋友的同事，是电影《这个男人有点色》的<a href="http://baike.baidu.com/view/164880.htm" target="_blank">制作人</a>的女儿在女生联谊会的结拜姐妹的男朋友，而马龙&#183;白兰度主演了这部片子。<br />
<br />
20世纪60年代，<a href="http://baike.baidu.com/view/21360.htm" target="_blank">耶鲁大学</a>的<a href="http://baike.baidu.com/view/5441.htm" target="_blank">社会心理学</a>家米尔格兰姆(Stanley Milgram)就设计了一个连锁信件实验。他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人，信中放了一个<a href="http://baike.baidu.com/view/88690.htm" target="_blank">波士顿</a>股票经纪人的名字，信中要求每个收信人将这套信寄给自己认为是比较接近那个<a href="http://baike.baidu.com/view/2085.htm" target="_blank">股票</a>经纪人的朋友。朋友收信后照此办理。最终，大部分信在经过五、六个步骤后都抵达了该股票<a href="http://baike.baidu.com/view/17055.htm" target="_blank">经纪人</a>。六度空间的概念由此而来。<br />
<br />
这个连锁实验，体现了一个似乎很普遍的客观规律：社会化的现代人类社会成员之间，都可能通过&#8220;六度空间&#8221; 而联系起来，绝对没有联系的A与B是不存在的。这是一个更典型、深刻而且普遍的自然现象。那么，怎样用数学理论揭示 &#8220;六度分割现象&#8221;？这是现代数学领域又一个重大的数学猜想。<br />
<br />
这有点儿像<a href="http://baike.baidu.com/view/30267.htm" target="_blank">地图</a>的邻接色问题，只不过邻接色问题是通过数学方法可以精确证明的（即最多只需要使用4种颜色即可），而6度分割理论我个人估计只能通过不完全归纳来形成假设了吧，社会的模型还是比二维地图模型要复杂莫测得多啦！<br />
<br />
六度分隔的现象，并不是说任何人与人之间的联系都必须要通过六个层次才会产生联系，而是表达了这样一个重要的概念：任何两位素不相识的人之间，通过一定的联系方式，总能够产生必然联系或关系。显然，随着联系方式和联系能力的不同，实现个人期望的机遇将产生明显的区别。<br />
<br />
看来六度分隔理论很有意思，找一些资料来看看学习，运用起来真的会很有效的。<br />
<br />
不管理论如何深奥，&#8220;六度分隔&#8221;和<a href="http://baike.baidu.com/view/6825.htm" target="_blank">互联网</a>的亲密结合，已经开始显露出商业价值。人们在近几年越来越关注社会网络的研究，很多<a href="http://baike.baidu.com/view/38384.htm" target="_blank">网络软件</a>也开始支持人们建立更加互信和紧密的社会关联，这些软件被统称为&#8220;<a href="http://baike.baidu.com/view/609640.htm" target="_blank">社会性软件</a>&#8221; （Social&nbsp;&nbsp;Software）。例如<a href="http://baike.baidu.com/view/560.htm" target="_blank">Blog</a>就是一种社会性软件，因为Blog写作所需要的个性和延续性，已使<a href="http://baike.baidu.com/view/7991.htm" target="_blank">Blogger</a>圈这种典型的物以类聚的生态形式，越来越象真实生活中的人际圈。据致力于研究社会软件的毛向辉介绍，国外现在更流行的是一种快速交友，或者商业联系的工具，例如 LinkedIN。人们可以更容易在全球找到和自己有共同志趣的人、更容易发现商业机会、更容易达到不同族群之间的理解和交流，等等。<br />
<br />
社会性软件的定义很多，而且还都在不断的发展演变过程之中。它的核心思想其实是一种聚合产生的效应。人、社会、商业都有无数种排列组合的方式，如果没有信息手段聚合在一起，就很容易损耗掉。WWW成功地将文本、图形聚合在一起，使互联网真正走向应用；即时通讯又将人聚合在一起，产生了<a href="http://baike.baidu.com/view/698.htm" target="_blank">ICQ</a>这样的工具。然而这还是虚拟的，虚拟虽然是网络世界的一种优势，但是和商业社会所要求的实名、信用隔着一条鸿沟。通过熟人之间，通过&#8220;六度分隔&#8221;产生的聚合，将产生一个可信任的网络，这其中的商业潜能的确是无可估量的。<br />
<br />
<a href="http://baike.baidu.com/view/823373.htm" target="_blank">聚合</a>作为社会研究的对象也具有实际价值。<a href="http://baike.baidu.com/view/30250.htm" target="_blank">康奈尔大学</a>的科学家开发了一个算法，能够识别一篇文章中某些文字的&#8220;突发&#8221;增长，而这些&#8220;突发&#8221;增长的文字可以用来快速识别最新的趋势和热点问题，因此能够更有效地筛选重要信息。过去很多搜索技术都采用了简单计算文字 /词组出现频率的方法，却忽略了文字使用增加的速率。如果这种方法应用到广告商，就可以快速找到潜在的需求风尚。<br />
<br />
社会、网络、地域、商业、Blog，这些词汇你也许都听麻木了。然而一旦那些预见先机的人找到聚合它们的商业价值，被改变的绝不仅仅是网络世界。<br />
<br />
六度虽然是个社会学的理论，但是实际上它更像一个数学理论，很多人说六度和四色问题有异曲同工之妙。在我看来，六度理论很好的阐述了在一个网状结构（我们的人类社会）下，不同节点之间的联系和连接关系，然而它并不完整，并不足以指导我们的实践。<br />
<br />
（1）<strong>关系的强弱</strong>——权值问题<br />
首先六度肯定了人与人之间的普遍联系，但是没有对这种联系作定量分析。我们一生可能会认识千百人，他们有的对我极其重要，有的对我无足轻重，我们联系的建立的原因和方法也是千差万别，有父母亲属这类生而固有的联系，也有因为地理位置接近发展出来的，如邻里关系，还有因为共同学习生活而发展出来的同学、同事关系。六度理论中只把他们统统归结于联系，没有强弱之分。在网状结构里面，人与人的关系，需要加权处理，在这里，六度是残缺的。<br />
<br />
（2）<strong>到达和建立联系的区别</strong>——目的和结果问题<br />
20世纪60年代，耶鲁大学的社会心理学家米尔格兰姆(Stanley Milgram)就设计了一个连锁信件实验。他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人，信中放了一个波士顿股票经纪人的名字，信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。朋友收信后照此办理。最终，大部分信在经过五、六个步骤后都抵达了该股票经纪人。六度分割（也叫&#8220;六度空间&#8221;）的概念由此而来。这个故事很多六度的爱好者都知道，并奉为圣经。但是我请大家注意这个故事和我们现在流行的SNS网站的理念的重要差别。在这个故事里面，信到达了波士顿股票经纪人手里面没错，但是请注意整个过程中，每个人的朋友关系都没有发生改变。对，这点很重要，这个故事里面传递的信息，而我们现在看到的SNS网站希望在用户之间传递的是什么呢？是联系方式是朋友关系。<br />
说到这里想提一下前面提到的火炬的买车票的实验，在那个实验里面，传递的实际上也是信息，而不是朋友关系。<br />
<br />
（3）<strong>传递的成本和激励</strong>——阻尼问题<br />
在Stanley Milgram的实验和火炬的实验里面，都没有任何的花费，或者说看起来成本为0。但是是不是真的成本为0呢？每个人传递一下信件花费极低，改下msn名字更是没有成本，然而那些人肯这么做，其实是看着朋友的面子上，所以这里花费的成本实际是什么呢？是中国人说的人情债，所谓的关系成本。没有人喜欢一个整天都要人帮忙这帮忙那的人，人情债和金钱债一样，背了就一定要还，这就是传递中的成本问题。火炬的火车实验后，我们一直在想这个问题，今天我们急需车票，可以请朋友们改他们的名字，但是我们能不能天天都用这种方法来找人帮忙呢？今天买车票，明天买球票，也许一次两次可以，次数多了，朋友们肯定会觉得厌烦，甚至放弃你这个朋友。<br />
<br />
<a href="http://baike.baidu.com/view/2418.htm" target="_blank">Gmail</a>的邀请方式直至今日仍被很多人称颂，刚刚出现的时候，一个邀请甚至可以卖到60美金。很多人惊呼这是最伟大的营销。然而，到了今天，很多人的邀请已经变得无法送出去。为什么呢？因为一开始的时候Gmail是稀缺物品，所以价值高昂，加上Gmail带有Google的强势品牌和高度用户认同感，所以就更加被追捧，拥有Gmail成了荣誉的象征。这是这种荣誉成为了Gmail邀请在六度网络中疯狂传播的激励。然而随着Gmail的高度普及，这种荣誉感逐步下降，最终降低了激励，从来使传播陷入了停滞状态。<br />
<br />
阻尼是好还是坏？没有阻尼我们可以给任何人发送信息，每个SNS网站都在宣扬你只需要六度就可以认识克林顿可以认识盖茨，但是有几个人真的去认识他们了？是因为他们不值得认识么？不是，是因为联系虽然看起来只有六度，然而每度的阻尼都有可能都是无法跨越的。但是你不要悲观，如果没有阻尼也许你会更加不爽！LLF算过&#8220;举例来说吧。假设每个人有30个朋友，信息经过六度是30的6次方 =729000000，数量足够到达一个能够覆盖所有可能的人的级别。&#8221;，如果六度的连接没有任何的阻尼，估计我们每天收到的来自六度好友的各种各样的信息就会让我们的脑袋爆炸。<br />
<br />
在我们的生活里面，一个身份越高的人，越有名的人他就会有越多的好友，于是他也就越不想随便拓展自己的关系圈子，因为他们往往不胜其扰。前些日子的600演艺名人联系方式泄露事件就是一个例子，本来我们作为社会一分子都和这600名人有着六度的联系，然而某天因为他们的联系方式被公开，他们和我们的联系立刻被扁平化变成了一度。一瞬间，阻尼消失了，你可以随便打电话给那英、田震了，你不是想跟冯小刚聊电影么？你现在可以打电话了。但是，我们只能说结果这成了一场灾难，很多名人诉苦，说很多人打电话到他们的家里，说了句&#8220;你是XXX么？我很喜欢你！&#8221;然后就挂了电话。很多人不堪其扰停了机，甚至换了号。<br />
<br />
这场灾难对我们这些局外人来说是一个很有意思的故事，很有趣的一点在于此，一旦这些名人和大众的关系扁平化后（六度变成一度），他们对大众的价值也开始流失，大众们只能打电话过去，问一声，然后炫耀自己给明星打过电话，仅此而已。这个巨大的扁平化工程并没有扩展追星族们的朋友圈子，他们仍旧离那些明星很远&#8230;&#8230;<br />
<br />
（4）<strong>朋友的朋友是朋友的假设</strong>——关系的方向和传递问题<br />
SNS网站最爱说的一句话也许就是&#8220;朋友的朋友是朋友&#8221;，然而那天我跟LLF在Msn聊天的时候就说过这个问题，我认识的某A的朋友某B是我非常反感的一个家伙，而且我的朋友里面还有个人某C对那个家伙某B更加痛恨。所以在现在的SNS服务里面我是不敢把某A和某C同时引入的，因为他们同时引入后，很可能的结果是某B和某C建立联系后，开始吵架。<br />
<br />
<strong>六度分割</strong><br />
&nbsp; &nbsp;上世纪60年代，美国哈佛大学的社会心理学家米尔格伦提出了&#8220;<strong>六度分割</strong>&#8221;（Six&nbsp;&nbsp;Degrees&nbsp;&nbsp;of&nbsp;&nbsp;Separation)的理论。简单来说，&#8220;六度分割&#8221;就是在这个社会里，任何两个人之间建立一种联系，最多需要六个人(不包括这两个人在内），无论这两个人是否认识，生活在地球上任何偏僻的地方，他们之间只有六度分割。&nbsp;&nbsp;&nbsp; <br />
<img src ="http://www.blogjava.net/orangelizq/aggbug/155106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-10-22 21:41 <a href="http://www.blogjava.net/orangelizq/archive/2007/10/22/155106.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse各插件介绍</title><link>http://www.blogjava.net/orangelizq/archive/2007/09/08/143588.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 08 Sep 2007 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/09/08/143588.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/143588.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/09/08/143588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/143588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/143588.html</trackback:ping><description><![CDATA[<p>Eclipse各插件介绍<br />
　　<br />
　　1.JDT（Java Development Tools）:Java设计工具,最新版3.1RC4,需求Eclipse3.1支持.<br />
　　<br />
　　2.PDE（Plugin Development Environment）:插件设计环境，用于设计自定义插件,最新版3.1RC4,需求Eclipse3.1支持;<br />
　　<br />
　　3.Platform: Eclipse的核心运行平台，目前最新版3.1.<br />
　　<br />
　　4.C/C IDE: 一看就知道，用于设计C/C 项目。<br />
　　<br />
　　5.EMF（Eclipse Modeling Framework）:Eclipse模型框架，目前最新版2.1.0,支持 Eclipse3.1及更新版<br />
　　<br />
　　6.GEF (Graphical Editor Framework):图形编辑框架，用于辅助图形设计，目前最新版3.1RC4,支持Eclipse3.1.<br />
　　<br />
　　7.UML2: UML编辑器，最新版1.1RC4,支持Eclipse3.1,需求EMF2.1RC1<br />
　　<br />
　　8.VE(Visual Editor):可视化图形编辑组件，用于提供AWT/SWT/Swing的图形编辑，最新版1.1M2，支持Eclipse3.1<br />
　　<br />
　　9.J2EE Standard Tools:用于设计J2EE应用程序的插件，最新版1.0M5,支持Eclipse3.1. &amp; nbsp;<br />
　　<br />
　　10.WST - Web Standards Tools: 用于设计Web应用程序的插件，最新版1.0M5,支持Eclipse3.1.<br />
　　<br />
　　11.Eclipse Test and Performance Tools Platform：用于调试，单元测试和测试项目的插件。<br />
　　<br />
　　12.Business Intelligence and Reporting Tools (BIRT)：商业智能和商业报表开发插件，它包括Chart Engine（图形引擎），Report Framework(报表框架），Runtime ENV(运行时环境）。<br />
　　<br />
　　13.AJDT - AspectJ Development Tools：用于开发AOP（面向方面编程）的开发ECLIPSE插件。<br />
　　<br />
　　14.AspectJ: 用于开发AOP的开发环境。<br />
　　<br />
　　15.CME - Concern Manipulation Environment:用于开发AOP的一组可视化工具插件。 <br />
</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/143588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-09-08 11:17 <a href="http://www.blogjava.net/orangelizq/archive/2007/09/08/143588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]计算机类中文核心期刊影响因子</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/26/132438.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 26 Jul 2007 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/26/132438.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/132438.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/26/132438.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/132438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/132438.html</trackback:ping><description><![CDATA[<p>[转]计算机类中文核心期刊影响因子<br />
<br />
以下资料转自互联网，感觉不可信。姑且贴出来，大家仅做参考吧。</p>
<p>期刊名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;影响因子</p>
<p>计算机学报&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;0.921<br />
软件学报&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　&nbsp; 0.919<br />
计算机集成制造系统一CIMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 0.855<br />
计算机研究与发展&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 0.806<br />
计算机辅助设计与图形学学报&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.692<br />
中文信息学报　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 0.635<br />
中国图象图形学报&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;0.616<br />
计算机应用研究&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;0.428<br />
计算机测量与控制&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.406<br />
模式识别与人工智能&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.39<br />
计算机与应用化学&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.388<br />
J COMPUT SCI＆TECH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.33<br />
计算机应用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.329<br />
计算机工程与应用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.28<br />
计算机科学　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.28<br />
小型微型计算机系统&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.275<br />
物探化探计算技术&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.239<br />
计算机工程与科学　　　　　 0.234<br />
计算机工程　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.232<br />
计算机仿真&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.206<br />
计算机工程与设计&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.203<br />
微型电脑应用　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.134<br />
数值计算与计算机应用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.123<br />
计算机辅助工程&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.098<br />
微型机与应用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.096<br />
微计算机应用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.034 </p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/132438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-26 09:24 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/26/132438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国内计算机类学术期刊投稿指南</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/26/132437.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 26 Jul 2007 01:22:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/26/132437.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/132437.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/26/132437.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/132437.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/132437.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>国内计算机类学术期刊投稿指南</p>
<p>计算机科学与技术 英文版: 《Journal of Computer Science and Technology》 （双月刊）&nbsp;&nbsp;&nbsp; <br>&nbsp; SCI-E源期刊，中文重要期刊，EI Compendex源期刊，中文核心期刊<br>主办单位：中国科学院计算技术研究所 <br>地址：北京2704信箱 <br>邮编：100080 <br>邮发代号：2-578 <br>E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#99;&#115;&#116;&#64;&#105;&#99;&#116;&#46;&#97;&#99;&#46;&#99;&#110;">jcst@ict.ac.cn</a>&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#99;&#115;&#116;&#64;&#110;&#115;&#46;&#105;&#99;&#116;&#46;&#97;&#99;&#46;&#99;&#110;">jcst@ns.ict.ac.cn</a>&nbsp; <br><a href="http://jcst.ict.ac.cn/">http://jcst.ict.ac.cn/</a><br>&nbsp; <br>&nbsp;</p>
<p>.</p>
<p><br>《计算机学报》(Chinese Journal of Computers) （月刊） <br>&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>主办单位：中国计算机学会 中国科学院计算技术研究所 <br>地址：北京2704信箱 中国科学院计算技术研究所 《计算机学报》编辑部 <br>邮编：100080 <br>邮发代号：2-833 <br>E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#106;&#99;&#64;&#105;&#99;&#116;&#46;&#97;&#99;&#46;&#99;&#110;">cjc@ict.ac.cn</a> <br><a href="http://www.ict.ac.cn/cjc/cjc.html">http://www.ict.ac.cn/cjc/cjc.html</a>&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;</p>
<p><br>《软件学报》(Journal of Software) （月刊）&nbsp;&nbsp; <br>&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>主办单位：中国计算机学会 中国科学院软件研究所 <br>地址：北京8718信箱 北京海淀区中关村《软件学报》编辑委员会 <br>邮编：100080 <br>邮发代号：82-367 <br>E-mail:jos@iscas.ac.cn <br><a href="http://www.jos.org.cn/">http://www.jos.org.cn/</a><br>&nbsp;&nbsp;<br>&nbsp;</p>
<p><br>《计算机研究与发展》 (Journal of Computer Research and Development)（月刊）&nbsp;&nbsp; <br>&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>主办单位：中国科学院计算技术研究所 中国计算机学会 <br>地址：北京2704信箱 中国科学院计算技术研究所 《计算机研究与发展》 编辑委员会 <br>邮编：100080 <br>邮发代号：2-654<br>&nbsp;E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#114;&#97;&#100;&#64;&#105;&#99;&#116;&#46;&#97;&#99;&#46;&#99;&#110;">crad@ict.ac.cn</a> <br><a href="http://crad.ict.ac.cn/">http://crad.ict.ac.cn/</a>&nbsp;<br>&nbsp; </p>
<p>&nbsp;</p>
<p><br>《电子学报》（中文版）（Acta Electronica Sinica）（月刊）<br>&nbsp;&nbsp;&nbsp; 电子学报&nbsp; 英文版：《Chinese Journal of Electronics》（双月刊）<br>&nbsp;&nbsp; SCI-E检索源期刊，中文重要期刊，EI Compendex源期刊，中文核心期刊<br>通信地址: 北京165信箱&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 邮政编码: 100036 <br>电话: 86-10-68279116,&nbsp;&nbsp; 86-10-68285082 <br>传真: 86-10-68173796 <br>E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#106;&#101;&#64;&#101;&#108;&#101;&#99;&#106;&#111;&#117;&#114;&#110;&#97;&#108;&#46;&#111;&#114;&#103;">cje@elecjournal.org</a><br><a href="http://www.elecjournal.org/">http://www.elecjournal.org/</a> <br>&nbsp; <br>&nbsp;</p>
<p>&nbsp;</p>
<p><br>《自动化学报》 （双月刊）<br>&nbsp;&nbsp;&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>&nbsp;期刊外文名： 　 Acta Automatica Sinica&nbsp; <br>创办日期： 　 1963.01.01&nbsp; <br>主办单位： 　 中国自动化学会、中国科学院自动化所 <br>编辑部通信地址： 　 北京市中关村东路95号中科院自动化研究所&nbsp; <br>邮政编码： 　 100080 <br>联系电话： 　 (010) 82614566&nbsp; <br>编辑部E-mail： 　 <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#97;&#115;&#64;&#109;&#97;&#105;&#108;&#46;&#105;&#97;&#46;&#97;&#99;&#46;&#99;&#110;">aas@mail.ia.ac.cn</a>&nbsp; <br>网&nbsp; 址： 　 <a href="http://www.aas.net.cn/">http://www.aas.net.cn/</a>&nbsp; <br>国内邮发代号： 　 2-180&nbsp; <br>出版日期： 　 单月20日&nbsp; </p>
<p>电话：010-62565763（日常咨询和稿件处理）010-82614566（录用后稿件处理）<br>传真：010-82614571<br>编辑部办公时间：上午：8:00-12:00 下午：13:30-17:30 (法定节假日休息)<br>&nbsp;<br>&nbsp;<br>&nbsp;</p>
<p>&nbsp;</p>
<p><br>《计算机工程 》（Computer Engineering）（半月刊） <br>&nbsp;&nbsp; EI 源期刊，中文核心期刊<br>主办单位：华东计算技术研究所 上海市计算机学会 <br>地址：上海市漕河泾桂林路418号 《计算机工程》编辑部 <br>邮编：200233 <br>电话：（021）54972331 , 64704678-10341 <br>邮发代号：4-310<br>&nbsp;E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#104;&#100;&#115;&#99;&#101;&#64;&#99;&#104;&#105;&#110;&#97;&#46;&#99;&#111;&#109;">hdsce@china.com</a> <br>&nbsp;<a href="http://www.ecice06.com/">http://www.ecice06.com/</a>&nbsp;<br>&nbsp; </p>
<p>&nbsp;</p>
<p><br>《电子与信息学报》（中文版）（月刊）<br>&nbsp;&nbsp;&nbsp; 电子与信息学报&nbsp; 英文版：《Journal of Electronics》 （季刊）<br>&nbsp;中文重要期刊，EI Compendex源期刊，中文核心期刊<br>原刊名：电子科学学刊 <br>地址：北京市北四环西路19号<br>通信：北京2702信箱《电子与信息学报》编辑部<br>电话：010-62551772<br>投送中英文修改稿件 Email：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#98;&#122;&#104;&#111;&#117;&#64;&#109;&#97;&#105;&#108;&#46;&#105;&#101;&#46;&#97;&#99;&#46;&#99;&#110;">wbzhou@mail.ie.ac.cn</a> <br>查询稿件E-mail邮箱： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中文稿件查询 Email：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#119;&#119;&#117;&#64;&#109;&#97;&#105;&#108;&#46;&#105;&#101;&#46;&#97;&#99;&#46;&#99;&#110;">ywwu@mail.ie.ac.cn</a> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 英文稿件查询 Email: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#103;&#108;&#105;&#117;&#64;&#109;&#97;&#105;&#108;&#46;&#105;&#101;&#46;&#97;&#99;&#46;&#99;&#110;">gliu@mail.ie.ac.cn</a> <br><a href="http://journaleit.ie.ac.cn/">http://journaleit.ie.ac.cn/</a> <br>&nbsp; <br>&nbsp;</p>
<p>&nbsp;</p>
<p><br>《信息与控制》（Information and Control）（双月刊）<br>&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>地址：辽宁沈阳市三好街90号（中科院沈阳自动化所） 　　邮编：110003 <br>电话：（024）23893591-2455 <br>网址：<a href="http://xxbjb.gongkong.com/">http://xxbjb.gongkong.com/</a> <br>Email：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#120;&#120;&#98;&#106;&#98;&#64;&#103;&#111;&#110;&#103;&#107;&#111;&#110;&#103;&#46;&#99;&#111;&#109;">xxbjb@gongkong.com</a><br>&nbsp;&nbsp;<br>&nbsp;</p>
<p><br>《控制理论与应用》（双月刊）（Control Theory &amp; Applications）<br>&nbsp;&nbsp;&nbsp; 控制理论与应用&nbsp; 英文版：《Journal of Control Theory and Applications》<br>&nbsp;&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>主办单位：华南理工大学<br>地　　址：广州市五山华南理工大学内<br>邮政编码：510640<br>电　　话：020-87111464<br>传　　真：020-87111464<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#117;&#107;&#122;&#108;&#108;&#121;&#121;&#64;&#115;&#99;&#117;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;">aukzllyy@scut.edu.cn</a><br>&nbsp; <br>&nbsp;</p>
<p>&nbsp;<br>《控制与决策》 （Control and Decision）（月刊）<br>&nbsp;&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>地址：沈阳市和平区文化路3号巷11号东北大学125信箱<br>邮编：110004<br>电话：024-23906437，83687766<br>Email：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#107;&#122;&#121;&#106;&#99;&#64;&#109;&#97;&#105;&#108;&#46;&#110;&#101;&#117;&#46;&#101;&#100;&#117;&#46;&#99;&#110;">kzyjc@mail.neu.edu.cn</a><br><a href="http://www.kzyjc.net/">http://www.kzyjc.net/</a><br>&nbsp;&nbsp;<br>&nbsp;</p>
<p><br>《系统仿真学报》（JOURNAL OF SYSTEM SIMULATION）（半月刊）<br>&nbsp;&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>编辑部电话：010-88527147<br>主任办电话：010-68388709<br>通信地址：北京142信箱13分箱&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 邮编：100854<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#105;&#109;&#117;&#45;&#120;&#98;&#64;&#118;&#105;&#112;&#46;&#115;&#105;&#110;&#97;&#46;&#99;&#111;&#109;">simu-xb@vip.sina.com</a><br><a href="http://www.china-simulation.com/">http://www.china-simulation.com/</a>&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;<br>《模试识别与人工智能》 （季刊） ISTIC收录 <br>&nbsp;&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>主办单位：中国自动化学会 国家智能计算机研究开发中心 <br>地址：合肥1130信箱 中国科学院合肥智能机械研究所 《模式识别与人工智能》编辑部 <br>邮编：230031 <br>邮发代号：26-69 <br>E-mail:bjb@mail.iim.ac.cn&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;</p>
<p>《计算机科学》（Computer Science）（月刊）&nbsp; <br>&nbsp;&nbsp;&nbsp; 中文核心期刊<br>主办单位：国家科技部西南信息中心 </p>
<p>地址：重庆市渝中区胜利路132号 《计算机科学》杂志社 <br>邮编：400013 <br>E-mail:&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#115;&#106;&#107;&#120;&#64;&#115;&#119;&#105;&#99;&#46;&#97;&#99;&#46;&#99;&#110;">jsjkx@swic.ac.cn</a></p>
<p>通信地址：重庆市北部新区洪湖西路18号重庆天旭科技信息有限公司 《计算机科学》杂志社 <br>邮政编码：401121<br>邮发代号：78-68 <br>电话： (023) 63500828 ddd67039612 dd67039625 <br>传真： (023) 63500828 <br>E-mail ： <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#115;&#106;&#107;&#120;&#49;&#50;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">jsjkx12@163.com</a><br>&nbsp;<a href="http://www.jsjkx.com/">http://www.jsjkx.com/</a><br>&nbsp;<br>&nbsp;<br>&nbsp;</p>
<p>《系统工程理论与实践》（月刊）<br>&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>地址：北京中关村东路55号&nbsp;&nbsp;&nbsp; 邮编：100080　<br>电话: 010-62541828　<br>Email: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#120;&#116;&#108;&#108;&#64;&#99;&#104;&#105;&#110;&#97;&#106;&#111;&#117;&#114;&#110;&#97;&#108;&#46;&#110;&#101;&#116;&#46;&#99;&#110;">xtll@chinajournal.net.cn</a><br><a href="http://www.sysengi.com/">http://www.sysengi.com/</a><br>&nbsp;</p>
<p>《系统工程学报》（Journal of Systems Engineering ）（双月刊）<br>&nbsp;&nbsp; 中文重要期刊，EI Compendex源期刊，中文核心期刊<br>主办单位：中国系统工程学会<br>地　　址：天津市津卫路92号天津大学18教学楼411室<br>邮政编码：300072<br>电　　话：022-27403197<br>传　　真：022-27403197<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#115;&#101;&#116;&#106;&#117;&#64;&#50;&#54;&#51;&#46;&#110;&#101;&#116;">jsetju@263.net</a>&nbsp;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#122;&#111;&#119;&#97;&#110;&#103;&#64;&#116;&#106;&#117;&#46;&#101;&#100;&#117;&#46;&#99;&#110;">zowang@tju.edu.cn</a> <br>&nbsp;</p>
<p>《系统工程与电子技术》（Systems Engineering and Electronics）（月刊）<br>&nbsp;&nbsp;&nbsp; 系统工程与电子技术&nbsp; 英文版：《Journal of Systems Engineering and Electronics》（季刊）<br>&nbsp;&nbsp;&nbsp; EI Compendex源期刊，中文核心期刊<br>主办单位：中国航天科工集团公司二院 中国宇航学会 中国系统工程学会<br>地址：北京142信箱32分箱<br>邮编：100854<br>电话：010-68388406<br>传　　真：010-68388406<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#120;&#116;&#121;&#100;&#122;&#64;&#49;&#50;&#54;&#46;&#99;&#111;&#109;">xtydz@126.com</a><br>&nbsp;</p>
<p>《小型微型计算机系统》（Mini-Micro Systems） （月刊） <br>&nbsp;&nbsp;&nbsp;&nbsp; 中文核心期刊<br>主办单位：中科院沈阳计算技术研究所 <br>地址：沈阳市和平区三好街100号 中科院沈阳计算技术研究所 《小型微型计算机系统》编辑部 <br>邮编：110004 <br>邮发代号：8-108 <br>电话:&nbsp; 024-23892547 <br>E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#120;&#119;&#106;&#120;&#116;&#64;&#115;&#105;&#99;&#116;&#46;&#97;&#99;&#46;&#99;&#110;">xwjxt@sict.ac.cn</a> <br><a href="http://www.sict.ac.cn/">http://www.sict.ac.cn/</a> <br>&nbsp;</p>
<p>《数值计算与计算机应用》（Journal on Numerical Methods and Computer Applications） （季刊）<br>&nbsp;&nbsp; 中文核心期刊，ISTIC收录<br>主办单位：中国科学院计算数学与科学工程计算研究所 <br>地址：北京市2719信箱 《数值计算与计算机应用》编辑部 <br>邮编：100080 <br>邮发代号：2-413 <br>E-mail:SZJS@chinajournal.net.cn <br><a href="http://www.chinainfo.gov.cn/periodical">http://www.chinainfo.gov.cn/periodical</a>&nbsp; <br>&nbsp;</p>
<p>《计算机工程与应用》（Computer Engineering and Applications） （旬刊）<br>&nbsp; 中文核心期刊，ISTIC收录 <br>主办单位：华北计算技术研究所 <br>地址：北京市北四环中路211号 北京619信箱26分箱《计算机工程与应用》杂志社 <br>邮编：100083 <br>邮发代号：82-605 <br>电话：010-51615542<br>投稿信箱：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#106;&#105;&#116;&#64;&#112;&#117;&#98;&#108;&#105;&#99;&#50;&#46;&#98;&#97;&#116;&#46;&#110;&#101;&#116;&#46;&#99;&#110;">tjit@public2.bat.net.cn</a> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#101;&#97;&#64;&#49;&#54;&#51;&#98;&#106;&#46;&#99;&#111;&#109;">cea@163bj.com</a> <br>&nbsp;<a href="http://www.ceaj.org/">http://www.ceaj.org/</a> <br>&nbsp;</p>
<p>《计算机应用研究》（Application Research Of Computers） （月刊）<br>&nbsp; 中文核心期刊， ISTIC收录<br>主办单位：四川省电子计算机应用研究中心 <br>通讯地址：成都市成科西路3号 《计算机应用研究》编辑部&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 邮编：610041<br>邮发代号：62-68 <br>编辑部电话：028-85249567&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 电话: 028-85210177，85221946 <br>&nbsp;E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#114;&#99;&#99;&#97;&#64;&#115;&#105;&#99;&#104;&#117;&#97;&#110;&#46;&#110;&#101;&#116;&#46;&#99;&#110;">srcca@sichuan.net.cn</a>;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#114;&#111;&#99;&#109;&#97;&#103;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">arocmag@163.com</a> <br>&nbsp;<a href="http://www.arocmag.com/">http://www.arocmag.com/</a><br>&nbsp;</p>
<p>《中文信息学报》 （双月刊）<br>&nbsp;&nbsp;&nbsp; 中文核心期刊，ISTIC收录<br>主办单位：中国科学院软件研究所 中国中文信息学会 <br>地址：北京8718信箱 《中文信息学报》编辑部 <br>邮编：100080 <br>&nbsp; E-mail:cips@admin.iscas.ac.cn <br>&nbsp;</p>
<p>《计算机应用》（Computer Appliocations） （月刊）&nbsp; <br>&nbsp; 中文核心期刊，ISTIC收录<br>主办单位：中科院成都计算机应用研究所 四川省计算机学会 <br>地址：成都市人民南路四段九号 成都237信箱《计算机应用》编辑部 <br>邮编：610041 <br>编辑部地址：成都市237信箱 《计算机应用》编辑部　　邮编：610041 <br>邮发代号：62-110 <br>电话：（028）85224283-601<br>传真：（028）85222239<br>E-mail:bjb@computerapplications.com.cn&nbsp;&nbsp; <br><a href="http://www.computerapplications.com.cn/">http://www.computerapplications.com.cn/</a> <br>&nbsp;</p>
<p>《计算机辅助设计与图形学学报》（Journal of Computer-Aided Design &amp; Computer Graphics） （月刊）<br>&nbsp;&nbsp; 中文核心期刊，ISTIC收录<br>主办单位：中国计算机学会 <br>地址：北京2704信箱 中国科学院计算技术研究所 <br>邮编：100080 <br>邮发代号：82-456 <br>&nbsp; E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#99;&#97;&#100;&#64;&#105;&#99;&#116;&#46;&#97;&#99;&#46;&#99;&#110;">jcad@ict.ac.cn</a>&nbsp; <br>&nbsp; E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#99;&#97;&#100;&#64;&#110;&#115;&#46;&#105;&#99;&#116;&#46;&#97;&#99;&#46;&#99;&#110;">jcad@ns.ict.ac.cn</a><br>&nbsp; <a href="http://jcad.ict.ac.cn/">http://jcad.ict.ac.cn/</a> <br>&nbsp;</p>
<p>《计算机工程与设计》（Computer Engineering and Design） （月刊） <br>&nbsp;&nbsp;&nbsp; 中文核心期刊<br>主办单位：中国航天科工集团二院706所 <br>地址：北京142信箱406分箱 《计算机工程与设计》编辑部 <br>邮编：100854 <br>邮发代号：82-425 <br>&nbsp;E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#101;&#100;&#64;&#104;&#116;&#116;&#120;&#46;&#99;&#111;&#109;&#46;&#99;&#110;">ced@httx.com.cn</a>&nbsp; <br>&nbsp;<a href="http://www.china-ced.com/">http://www.china-ced.com/</a><br>&nbsp;</p>
<p>&nbsp;微电子学与计算机（Microellectronics &amp; Computer）（月刊） <br>&nbsp;&nbsp;&nbsp; 中文核心期刊<br>主办单位：中国航天科技集团公司西安微电子技术研究所 <br>地址：西安市81号信箱 《 微电子学与计算机》编辑部 <br>邮编：710054 <br>邮发代号：52-16 <br>电　　话：029-82262687<br>传　　真：029-82262771<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#99;&#55;&#55;&#49;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">mc771@163.com</a> <br>&nbsp;</p>
<p>计算机仿真（Computer Simulation） （月刊）<br>&nbsp;&nbsp; 中文核心期刊<br>主办单位：中国航天科工集团公司第十七研究所<br>地　　址：北京海淀阜成路14号<br>邮政编码：100037<br>电　　话：010-68767186<br>传　　真：010-68373574<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#107;&#119;&#99;&#111;&#108;&#116;&#100;&#64;&#112;&#117;&#98;&#108;&#105;&#99;&#46;&#98;&#116;&#97;&#46;&#110;&#101;&#116;&#46;&#99;&#110;">kwcoltd@public.bta.net.cn</a>&nbsp;&nbsp;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#115;&#106;&#102;&#122;&#64;&#99;&#111;&#109;&#112;&#117;&#115;&#105;&#109;&#117;&#46;&#99;&#111;&#109;">jsjfz@compusimu.com</a><br>&nbsp; <a href="http://www.compusimu.com/">http://www.compusimu.com/</a> <br>&nbsp;</p>
<p>&nbsp;计算机应用与软件 （Computer Applications and Software）（月刊）<br>&nbsp; 中文核心期刊<br>主办单位：上海市计算技术研究所 上海计算机软件技术开发中心<br>地　　址：上海市愚园路546号《计算机应用与软件》编辑部<br>邮政编码：200040<br>电　　话：021-62520070-505<br>传　　真：021-62254715<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#97;&#115;&#64;&#115;&#105;&#99;&#116;&#46;&#115;&#116;&#99;&#46;&#115;&#104;&#46;&#99;&#110;">cas@sict.stc.sh.cn</a><br>&nbsp;</p>
<p>微计算机信息（CONTROL &amp; AUTOMATION）（旬刊）<br>&nbsp; 中文核心期刊<br>主办单位: 中国计算机用户协会自动控制分会<br>通信地址: 北京海淀区皂君庙14号鑫雅苑6号楼601室&nbsp;&nbsp;&nbsp;&nbsp; 邮编:100081<br>电话: 010-62192616，62132436<br>在线投稿：<a href="http://www.autocontrol.com.cn/">http://www.autocontrol.com.cn/</a> <br>&nbsp;</p>
<p>微型机与应用（Microcomputer &amp; Its Applications）（月刊）<br>&nbsp; 中文核心期刊</p>
<p>创办日期： 　 1982.01.01&nbsp; <br>主办单位： 　 信息产业部电子第六研究所 <br>编辑部通信地址： 　 北京市海淀区清华东路25号(927信箱)&nbsp; <br>邮政编码： 　 100083 <br>联系电话： 　 (010)82306084&nbsp;&nbsp;&nbsp; 65157887 <br>传 真：&nbsp;&nbsp; 010-65157886 <br>编辑部E-mail： 　 <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#99;&#97;&#112;&#112;&#115;&#64;&#105;&#110;&#102;&#111;&#112;&#111;&#46;&#108;&#115;&#104;&#115;&#46;&#97;&#99;&#46;&#99;&#110;">pcapps@infopo.lshs.ac.cn</a>&nbsp;&nbsp;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#99;&#97;&#64;&#110;&#99;&#115;&#101;&#46;&#99;&#111;&#109;&#46;&#99;&#110;">pca@ncse.com.cn</a>&nbsp; <br>国内邮发代号： 　 82-417&nbsp; </p>
<p>&nbsp;</p>
<p>微型计算机（半月刊）<br>&nbsp; 中文核心期刊<br>主办单位：科技部西南信息中心<br>创刊日期：1980.8<br>出刊日期：每月1日、15日<br>&nbsp;</p>
<p>数据采集与处理（Journal of Data Acquisition ＆ Processing）（月刊）<br>&nbsp; EI统计源期刊，中文核心期刊<br>主办单位: 南京航空航天大学. 信号处理学会.微弱信号检测学会<br>地址：南京市御道街29号(南京航空航天大学内)<br>邮编：210016 <br>电话：025-84892742, 84892744<br>电话：025-4492492-2726<br>传真：025-4494880<br>电报挂号：南京市3057<br>&nbsp;</p>
<p>中国图象图形学报（Journal of Image and Graphics）（月刊）<br>&nbsp;中文核心期刊<br>主办单位：中国科学院遥感应用研究所、中国图象图形学学会 、北京应用物理与计算数学研究所 <br>地　　址：北京海淀中关村东路95号（北京2728信箱）&nbsp; <br>邮政编码：100080<br>电　　话：010-82614429<br>传　　真：010-82614429<br>Email：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#105;&#103;&#64;&#105;&#114;&#115;&#97;&#46;&#97;&#99;&#46;&#99;&#110;">jig@irsa.ac.cn</a><br><a href="http://www.cjig.cn/">http://www.cjig.cn/</a> <br>&nbsp;</p>
<p>机器人（Robot）（双月刊）<br>EI统计源期刊，中文核心期刊<br>主办单位：中国科学院沈阳自动化研究所 <br>邮政编码：110003 <br>地　　址：沈阳市南塔街114号<br>邮政编码：110016<br>电　　话：024-23970050<br>电子邮件：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#113;&#114;&#64;&#115;&#105;&#97;&#46;&#99;&#110;">qr@sia.cn</a> <br><a href="http://robot.sia.cn/">http://robot.sia.cn/</a> <br><a href="http://www.robotschina.com/">http://www.robotschina.com/</a><br>&nbsp;</p>
<p>计算机集成制造系统（Computer Integrated Manufacturing Systems）<br>EI统计源期刊，中文核心期刊<br>通信地址：北京市2413信箱34分箱（100089）<br>电&nbsp; 话：（010）68962468<br>传&nbsp; 真：（010）68962468<br>E-mail： <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#66;&#97;&#109;&#116;&#64;&#111;&#110;&#101;&#116;&#46;&#99;&#111;&#109;&#46;&#99;&#110;">Bamt@onet.com.cn</a> <br><a href="http://www.amtech.org.cn/">http://www.amtech.org.cn/</a><br>&nbsp;</p>
<p>航空计算技术（Aeronautical Computer Technique）（季刊）&nbsp; ISTIC收录 <br>&nbsp;</p>
<p>创办日期： 　 1971.01.01&nbsp; <br>主办单位： 　 中国航空工业第六三一研究所 <br>编辑部通信地址： 　 陕西省西安市太白南路(西安90信箱)&nbsp; <br>邮政编码： 　 710068 <br>联系电话： 　 029-88151098&nbsp; <br>编辑部E-mail： 　 <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#99;&#116;&#54;&#51;&#49;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">act631@163.com</a>&nbsp; <br>国内统一刊号： 　 61-1276/TP&nbsp; <br>国际标准刊号： 　 1671-654X&nbsp; <br>国内邮发代号： 　 52-79&nbsp; <br>出版日期： 　 季末月30日&nbsp; </p>
<p>&nbsp;</p>
<p>微计算机应用 （Microcomputer Applications）<br>&nbsp; 中文核心期刊<br>&nbsp; 主办单位： 中国科学院声学研究所&nbsp; <br>&nbsp; 编辑出版 ：《微计算机应用》编辑部<br>&nbsp; 地址： 海淀区北四环西路21号&nbsp;&nbsp;&nbsp;&nbsp; 邮编：100080<br>&nbsp; E--mail：&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#101;&#105;&#106;&#105;&#64;&#100;&#115;&#112;&#46;&#97;&#99;&#46;&#99;&#110;">weiji@dsp.ac.cn</a><br>&nbsp; 电&nbsp;&nbsp;&nbsp; 话：&nbsp; 010-62554573<br>&nbsp; 国内总发行： 北京市邮政局<br>&nbsp; 订购 处：全国各地邮局<br>&nbsp; 国内统一刊号：CN11-2204/TP&nbsp;&nbsp; <br>&nbsp; 国内邮发代号：2-304<br>&nbsp; 国外发行代号：BM5550 <br>&nbsp;</p>
<p>电光与控制（Electronics Optics &amp; Control）（双月刊）<br>&nbsp; 中文核心期刊<br>&nbsp; 主办单位：中国航空工业洛阳电光设备研究所<br>&nbsp; 通讯地址：河南洛阳017信箱16分箱《电光与控制》编辑部　&nbsp;&nbsp;&nbsp; 　　　邮编：471009<br>&nbsp; 电话：0379－63327293&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 传真：0379－63938146<br>&nbsp; E-mail：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#101;&#111;&#101;&#105;&#64;&#112;&#117;&#98;&#108;&#105;&#99;&#50;&#46;&#108;&#121;&#112;&#116;&#116;&#46;&#104;&#97;&#46;&#99;&#110;">eoei@public2.lyptt.ha.cn</a> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#101;&#111;&#101;&#105;&#64;&#118;&#105;&#112;&#46;&#115;&#105;&#110;&#97;&#46;&#99;&#111;&#109;">eoei@vip.sina.com</a>　　 <br>&nbsp; Website: <a href="http://dgkq.chinajournal.net.cn/">http://dgkq.chinajournal.net.cn</a><br>&nbsp;</p>
<p>《计算机工程与科学》（Computer Engineering and Science） （双月刊）<br>&nbsp;&nbsp; ISTIC收录 <br>主办单位：国防科技大学计算机学院 <br>地址：湖南长沙砚瓦池正街47号 《计算机工程与科学》编辑部 <br>邮编：410073 <br>邮发代号：42-153 <br>E-mail：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#99;&#104;&#117;&#110;&#120;&#105;&#64;&#49;&#54;&#51;&#46;&#110;&#101;&#116;">cchunxi@163.net</a> <br>&nbsp;</p>
<p>电子计算机与外部设备（Computer &amp; Peripherals）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E-mail: OK <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#72;&#79;&#80;&#69;&#64;&#109;&#97;&#105;&#108;&#46;&#104;&#122;&#46;&#122;&#106;&#46;&#99;&#110;">HOPE@mail.hz.zj.cn</a> </p>
<p>计算机辅助工程（Computer Aided Engineering）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#109;&#117;&#99;&#97;&#100;&#64;&#49;&#54;&#51;&#46;&#110;&#101;&#116;">smucad@163.net</a> </p>
<p>计算机与现代化（Computer and Modernization）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E-mail: <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#105;&#99;&#116;&#64;&#112;&#117;&#98;&#108;&#105;&#99;&#46;&#110;&#99;&#46;&#105;&#120;&#46;&#99;&#110;">jict@public.nc.ix.cn</a> </p>
<p>计算机与应用化学 Computers and Applied Chemistry</p>
<p>计算机自动测量与控制 Computer Automated Measurement &amp; Control</p>
<p>微型电脑应用</p>
<p>计算机技术与发展</p>
<p>机器人技术与应用</p>
<p>说明：检索系统摘引情况选定如下系统：</p>
<p>SCI (科学引文索引) <br>中文重要期刊（研究生教育与学位重要期刊） <br>EI(工程索引) <br>中文核心期刊 <br>ISTIC (中国科技期刊引证报告统计源期刊) <br>未注明者为非统计源期刊。</p>
<p><br>&nbsp;</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/132437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-26 09:22 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/26/132437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>