ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>天堂а在线中文在线无限看推荐,国产h视频在线观看,精品一区二区在线看http://www.aygfsteel.com/pandawang/category/8825.htmlzh-cnMon, 21 May 2007 12:25:43 GMTMon, 21 May 2007 12:25:43 GMT60JXTA学习½W”è®°åQ?åQ‰â€”—JXTA的各¿Uæ¦‚å¿?/title><link>http://www.aygfsteel.com/pandawang/archive/2007/05/19/118606.html</link><dc:creator>Long Long Ago</dc:creator><author>Long Long Ago</author><pubDate>Sat, 19 May 2007 15:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/pandawang/archive/2007/05/19/118606.html</guid><wfw:comment>http://www.aygfsteel.com/pandawang/comments/118606.html</wfw:comment><comments>http://www.aygfsteel.com/pandawang/archive/2007/05/19/118606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pandawang/comments/commentRss/118606.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pandawang/services/trackbacks/118606.html</trackback:ping><description><![CDATA[本文主要介绍了JXTA中的各种概念ã€?br>1.<span style="font-weight: bold;">Peerã€?/span>一个peerž®±æ˜¯å®žçŽ°äº†ä¸€ä¸ªæˆ–å¤šä¸ªJXTA协议的网¾lœè®¾å¤‡ã€‚比如传感器åQŒç”µè¯ï¼Œ PDAåQŒPCåQŒæœåС噍åQŒå·¨åž‹æœº½{‰ç­‰ã€‚每一个peer与其他peer都是独立操作òq¶ä¸”是异步的。有peer ID来唯一标识一个peer。peer使用JXTA协议公开一个或多个¾|‘络接口åQˆnetwork interfaceåQ‰ï¼Œæ¯ä¸€ä¸ªå…¬å¼€çš„æŽ¥å£éƒ½è¢«å¹¿å‘Šäؓ一个peer端点(peer endpoint),˜q™ä¸ªpeer端点唯一标识了一个网¾lœæŽ¥å£ã€‚peer之间不需要有直接的点对点的网¾lœè¿žæŽ¥ã€‚可以ä‹É用中间的peerä½œäØ“peer的消息èµ\由,ž®†ç”±äºŽç¡¬ä»¶ç½‘¾lœæˆ–者网¾lœé…¾|®ï¼ˆNATsåQŒé˜²ç«å¢™æˆ–者代理)而造成的两个通信peer˜q›è¡Œäº’联。peer通常被设计成¾|‘络中自然地互相发现åQŒä»Žè€Œæž„æˆæš‚æ—¶çš„æˆ–æŒä¹…çš„å…³ç³»æˆäØ“peer¾l„(peer gorupåQ‰ã€?br>2.<span style="font-weight: bold;">Peer Group</span>.一个peer¾l„是一个peer的集合,˜q™äº›peer都有一¾l„相同的服务。peer自组¾l‡çš„加入到peer¾l„中åQŒåƈ通过一个唯一的peer¾l„id来区别这些peer¾l„。每一个peer¾l„都可以建立一个属于自å·Þqš„memebership policyåQŒä»Žä»ÖM½•人可以加入到最严格的安全验证以及受保护方式åQˆéœ€è¦å®Œå…¨çš„认证书来加入åQ‰ã€‚一个peer可以同时属于多于一个peer¾l„。默认地åQŒç¬¬ä¸€ä¸ªpeer¾l„被实例的组是Net Peer Group。所有的peer都属于Net Peer Group。peer可以选择加入其他的peer group。JXTA协议描述了peer如何公开åQŒå‘玎ͼŒåŠ å…¥ä»¥åŠç›‘æŽ§peer¾l„ã€?br>     如下几点说明了创建peer¾l„的目的ã€?br> <ol> <li>建立安全的环境。peer¾l„可以创å»ÞZ¸€ä¸ªæœ¬åœ°æŽ§åˆ¶åŸŸåQŒåœ¨˜q™ä¸ªåŸŸä¸­ä½¿ç”¨ä¸€ä¸ªç‰¹å®šçš„安全½{–略。这个安全策略可以简单的只是一个明文的帐号 /口ä×o交换åQŒä¹Ÿå¯ä»¥åƒPKI一æ ähˆç†Ÿã€‚peer¾l„界定认证的成员讉K—®å’Œå…¬å¼€å—保护的内容åQˆcontentåQ‰ã€‚peer¾l„在建立了一个逻辑上的区域åQŒä»Žè€Œå¯¹è®‰K—®peer¾l„的资源˜q›è¡Œç•Œå®šã€?/li> <li>创徏一个范围环境。peer¾l„裕兴徏立一个本地的专用域。比如,peer可以¾l„织èµäh¥å®žçŽ°ä¸€ä¸ªæ–‡æ¡£å…±äº«ç½‘¾lœæˆ–者一个CPUå…׃ín¾|‘络ã€?peer¾l„提供细分网¾lœæˆæŠ½è±¡çš„区域来提供内在范围机制åQˆimplicit scoping mechanismåQ‰ã€‚比如,当搜索一个组内容的时åQŒpeer¾l„可以界定定义一个搜索范围ã€?/li> <li>创徏一个监视环境。peer¾l„å…è®æ€¸€ä¸ªpeerä¸ÞZº†ä»ÖM½•目的åŽÈ›‘视一¾l„peeråQˆæ¯”如,心蟩åQŒtraffic introspection或者accountabilityåQ‰ã€‚peer¾l„也可以构徏一个父子层‹Æ¡ç»“构,其中ä»ÖM½•一个组都有一个唯一的父二Ӏ‚查询请求能偶在˜q™ä¸ª¾l„中传播。对于这个组中的òq¿å‘Šä¹Ÿå¯ä»¥åœ¨å…¶çˆ¶¾l„中公开åQŒå½“然也包裹˜q™ä¸ª¾l„本íw«ã€?/li> </ol> peer¾l„提供了一¾l„服务成为peer¾l„服务。在JXTA中敌营了一个核心peer¾l„服务集合。两个peer如果要通过一个服务进行交互,他们配需位于同一个peer中ã€?br>    核心的组服务有如下:<br> <ol> <li>发现服务åQˆDiscovery ServiceåQ‰ã€‚本服务被组中的peer用来查询per¾l„资源,比如peeråQŒpeer¾l„,通道和服务等ã€?/li> <li>成员关系服务åQˆMembership ServiceåQ‰ã€‚本服务被当前成员用来拒¾læˆ–接受一个新的组成员应用。一个peer惌™¦åŠ å…¥åˆîC¸€ä¸ªgroup前,首先要确定一个当前的成员åQŒåƈè¯äh±‚加入。当前成员的集合可以拒绝或者接受某个想加入的应用(applicationåQ‰ã€‚本服务可能会发起一个所有peer或者指定组代表的一‹Æ¡æŠ•¼œ¨æ¥å†›_®šæ˜¯å¦æŽ¥å—或者聚居新的成员应用ã€?/li> <li>讉K—®æœåŠ¡åQˆAccess ServiceåQ‰ã€‚ä‹É用访问服务可以用来验证一个peer对另一个peer的请求(requeståQ‰ã€‚如果访问被允许åQŒé‚£ä¹ˆæŽ¥å—请求的peer会提供给è¯äh±‚peer关于该请求所要知道的信息的信ä»Õd’Œç›¸å…³ä¿¡æ¯ã€‚(注意åQŒåœ¨peer¾l„中åQŒä¸æ˜¯æ‰€æœ‰çš„è¡ŒäØ“åQˆactionåQ‰éƒ½éœ€è¦é€šè¿‡è®‰K—®æœåŠ¡çš„æ£€æŸ¥ï¼Œåªæœ‰é‚£äº›åœ¨æŸäº›peer中被限制的行为在需要调用时åQŒæ‰è¢«æ£€æŸ¥ã€‚)</li> <li>½Ž¡é“服务åQˆPipe ServiceåQ‰ã€‚本服务用于在peer¾l„成员间的链接管道的建立和管理ã€?/li> <li>Resolver服务。本服务用来发送一般的查询è¯äh±‚到其他的peer。peer可以定义和交换请求以便发çŽîC“Q何需要的信息åQˆæ¯”如一个服务的状态或者一个管道端点的信息。)</li> <li>监视服务(Monitoring Service)。本服务用来让一个peer监视本组中的其他成员服务ã€?/li> </ol>     不是所有上面提到的服务都必™å»è¦è¢«æ¯ä¸ªpeer实现。一个peer¾l„可以自ç”Þqš„实现那些它认为有用的服务åQŒåƈ可以依赖于默认的Net Peer Group来提供非关键核心服务的一般实现ã€?br>3.<span style="font-weight: bold;">Network Services</span>。peer之间可以协作òq‰™€šä¿¡ä»¥å‘布,发现和启动网¾lœæœåŠ¡ã€‚peer可以发布多个服务。peer通过Peer Discovery Protocol来发现network service。在JXTA协议中组¾l‡äº†ä¸¤ä¸ªå±‚次上的network serviceã€?br> <ul> <li>Peer Service。一个peer service只有当peer公布了自å·Þqš„service时才能被讉K—®ã€‚如果这个peerå¤ÞpÓ|了,那么它的service也失败了。不同的peer可以˜qè¡ŒæŸä¸ªæœåŠ¡çš„å¤šä¸ªå®žä¾‹ï¼Œä½†æ¯ä¸ªå®žä¾‹éƒ½å¿…é¡»å…¬å¼€è‡ªå·±çš„å¹¿å‘?advertisement).</li> <li>Peer Group Service。peer¾l„服务是˜q™ä¸ª¾l„中成员所˜qè¡ŒæœåŠ¡çš„å®žä¾‹çš„é›†åˆçš„ç»„¾l‡åŞ式,其中˜q™äº›å®žä¾‹æ˜¯äº’相合作的。如果其中ä“Q何一个peerå¤ÞpÓ|了,那么˜q™ä¸ª peer¾l„服务将不会收到影响åQˆå‡å®šè¿™ä¸ªæœåŠ¡å¯ä»¥ä»Žå…¶ä»–peer获得åQ‰ã€‚peer group服务通过peer ¾l„广告的以部分来发布ã€?/li> </ul>     服务可以是事先被安装到peer上或者通过¾|‘ç»œå®‰è£…çš„ã€‚äØ“äº†çœŸæ­£çš„˜qè¡Œä¸€ä¸ªæœåŠ¡ï¼Œpeer必须为定位一个适合当前peer˜qè¡ŒçŽ¯å¢ƒçš„ä¸€ä¸ªå®žçŽ°ã€‚è¿™ä¸ªä»Ž¾|‘络上查找,下蝲和安装一个服务的˜q‡ç¨‹å¾ˆç±»ä¼égºŽåœ¨Internet上搜索一个Web™åµé¢åQŒå–回这个页面然后再安装需要的插äšg的过½E‹ã€?br> 4.<span style="font-weight: bold;">Modules</span>。JXTAçš„module用来描述ä»ÖM½•一ŒD는¨æ¥å®žçްJXTA world中一个行为的“代码”的抽象表½Cºï¼ˆAbstractionåQ‰ã€‚Network Servicež®±æ˜¯åœ¨ä¸€ä¸ªpeerä¸Šå®žçŽ°çš„è¡ŒäØ“çš„ä¸€ä¸ªæœ€ä¸€èˆ¬çš„ä¾‹å­ã€‚è¿™ä¸ªModule Abstraction不一定特指什ä¹?#8220;代码”åQŒå®ƒå¯ä»¥æ˜¯ä¸€ä¸ªJava¾c»ï¼Œä¹Ÿå¯ä»¥æ˜¯Java jaråQŒæˆ–者动态链接库dllåQŒä¸€ä¸ªXML消息或是一个脚本。这个module的行ä¸ÞZº¤¾l™äº†module的实现者。对于一个实例(instanceåQ‰ï¼Œ module表示了一个网¾lœæœåŠ¡ï¼ˆnetwork serviceåQ‰åœ¨ä¸åŒòq›_°ä¸Šçš„不同实现åQŒè¿™äº›åã^台比如说在javaòq›_°åQŒMS windowsòq›_°åQŒSolaris òq›_°ã€?br>    Module允许peer实现一个新的行为,通过提供了一个一般的抽象。当peer‹¹è§ˆæˆ–者加入一个peer¾l„æ—¶åQŒä»–可以查找新的其打½Ž—å®žçŽ°çš„è¡ŒäØ“ã€‚æ¯”å¦‚ï¼Œå½“åŠ å…¥ä¸€ä¸ªpeer¾l„后åQŒä¸€ä¸ªpeer可能必须学习新的搜烦服务åQŒè¿™ä¸ªæœåŠ¡åªèƒ½åœ¨æœ¬peer¾l„ä¸­ä½¿ç”¨ã€‚äØ“äº†åŠ å…¥åˆ°˜q™ä¸ª¾l„,˜q™ä¸ªpeer必须实现˜q™ä¸ªæ–°çš„æœçƒ¦æœåŠ¡ã€‚è¿™ä¸ªmodule框架可以启动òq›_°æ— å…³è¡Œäؓ的表½Cºï¼ˆrepresentationåQ‰å’Œòq¿å‘ŠåQˆadvertisementåQ‰ã€‚åÆˆå…è®¸peer描述和实çŽîC“Q何åŞ式这个行为(behavioråQ‰çš„æ˜¯å®žçŽ°ã€‚æ¯”å¦‚ï¼Œä¸€ä¸ªpeer使用java或者c实现一个行为的实现ã€?br>& amp; nbsp;   描述和公告一个åã^å°ç‹¬ç«‹çš„è¡ŒäØ“çš„èƒ½åŠ›èƒ½æœ‰æœ‰æ•ˆçš„æ”¯æŒpeer¾l„包含异构的peer。module的广告可以ä‹ÉJXTAçš„peer能够采用òq›_°ç‹¬ç«‹çš„æ–¹å¼æ˜qîC¸€ä¸ªè¡Œä¸ºã€‚JXTAòq›_°ä½¿ç”¨moduleòq¿å‘Šæ¥è‡ªæè¿°ã€?br>    module抽象åQˆModule abstractIonåQ‰åŒ…括一个module classåQŒmodule specification和一个moduleimplementationã€?br> <ul> <li>Module Class。module class主要用于òq¿å‘Šä¸€ä¸ªè¡Œä¸ºï¼ˆbehavioråQ‰çš„存在。这个class的定义表˜qîCº†ä¸€ä¸ªæœŸæœ›çš„è¡ŒäØ“å’Œä¸€ä¸ªæœŸæœ›çš„å¯Òމ€æ”¯æŒçš„module的绑定。每一个module class都有一个唯一的IDåQŒæˆä¸ºMoudleClassID</li> <li>Module Specification。Module Specification主要用于讉K—®˜q™ä¸ªmodule。它包含了访问或者启动这个module的所有必要的信息。比如,一个服务,他的module specification可能包含了一个用于和其他服务盔R€šä¿¡çš„管道的òq¿å‘Šã€‚一个module specification用于提供module class所指明的功能。对于一个module class可能有多个module specification。每一个module specification都有一个唯一的idåQŒModuleSpecID。ModuleSpecID包含了ModuleClass IDåQŒåƈ指明了所使用的module class。一个module specification暗含了对¾|‘络的兼å®ÒŽ€§ã€‚对于一个给定的module specification的所有实现都必须使用相同的协议,˜q™äº›å®žçŽ°éƒ½éœ€è¦æ˜¯å…¼å®¹çš„ï¼Œå³ä‹É使用不同的语­a€å®žçŽ°çš„ã€?/li> <li>Module Implementation。Module Implement是一¾l™å®šmodule specification的实现。对于一个module specification可以有多个module implementation。每一个module implementation都包含了它所实现的与specification相关联的ModuleSpecIDã€?/li> </ul>     Module可以被peer¾l„服务ä‹É用,也可以被独立的服务所使用。JXTA服务通过module abstraction来区别存在的服务åQˆä»–çš„Module ClassåQ‰ï¼ŒæœåŠ¡çš„specificationåQˆModule SpecificationåQ‰ï¼Œæˆ–者服务的实现åQˆService ImplementationåQ‰ã€‚所有的˜q™äº›éƒ½æœ‰ä¸€ä¸ªè”合的òq¿å‘ŠåQŒåƈ且可以通过其他JXTA peer来公告和发现的。作ä¸ÞZ¸€ä¸ªä¾‹å­ï¼Œè€ƒè™‘JXTA的发现服务。它包含一个唯一的ModuleClassIDåQŒæ ‡è¯†äº†ä»–作ä¸ÞZ¸€ä¸ªå‘现服务——他的抽象功能。对于这个发现服务可以有多个不同的规范(SpecificationåQ‰ï¼Œòq¶ä¼´éšç€ä¸åŒçš„实现。对于组的大ž®å’Œåœ¨ç½‘¾lœä¸­çš„传播方式可以ä‹É用不同的裁剪½{–略。每一个Specification都有唯一的MdouleSpecIDåQŒå…¶ä¸­æŒ‡æ˜Žäº†å‘现发现服务的ModuleClassID。对于每个规范,都可能有多种实现åQŒæ¯¿Uå®žçŽ°éƒ½åŒ…å«äº†ç›¸åŒçš„ModuleSpceIDã€?br>    æ€ÖM¹‹åQŒå¯¹äºŽä¸€ä¸ªç»™å®šçš„module Class都可能有多种规范åQŒè¿™äº›è§„范可能是完全不同的。然而ä“Q何给定规范的所有实现都是假定可以互相兼容的ã€?br><img src ="http://www.aygfsteel.com/pandawang/aggbug/118606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pandawang/" target="_blank">Long Long Ago</a> 2007-05-19 23:11 <a href="http://www.aygfsteel.com/pandawang/archive/2007/05/19/118606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JXTA学习½W”è®°åQ?åQ‰â€”—JXTA的体¾pȝ»“æž?/title><link>http://www.aygfsteel.com/pandawang/archive/2007/05/13/117108.html</link><dc:creator>Long Long Ago</dc:creator><author>Long Long Ago</author><pubDate>Sun, 13 May 2007 06:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/pandawang/archive/2007/05/13/117108.html</guid><wfw:comment>http://www.aygfsteel.com/pandawang/comments/117108.html</wfw:comment><comments>http://www.aygfsteel.com/pandawang/archive/2007/05/13/117108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pandawang/comments/commentRss/117108.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pandawang/services/trackbacks/117108.html</trackback:ping><description><![CDATA[    在JXTA中分ä¸ÞZ¸‰ä¸ªå±‚‹Æ¡ï¼Œå¦‚下图所½Cºã€?br><img style="width: 482px; height: 339px;" alt="" src="http://www.aygfsteel.com/images/blogjava_net/pandawang/JXTA/JxtaArchitecture.JPG" align="middle"><br>     下面分别介绍各个层次åQ?br> <ol> <li>òq›_°å±‚(platform layeråQ‰ã€‚åã^台层åÏx‰€è°“çš„JXTA核心åQˆJXTA coreåQ‰ï¼Œä¸“门包装了最ž®æœ€¾_‘֍Žçš„部分,˜q™éƒ¨åˆ†ä¸»è¦å®Œæˆäº†å¯¹P2P¾|‘络最一般的使用。包括,为P2P应用½E‹åºçš„关键机制构建模块,传输åQˆåŒ…括防火墙½I‰K€ï¼‰åQŒåˆ›å»ºpeerå’Œpeer group以及和安全部分的¾l“合ã€?/li> <li>服务层(Service layeråQ‰ã€‚服务层包含了一些网¾lœæœåŠ¡ï¼Œ˜q™äº›æœåŠ¡ä¸ä¸€å®šæ˜¯P2P½E‹åºä¸­å¿…™åȝš„åQŒä½†å´æ˜¯P2P环境中通常和值得提供的。比如搜索,索引åQŒç›®å½•,存储¾pȝ»ŸåQŒæ–‡ä»¶å…±äº«ï¼Œåˆ†å¸ƒå¼æ–‡ä»¶ç³»¾lŸï¼Œèµ„源聚合和租借等应用服务åQŒä»¥åŠåè®®ä¼ è¾“服务和认证和PKI服务½{‰ç­‰ã€?/li> <li>应用层(Application layeråQ‰ã€‚应用层包括了综合应用的实现åQŒæ¯”如P2P的及时消息,文档和资源的å…׃ínåQŒå¨±ä¹å†…容管理和分发åQŒP2Pçš„email¾pȝ»ŸåQŒåˆ†å¸ƒå¼æ‹å–¾pȝ»Ÿä»¥åŠå¾ˆå¤šå…¶ä»–的应用ã€?/li> </ol>     实际上,服务层和应用层之间的界限òq¶ä¸æ˜¯æ˜Žæ˜„¡š„。一个用æˆïLš„应用½E‹åºå¯ä»¥ä½œäؓ另一个用æˆïLš„æœåŠ¡ã€‚æ•´ä¸ªç³»¾lŸè¢«å®žé™…成模块化的,允许开发者选择一个服务和应用的集合来定制自己的需求ã€?br>    在JXTA中有三个主要斚w¢æ˜¯å®ƒåŒºåˆ«ä¸€å…¶ä»–分布式网¾lœæ¨¡åž‹çš„åQ?br> <ol> <li>使用XML文档(òq¿å‘ŠåQ‰æ¥æè¿°¾|‘络资源ã€?/li> <li>针对peeré—´å’Œpeer与端点(endpointåQ‰é—´çš„æŠ½è±¡ç®¡é“(abstraction pipe)不需要ä‹É用一个可信赖的中心名å­?地址认真åQŒæ¯”如DNSã€?/li> <li>唯一的peer地址æ–ÒŽ¡ˆåQˆpeer IDsåQ‰ã€?/li> </ol> 在下面的部分ž®†è¯¦¾l†ä»‹¾lJXTA的各个组成部分ã€?br><img src ="http://www.aygfsteel.com/pandawang/aggbug/117108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pandawang/" target="_blank">Long Long Ago</a> 2007-05-13 14:13 <a href="http://www.aygfsteel.com/pandawang/archive/2007/05/13/117108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JXTA学习½W”è®°åQ?åQ‰â€”—JXTA½Ž€ä»?/title><link>http://www.aygfsteel.com/pandawang/archive/2007/05/12/117072.html</link><dc:creator>Long Long Ago</dc:creator><author>Long Long Ago</author><pubDate>Sat, 12 May 2007 15:59:00 GMT</pubDate><guid>http://www.aygfsteel.com/pandawang/archive/2007/05/12/117072.html</guid><wfw:comment>http://www.aygfsteel.com/pandawang/comments/117072.html</wfw:comment><comments>http://www.aygfsteel.com/pandawang/archive/2007/05/12/117072.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pandawang/comments/commentRss/117072.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pandawang/services/trackbacks/117072.html</trackback:ping><description><![CDATA[    JXTAæ˜¯ä¸€ä¸ªäØ“P2P计算而开发设计的开发网路计½Ž—åã^台。它的目标是通过创徏基本¾l„äšg和服务来为peer group创造新的应用。JXTA是juxtpose的简¿UŽÍ¼ŒæŒ‡åÆˆåˆ—åÆˆæŽ’ï¼Œ˜q™é‡Œæ˜¯è¯´P2P的方式和C/S方式以及B/S方式是同½{‰åœ°ä½äº†åQŒéƒ½æ˜¯ä¼ ¾lŸçš„分布式计½Ž—模型ã€?nbsp;JXTA为开发应用程序提供了一¾l„开发协议集合和一个开放源码的参考实现。JXTA协议标准化了peer的风æ û|¼š <ol> <li>互相发现åQ?/li> <li>在peer group中的自组¾l‡ï¼›</li> <li>òq¿å‘Šå’Œå‘现网¾lœæœåŠ¡ï¼›</li> <li>peer间的通讯åQ?/li> <li>peer间的交互ã€?/li> </ol>     JXTA协议被设计成独立于程序设计语­a€å’Œç‹¬ç«‹äºŽä¼ è¾“协议的。这些协议可以ä‹É用Java或者C/C++或者perlå®žçŽ°ã€‚åŒæ øP¼Œä¹Ÿèƒ½åœ¨TCP/IP,HTTP,Bluetooth或者其他传输协议上实现。JXTA协议使得开发者可以构建和部çÖvP2Pçš„æœåŠ¡æˆ–è€…åº”ç”¨ç¨‹åºï¼Œå› äØ“˜q™äº›åè®®æ˜¯ç‹¬ç«‹äºŽ½E‹åºè¯­è¨€å’Œä¼ è¾“协议,所以可以ä‹É得采用完全不同èÊY件体¾pȝš„异构¾lˆç«¯è®‘Ö¤‡èƒ½å¤Ÿäº¤äº’通讯。ä‹É用JXTA技术,开发äh员可以开发出åŸÞZºŽ¾|‘络的,能够交互的应用程序,˜q™äº›åº”用½E‹åºæœ‰å¦‚下特点: <ol> <li>通过动态查询和防火墙穿­‘Šæ¥å‘现本网¾lœä¸­çš„å…¶ä»–peeråQ?/li> <li>ä»ÖM½•讉K—®¾|‘络的节炚wƒ½å¯ä»¥æ–¹ä¾¿åœ°å…±äº«æ–‡æ¡£ï¼›</li> <li>在网¾lœç«™ç‚¹ä¸­æŸ¥æ‰¾minute contentåQ?/li> <li>创徏一个peer group来提供服务;</li> <li>˜qœç«¯ç›‘视peer的行为;</li> <li>在网¾lœä¸­åŒå…¶ä»–peer˜q›è¡Œå®‰å…¨çš„通信ã€?/li> </ol><img src ="http://www.aygfsteel.com/pandawang/aggbug/117072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pandawang/" target="_blank">Long Long Ago</a> 2007-05-12 23:59 <a href="http://www.aygfsteel.com/pandawang/archive/2007/05/12/117072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>erlangå’Œyawshttp://www.aygfsteel.com/pandawang/archive/2007/01/18/94774.htmlLong Long AgoLong Long AgoThu, 18 Jan 2007 15:22:00 GMThttp://www.aygfsteel.com/pandawang/archive/2007/01/18/94774.htmlhttp://www.aygfsteel.com/pandawang/comments/94774.htmlhttp://www.aygfsteel.com/pandawang/archive/2007/01/18/94774.html#Feedback2http://www.aygfsteel.com/pandawang/comments/commentRss/94774.htmlhttp://www.aygfsteel.com/pandawang/services/trackbacks/94774.htmlhttp://yarivsblog.com/articles/2006/07/12/the-hitchhiker
首先需要安装erlang环境åQŒwindowså’Œlinux下都有,但yaws好像只给了个linux下的安装文äšgåQŒäºŽæ˜¯åœ¨ubuntu6.06上安装ã€?br />从erlang主页www.erlang.org上下载源码,¾~–译步骤åQ?br />tar -xzvf xxx.tar.gz
cd xxx
sudo ./configure
åQˆsudo make cleanåQ‰ï¼ƒå¯é€‰çš„åQŒç”¨äºŽéžé¦–次¾~–译的情å†?br />sudo make
sudo make install åQˆas rootåQ?br />但configure时出错:åQˆç±»ä¼¼å¦‚下)
configure: error: No curseslibraryfunctions found
There is a problem with $ERL_TOP/erts/configure not passing the LDFLAGS
environment variable for test compiles, so ALL library tests fail. I
modified files $ERL_TOP/erts/aclocal.m4 and $ERL_TOP/configure.in in order
to locate pthread_create in the standard C runtime library. The
$ERL_TOP/configure.in produces a configure that works, wheras the
$ERL_TOP/erts/configure.in does not. At the top of file erts/configure.in:

