<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kim Chow Blog &#187; Java</title>
	<atom:link href="http://www.jianblog.com/category/program/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jianblog.com</link>
	<description>Unix C将是我主攻的语言，现在用PHP在FreeBSD/Centos下开发。</description>
	<lastBuildDate>Fri, 23 Dec 2011 08:29:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>ubuntu安装thrift以及Eclipse</title>
		<link>http://www.jianblog.com/2010/03/19/698/</link>
		<comments>http://www.jianblog.com/2010/03/19/698/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 05:20:51 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.jianblog.com/?p=698</guid>
		<description><![CDATA[PHP对中层间那块比较弱，Facebook开放了他们在使用的Thrift比较好地解决这个问题。当然，没有上到一个量级的时候，使用这个东西不见得有什么效果。我主要是简单地记录一下怎样安装Thrift，以及Eclipse的java开发环境。 &#60;coolcode&#62; apt-get install libboost-dev automake libtool flex bison pkg-config g++ sudo apt-get install ant ivy libslf4j-java libcommons-lang-java liblog4j1.2-java &#60;/coolcode&#62; 到官网下载 http://incubator.apache.org/thrift/ 最新的Thrift。 编译安装Thrift &#60;coolcode&#62; ./configure &#8211;prefix=/opt/thrift make make install &#60;/coolcode&#62; 配置java环境 cat /etc/profile.d/jdk.sh &#60;coolcode&#62; JAVA_HOME=/usr/lib/jvm/java-6-sun export JAVA_HOME CLASSPATH=.:/usr/share/java/ export CLASSPATH &#60;/coolcode&#62; 安装eclipse的java开发环境 &#60;coolcode&#62; sudo apt-get install eclipse-jdt &#60;/coolcode&#62;]]></description>
		<wfw:commentRss>http://www.jianblog.com/2010/03/19/698/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>【收集】如何提高网站访问速度的文章</title>
		<link>http://www.jianblog.com/2006/12/09/285/</link>
		<comments>http://www.jianblog.com/2006/12/09/285/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 04:01:33 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.jianblog.com/2006/12/09/285/</guid>
		<description><![CDATA[如何加快网站访问速度(http://www.qnsky.com/dispbbs.asp?BoardID=6&#38;id=634) 很多朋友都用虚拟主机来做网站，将网页文件存放在虚拟空间上，但是页面内容一多，网站打开的速度就显得特别慢，如果您碰到这种情况，与其寻求更好的 空间，不如通过优化网页代码来取得满意的速度。笔者总结了一些切实可行的方法，制作主页时，以下的方法可以令你的网页速度大大提高。 　　 一、记得帮页面减肥 　　我们浏览网页实际上是将虚拟主机中的网页内容下载到本地硬盘，再用浏览器解释查看的。下载网页的快慢在显示 速度上占了很大比重，所以，网页本身所占的空间越小，那么浏览速度就会越快。这就要求在做网页的时候遵循一切从简的原则，如：不要使用太大的Flash动 画、图片等资源。干净、简洁的页面会给人一种思路明朗的感觉。 　　 二、如没必要，尽量使用静态HTML页面 　　众所周知，ASP、PHP、JSP等程序实现了网页信息的动态交互，运行起来的确非常 方便，因为它们的数据交互性好，能很方便地存取、更改数据库的内容，使网站&#8220;动&#8221;起来，如：论坛、留言板等。但是这类程序必须先由服务器执行处理后，生成 HTML页面，然后再&#8220;送&#8221;往客户端浏览，这就不得不耗费一定的服务器资源。如果在虚拟主机上过多地使用这类程序，网页显示速度肯定会慢，所以没有必要， 请尽量使用静态的HTML页面。 　　 三、不要将整个页面内容塞到一个Table中 　　这是网页设计的问题了，很多站长为了追求页面统一对齐，将整个页面的内容都塞进了 一个Table（表格）里，然后再由单元格td来划分各个&#8220;块&#8221;的布局，这种网站的显示速度是绝对慢的。因为Table要等里面所有的内容都加载完毕后才 显示出来的，如果某些内容无法访问，就会拖延整个页面的访问速度。正确的做法是：将内容分割到几个具有相同格局的Table中去，不要全都塞到一个 Table里。 　　 四、将ASP、ASPX、PHP等文件的访问改为．js引用 　　这在ASP、ASPX、PHP等程序设计时应该注意的，如果你要在 静态的HTML页面里嵌入动态的数据，而这些动态的数据是由ASP、PHP等程序来提供的话，会使用以下的语句引用：，这样的话，每次有一个人访问你的网 站，服务器就要执行并处理一次tongji.asp文件，从数据库抽取相应的数据，再输出给网页显示，如果有几万个人同时访问，就要执行几万次，后果就可 想而知。建议在这些程序中将数据动态生成到一个1.js文件中去，然后在首页通过 &#60; SCRIPT src=&#34;http://www.XXX.com/1.js&#34;&#62;&#60; /SCRIPT&#62; 这样的代码来引用该1.js文件。这样，数据显示的任务就交给客户端的浏览器去做，不会耗费服务器的资源，显示速度自然就很快. 　　 五、使用iframe嵌套另一页面 　　如果你要在网站上插入一些广告代码，又不想让这些广告网站影响速度的话，那么，使用iframe最合适不过了。方法是：将这些广告代码放到一个独立的页面去，然后在首页用如下的代码将该页面嵌入即可，这样就不会因为广告页面的延迟而拖了整个首页的显示，代码如下：　　&#60; IFRAME marginWidth=0 marginHeight=0 src=&#34;http://www.***.com&#34; frameBorder=0 width=468 scrolling=no height=60 leftmargin=&#34;0&#34; topmargin=&#34;0&#34;&#62;&#60; /IFRAME&#62;　　其中http://www.***.com是被引用文件的路径。 　　 六、讲究网站计数器代码放置的技巧 　　在网页里放置计数器可以统计网站的访问流量，为站长和广告商家提供访问依据，但是，不管功能 有多强大的网站统计系统，都会有出故障的时候。如果直接把统计代码放到页面内容的前面，或者放在一个Table或者div标签里，那么在计数器不能访问的 时候，你的页面上那个Table或者div就会产生几十秒钟的延迟，导致页面很长时间才能访问。所以，要提高网站的速度，就要讲究统计代码放置的位置，正 确的方法是：把统计代码放到页面的最下面，并且不要和页面内容同在一个Table或者div标签里。可以在页面代码的最下方直接放置统计代码，或者在最下 方单独做一个Table或者div来放置计数器。这样，在计数器不能访问的时候，你的网站速度也不会受到丝毫影响。 　　 七、友情链接的学问 　　网站之间互相做链接可以增加网站的宣传效果，做LOGO图片链接更能准确地描述网站的主题和定位，宣传效果 [...]]]></description>
		<wfw:commentRss>http://www.jianblog.com/2006/12/09/285/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我所使用的JavaScript调试环境(3)</title>
		<link>http://www.jianblog.com/2006/11/18/257/</link>
		<comments>http://www.jianblog.com/2006/11/18/257/#comments</comments>
		<pubDate>Sat, 18 Nov 2006 04:37:46 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.efbase.org/2006/11/18/257/</guid>
		<description><![CDATA[&#160;&#160; 上次的文章引起很多网友的讨论，我很高兴。其中提到了不少我原来并不十分清楚的东西，在此首先对他们表示感谢，接下来继续我的脚本调试环境。&#160; &#160;&#160;&#160; 我们简单的使用VS.NET打开一个包含脚本的html文件，我们发现我们是不能调试它的，虽然我们可以按F9来设置一个端点，但是这个断点却是形同虚设:(。这是因为我们的browser还没有进入可调试状态，使用上一篇文章中的在代码出错时选择Debugger的方法可以让browser进入调试状态，更普通的办法是把Browser的线程附加到调试器上去。下图就是调试Test.html的示例： &#160;&#160; &#160; &#160;&#160;&#160; 附加线程到运行Test.html的Browser进程上，就是Processes List里的&#34;IEXPLORE.EXE&#34;。&#160; &#160;&#160;&#160; 这样一来再在脚本代码上按F9设置断点，断点的状态就会从下图的第一个unavailable状态变为下图的第二个available状态。 &#160;&#160;&#160; &#160;&#160;&#160; 这样一来我们的代码执行到断点处就会停止下来，这个好像废话哈。下面就是VS.NET 2005比VS.NET 2003强的地方登场了。我们如果用过VS.NET编译型程序的调试，都知道把鼠标放在变量名上，会很快有个Tooltip显示变量的值，或对象的类型和默认ToString()的值。这个功能在2003和2005里同样拥有，只是对于对象Object，在2003里就显示一个{&#8230;}，如果要看{&#8230;}是啥？需要使用Add Watch或QuickWatch来看；在whidbey里面，这个察看功能有了很大的提升，我们将会看到一个可展开的节点来显示对象的值，我们可以在弹出窗口里浏览整个对象树，如下图： &#160;&#160;&#160; &#160;&#160;&#160; 这个东西看起来是不是对调试非常方便呢？当然要是我们觉得弹出窗口太大遮挡了代码，而且这时我们又浏览了很多几级对象树了，屏幕上有一大堆展开的弹出窗口，我们不希望它们消失后，看清了代码又再把它们重新弄出来，怎么办呢？我们这时可以按Ctrl键或者鼠标中键(就是滚轮)让这些弹出窗口透明化~~~ &#160;&#160;&#160; &#160;&#160;&#160; 很酷很贴心的功能吧？&#160; &#160;&#160;&#160;&#160;调试脚本中可能遇到的问题和对策(我们都默认IE的允许脚本调试的选项是开启的)： &#160;&#160;&#160;&#160;1、本来我们打开IE的脚本调试后，程序出现脚本错误时就会弹出一个MsgBox来提示是否调试，而不只是在IE左下角显示一个warning&#160;icon。但是有的时候经过长时间的调试，IE在脚本错误的时候，会不再弹出那个调试提示框，而是又变为在左下角显示错误图标。解决这个问题很简单，关掉browser重新打开来调试就好了。 &#160;&#160;&#160;&#160;2、在脚本正常运行时，我们使用IE的View-&#62;Script Debugger的Open和Break at Next Statement选项会强行调出脚本调试器选择窗口。但是如果我们在脚本中开启过popup窗口，这两个调试选项会失效，就是点选后没有任何反应，这个可能是IE的bug，解决办法一：重新起动IE来调试；解决办法二：在希望调试的脚本语句前写一个错误的脚本调用，比如a.a;，这样程序运行在a.a语句时就会被break并弹出错误调试提示MsgBox，我们可以在这时选择调试器，进入调试状态后使用鼠标改变脚本执行顺序，跳过错误的语句就行了。 &#160;&#160;&#160;&#160;关于脚本调试环境先写到这里，以后有更好的调试方法我会更新进来，欢迎大家提出更好的脚本调试意见和建议。]]></description>
		<wfw:commentRss>http://www.jianblog.com/2006/11/18/257/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搭建开发平台JBuilder</title>
		<link>http://www.jianblog.com/2006/08/09/165/</link>
		<comments>http://www.jianblog.com/2006/08/09/165/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 03:59:31 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.efbase.org/2006/08/09/165/</guid>
		<description><![CDATA[1&#160;&#160;&#160;&#160;&#160;&#160; JBuilder平台之J2ME开发简介 JBuilder是目前进行Java程序开发中使用较为广泛的开发工具。作为大厂商，Borland当然会为不同的开发人群设计更为全面和专业的IDE环境。作为J2ME应用开发，JBuilder是非常理想的开发环境，从第九版以后到现在的2005版，JBuilder都自带了MobileSet，它内附J2ME Wireless Toolkit（以下简称WTK），所以开发人员仅需配置好环境变量，便可直接进入JBuilder进行开发了。如果您还是在使用较早版本的JBuilder，由于其中没有附带J2ME开发的相关工具，您还需要到Sun的官方网站去下载并安装MobileSet。此外，您若要开发基于各个手机厂商机型的应用程序，最好同时到各个厂商的developer站点（如Nokia Forum、motocoder等）下载并在JBuilder中配置相关机型的SDK模拟器，这样可以使您的应用程序更好地适应相对应的真机机型。 2&#160;&#160;&#160;&#160;&#160;&#160; 开始搭建J2ME开发平台 现在我们就开始介绍如何在JBuilder中搭建最适合您的j2me开发环境。首先，我们要明确一个问题，在JBuilder中如果你想要开发基于手机厂商提供的开发包的应用程序时，必须要先确定您的JBuilder环境中已经存在有MobileSet这个插件。所以第九版之前的JBuilder一定要先下载这个插件。MobileSet与手机厂商提供的开发包之间不是并列的关系，厂商开发包是依附于其上的，因为MobileSet中附带的J2ME Wireless Toolkit定义了Configuration（配置）和Profile（简表）的内容，而厂商开发包中则提供了相关的APIs以及模拟器。在第九版至2005版中因为已经自带了MobileSet，所以在您正确安装了JBuilder9、JBuilderX或JBuilder2005之后便可直接进行j2me的程序开发了。需要注意的是JBuilder9至JBuilder2005中自带的WTK版本号分别为：1.04、2.0和2.1。 &#160; 由于新的WTK2.2版包含支持JSR-184规范（3D Graphics API），以及提供了在视觉上更为舒服的模拟器，所以下面为大家演示如何让将WTK2.2嵌入到JBuilder环境中。 &#160; 在安装WTK之前，是需要先安装JDK，请注意JDK是1.4.2之前的版本，则WTK2.2无法安装。之后就是安装WTK2.2： &#160; http://java.sun.com/products/j2mewtoolkit/zh_download-2_2.html，通过这个地址您可以分别下载到基于Windows平台和Linux平台的两种WTK2.2的中文版，该版中提供的一些文档是中文的，所以非常便于初学者察看。下面将图解演示安装过程： &#160; &#160; 单击&#8220;下一步&#8221;，然后是&#8220;许可证协议&#8221;部分，点击&#8220;是&#8221;继续； &#160; &#160; 到此画面时，说明WTK2.2已经检测到了您的机器上已经安装的J2SDK并通过了测试，因为WTK的运行也是由J2SDK来提供支持的。由于我们就是要在JBuilder下进行j2me开发，所以此目录不必更改，此时可以点击&#8220;下一步&#8221;；此后一直点&#8220;下一步&#8221;便可安装完成了。 &#160; 我们已经安装好了WTK2.2，现在就需要在JBuilder下进行配置了，以下将以JBuidler2005版作演示，其间如与以往版本不同时将另附图片进行介绍。 &#160; 首先启动JBuilder，在菜单栏中选取&#8220;Project&#8594;Default Project Properties&#8221;： &#160; 点击之后，出现如下窗口我们将在JDK一栏进行设定。 &#160; &#160; &#160; 点击JDK栏后的路径选择按钮，出现以下窗口： &#160; 此时由于还没有导入WTK2.2，所以要点击&#8220;New&#8221;按钮创建新的JDK，在后面的菜单中只要选择好路径会出现以下画面，此时点击&#8220;OK&#8221;就算设置好了。 JB9版和10版在以上设置中与2005版基本相同。此时您可以建立j2me工程了。 3&#160;&#160;&#160;&#160;&#160;&#160; 完成第一个MIDlet应用程序 在建立工程之前，我们首先应该进行一些默认设置的修改，选择&#8220;Projects/Default Project Properties&#8221;如下图所示： &#160; &#160; 在JDK栏中，如果您仅是把JBuilder作为j2me开发环境来使用的话，可以在此栏中直接选择WTK2.2，这样以后就不用频繁更改了。在JDK下面的三个设置分别为：输出路径、备份路径和工作目录，设置这些路径的原则是尽量简单以便于查找，路径中不能有空格以及中文字符，因为这些是导致编译不成功或者模拟器在出现之后闪现一下即消失的原因。设置好后点击&#8220;OK&#8221;，这样咱们就可以正式建立工程了。 &#160; 在&#8220;File&#8221;菜单中选择&#8220;New&#8221;，此时会弹出下面的对话框： &#160; &#160; 其中，第一个图标表示建立一个新的工程；第二个&#8220;Project for Existing [...]]]></description>
		<wfw:commentRss>http://www.jianblog.com/2006/08/09/165/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>J2ME开发及JBuilder工具的应用</title>
		<link>http://www.jianblog.com/2006/08/09/162/</link>
		<comments>http://www.jianblog.com/2006/08/09/162/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 03:23:26 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.efbase.org/2006/08/09/162/</guid>
		<description><![CDATA[在无线通信领域有两项重大的技术应用，一个是宽带CDMA技术，一个是IP技术。前者使无线通信获得更多带宽，3G的目标是静态速率达到2Mbps，而现在的2.5G技术（如国内正在建设的GPRS和CDMA2000 1X）都可达到115kbps的速率；后者使无线通信和因特网融合起来，实际上当前WAP2.0技术就采用已经很成熟的TCP、TLS和HTTP协议，而移动IP和IPv6技术将促使更多设备接入互联网，如各种设备、家电等。 　　就是在这样的环境下J2ME技术得以快速发展，J2ME用来为接入和即将接入互联网的设备提供应用开发平台和执行环境，本文则主要论述如何利用JBuilder进行快速的J2ME应用开发。 　　1. J2ME分层结构及MIDP简表 　　J2ME是SUN的JAVA2平台微型版（JAVA2平台3个版本之一，另两个是标准版J2SE和企业版J2EE），采用3层结构设计。最低层为配置层（Configuration），包括虚拟机（VM）和类库两部分，这一层与设备层（硬件及操作系统）关系紧密，由SUN提供参考规范和源代码，设备厂商根据设备特征进行相应的移植。当前J2ME提供有两个配置：连接设备配置（CDC）和有限连接设备配置（CLDC）。前者主要面向有较大内存和处理能力而只需有限功能的设备，如电视置顶盒、冰箱、汽车导航设备等，这些设备都有连接网络和相互交互的需求，其内存在2M以上；后者主要面向对内存和处理能力有较大限制的手持设备，如现在使用的手机、PDA等，现在及将来大多数这些设备都已经能够接入互联网，其内存范围160Kb（其中128Kb用于虚拟机及类库，至少32Kb用于CLDC规范所要求的应用程序堆栈空间）到2M。二者主要区别在于能提供给VM及应用程序的存储空间，CDC所用VM及类库实际是参考J2SE标准，去除了不需要的功能如AWT。CLDC所用VM（称作KVM）则有较大区别，包括类验证机制。对于下一代移动终端设备如智能电话、高端 PDA，则是CDC所应用对象，因为它们将有超过2M的内存。 　　设备层之上是简表层（Profile），再之上则是应用层（Application）。简表层扩展了配置层功能为上层应用提供API，如果说配置层面向设备，简表层则面向应用。可以根据需要在CDC或CLDC基础之上提供多种简表，一个配置层之上也可以有多个简表。当前CDC之上有基础简表（Foundation Profile）和基于FP的Personal Profile和RMI Profile。CLDC之上则主要提供有移动信息设备简表（MIDP），即用于手机、PDA等移动终端的设备简表，提供API以支持无线应用的开发。 　　CLDC类库一部分来自J2SE，这部分类库是经过裁减的，去除了不必要的功能，主要包括java.lang包中的系统类、数据类型类、异常处理类，java.util包的集合类、时间类和附加工具类，java.io包的I/O处理类。CLDC专有类则主要是&#34;通用连接框架（GCF） &#34;，为CLDC提供网络连接功能，这些网络接口都是Connection类的子类，由类Connector所提供的方法调用，这些接口或类位于包 javax.microedition.io。 　　CDC类库则是CLDC的超集，因此为CLDC开发的应用程序可以移植到CDC平台，由于CDC采用标准的J2SE VM，因此其开发与标准的J2SE开发一致，只是在用javac工具编译源代码时需要使用CDC的类库，即使用-bootclasspath参数指向 CDC类库。 　　MIDP扩展了CLDC的功能，它继承了GCF并在此基础上增加了类HttpConnection，用以提供 HTTP连接功能（尽管从理论上CLDC/MIDP可以提供socket、数据报、文件、NFS等多种连接类型，但现在标准的CLDC/MIDP仅支持 HTTP协议，一些设备实现则提供了socket和HTTPS协议的支持），MIDP类库 　　总结如下： 　　java.io、java.lang、java.util，属于MIDP的核心包，分别用来提供系统I/O、语言支持和工具支持。包中的类来自CLDC并稍有增加，但都来自J2SE。 　　javax.microedition.midlet，定义了MIDP应用程序，以及应用程序和它所运行于环境之间的交互。 　　javax.microedition.lcdui，为MIDP应用程序提供用户界面API。 　　javax.microedition.rms，用来为MIDlet提供持久存储的机制，应用程序可以存储数据，在以后需要的时候获取这些数据。 　　javax.microedition.io，提供了基于CLDC通用连接框架的网络支持。 2. MIDP应用程序开发 　　这里讨论的J2ME无线应用开发主要是基于CLDC/MIDP的开发，其应用程序可运行于移植有KVM的手机、PDA等，这类设备由MIDP定义，即移动信息设备（MID），可看作一垂直应用市场。 　　可在PC（Windows、UNIX或Linux平台）上开发MIDP应用程序，编译成类文件形式，下载到目标设备上，经过类文件的验证（验证是否有不符合KVM规范的方法调用等）后即可解释执行。 　　生成的.java文件至少有一个是扩展了javax.microedition.midlet.MIDlet类的子类，并且实现几个规定的接口，比如下面的一个MIDlet程序 ： import javax.microedition.midlet.*; //应用程序生命周期，和J2SE一样，包java.lang.*是默认加载的 import javax.microedition.lcdui.*; //MIDP用户界面 public class FirstMIDlet extends MIDlet implements CommandListener { private Display display; // 引用MIDlet的Display 对象 private TextBox textBox; [...]]]></description>
		<wfw:commentRss>http://www.jianblog.com/2006/08/09/162/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>resin安装</title>
		<link>http://www.jianblog.com/2006/08/07/158/</link>
		<comments>http://www.jianblog.com/2006/08/07/158/#comments</comments>
		<pubDate>Mon, 07 Aug 2006 10:45:48 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[freebsd]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[操作系统]]></category>

		<guid isPermaLink="false">http://blog.efbase.org/2006/08/07/158/</guid>
		<description><![CDATA[cd &#160;/usr/ports/www/resin3/ make install clean Resin is now installed in /usr/local/resin3 You may want to activate it in /etc/rc.conf: resin3_enable=&#34;YES&#34; Then start it: env &#8211; /usr/local/etc/rc.d/resin3.sh start For this control script to run seamlessly, it is recommended to increase the maximum length of commands displayed by ps(1).&#160; Please append the following setting to /etc/sysctl.conf: &#160; [...]]]></description>
		<wfw:commentRss>http://www.jianblog.com/2006/08/07/158/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>编写你自己的单点登录（SSO）服务</title>
		<link>http://www.jianblog.com/2006/08/06/155/</link>
		<comments>http://www.jianblog.com/2006/08/06/155/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 00:58:57 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://blog.efbase.org/2006/08/06/155/</guid>
		<description><![CDATA[单点登录（SSO）的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域；从技术本身的角度分析了单点登 录技术的内部机制和实现手段，并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解；还从安全和性能的角度对现有的实现技术进行进一步分析，指出 相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单点登录（SSO）的全面分析，还并且讨论了如何将现有的应用和SSO服务结合起来，能够 帮助应用架构师和系统分析人员从本质上认识单点登录，从而更好地设计出符合需要的安全架构。 关键字：SSO, Java, J2EE, JAAS 1 什么是单点登陆 单点登录（Single Sign On），简称为 SSO，是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中，用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部，一般都有很多的业务支持系统为其提供相应的管理和IT服务。例如财务系统为财务人员提供财务的管理、计算和报表服务；人事系统为人事部门 提供全公司人员的维护服务；各种业务系统为公司内部不同的业务提供不同的服务等等。这些系统的目的都是让计算机来进行复杂繁琐的计算工作，来替代人力的手 工劳动，提高工作效率和质量。这些不同的系统往往是在不同的时期建设起来的，运行在不同的平台上；也许是由不同厂商开发，使用了各种不同的技术和标准。如 果举例说国内一著名的IT公司（名字隐去），内部共有60多个业务系统，这些系统包括两个不同版本的SAP的ERP系统，12个不同类型和版本的数据库系 统，8个不同类型和版本的操作系统，以及使用了3种不同的防火墙技术，还有数十种互相不能兼容的协议和标准，你相信吗？不要怀疑，这种情况其实非常普遍。 每一个应用系统在运行了数年以后，都会成为不可替换的企业IT架构的一部分，如下图所示。 随着企业的发展，业务系统的数量在不断的增加，老的系统却不能轻易的替换，这会带来很多的开销。其一是管理上的开销，需要维护的系统越来越多。很多系统的 数据是相互冗余和重复的，数据的不一致性会给管理工作带来很大的压力。业务和业务之间的相关性也越来越大，例如公司的计费系统和财务系统，财务系统和人事 系统之间都不可避免的有着密切的关系。 为了降低管理的消耗，最大限度的重用已有投资的系统，很多企业都在进行着企业应用集成（EAI）。企业应用集成可以在不同层面上进行：例如在数据存储层面 上的&#8220;数据大集中&#8221;，在传输层面上的&#8220;通用数据交换平台&#8221;，在应用层面上的&#8220;业务流程整合&#8221;，和用户界面上的&#8220;通用企业门户&#8221;等等。事实上，还用一个层面 上的集成变得越来越重要，那就是&#8220;身份认证&#8221;的整合，也就是&#8220;单点登录&#8221;。 通常来说，每个单独的系统都会有自己的安全体系和身份认证系统。整合以前，进入每个系统都需要进行登录，这样的局面不仅给管理上带来了很大的困难，在安全方面也埋下了重大的隐患。下面是一些著名的调查公司显示的统计数据： 用户每天平均 16 分钟花在身份验证任务上 &#8211; 资料来源： IDS 频繁的 IT 用户平均有 21 个密码 &#8211; 资料来源： NTA Monitor Password Survey 49% 的人写下了其密码，而 67% 的人很少改变它们 每 79 秒出现一起身份被窃事件 &#8211; 资料来源：National Small Business [...]]]></description>
		<wfw:commentRss>http://www.jianblog.com/2006/08/06/155/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JDK 1.5安装</title>
		<link>http://www.jianblog.com/2006/07/31/149/</link>
		<comments>http://www.jianblog.com/2006/07/31/149/#comments</comments>
		<pubDate>Mon, 31 Jul 2006 02:39:07 +0000</pubDate>
		<dc:creator>Kim Chow</dc:creator>
				<category><![CDATA[freebsd]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[操作系统]]></category>

		<guid isPermaLink="false">http://blog.efbase.org/2006/07/31/149/</guid>
		<description><![CDATA[FreeBSD下安装JDK，已经很简单的事情了。 需要自己下载几个文件。那几个文件用Lynx下载会比较方便一些。Wget之类不支持那么长的文件名。用Lynx就没有问题。 下载好文件之后，用Make install clean就可以安装好了。]]></description>
		<wfw:commentRss>http://www.jianblog.com/2006/07/31/149/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

