`
歆渊
  • 浏览: 306333 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
阅读更多
后来这些天写TOB的资料和教程, 本来是打算写个简单的蓝图应用, 也做教程的示例, 不过架构下来发现又有很多可以突破传统, 值得好好做做的东西.
 
这个蓝图应用名字基本定为 WebOfWeb (WoW), 大体上是用类似MindMapping(参考: http://freemind.sf.net, Web发布示例(需要JRE1.4以后): http://www.ableverse.org/cop.html http://freemind.sourceforge.net/PublicMaps.html) 的形式通过Web来表现 树状(网状作为一种扩展) 信息. 与FreeMind的静态只读Web发布所不同的是, WoW是完全互动的, 力求整合所有WEB典型应用模式的特征, 成为WEB2.0应用模式的集大成者. 例如, 每个人可以被授予权限在一个特定的节点下创建和编辑信息节点, 就成为树型结构的Blog; 也可以放开一些节点, 公共可以编辑, 那么就成为树型结构的Wiki; 如果是由专门的斑竹来管理特定节点, 各人只能创建子节点或者编辑自己创建的节点,那么就成为树型组织的Forum;对于任何一个节点, 都可以看到当前浏览者列表,随时发起在线讨论, 那么它就是一个IRC的Channel, 如果这个节点是某人私有的话, 那么发送/接收的消息就可以认为是IM. 特别是对在线讨论的GUI表现, 可以用动态的渲染方式, 比如燃烧的火焰作水印, 火越大, 说明参与讨论的人越多, 燃烧越剧烈, 说明讨论越激烈. 最激动人心的是, 所有这些互动的节点, 都是树状组织的, 结构化的, 任意丰富的信息.
 
为实现这些目标, WoW的分布架构有一些新的要求, 基于 request/response 的C/S结构缺乏客户端之间的互动以及C与S之间的对等性; 简化过的B/S结构却缺乏Server Push能力, 难以支持实时互动. 比较接近理想的是 在线即时游戏 的分布架构, 实时性强, 服务器中控仲裁, 维护数据完整. 但是在线游戏需要在参与互动之前先下载好全部场景资源数据, 而这些场景数据却不能实时,动态的由服务器主导进行更新, 所以虽然它的交互实时性强, 但交互范围有无法打破的限制.
 
综合分析现有分布软件架构和WoW的需求, 我现在正在开发一种新的分布架构, 名字暂定为Traverser/Scener Architecture.  主体特征是: Scener(构景器?也许)  负责维护一个运行时的动态世界, 包括所有树状信息和所有登录用户, 以及每个用户当前游览资源的MRU列表, 并负责处理Traverser应使用者行为而发出的操作请求, 改变相关资源的状态, 然后安需将状态变化通知给相关登录用户的Traverser,刷新其本地数据. Traverser(游览器, 也许 ;-)运行在最终用户的计算设备上, 本地维护使用者正在游览的实时树状信息副本, 然后通过GUI将这些信息表现给使用者, 同时响应使用者的操作动作, 转换为操作请求向Scener发出. Traverser与Scener的通讯拟采用基于事件队列的异步机制, 可以通过GUI向使用者标示出当前同步状态. 异步方式进行数据同步, 有利于在以块儿方式传输数据时, 把先到达的数据即时显示到GUI以改善用户体验. Traverser在收到使用者展开一个树节点的指令时, 可以在一次读取操作里从Scener预取一定层数深度的子节点, 从而增加通信效率. 从Scener到Traverser的通知消息, 可以随附于操作的response之后发送给Traverser, 在一次请求中承载更多数据. Traverser维护一个已收刷新通知队列, 异步的刷新GUI. T/S之间的通信, 拟透过HTTP POST/RESPONSE, 传输GZIP压缩的XML数据流完成, 协议采用XML格式制定.
 
WoW开发完成后计划开源发布, 它将不仅仅是一个综合的互动WEB2.0应用, 而且对于树状信息检索, 有特别的意义: 目录检索(如: http://dir.google.com)目前基本还只能以全文检索的方式, 按照关键字来匹配符合条件的条目, 但是后台基于TOB, WoW将有可能提供基于更精确的模板匹配方式提供检索服务, 比如按照正则表达式匹配. 这对基于树状组织的信息数据统计将有一个里程碑的意义.
分享到:
评论

相关推荐

    WOW插件制作指南

    - **Lua简介**:Lua是一种轻量级的脚本语言,易于集成到其他应用程序中,被广泛应用于游戏开发中,尤其是WOW插件开发。它支持多种编程范式,如过程式编程、面向对象编程等。 - **Lua官方资源**:作者推荐访问Lua官方...

    WOW魔兽世界的APIs

    此函数允许玩家接受另一玩家的复活魔法,迅速回到战斗状态。 - **AcceptXPLoss()**:在原地复活时,玩家可以选择接受经验值损失,以更快地重返战场。 ##### 角色操作 - **ActionButtonDown(buttonID) & ...

    wow自动施法按键助手NextActions.zip

    运行原理NextActions是一个标准的wow lua插件,她调用wow API分析当前游戏角色及目标状态数据,计算当前最佳施放法术, 然后在屏幕左上角的一个固定显示区域中显示法术对应的颜色块. 同时, 一个autuIt3编写的脚本程序...

    魔兽世界插件编写普及教程

    其中,`<Scripts>`内的`<OnUpdate>`事件处理程序用于在每次游戏更新时调用`SetValue`方法,以更新状态栏的当前值。 ##### LUA脚本的应用 为了使状态栏显示有意义的数据,如玩家的生命值,我们需要在LUA脚本中引用...

    WOW免CD加转换器WOW免CD加转换器WOW免CD加转换器

    《魔兽世界》(World of Warcraft,简称WOW)是一款由暴雪娱乐开发的大型多人在线角色扮演游戏。在游戏过程中,玩家需要安装客户端并使用光盘启动游戏,但随着时间的推移,"WOW免CD加转换器"这样的工具应运而生,它...

    魔兽世界API 英文原版

    - **应用场景**:该函数主要用于获取当前账号所拥有的扩展内容级别,这对于开发插件时判断用户是否拥有特定资料片至关重要。 - **注意事项**:此函数只在亚洲服务器上提供有意义的值,对于其他地区的服务器可能不...

    基于 DDD、EventSourcing 的现代响应式 CQRS 架构微服务开发框架

    接着是事件溯源(Event Sourcing),这是一种持久化数据的方法,它不直接存储当前状态,而是记录导致当前状态的所有事件。每当我们对系统进行操作时,都会生成一个事件,这些事件按时间顺序保存,可以随时回溯以重建...

    Pulse Classic:用于经典 wow 的 lua 浏览器-开源

    Lua是一种轻量级的脚本语言,常用于游戏开发,尤其是WoW的插件制作。通过这款应用,玩家可以查看和理解存储在lua文件中的插件代码,这不仅有助于调试和优化个人使用的插件,也为那些想要学习lua编程或插件开发的新手...

    Win10下通过UWP刷新WIFI

    `NetworkInformation.GetInternetConnectionProfile()`方法会返回当前的互联网连接概况,从中我们可以获取网络的名称、连接状态、网络类型等。 3. **连接到Wi-Fi网络** 连接到Wi-Fi网络则需要使用`WiFiAdapter`类...

    jQuery_UI与plugin开发实战

    <div>Wow, look at all this content that can be shown or hidden with a simple click! <li><a href="#">Header2</a><div>Lorem ipsum dolor sit amet, ⋯</div></li> <li><a href="#">Header3</a><div>Donec...

    blizzard-wow-classic-api:暴雪WOW经典API的实现

    通过调用WOW API获取当前地图数据,利用C#的图形绘制功能在游戏界面上绘制出地图,同时添加标记显示玩家位置和其他重要信息。 总结,暴雪WOW经典API的C#实现是一项结合了游戏开发、网络编程以及C#特性的综合技术...

    一个自动交任务的插件

    它使用WoW的 Lua 脚本语言编写,与WoW的接口进行交互,遵循WoW的插件开发规范。插件的智能在于其逻辑判断,能够识别何时是合适的时机进行自动操作,同时避免在不合适的时候干扰玩家的正常游戏。 三、安装与配置...

    魔兽世界API全局函数

    可选参数stickyFlag用于控制是否保持当前状态。 - **ChangeActionBarPage()**:切换当前使用的快捷栏页面到系统默认的CURRENT_ACTIONBAR_PAGE页面。 - **GetActionBarToggles()**:获取快捷栏的显示状态。 - **...

    WowClassicGrindBot:WOW经典研磨机器人,魔兽世界研磨机器人-无需DLL注入或内存监视,只需截屏并单击鼠标和键盘即可

    它会定期捕捉游戏屏幕图像,然后通过算法分析图像中的特定像素模式,以此来判断当前的游戏状态。例如,它可以识别出角色、怪物、目标框体、地图位置等关键元素。一旦识别成功,机器人就会根据预设的规则和脚本模拟...

    Windows内核安全与驱动开发光盘源码

    2.2.2 返回状态 19 2.2.3 字符串 20 2.3 重要的数据结构 21 2.3.1 驱动对象 21 2.3.2 设备对象 22 2.3.3 请求 24 2.4 函数调用 25 2.4.1 查阅帮助 25 2.4.2 帮助中有的几类函数 26 2.4.3 帮助中没有的函数 ...

    RealmTray - A WoW Realm Monitoring Tool-开源

    暴雪会定期更新这些XML文件,包含了各个服务器的当前状态,如在线、维护、满载等。 RealmTray通过抓取和解析这些XML数据,将服务器状态实时显示给用户。这一功能的实现涉及到网络请求、XML解析以及数据可视化的编程...

    Ara_Broker_XP:Ara_Broker_XP WoW插件的延续

    Lua是一种轻量级的嵌入式脚本语言,因其简洁的语法和高效的执行性能,被广泛应用于游戏开发,尤其是WoW插件的编写。在Ara_Broker_XP中,Lua负责处理数据的读取、计算和显示,包括从游戏API获取经验数据,解析并更新...

    Ara_Broker_Reputations:Ara_Broker_Reputations WoW插件的续集

    1. 声望显示:插件会在游戏界面中提供一个直观的面板,显示所有相关阵营的声望状态,包括当前等级、所需声望到达下一级、以及解锁的奖励等信息。 2. 实时更新:无论玩家是在完成任务、击败敌人还是参与活动,Ara_...

    一个简单的MMORPG坐骑系统

    10. tips界面相关:提示信息界面应清晰地显示坐骑相关信息,如当前坐骑的状态、升级进度、能力值等,帮助玩家做出决策。 四、系统资源需求部分 坐骑系统开发需要考虑图形资源(坐骑模型、纹理、动画)、音频资源...

Global site tag (gtag.js) - Google Analytics