AC_PREREQ(2.13)
AC_INIT(vsn.mk)
应该是一些curses库没有安装,但apt-get install curses提示找不刎ͼŒgoogle了一下发现需要安è£?br />
ncurses-devel包,在网上只扑ֈ°äº†ç›¸åº”çš„rpm包,使用alien命ä×oåQŒå°†rpm保è{æ¢äØ“deb包安装:
sudo apt-get install alien
sudo alien *.rpm,转成deb后,用dpkg -i *.deb
或�br />sudo alien -i *.rpm
˜q›è¡Œå®‰è£…
(注意åQŒä¸‹è½½rpm包的时候我ž®†åŒ…æ”¹åäº†ï¼Œå¯ÆD‡´alien时出错,æ”ÒŽˆåŽŸæ¥çš„åå­—å°±æ­£å¸¸äº†ï¼Œä¸çŸ¥é“äØ“ä»€ä¹ˆï¼šP)
˜q™æ—¶å€™cofigure可以˜q‡åŽ»äº†ï¼Œä½†make又出错了åQŒæ½Cºerlc找不刎ͼŒ¾cÖM¼¼å¦‚下的错误信息:
erlc -W +debug_info -I../include -o../ebin otp_ring0.erl
make[4]: erlc: Command not found
make[4]: ***[../ebin/otp_ring0.beam]Error127
make[4]: Leaving directory `/usr/src/packages/erlang-10.b.5/lib/kernel/src'
make[3]: *** [/usr/src/packages/erlang-10.b.5/lib/kernel/ebin/otp_ring0.beam] Error 2
make[3]: Leaving directory `/usr/src/packages/erlang-10.b.5/erts/emulator'
make[2]: *** [generate] Error 2
make[2]: Leaving directory `/usr/src/packages/erlang-10.b.5/erts/emulator'
make[1]: *** [depend] Error 2
make[1]: Leaving directory `/usr/src/packages/erlang-10.b.5'
make: *** [build-stamp] Error 2
make: *** [debs] Error 2

看网上有介绍说ä‹É用make cleanòq¶ä¸å®Œå…¨åQ?br />于是ž®†æºç åˆ é™¤ï¼Œé‡æ–°è§£åŽ‹¾~©ï¼Œå†configure后,makeåQŒæ²¡æœ‰æ½Cºerlc找不åˆîCº†åQŒåˆæœ‰æ½Cºç±»ä¼¼å¦‚下的错误信息åQ?br />> otp_src_R11B-1/lib/kernel/ebin/erlang.beam > i686-pc-linux-gnu/preload.c
> m4 -DTARGET=i686-pc-linux-gnu -DOPSYS=linux -DARCH=x86 hipe/
> hipe_x86_asm.m4 > i686-pc-linux-gnu/opt/plain/hipe_x86_asm.h
> /bin/sh: m4: command not found
> make[2]: *** [i686-pc-linux-gnu/opt/plain/hipe_x86_asm.h] Error 127
> make[2]: Leaving directory `/home/jhancock/otp_src_R11B-1/erts/emulator'
> make[1]: *** [generate] Error 2
> make[1]: Leaving directory `/home/jhancock/otp_src_R11B-1/erts/emulator'
> make: *** [depend] Error 2
˜q™æ˜¯m4包没有找刎ͼˆhttp://www.erlang.org/pipermail/erlang-questions/2006-November/023942.htmlåQ?br />安装m4包后åQŒç‘ô¾l­make出现如下错误åQ?br />hipe/hipe_mkliterals.c:351: error: 'X86_LEAF_WORDS' undeclared here (not in a function)
hipe/hipe_mkliterals.c:352: error: 'X86_NR_ARG_REGS' undeclared here (not in a function)
¾|‘上搜烦¾l“æžœåQšhttp://forum.trapexit.org/viewtopic.php?t=6815
ž®†æºç åˆ é™¤ï¼Œå†è§£åŽ‹ç¾ƒ 再make¾lˆäºŽ˜q‡åŽ»äº?/pre>提示åQšå¦‚下的包最好是在erlang安装之前ž®±å®‰è£…好çš? perl, debhelper (>= 4.0.0), autoconf (>= 2.50), openssl, libssl-dev, m4, libncurses5-dev, dpatch, autotools-dev, unixodbc-dev
make˜q‡ç¨‹å¤§æ¦‚æœ?个小æ—Óž¼Œä¹‹åŽæ˜¯make install很快ã€?br />打开¾lˆç«¯åQŒè¾“å…¥erlåQŒå‡ºçŽ°æ½Cºç¬¦1>
后面ž®†yaws的安装和使用
yaws的安装挺½Ž€å•çš„åQŒä¸»è¦æ˜¯ä»–çš„¾~–译是基于erlangçš„ã€?br />需要注意的是,安装好后åQŒå¦‚果没有安装相应的ssl模块的话åQŒéœ€è¦æ›´æ”¹ä¸€ä¸‹confæ–‡äšgåQŒå°†å…¶ä¸­å…³äºŽssl的部分注释掉åQŒæ—¢å¦‚下部分åQ?br /><server xxx>
      ....
          <ssl>
                ...
          </ssl>
</server>
在windows下的安装åQŒåœ¨yaws的主™åµä¸Šæœ‰è¯´æ˜Žï¼Œéœ€è¦ä¸‹è½½ä¸€ä¸ªbatæ–‡äšgåQŒä¸˜q‡è¿™ä¸ªæ–‡ä»¶å¥½åƒæœ‰é—®é¢˜åQŒéœ€è¦å°†ä¸€äº›å®‰è£…的环境变量改一下,在(SET ERLC_FLAGS=åQ‰è¿™è¡Œä¹‹åŽæ·»åŠ ï¼š
SET ProgramFiles=G:\erlang\yaws\yaws_program
SET HOME=G:\erlang\yaws\yaws_data
SET APPDATA=G:\erlang\yaws\yaws_configure
ProgramFiles 为yaws的程序位¾|®ï¼ŒHOME为yaws的数据位¾|®ï¼ŒåŒ…括wwwåQŒlogåQŒwikiåQŒssl½{‰ï¼ŒAPPDATA为yaws的配¾|®ä½¾|®ã€?br />如果使用默认安装参数的话åQŒéœ€è¦å°†IF NOT DEFINED ProgramFiles SET ProgramFiles="c:\Program Files"å’?br />HOME="%HOMEDRIVE%%HOMEPATH%\My Documents"中的双引号去掉(感觉˜q™ä¸ªbatæ–‡äšg写的比较乱)
同时不要忘了åQŒåœ¨å®‰è£…好之后注释掉confæ–‡äšg中关于ssl的部分ã€?br />安装好后åQŒé»˜è®¤å°±å¯ä»¥åœ?home/www目录或è€?tmpåQˆwindows䏋䨓%home%\www  or C:\tmpåQ‰ç›®å½•添加yawsæ–‡äšgåQˆehtmlåQ‰æ¥æ˜„¡¤ºäº†ã€?br />btwåQšå¦‚果在ubuntu or debian上安装,最½Ž€å•,只要apt-get install yaws ž®±å¯ä»¥äº†ã€‚运行yaws需要root权限ã€?br />

]]>java Object输入输出‹¹ä¸­çš„一个问题zzhttp://www.aygfsteel.com/pandawang/archive/2006/12/30/90990.htmlLong Long AgoLong Long AgoSat, 30 Dec 2006 04:46:00 GMThttp://www.aygfsteel.com/pandawang/archive/2006/12/30/90990.htmlhttp://www.aygfsteel.com/pandawang/comments/90990.htmlhttp://www.aygfsteel.com/pandawang/archive/2006/12/30/90990.html#Feedback0http://www.aygfsteel.com/pandawang/comments/commentRss/90990.htmlhttp://www.aygfsteel.com/pandawang/services/trackbacks/90990.html写程序中遇到一个问题 如ä¸? mySoc = new Socket(svrAddress,5555); myInput = new ObjectInputStream(mySoc.getInputStream());//有问é¢? myOutput = new ObjectOutputStream(mySoc.getOutputStream());//有问é¢? //myInput = new DataInputStream(mySoc.getInputStream()); //myOutput = new DataOutputStream(mySoc.getOutputStream());  注销的语句运行可以成åŠ? 但是未注销的那部分 ˜qè¡Œæ—¶å°±å¡åœ¨é‚£é‡Œäº? 但是却没有抛出异å¸? è¯äh•™åŽŸå› æ˜¯ä»€ä¹ˆÂ æœ‰ä»€ä¹ˆé—®é¢? 该怎么解决呢?

找了好久¾lˆäºŽå†ç½‘上找到关于这个问题的说明了 因为问题比较特ŒDŠÂ æ‰€ä»¥è„“出来希望对大å®?
有帮�

ä¸ÀLœºç«¯å…ˆå»ºç«‹ObjectInputStream后徏立ObjectOutputStreamåQŒåˆ™å¯¹åº”地客æˆïL«¯è¦å…ˆå»ºç«‹
ObjectOutputStream后徏立ObjectInputStreamåQŒå¦åˆ™ä¼šé€ æˆä¸¤æ–¹äº’相½{‰å¾…数据而导致死
锁�

原因是徏立ObjectInputStream对象是需要先接收一定的header数据åQŒæŽ¥æ”¶åˆ°˜q™äº›æ•°æ®ä¹‹å‰
ä¼šå¤„äºŽé˜»å¡žçŠ¶æ€ã€‚æ•…è€ŒäØ“äº†é˜²æ­¢è¿™¿Uæ­»é”çŠ¶æ€ï¼Œé€šè®¯ä¸¤æ–¹çš?
ObjectInputStraem,ObjectOutputStream必须注意™åºåºå¯¹åº”使用ã€?


目前相应的解军_Šžæ³•è¿˜æ²¡æœ‰æ‰‘Öˆ°Â å¦‚果要解å†ê å¯ä»¥å°è¯•重载对象输入输出流


]]>
subversion的配¾|?/title><link>http://www.aygfsteel.com/pandawang/archive/2006/09/05/67844.html</link><dc:creator>Long Long Ago</dc:creator><author>Long Long Ago</author><pubDate>Tue, 05 Sep 2006 09:00:00 GMT</pubDate><guid>http://www.aygfsteel.com/pandawang/archive/2006/09/05/67844.html</guid><wfw:comment>http://www.aygfsteel.com/pandawang/comments/67844.html</wfw:comment><comments>http://www.aygfsteel.com/pandawang/archive/2006/09/05/67844.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pandawang/comments/commentRss/67844.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pandawang/services/trackbacks/67844.html</trackback:ping><description><![CDATA[安装subversion<br />基本命ä×oåQ?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">  $ sudo apt-get install subversion<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />  $ sudo apt-get install libapache2-svn</span></div>可以安装的包:<br /><strong><font color="#000000"> apache2<br /> apache2-common<br /> apache2-mpm-prefork<br /> apache2-utils<br /> libapache2-svn<br /> libapache2-mod-auth-pam<br /> libapache2-mod-auth-sys-group<br /> subversion<br /> subversion-tools<br /></font><br /><br /></strong>创徏一个名为subversion的组åQšgroupadd subversion<br />ž®†è‡ªå·?eg.:user)å’Œwww-data(apapch2帐号)用户æ·ÕdŠ å…¥subversion¾l„,可以¾~–辑/etc/groupæ–‡äšg,在最后找到subversionæ·ÕdŠ å…¥å¸å·å(eg:user,www-data),看上åŽÕd°±åƒè¿™æ ?<strong class="highlight">subversion</strong>:x:1001:www-data,exp<br />然后是创建subversionåº?òq¶èµ‹äºˆsubversion¾l„中用户有读写subversion库的权限:<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">   $ sudo mkdir /home/svn  #创徏svn库的父èµ\å¾?br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />   $ cd /home/svn<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />   $ sudo mkdir myproject  #创徏本svn库的目录<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />   $ sudo svnadmin create /home/svn/myproject #使用svn命ä×o,创徏svnåº?br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />   $ sudo chown -R root:subversion myproject #更改本目录的¾l?br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />   $ sudo chmod -R g+rws myproject #¾l™æœ¬ç›®å½•的组用户增加è¯Õd†™å’Œé€’归增加新加目录的读写权é™?/span></div>注意上面提到的命令顺åº?如果最后再执行创徏库的命ä×o(svnadmin create ....)则创建的文äšg没有获得¾l„用户写的权é™?˜q™æ ·åœ¨å¤–部访问提交的时候会出错.<br />对于本机,可以直接使用file命ä×o来访é—?<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">  $ svn co(or checkout) file:///home/svn/myproject<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />#or<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />  $ svn co file://localhost/home/svn/myproject</span></div><em>注意åQšå¦‚果您òq¶ä¸¼‹®å®šä¸ÀLœºçš„名¿UŽÍ¼Œæ‚¨å¿…™åÖM‹É用三个斜æ?///)åQŒè€Œå¦‚果您指定了主机的名称åQŒåˆ™æ‚¨å¿…™åÖM‹É用两个斜æ?//).<br /></em>此时对svn库的权限是基于文件系¾lŸçš„,只要是subversion¾l„中的用户都可以讉K—®æœ¬svn库ã€?br /><br />接下来,讲述如何使用apache服务器来提供对svn库的讉K—®<br />¾~–辑文äšg/etc/apache2/mods-available/dav_svn.conf<br />增加如下的内容:<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">  </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">Location </span><span style="COLOR: #ff0000">/svn/myproject</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />     DAV svn<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />     SVNPath /home/svn/myproject<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />     AuthType Basic<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />     AuthName "myproject subversion repository"<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />     AuthUserFile /etc/subversion/passwd<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />     </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">LimitExcept </span><span style="COLOR: #ff0000">GET PROPFIND OPTIONS REPORT</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />        Require valid-user<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />     </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">LimitExcept</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">Location</span><span style="COLOR: #0000ff">></span></div><p>apache会解析url中的/svn/myproject部分åQŒæ¥å®šä½svn库,当收到此è¯äh±‚æ—Óž¼Œä¼šæŸ¥è¯¢svn库:/home/svn/myprojectåQŒè¿™é‡Œçš„认证方式是basicåQŒå¯¹äºŽè®¿é—®è¦æ±‚valid-useråQŒå¸åäh–‡ä»¶åœ¨/etc/subversion/passwd中ã€?br />注意重新讄¡½®åŽè¦é‡å¯apache2åQšsudo /etc/init.d/apache2 restart<br />¾~–辑生成帐号文äšg: sudo htpasswd2 -c /etc/subversion/passwd user  #¾l™user帐号创徏口ä×o<br />˜q™æ—¶å€™å¯ä»¥é€šè¿‡‹¹è§ˆå™¨æ¥‹¹è§ˆsvn库了<br />在我的设¾|®ä¸­å‘现åQŒapache2会自动绑定ipv6地址åQŒå¯èƒ½ä¼šæœ‰äº›é—®é¢˜åQŒå¯ä»¥å¼ºåˆ¶apache¾l‘定v4地址åQŒåœ¨/etc/apache2/port.conf中改成:Listen [bindedip]:[port]çš„åÅžå¼?br /><br />通过https来访问svnåº?br /><font color="#000000">首先生成一ä¸?SSL ½{‘֐åQŒä‹É用命ä»?br /><br /> # apache2-ssl-certificate<br /><br />˜q™é‡Œä¼šæœ‰ä¸€¾pÕdˆ—关于你的个äh隐私的问题,回答完了åQŒè‡ªç„¶çš„½{‘֐ä¹Ÿå°±ç”Ÿæˆäº†ï¼Œç„?br />后我们就要在 apache2 里面打开 SSL 了,现在要做的是开å?ssl 模块<br /><br /> # a2enmod ssl<br /><br />然后åQŒä‹Éç”?apache2 的虚拟主机功能来æ·ÕdŠ  SSL 的支持,ž®?br /><br /> /etc/apache2/sites-available/default<br /><br />复制一份,å?br /><br /> /etc/apache2/sites-available/ssl<br /><br />好啦<br /><br />修改 default æ–‡äšgçš„å¼€å¤´äØ“<br /><br /> NameVirtualHost *:80<br /> <VirtualHost *:80><br /><br />修改 ssl æ–‡äšgçš„å¼€å¤´äØ“<br /><br /> NameVirtualHost *:443<br /> <VirtualHost *:443><br /><br />˜q™é‡Œ 443 æ˜?SSL 的标准端口ã€?br /><br />òq¶åœ¨ ssl æ–‡äšg中加入如下内容,åœ?lt;VirtualHost></VirtualHost>å†?br /><br /> SSLEngine On<br /> SSLCertificateFile /etc/apache2/ssl/apache.pem<br /><br />保存文äšg后,˜qè¡Œå‘½ä×o<br /><br />   # a2ensite ssl<br /><br />来激‹z»è¿™ä¸ªè™šæ‹Ÿä¸»æœ?br /><br />现在åQŒä¿®æ”ÒŽ–‡ä»?br /><br /> /etc/apache2/ports.conf<br /><br />加上一è¡?br /><br /> Listen 443<br /><br />好了åQŒåˆ°æ­¤äؓ止,SSL 服务器配¾|®å®Œæˆï¼Œé‡æ–°å¯åЍ apache 吧ã€?/font></p><p> </p><p>一些问题:<br />可能出现 RA layer request failed svn: MKACTIVITY of 400 Bad Request 之类的错误,˜q™å¯èƒ½æ˜¯å› äؓ使用了代理的原因åQŒä»£ç†ä¸æ”¯æŒsvn的扩展命ä»?see:<a >http://subversion.tigris.org/faq.html#proxy</a><br />˜q˜æœ‰¿UåŽŸå› ï¼Œž®±æ˜¯å¯èƒ½æ˜¯ä½ çš„客æˆïL«¯ä½¿ç”¨çš„æ˜¯windowsxpåQŒå…¶ä»–版本的windows我没试过åQŒä¹Ÿæ˜¯è¿™æ ïLš„错误åQŒåœ¨linux下正常,解决æ–ÒŽ³•不太清楚ã€?br />RA layer request failed svn: MKACTIVITY of 400 Bad RequeståQŒæ— è®ÞZ»€ä¹ˆåŽŸå› éƒ½å¯ä»¥ç”¨https代替http来暂时解册™¿™æ ïLš„问题ã€?br /><br />参考:<br /><a >http://fanqiang.chinaunix.net/app/web/2005-05-18/3257.shtml</a><br /><a >http://wiki.ubuntu.org.cn/SubVersion?highlight=%28subversion%29</a><br /></p><img src ="http://www.aygfsteel.com/pandawang/aggbug/67844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pandawang/" target="_blank">Long Long Ago</a> 2006-09-05 17:00 <a href="http://www.aygfsteel.com/pandawang/archive/2006/09/05/67844.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在unbuntu中安装xgl及ä‹Éç”?/title><link>http://www.aygfsteel.com/pandawang/archive/2006/08/31/66843.html</link><dc:creator>Long Long Ago</dc:creator><author>Long Long Ago</author><pubDate>Thu, 31 Aug 2006 05:03:00 GMT</pubDate><guid>http://www.aygfsteel.com/pandawang/archive/2006/08/31/66843.html</guid><wfw:comment>http://www.aygfsteel.com/pandawang/comments/66843.html</wfw:comment><comments>http://www.aygfsteel.com/pandawang/archive/2006/08/31/66843.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/pandawang/comments/commentRss/66843.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/pandawang/services/trackbacks/66843.html</trackback:ping><description><![CDATA[在sources.list中添加如下几个源åQ?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">deb http://www.beerorkid.com/compiz/ dapper main<br />deb http://xgl.compiz.info/ dapper main<br />deb-src http://xgl.compiz.info/ dapper main <br /></span></div>æ·ÕdŠ ä»£ç†åQ?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">export http_proxy="http://xxx.xxx.xxx.xxx:xxxx"</span></div>获取pgp密钥åQ?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">wget http://www.beerorkid.com/compiz/quinn.key.asc -O - | sudo apt-key add - </span></div><br />nivida的驱动:<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">sudo apt-get install nvidia-kernel-common nvidia-glx</span></div>¾~–辑文äšgåQ?etc/X11/xorg.conf<br />在module部分中确定lode xglåQŒæœ‰å¦‚下代码åQ?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">Load "glx"</span></div>在devices部分修改除了Identifier行的其他各行åQŒä¿®æ”¹åŽå¦‚下åQ?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">Section "Device"<br />    Identifier- leave this line alone!<br />    Driver        "nvidia"<br />    BusID        "PCI:1:0:0"<br />    Option         "RenderAccel"         "true"<br />EndSection</span></div>在最下面æ·ÕdŠ Extensions部分åQŒä»£ç å¦‚下:<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">Section "Extensions"<br />          Option  "Composite" "Enable"<br />EndSection</span></div>下面是安装必要的库文ä»Óž¼š<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">sudo apt-get install compiz xserver-xgl libgl1-mesa xserver-xorg libglitz-glx1 compiz-gnome</span></div>以上是引文http://www.ubuntuforums.org/showthread.php?t=131267 中的æ–ÒŽ³•åQŒæ­¤æ–‡æ‰€è®²çš„后面是加载方法,我没有采用,用的是这里讲的方法:http://forum.ubuntu.org.cn/viewtopic.php?t=16777 不过˜q™é‡Œè®²çš„安装æ–ÒŽ³•中少了一个库文äšgåQŒå‘µå‘?br />讄¡½®xgl启动入口åQ?br />新徏一个xgl启动脚本/usr/bin/startxgl.sh,内容如下åQ?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">Xgl -fullscreen :1 -ac -accel glx:pbuffer -accel xv:pbuffer & sleep 2 && DISPLAY=:1<br /># Start GNOME<br />exec gnome-session </span></div>使脚本可执行åQ? sudo chmod 755 /usr/bin/startxgl.sh<br />新徏一个compiz脚本/usr/bin/startcompiz,内容如下åQ?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">#!/bin/sh<br />killall gnome-window-decorator<br />wait<br />gnome-window-decorator & LD_PRELOAD=/usr/lib/fglrx/libGL.so.1.2.xlibmesa<br />compiz --replace gconf miniwin decoration transset wobbly fade minimize cube rotate zoom scale move resize place switcher trailfocus water & </span></div>使得脚本可执行:sudo chmod 755 /usr/bin/startcompiz <br /><span id="wmqeeuq" class="postbody"> 在登陆管理器里徏一个XGL会话åQ? 建立一个文ä»?/span>/usr/share/xsessions/xgl.desktop åQŒå†…容如下:<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">[Desktop Entry]<br />Encoding=UTF-8<br />Name=XGl<br />Exec=/usr/bin/startxgl.sh<br />Icon=<br />Type=Application </span></div><br /><span id="wmqeeuq" class="postbody"> 打开桌面菜单-〉系¾l?〉首选项-〉会è¯? <br /> 在最双™¾¹çš„“启动程序”里æ·ÕdŠ  /usr/bin/startcompiz ˜q™å¥è¯? <br />最后不要忘äº?/span><br />sudo aptitude update <br /> sudo aptitude upgrade<br />关闭所有程åº?br />ctrl-alt-backspace启动X<br />ç™Õd½•时在会话中选择xgl<br />会提½Cºæ˜¯å¦äؓ默认会话åQŒå¾è®®é€‰æ‹©ä»…本‹Æ?br />哦,差点忘了åQŒæ€Žä¹ˆä½¿ç”¨åQ?br /> CTRL + ALT + Left/right arrow key. Switches to the new side of the cube for me. <br /><br /> CTRL + ALT + SHIFT + Left/Right arrow key- Takes the in focused app around cube.<br /><br /> CTRL + ALT + Left Click on Desktop - allows you to use the mouse to rotate cube.<br /><br /> F12 - uses the Expose like trick<br /><br /> Alt- Tab - switcher Vista-style<br /> 看è“v来有ç‚ÒŽ™•åQŒå°¤å…¶æ˜¯è¾“入法的‹¹®åЍ½H—体<br /><img src ="http://www.aygfsteel.com/pandawang/aggbug/66843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/pandawang/" target="_blank">Long Long Ago</a> 2006-08-31 13:03 <a href="http://www.aygfsteel.com/pandawang/archive/2006/08/31/66843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Design Pattern Practice [zz]http://www.aygfsteel.com/pandawang/archive/2006/04/24/42770.htmlLong Long AgoLong Long AgoMon, 24 Apr 2006 01:23:00 GMThttp://www.aygfsteel.com/pandawang/archive/2006/04/24/42770.htmlhttp://www.aygfsteel.com/pandawang/comments/42770.htmlhttp://www.aygfsteel.com/pandawang/archive/2006/04/24/42770.html#Feedback0http://www.aygfsteel.com/pandawang/comments/commentRss/42770.htmlhttp://www.aygfsteel.com/pandawang/services/trackbacks/42770.html阅读全文

]]>
javasvnhttp://www.aygfsteel.com/pandawang/archive/2006/03/23/37002.htmlLong Long AgoLong Long AgoThu, 23 Mar 2006 03:22:00 GMThttp://www.aygfsteel.com/pandawang/archive/2006/03/23/37002.htmlhttp://www.aygfsteel.com/pandawang/comments/37002.htmlhttp://www.aygfsteel.com/pandawang/archive/2006/03/23/37002.html#Feedback0http://www.aygfsteel.com/pandawang/comments/commentRss/37002.htmlhttp://www.aygfsteel.com/pandawang/services/trackbacks/37002.html最˜q‘在用javasvn做一个svn的管理程序,用rcp实现åQŒåœ¨å®žçް˜q‡ç¨‹ä¸­å‘玎ͼŒå¦‚果只是单纯的用java½E‹åºå®žçŽ°ç›®å½•åˆ—è¡¨çš„æ—¶å€™ï¼Œä¸€åˆ‡æ­£å¸¸ï¼Œä½†ä‹É用rcp后始¾lˆå‡ºé”™ï¼Œè®¤è¯é”™è¯¯åQŒè§‚察javasvn源代码后发现åQŒåœ¨å®šä¹‰è®¤è¯manager的时候javasvn会检‹¹‹æ˜¯å¦åœ¨ä½¿ç”¨eclipseåQŒå¦‚果是åQŒåˆ™å®šä¹‰ä¸€ä¸ªeclipseAuth××mangeråQŒåŽæ¥ä¿®æ”¹äº†ç›¸åº”的代码,不调用那个检‹¹‹æ˜¯å¦äØ“eclipse的方法后ž®±ok了,估计是在eclipse中ä‹É用javasvn会有ç‰Òޮп€§ï¼Œæ•…加了此ŒDµä»£ç ï¼Œä¸è¿‡½Ž€å•çš„rcp是不需要的ã€?/p>

]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ÀË¿¨×ÓÏØ| ·¨¿âÏØ| ½¨Ê¼ÏØ| Á°Ô´ÊÐ| ÁÙä¬ÏØ| ¶¼ÔÈÊÐ| °²ÇìÊÐ| ÓÎÏ·| ÐÂÒ°ÏØ| ¸ß¶û·ò| ÁéèµÏØ| ¸ö¾ÉÊÐ| ¿Ëʲ¿ËÌÚÆì| ¹ã°²ÊÐ| Âí¹«ÊÐ| ²©¿Í| ÐÐÌÆÏØ| ÎÚÇ¡ÏØ| ÓͼâÍúÇø| ËìÏªÏØ| Âí¶û¿µÏØ| ±öÑôÏØ| ×ÓÖÞÏØ| Èô¶û¸ÇÏØ| ãòÖÝÊÐ| Ã÷ÏªÏØ| ÎýÁÖºÆÌØÊÐ| ãëÉÏÏØ| ÚüÖÝÊÐ| ¶Ø»ÍÊÐ| ξÊÏÏØ| Çì°²ÏØ| ÂêÇúÏØ| ¿ªÑôÏØ| ÎÐÑôÏØ| Ó¦³ÇÊÐ| ÒÁÎáÏØ| ÅíÔóÏØ| ¾ÅÁúÆÂÇø| ÓÏÑô| º£ÄþÊÐ|