ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>99国产精品99久久久久久,日韩亚洲欧美中文高清在线,亚洲精一区二区三区http://www.aygfsteel.com/JimmyJin/走在架构师的大道上,学习的乐­‘£å°±åœ¨äºŽž®†çŸ¥è¯†åº”用于具体实践中,在实战中实现知识的ä­h(hu¨¢n)倹{€?/description>zh-cnTue, 17 Jun 2025 04:18:14 GMTTue, 17 Jun 2025 04:18:14 GMT60架构之美http://www.aygfsteel.com/JimmyJin/archive/2012/05/24/369028.htmljimmy2009jimmy2009Thu, 24 May 2012 04:31:00 GMThttp://www.aygfsteel.com/JimmyJin/archive/2012/05/24/369028.htmlhttp://www.aygfsteel.com/JimmyJin/comments/369028.htmlhttp://www.aygfsteel.com/JimmyJin/archive/2012/05/24/369028.html#Feedback0http://www.aygfsteel.com/JimmyJin/comments/commentRss/369028.htmlhttp://www.aygfsteel.com/JimmyJin/services/trackbacks/369028.html之前只要一提è“væž¶æž„åQŒç»™æˆ‘一¿Uå¾ˆæ·±å¥¥ã€çŽ„å¦™çš„æ„Ÿè§‰åQŒè®¤ä¸ºå¾ˆç‰›XåQŒæ›¾å‡ ä½•åQŒä»¥ä¸ø™ÊY件架构无非就是将几大框架(各层‹Æ?整合在一赯‚€Œå·²åQŒåŽæ¥å½“我从事系分一ŒD‰|—¶é—´ä¹‹åŽï¼Œä½“会到如果你不能从整体上认识一个系¾l?软äšg)çš„è¯æ˜¯æ²¡æ³•åšæž¶æž„çš„ï¼Œå› äØ“æ»¡èƒö¾pȝ»Ÿ(软äšg)的功能是一个架构师最èµïL(f¨¥ng) çš„要求。从˜q™ä¸ªå±‚面上讲åQŒé‚£¾pȝ»Ÿåˆ†æžå¸ˆä¸Ž¾pȝ»Ÿæž¶æž„师一样都要对¾pȝ»Ÿæœ‰ä¸€ä¸ªæ•´ä½“的认识åQŒæ›´è¦è®¤è¯†åˆ°è¯¥ç³»¾lŸåœ¨æœªæ¥å¯èƒ½çš„变化及做成产品后如何时¾l´æŠ¤çš„问题。感觉系¾lŸåˆ†æžå¸ˆä¸Žç³»¾lŸæž¶æž„师好像没什么区别似的,虽说早就知道一个偏重业务一个偏重技术ã€?/span>
但自我开始阅è¯?#8220;架构之美”˜q™æœ¬ä¹¦åŽåQŒå¼€å§‹å¯¹æž¶æž„有了˜q›ä¸€æ­¥çš„认识åQ?/span>
本质上,架构只是¾pȝ»Ÿè®¾è®¡ä¸­çš„一部分åQŒæ— éžæž¶æž„æ›´½Hå‡ºæŸäº›¾l†èŠ‚åQŒåƈ通过抽象省略另一些细节。关注实现系¾lŸç»„ä»¶çš„å¼€å‘è€…å¯èƒ½ä¸ä¼šç‰¹åˆ«å…³å¿ƒæ‰€æœ‰ç»„ä»¶æ˜¯å¦‚ä½•è£…é…åœ¨ä¸€èµøP¼Œè€Œæ˜¯ä¸»è¦å…Ïx³¨ž®‘æ•°¾l„äšg的设计和开发,包括他们必须遵守的架构约束和可以应用的规则。因此,开发者和架构师面对的是系¾lŸè®¾è®¡çš„不同斚w¢ã€‚如果说架构å…Ïx³¨çš„æ˜¯¾l„äšg之间的关¾pÕd’Œ¾pȝ»Ÿ¾l„äšg外部可见的属性,那么设计˜q˜è¦å…Ïx³¨˜q™äº›¾l„äšg的内部结构ã€?br /> æž¶æž„˜q™ä¸ªè¯æœ¬è´¨ä¸Šæ˜¯ä»Žå»ºç­‘学这个行业引甌™¿‡æ¥çš„åQŒæ‰€ä»¥åœ¨è½¯äšg开发这个领域好多概念跟现在的徏½{‘éƒ½ç›æ€¼¼ã€?
™å¹ç›®å…Ïx³¨ç‚¹ï¼š
功能性ã€?br />可变性ã€?br />定w‡ã€?br />生态系¾lŸã€?br />模块化ã€?br />可构建性ã€?br />产品化ã€?br />安全æ€?br />æž¶æž„˜q˜ä¼šå½±å“åˆ°ç»„¾l‡æœºæž„ã€?br />架构观点中的常见思想是结构,每种¾l“构都由各种¾cÕdž‹çš„组件及其关¾pÀLž„成:它们如何¾l„合、相互调用、通信、同步,以及˜q›è¡Œå…¶ä»–交互。组件可以是建筑中的支架栋梁或故事中的章节或人物。每¿Uç»“æž„éƒ½æ˜¯äØ“äº†å¸®åŠ©æž¶æž„å¸ˆç†è§£å¦‚ä½•æ¥æ»¡­‘³ç‰¹å®šçš„å…Ïx³¨ç‚¹ï¼Œå¦‚可变性或性能。展½CºæŸäº›å…³æ³¨ç‚¹å¾—到满èƒöæ—Óž¼Œå¯èƒ½ä¼šåª„响到其他斚w¢çš„关注点åQŒä½†æž¶æž„师必™å»èƒ½å¤Ÿè¯´æ˜Žæ‰€æœ‰å…³æ³¨ç‚¹éƒ½å·²å¾—到满èƒöã€?br />架构师的角色åQšå°±æ˜¯åšè®¾è®¡ä¸Šçš„军_®šåŒ…æ‹¬è¡ŒäØ“ä¸Šå’Œ¾l“构上ã€?br />信息隐藏¾l“构是面向对象设计方法的基础åQŒå®ƒæ»¡èƒö的关注点åQšä¿¡æ¯éšè—ç»“构的设计应该能满­‘›_¯å˜æ€§ã€æ¨¡å—化和可构徏性的要求ã€?br />定义良好的ä‹É用结构将创徏¾pȝ»Ÿçš„适当子集åQŒå¯ä»¥ç”¨äºŽé©±åЍè„P代式或增量式的开发åó@环,满èƒö的关注点åQšäñ”品化和生态系¾lŸã€?br />信息隐藏模块¾l“构和ä‹É用结构是静态的¾l“æž„åQŒå­˜åœ¨äºŽè®¾è®¡æ—¶å’Œ¾~–码æ—Óž¼Œ˜q›ç¨‹¾l“构是运行时的结构ã€?br />˜q›ç¨‹¾l“构满èƒö的关注点åQšæ€§èƒ½å’Œå®¹é‡ã€?br />一åQšäŽ×¾~©æ€§æž¶æž„设è®?br />胖客æˆïL(f¨¥ng)«¯ä¸Žå»‹å®¢æˆ·ç«?br />在线游戏环境与企业环境几乎完全相反,
¾lå…¸çš„企业环境可以描˜qîCؓ一ä¸?#8220;ç˜?#8221;客户端连接一ä¸?#8220;èƒ?#8221;服务器(˜q™ä¸ªæœåŠ¡å™¨åˆå¸¸å¸¸˜qžæŽ¥åˆîC¸€ä¸ªæ›´“èƒ?#8221;的数据库服务器)。服务器ž®†ä¿å­˜å®¢æˆïL(f¨¥ng)«¯éœ€è¦çš„¾lå¤§éƒ¨åˆ†ä¿¡æ¯åQŒåœ¨æœ€ç†æƒ³çš„æƒ…况下åQŒå®¢æˆïL(f¨¥ng)«¯å†…在不多åQŒæ²¡æœ‰è‡ªå·²çš„¼‹¬ç›˜åQŒå®ƒæ˜¯æœåŠ¡å™¨çš„ä¸€ä¸ªç§°èŒçš„æ˜„¡¤ºè®‘Ö¤‡åQŒç»å¤§å¤šæ•°æ®çœŸæ­£çš„工作在服务器上完成ã€?br />游戏世界特别是大型多人在¾U¿æ¸¸æˆï¼ˆMMOåQ?/z>
MMO和虚拟世界的环境始于一个非常胖的客æˆïL(f¨¥ng)«¯åQ?/z>
它通常是顶¾U§çš„PC、具有最强劲的CPU、很大的内存åQŒä»¥åŠæœ¬íw«è®¡½Ž—能力很强的昑֍¡ã€‚只要有可能åQŒæ•°æ®å°±ä¼šå­˜æ”‘Öœ¨˜q™äº›å®¢æˆ·ç«¯ä¸ŠåQŒç‰¹åˆ«æ˜¯é‚£äº›ä¸ä¼šæ”¹å˜çš„信息,如地理信息、材质脓(chu¨¤ng)囑֒Œè§„则集。服务器保持ž®½å¯èƒ½çš„½Ž€å•,通常只保存非常抽象的世界表示和其世界中的实体的表½Cºã€‚而且服务器的设计目标是尽可能ž®‘地˜q›è¡Œè®¡ç®—。绝大部分的计算留给了客æˆïL(f¨¥ng)«¯ã€‚服务器的真正工作是保存å…׃ín的世界真实状态,¼‹®ä¿ä¸åŒå®¢æˆ·ç«¯å¯¹ä¸–界的看法差异可以根据需要得到纠正。真实状态需要由服务器来保存åQŒå› ä¸ºæŽ§åˆ¶å®¢æˆïL(f¨¥ng)«¯çš„玩家很有兴­‘£è®©ä»–们的表现变成最强,所以可能会受到诱惑åQŒæ ¹æ®ä»–们的喜好修改å…׃ín的真实(如查他们可以åQ‰ã€‚在一般情况下åQŒå¦‚果有可能åQŒçŽ©å®¶å°±ä¼šä½œå¼Šï¼Œæ‰€ä»¥æœåŠ¡å™¨å¿…é¡»æ˜¯å…±äº«çœŸå®žçš„æœ€¾lˆæ¥æºã€?/z>
MMO和虚拟世界的数据讉K—®æ¨¡å¼ä¹Ÿå’Œä¼ä¸šä¸­çœ‹åˆ°çš„æƒ…有着很大的区别。企业中的一般经验法则是90%的数据访问都是只è¯Èš„åQŒå¤§å¤šæ•°ä»ÕdŠ¡ä¼šè¯»å–å¤§é‡æ•°æ®ï¼Œç„¶åŽä¼šå†æ”¹å†™ž®‘量数据。在MMO和虚拟世界的环境中,大多æ•îC“Q务只讉K—®æœåŠ¡å™¨ä¸Šž®‘量的状态数据,但在它们讉K—®çš„æ•°æ®ä¸­åQŒå¤§¾U¦ä¸€åŠä¼šè¢«æ”¹å†?/z>
在线游戏环境与企业环境的共同å…Ïx³¨ç‚¹ï¼š
1åQŒåšg˜qŸæ˜¯æ•ŒähåQŒä½†ä¹Ÿæœ‰ä¸åŒã€‚最大的不同要追溯到用户所做的事情的不同。在企业环境中,目标是管理业务,如果æ€Õdžåé‡å¾—到改进åQŒåœ¨å¤„理中有一点åšg˜qŸæ˜¯å¯ä»¥æŽ¥å—的,在MMO和虚拟世界的环境中,目标是开心,而åšg˜qŸæ˜¯å¼€å¿ƒçš„æ•ŒähåQŒæ‰€ä»¥MMO或虚拟世界的基础设施需要围¾l•着ž®½å¯èƒ½é™å®šåšg˜qŸçš„需求来设计即便以吞吐量ä¸ÞZ»£ä»·ä¹Ÿåœ¨æ‰€ä¸æƒœã€?/z>
XX在线游戏åQˆDarkstaråQ‰æž¶æž„的目标åQ?/z>
1åQŒå¯¹ä¼¸ç¾ƒæ€§çš„需求表明,¾pȝ»Ÿåº”è¯¥æ˜¯åˆ†å¸ƒå¼çš„ã€åÆˆå‘çš„åQŒæ¸¸æˆç¨‹åºå‘˜åº”该把系¾lŸè§†ä¸ÞZ¸€å°å•机,˜qè¡Œç€ä¸€ä¸ªçº¿½E‹ï¼Œæ‰€æœ‰å…è®?d¨¡ng)Rƒ¨¾|²åˆ°å¤šçº¿½E‹å’Œå¤?br />计算æœÞZ¸Šçš„æœºåˆ‰™ƒ½åº”ç”±XX在线游戏的基¼‹€è®¾æ–½æ¥è€ƒè™‘ã€?/z>
2åQŒæ”¯æŒéšæ—¶äŽ×¾~©ï¼ŒåŒæ—¶ä¸è¦æ±‚游戏逻辑受到伸羃的媄响,˜q™ä¸ªæž¶æž„应该支持游戏动态地响应负蝲åQŒè€Œä¸æ˜¯è®©˜q™ç§å“åº”æˆäØ“æ¸¸æˆè®¾è®¡çš„å·¥ä½œçš„ä¸€éƒ¨åˆ†ã€?br />æž¶æž„åQ?br />Darkstarç”׃¸€¾l„独立的服务构成åQŒç”¨ä¸€¾l„相互联¾pÈš„æœåŠ¡æ¥æž„å»ºç³»¾lŸï¼Œ“分而治ä¹?#8221;åQŒåˆ†è€Œæ²»ä¹‹æ˜¯è®¾è®¡æ‰€æœ‰å¤§åž‹è®¡½Ž—机¾pȝ»Ÿçš„基本方法ã€?/z>
客户端连接到游戏逻辑使用的通信机制是基¼‹€è®¾æ–½çš„一部分åQŒè¿™äº›æœºåˆ¶æ”¯æŒå®¢æˆïL(f¨¥ng)«¯åˆ°æœåŠ¡å™¨çš„ç›´æŽ¥é€šä¿¡åQŒä¹Ÿæ”¯æŒä¸€¿U?#8220;发布-订阅”通道åQŒä“Q何发往通道的消息都会送达该通道的所有订阅者ã€?br />æ¸¸æˆæœåŠ¡å™¨çš„è®¾è®¡æ–¹å¼å’Œæ¸¸æˆäØ“ä¸ºæ”¯æŒåÆˆçŽ©å®¶æ‰€é‡‡å–çš„äŽ×¾~©æ€§æŠ€æœ¯ã€?br />òq¶è¡Œä¸Žåšg˜q?br />
二:数据增长——Facebookòq›_°çš„æž¶æž?/z>



]]>
RESTlet学习½W”è®°http://www.aygfsteel.com/JimmyJin/archive/2012/05/24/379015.htmljimmy2009jimmy2009Thu, 24 May 2012 04:19:00 GMThttp://www.aygfsteel.com/JimmyJin/archive/2012/05/24/379015.htmlhttp://www.aygfsteel.com/JimmyJin/comments/379015.htmlhttp://www.aygfsteel.com/JimmyJin/archive/2012/05/24/379015.html#Feedback0http://www.aygfsteel.com/JimmyJin/comments/commentRss/379015.htmlhttp://www.aygfsteel.com/JimmyJin/services/trackbacks/379015.html˜q™ä¸¤å¤©å­¦ä¹ REST及其java实现框架Restlet.
å…¯‚±¡çŠ¶æ€ä¼ è¾“ï¼ˆRepresentational state transferåQ?z>RESTåQ‰æ˜¯è®¾è®¡åŸÞZºŽå‘½åèµ„源而非消息的松耦合应用½E‹åºçš„一¿Ué£Žæ ¹{€‚æž„å»? RESTful 应用½E‹åºçš„æœ€å›°éš¾çš„部分在于确定要公开哪些资源.个ähè®¤äØ“å®ƒè·ŸDDD联系的很紧密åQŒç‰¹åˆ«æ˜¯REST中的“资源”åQŒæˆ‘个äh理解它就是从领域模型中的模型而来的ã€?br />我们先来看一下restlet core api吧:
restlets 

Overview of a Restlet architecture

Here is a diagram illustrating how the API composes componentsconnectorsvirtual host and applicationsApplications are in turncomposed of resources.

tutorial05
用白说来讲就是:Application通过Router ž®†æŸä¸ªURI与Resource¾l‘定在一定,而一个componet可能含有多个Application,
˜q˜æœ‰Representation ˜q™ä¸ª¾cÕd…¶å®žä¹Ÿå¾ˆé‡è¦ã€?/z>Representation entityåQ?/span>Restlet中全部的接受和返回对象都Representation¾cȝš„子类ã€?/span> 
如在WEB APP中经帔Rœ€è¦ä»Žä¸€ä¸ªFORM中拿到其Representation(
getWebRepresentation() )或组装成一ä¸?/font>Representation 
Form(Representation webForm)
 ,以便客户端与服务器进行交互。我们知道REST是以资源ä¸ÞZ¸­å¿ƒçš„åQŒä¸€ä¸ªURIž®×ƒ»£è¡¨äº†å¯¹è¿™ä¸ªèµ„源的CURD操作。@Path˜q™ä¸ªæ³¨è§£ææ˜Žäº?/z>
哪个操作是由该资源的那个æ–ÒŽ(gu¨©)³•来实现的å¦?
@POST
@Path("add")
public String addStudent(Representation entity) { 
}
...
@DELETE
@Path("delete/{id}")
public String deleteStudent(@PathParam("id") int id) {
  int status = ResourceHelper.deleteStudent(id);
  return String.valueOf(status);
} 
representation package overriew:
Restlet 对表现层的技术支持也ž®±æ˜¯é€šæ¥representation˜q™ä¸ª¾cÀL¥å®žçŽ°çš„ï¼Œrepresentation 
  Restletòq¶æ²¡æœ‰ä½ Setvlet API那样有自已的JSP作表现的技术,它是通过ž®†è¿™ä¸‰ç§æ¨¡æ¿æŠ€æœ¯æ•´åˆè“v来而已å¦?/z> XSLTFreeMarker and Apache Velocity 
The org.restlet.representation package contains common representation data elements. Here is a hierarchy diagram with the core Representation classes:

Overview  Representation package


representations
当然restlve只是提供了一个入口,¼„°åˆ°è¦å¯¹æ•°æ®åº“è¿›è¡?z>CURD操作æ—Óž¼ŒåŸºå…·ä½“实现还是由JDBC½{‰æŠ€æœ¯æ¥å®žçް.



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ´Ó»¯ÊÐ| ÉÏÀõÏØ| ººÖÐÊÐ| ²¼¶û½òÏØ| »´±±ÊÐ| ÂåÂ¡ÏØ| ±¦ÇåÏØ| ÒËÀ¼ÏØ| ÙðÖÝÊÐ| ÃûÉ½ÏØ| »¥Öú| ÇúÎÖÏØ| »áÔóÏØ| ÑôÔ­ÏØ| ¶«¸ÛÊÐ| Æ«¹ØÏØ| Í­¹ÄÏØ| ÔÀÎ÷ÏØ| ¶î¼ÃÄÉÆì| Ëç±õÏØ| Íå×ÐÇø| ¯»ôÏØ| ·áË³ÏØ| ÄϲýÊÐ| ÎäÒÄɽÊÐ| ÕżҴ¨| ÉϸßÏØ| ¸»´¨| ÂÔÑôÏØ| ӥ̶ÊÐ| °×ÓñÏØ| ½»¿ÚÏØ| ÎäÒåÏØ| ¾°ºéÊÐ| ¾ÅÁú³ÇÇø| ½ú½­ÊÐ| °²ÏçÏØ| ÎäÉ½ÏØ| Ïã¸Û | ±öÑôÏØ| Î÷²ýÊÐ|