大合通平台
大合通平台
什么是大合通?
大合通是一种提供数据同步的支持环境,她使对象(任意一种东西的代称)在不同的区域产生相同的运作效果,她是一种数据共享支持环境,她是一种信息发布平台,她是一种即时协作平台 ,她是一种通信应用开发平台,游戏平台。她甚至是下一个网络神话。
宗旨
在当今信息技术时代,网络通讯成为了编程注目的焦点,而不断开发网络组件,带来了繁琐和复杂,大合通 整合了C/S与B/S的结构的共同优点,成为新一代网络编程平台,是快速的实现网络编程的利器。也是实时技术的焦点。
大合通平台基于.NET平台开发,开发人员可快速定制数据同步策略,将通信数据以同步对象形式展现.开发人员只需编写简单的类型,将类型交给大合通代管后,大合通会跟据数型和成员特性,同步实例化的对象.从而隐藏了网络层,数据层。只需直接面向应用层系统的定制编程方案。更提高编程效率和易用性。
统一联网方式,统一发布平台,统一的编程接口。开发简单,无需考虑网络。自由扩展方式,不受接口限制,直接接入编译后的对象,不受语言限制,可采用黑盒编写方式,不干涉其他功能。 仅需考虑对象之间的协同。
功能特点
1.灵活配置集成
灵活多变的网络层配置,包括IP过滤,安全信道,通信协议等都可自定义配置和扩展.可满足任何配置需求,
2.快速偶合
可将现有CLR托管类型(包括COM组件, 如Office,CorelDraw,AutoCAD等支持托管编程的软件)进行适当适配后,CLR托管类型的实例 便可以远程同步,每一个操作执行或数更改后都会通知其他同步对象执行相应操作和更改,而达成协同操作.
3.优良的扩展性.
完全自定义同步规则 ,可同时指定多个同步对象,也可过滤或仅保留某些对象成员,完全由应用方案响应和处理 同步对象的成员和更改后发生的事件.
下载
大合通测试版1.02(RAR解压运行) 8.0Mb
大合通测试版1.02(MSI安装程序) 8.4Mb
大合通安装
系统需求
中文版Windows98以上Microsoft Windows系列操作系统,并安装有.Net Framework 1.1运行库,剩余磁盘空间20Mb,如果在Windows98上运行,需确保安装有IE5.5以上浏览器和MDAC 2.6 以上数据库组件,Windows 2000以上对装有.Net Framework运行库的环境,运行效果较好。
大合通1.0.2测试安装程序中同时带有服务端与客户端,安装完成后会在桌面和开始程序菜单上创建相应快捷方式.
本软件为绿色软件件,不对注册表进行改写.
推荐配置
服务器: P43.2E CPU,1000M网卡,2G内存。
客户端: C42.4D CPU,100M网卡,512M内存
--------------------------------------------------------------------------------
大合通版权归作者陈太白个人所有 2003-2006 Email: veryverygood@163.com 电话:0756-8210967 评论
大合通项目构想
主要技术:.NET Remoting、Web Service、XML、反射、实时通信、P2P、负载均衡、
主要特征:同步管道、与WEB相对而驰、即时热拔插接口、深度挖掘.NET
问题-->解决-->创新
问题:
Web Service服务趋向于单向连接;
P2P过于平等,且数据管理散乱;
IIS运行缓慢,服务器单向承载,上传烦琐,资源吞食怪;
.NET Remoting 公布困难;
游戏平台,再扩展性、适应性将近空缺。
目标:
可回调、可观察、可操作的Web Service;
可管理、可检索、可分配任务的P2P;
轻量级IIS;
易于发布,程序集安全的.NET Remoting;
可灵活扩展,可热拔插的游戏平台。
--------------------同步通信平台(Coact)
Web以一种多个静态节点的方式构成动态的整体交互,而大合通将从动态出发再不断凝固数据节点,形成即时战略平台。
本文相关慨念
同步对象:一种装有许多透明属性的容器。在不同的领域,存有他的克隆副本,当您在一个领域改变他的某一个属性时,他在另一个领域会得到相同的改变效应。如果您在设置这个属性时,这个属性引发某个事件或执行某些操作,那么不同的领域会执行相同的操作。 (他的实质是一种消息管道管理器与对象绑定)
会议:同步对象的雅称。
属性等级权限定制:根据将属性指定为(目前需要解决的难题)。
功能需求:
1、多语言支持
2、多日志管理
3、插件树可扩展模型
4、智通能路由、负载均衡
5、公共接口---黑盒接口方式
6、即时参与同步,即时通知.
7、针对脚本进行等级定制
插件树扩展模型
1、可进行子树扩展.
2、可视化维护,统一配置管理。
需求原因:
可展性、可维护、分布升级
成功的软件基本上者采用了对象可扩展树模型,如:Office系列、VS.NET、Photoshop、CorelDraw、Winmap等等。
主窗口能停靠于版边,或占据一部分。
对于工具条按钮以从根窗体对象索引方式获得的。子组界进行相应增删。
可行性理由:
1、仿制VS.NET的插件模型。
2、反编译WebMatrix可获得微软用.NET设计的优秀插件树模型和源码。
3、较多技术参考文章。
VS.NET插件树
大合通体系结构
欲擒故纵
涉及:引擎、服务、管道、接口、实体、适配器、监视器
将最精简的路线,最轻量级的对象达成目标。
网络层构架
终级目标:万人同步,终级实时,终级负载。
万人同步理论模型:
设服务器A拥有100个管道(A_B0--A_B99)分别连接到了B0--B99服务器,而B0服务器又拥有100个管道(B0_C0-B0_C99)分别连接到了连接到C0--C99,而C0服务器又拥有100个管道(C0_D0-C0_D99),那么服务器的丰满个数将达到100x100x100,
N个服务器经过N次转发后将拥有N^N个服务器协同工作。
实际模型大相径庭
1、回路。2、延时,验证开销。3、不稳定连接。
内部监控代理服务职责:
1、提供主持会议功能调用:
此功能将会被会议命令控制台(可在DOS的shell下运行的可执行程序),和浏览器所调用。
①、 获得同步的对象的引用句柄(Object Handler): 解析运行脚本获得实例化对象或者热接口。
脚本实例法: 实例化脚本的程序集中将要主持的类型。(反射调用而实例化)(其中包括自定义入口点解析).
直接程序集实例法: 大合通客户端浏览器通过类型浏览器获得
热接口法: 即通过大合通客户端浏览器查找一个Windows窗体句柄(Window Handler),再通过可访问接口IAccessible获得对象的引用句柄,获得需要同步的对象的引用句柄(Object Handler)。
直接程序集实例法: 大合通客户端浏览器通过类型浏览器获得
内部插件法: 如:在Office系列中用一个Office插件做为一个后门,公开他的文档对象。
远程对象法: 通过连接到远程对象获得活动对象名柄。
②、追加事件:根据其类型特性进行或附加的脚本中需求的描述或 通过UI再更改这些需求特性,进行事件绑定,
③、提交到会议服务,提供别人参与。
2、提供参与会议功能调用: 大合通客户端浏览器在会议服务器上找到了他感兴趣的会议后,进行调用。或控制台命令。
具体工作:
①、检查本机是否存在此会议程序集,如果不存在,则引发异常,提示下载。
②、实例化程序集中将要主持的类型,
③、获得同步对象的克隆。
④、赋值到同步对象。
⑤、追加同步事件,与异进对象同步。
3、根据XML脚本或程序集自定义特性解析相应的需求,如:指定某些属性不同步(即添加到过滤器)、全局唯一属性,同步锁属性([Synchronized],当某个参与者有权锁定一个属性,其他参与者在无法对这个属性进行赋值时,即使赋了值也被弹回原值。)
4、运行时数据监控更改。引发更改事件后-->过滤器-->权限检查-->向外发送。
5、接收并处理消息事件。
6、公开程序集资源下载服务方法(其他想要参与会议的最终用户下载所需要的会议运行时程序集),
如:参数(文件/程序集特征ID,起始位置,长度),返回 Byte[];
7、全局唯一对象与可锁定对象:研究中...
8、鉴别对象的某个特性是否具有相应的自定义权限需求:研究中...
5、如果大合通能确保内部监控机制不被其他恶意程序集删改的情况下,考虑使用等级服务。
会议服务器职责:
1、检索会议服务:能让客户端的会议参加者,更快速的找到所需要的会议程序集。
2、处理申请主持/参与会议的请求。(最终用户下载所需要参与的会议)
3、用户权限验证与管理。收到消息-->权限验证-->转发。
4、配合连接重定向。
5、提供发布服务。
6、提供简单主页服务,对服务器作简介。如果不追加回递事件的会议就如同Web一样。
7、提供程序集资源下载(最终用户下载所需要参与的会议)
8、提供文件共享区(少量空间)。
路由器职责:
1、链接会议服务:管理接入的服务器连接,和接入的新的路由;对接入的连接进行数据转发。
两个路由服务如果是连通的,他们将并存对方的连接。多个路由器将形成一个对等域, 基本上可以达到国家级同步。
职责与慨念:
路由域:在路由域中的任何一个路由器他们都并存着对域内盟有的连接,都是相连通的.
会议:同步对象的雅称。
形同神经网络的数据导向图
他们是如何工作的?
...
更大的功能可以考滤多级路由(如分为黄金路由、白银路由、...),树形路由,在网络中建立一个像子网掩码的慨念,达到快速定位,如果采用消息标识法,消息头将出现如(黄金层之XX路由.白银层之XX路由.青铜层XX路由)。
虽然赢得了更多区域,但再来了性能损失,对于实时程度要求程度不高的会议可以采用此策略。
对于会议开发者来说,他会感觉到比是在和比较慢的同步对象工作,同样使他不用考虑网络层。
对于最终用户来说,参与会议等于开启了一些协同工作的定购服务。如自动收到了一封语音Email,自并打开朗读。
2、连接重定向。(本质:偷换代理),接收到会议服务器,申请的转负载操作。
会议服务器,向路由请求,转交一条与监控代理(客户端)的连接过程:
而内部代理服务再向
......
回路解决方案:
1、以路由ID为权的附加法:当每条消息经过路由器时在消息头前
缼点:用二进制序列化的方式传送,经过三十多个路由后,一条消息将会附增1K数据。
2、
3、...
简要性能分析
1000M网卡开始普及,一台计算机接入千个连接情节,1000 个Remoting主张开放1000个端口通信,1000个Web Service主张在80端口建立1000个虚拟目录通信,大合通是一个Remoting主张在3912端口和1000个连接。
与IIS、Apache等Web服务器相比:IE浏览器每次访问完数据后就会将网络连接断开(会话以对象形式保存在服务端),而大合通通过保持TCP连接而达到快速通信,(P2P根本速度来源于保持TCP连接,再加 多线程调度和分块传输)
对于客户端来说,开启会议服务会可以使他获得更好的通信速度,但会增加他的负载。
优秀参考资料和代码
eMule 优秀的文件传输模式、开源的C++代码。
Azureus 非常优秀的Java版Bittorrent开源项目,包括:DHT、PRUDP、UPnP等底层实现。
顶级.Net Remoting技术大师 Roman Kiss
.NET源码
RoutingChannel 信道级数据流重定向。
PeerChannel 将消息流数据压缩分割传送的对等信道。 作者:Mailframe
DevForce、Genuine Channels、HessianC#
整合bt的断点功能,游戏平台的网络桥接
安全机制
与以Windows身份验证的形式进行,限定大合通本程序的权限集。
在浏览器可以在加入会议时,对信任会议放宽运行权限。
对子组件以最底权限运行方式,
适度防范攻击:如:刷屏过快则会被服务器拒绝。
对于主持会议者,一个会议服务端仅会在计算机上开放一个服务监听端口,提供参与者下载程序集,和加入会议。
(这通常和在战网上建立一个CS(反恐精英游戏)主机一样。)
对于参与者并没有开放监听服务端口,不可能遭到网络攻击,除非下载并运行了不安全程序集。
黑箱接口与热接口
对于现有程序集中需要同步的对象进行运行时监控的模式,载入运行。
对于权限、等级定制,同步锁、消息再处理等特殊任务分别采用编码时特性标记和脚本定制。
通过控制台调用连接到服务器,实例化会议程序集或脚本,开启始进远程会议。
很优秀的自定义协议模型:
如电骡协议 ed2k://|file|QQ.exe|16888|7542672037188DE3D6814921B88AF228|h=Y5L4OG7JUK6GI
达成更快的进入同步状态。
如 COACT://|AssemblyName|ClassName|Description|...
协议链接解释器。并考虑将组件嵌入IE浏览器能以ActiveX控件方式 运行。
使用System.Xml.Serialization进行XML识别脚本定制,可以轻易获得形同HTML可扩展形式的脚本,在有必要的情况下将进行中文脚本识别,如果在脚本序列化前进行语言检查,以工厂式对脚本行不同类的进行反序化即可。
如果需要更多功能可查看 System.Web 源码,包括具体的ASP.NET形式的正则表达式匹配类,代码模板软件CodeSmith就是这样工作的。
中文格式化XML脚本的样例: (更多具体功能继续扩展)
<?xml version="1.0" encoding="utf-8"?>
<会议项目 xmlns:作者网站="http://www.5ie.org">
<工作目录>C:\temp</工作目录>
<会议名称>联盟</会议名称>
<最多人数>2000</最多人数>
<会议描述脚本>
<主类型名>Coop.Coding.CodingHelper, Coding, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null</主类型名>
<!--为什么要定义主类型?
1、任何何程序都有入口点函数或通过实例某个关键入口类型,而开始启动程序。
2、通常程序都有一个主要管理对象或核心交互对象。
3、能更好的定位与指定监视的目标。
若主对象包括有名为CoopMain的静态方法,则调用此静态方法,而获得主入口对象。
-->
<监视成员>
<名称>MainForm</名称>
<最小等级>白银会员</最小等级>
<监视模式>完全</监视模式>
<过滤模式>排除</过滤模式>
<过滤键>*Color</过滤键>
<过滤键>Location</过滤键>
<过滤键>Size</过滤键>
...
</监视成员>
<监视成员>
<名称>MessageTextBox</名称>
<最小等级>黄金会员</最小等级>
<监视模式>完全</监视模式>
<过滤模式>保留</过滤模式>
<过滤键>Text</过滤键>
</监视成员>
<监视成员>
<名称>吕民</名称>
<监视模式>完全</监视模式>
<过滤模式>保留</过滤模式>
<过滤键>*Color</过滤键>
<过滤键>Text*</过滤键>
...
</监视成员>
...
<克隆成员>克服</克隆成员>
<克隆成员>中国共产</克隆成员>
<克隆成员>克服困难</克隆成员>
...
<过滤模式>保留</过滤模式>
<过滤键名>文本</过滤键名>
<过滤键名>颜色</过滤键名>
...
<等级>黄金会员</等级>
<等级>白银会员</等级>
<等级>青铜会员</等级>
...
</会议描述脚本>
</会议项目>
热挂接方法:在应用程序运行时,进行对象获取,再编程。代理服务将当前同步对象的状态进行 访问控制和装卸。
NetMeeting以插件形式嵌入Office系列而共享一片工作区,取得了极佳的效果。
获取IE文档对象的一段C#代码:
/// <summary>
/// 获得IE控件。
/// </summary>
/// <param name="ieHwnd">IE窗口句柄</param>
/// <returns></returns>
public IHTMLDocument2 GetDocInterfaceFormIe(int ieHwnd)
{
IHTMLDocument2 ihDoc=null;
int lRes=0;
int hr;
object o;
int nMsg =WindowsAPI.RegisterWindowMessage("WM_HTML_GETOBJECT");
SendMessageTimeout(ieHwnd, nMsg, 0, 0, /*SMTO_ABORTIFHUNG*/0x0002, 2000,ref lRes);
//获得IHTMLDocument2 的Guid.
Guid gdc=typeof(IHTMLDocument2).GUID;
//获IHTMLDocument2 实列接口对像。
hr=ObjectFromLresult(lRes,ref gdc,0,out o);
ihDoc=(IHTMLDocument2)o;
return ihDoc;
}
热挂接前提必需获得需要同步的目标对象,才可能将动态的连接现有程序需要同步的对象,到主持会议的接口
热挂接方案:
1、直接获取实现IAccessible(辅助程序可访问接口)的对象进挂接,而从System.Windows.Forms.Control类继承的子类都实现了此接口。
2、提供可被外部访问接口的基类。子组件从此实现。
3、开放公共静态全局对象,建立通信接口管口。子组件调用提交。
4、注册远程服务方案。
对于顽固的程序集(),代理将定时拍摄状态,检测更改。
终级解决办法:深入CLR调试模式。
对客户调用者应提供对可同步对象进行状态管理。如启用属性显示控件和查看网络流量和性能统计。
通信过程
连接组件开发事项
随着大合通的出现,同时也涉及到了语言样式和对象设计模式的改进.
同步对象编写指南.....
由同步获得网络对象之间大统一,不同的工作由其他不同对象完成。
商业前景分析
.NET Remoting是极其强大的,但目前发挥程度并不明显,借助.Net Remoting的灵活性、扩展性等优势力量,加以改进和增强,能讯速构成健壮稳定的网络层,润育了漫延和传播。
反射机制是自成以虚拟机诞生以来的新型编编程思想,能对已固定的程序集或代码进行再解释,安全控制,再解释层可使代码本身即可作通用接口,使子组件的扩展性不受任何限制。虚拟机造就了将代码即做为接口。
商业价值决定着软件的生存能力。
成功的商业产品并不代表自身 一定拥有极高的技术支柱,泡沫往往扩张最快,盈利最快,直到无比强大。
在如今,面向对象慨念已悉为人知,以对象同步做为信息交互的根本,是一种全新简化概念。
1、可操作性,将底层技术以可操作界面的形式向使最终用户展现。可赢得最终用户。
2、简单开发,灵活配置,开发人员或高级用户可轻松定制会议脚本,也可对系统本身进行配置。 可赢得开发人员。
3、她以一种同步对象的思想,通过网络迅速传播,像蚂蚁战术一样灌入每一台计算机。
4、动态虚拟服务器群集,是一种新型的网络负载解决方案,他可能比P2P更好。
目前大合通仅为雏形,若作为商业投资方案,需在现有基础上再次构架,加大力度改进用户界面,自身扩展性,开发接口, 热接口模型(通用游戏组件、聊天组件、协作组件),全安机制,数据健壮性,子程序开发(如游戏,数据协作,容入第三方代码)等多个方面。即便很少存有加盟商时,也可自发性 的开发轻量级组件,形成快速发展式。(当然,几乎不会没人使用和不会开发)
看QQ、MSN,目前具有实时发展趋向,但服务器本身力度不够,扩展接TX也比较保守,发展已成固态。 对于客户端的大数据流量正向P2P转型。
MONO.NET的作为Linux与Windows跨平台产品,造就一种新的编程方式,通信方式建立了重要基础,也是大合通壮大的重要因素。
在必要的情况下,将开发思想应移植于J2EE,将思想统一平台。在贫瘠的情况下,可以考虑使用同步COM对象而实现跨平台。
而IRONPython及JPython可以将此思想直接嵌入编译器。
大合通所带来的问题
1.一系列不安全因素,当然.NET拥有代码安全访问级别设置。
2.随着.Net版本的升级,多版本支持和内核改进将带来巨大开销。
3.深入内核挖掘,高难度技术挑战。
4.至少10人/年的完整开发周期。
大合通 通过整合.NET Remoting、反射、P2P等潜力巨大的较新技术,及良好的用户接口和全新开发模式,在网络通信层挖掘了一个平面,巨大的商业价值使她具有无限生命力,她必将给IT界划下深刻的一笔。
她的未来也许是一个开源项目、也许是一个成功企业的主要竟争力、也许她在几年内仍无业绩,但她的思想永远存在。,我仅为儿戏。
同步平台的哲学观点
异必有同,同必有异,除非是不可分割的事物对自身的无意义比较(这种事物就叫'绝无').
同步的正向极点是实时克隆(在复制的基础上加上时间维度),负向极点是异步互斥 、各行其道.
从全局看来事物的异同总是表现在某一方面,从不同的维面看来待他,总有他相同的一面,如对其进行物理结构抽象、数学抽像、元素抽象等,总是存有他的相同特性。
统一事物的相同面后,将这一统一性做为异步互斥的事物的桥梁或构成关联, 而达成通信的目的。
把事物的相同面已经抽象出来后,而将相同的部分镜相于不同的区域,并且随着改变而不断同步更新,则镜像同步达成通信的目的。
在高度抽象看来,由异同和动静是运作的基础,也是运作的整体。
她从另一个维度抽象了一层意义,她会显得是一种曲扭 的编程方式。经过适度适应后,将会变得更平滑。
同步抓住了通信的本身,对于编程来说, 通信将针对同步对象编程,利于集中思想于实物应用。
采用几组不同的同步对象进行分布式开发,也是分布式开发的另一种表现。
在OO中,类型对事物描述本质是抽象其共有特性元素,
当对象不能完全复制时,有且只有抽象其共同点进行复制。
软件复用的本质在于可以复制。
真实对象的复用的本质在于可以克隆和可以同步。
智能算法的本质:常以许多高度抽象概念,进行组合运作,达成一个现实的目标功能。如:人工智能、图文识别
大合通的本质:将许多实体的具体功能的本质,进行结合运作,达成一个具体的抽象慨念。
(他只是一个概念,他的实质很玄,他是假的,他借助虚拟机以假真,他是技术误区,他很可怕!不要再研究下去了!属性只是一个通信管道,他是一种简单契约管道,他被虚拟的聚合成了对象样式。将许多管道集合后,变成了可检索的和具体慨念化的对象。)
一切源于现有,成功只是因为站在巨人的肩膀上。一个伟大的成功源于伟大的思想。数个伟大的构想,才有可能构成一个成功。
在我的身边有许多已经成功的人,即使我同他们做得一样好,我也不会成功,要成功,就要比成功的人做得更好,但每个人都是这么做的,那么我需要做现有成功的合集并且加一倍成功。
--------------------------------------------------------------------------------
大合通版权归作者陈太白个人所有 2003-2006 Email: veryverygood@163.com 电话:0756-8210967 评论