随笔分类 - [20]DesignAnalysis设计分析
-
USB
摘要:USB通信数据流分析数据在主机端经过客户软件层、USB系统软件层和主机控制器3个逻辑层,在设备端经过USB总线接口层、USB设备层和功能层。在编程时,客户软件通过USB系统软件提供的编程接口操作对应的设备,而不是直接操作内存或I/O端口来实现。 以信号从主机流向设备为例:客户软件经USBD(USB Driver)传输给系统软件的数据是不具有USB通信格式的数据。系统软件对这些数据分帧,实现带宽分配,而后交给USB主机控制器。主机控制器对数据按USB格式打包,实现传输事务,再经串行接口引擎(SIE)后将数据最终转化为符合USB电气特征的差分码从USB电缆发往设备。数据到达设备后的操作是一个逆过程 阅读全文
-
USB通信数据流分析
摘要:USB通信数据流分析数据在主机端经过客户软件层、USB系统软件层和主机控制器3个逻辑层,在设备端经过USB总线接口层、USB设备层和功能层。在编程时,客户软件通过USB系统软件提供的编程接口操作对应的设备,而不是直接操作内存或I/O端口来实现。 以信号从主机流向设备为例:客户软件经USBD(USB Driver)传输给系统软件的数据是不具有USB通信格式的数据。系统软件对这些数据分帧,实现带宽分配,而后交给USB主机控制器。主机控制器对数据按USB格式打包,实现传输事务,再经串行接口引擎(SIE)后将数据最终转化为符合USB电气特征的差分码从USB电缆发往设备。数据到达设备后的操作是一个逆过程 阅读全文
-
NhibernateProfiler-分析篇
摘要:NhibernateProfiler-分析篇我日,好让人蛋疼的题目 。 当然这个题目的确是稍稍使用了一些夸张的修辞手法。但是只要思路对头,再加上点运气,破解也并不是如你想象中的那般神秘。 为何突然想写这方面的东西呢,那是因为三年前,我曾在CSDN的资源上发布了一个自己写的NHPorfilerCrack(http://download.csdn.net/detail/jivi/2231869),当时写这个工具是为了破解NhibernateProfilerV1.0(NhibernateProfiler是一个调试nhibernate的工具),今天在查看资源时又看到了这个工具,于是就把它下了... 阅读全文
-
JSSIP源码简介-关于SIP协议使用的一个JavaScript库/JS在通讯中的应用
摘要:JSSIP源码简介-关于SIP协议使用的一个JavaScript库/JS在通讯中的应用一 SIP协议是什么?首先来说一下SIP协议,下面是百度百科的一些选的片段:SIP是类似于HTTP的基于文本的协议。SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义。SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议[1]、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状 阅读全文
-
OSGI:OSGI集成ASP.NET MVC4.0
摘要:OSGI:OSGI集成ASP.NET MVC4.0 OSGI能动态的加载、启动和停止Bundle,之前我实现了和Ioc的集成以动态的注册和取消注册Bundle中公开的服务。今天简单的实现了和MVC的集成以动态的管理Controller。 ASP.NET MVC默认只识别BIN目录下的程序集,当然你可以修改一些配置让他支持其它目录,我采用的策略时重写DefaultControllerFactory+OSGI插件,插件动态管理ControllerType的注册和取消注册,ControllerFactory根据注册的信息获取ControllerType。 1 using System; 2 us.. 阅读全文
-
QQ密码修改
摘要:从QQ密码修改的小问题回顾下URL Fragment上个星期天晚上约11点半,左耳朵耗子在新浪微博上吐槽QQ安全中心密码修改的问题,引来不少围观。QQ安全中心的兄弟收到用户反馈后,第一时间fix bug并发布,其高效着实令人佩服。当时也围观了下,问题并不复杂,是由于业务代码对于url的不恰当处理导致的(详见本文第3点),涉及url fragment(#)的内容,于是顺便重温了下这块的内容。文章主要参考了httpwatch博客的一篇文章:《6 Things You Should Know About Fragment URLs》其中1-5点的内容比较基础,6-7点的内容对于ajax应用的开发有不 阅读全文
-
项目中配置文件优化方案
摘要:项目中配置文件优化方案最近在优化项目中的配置文件,苦思冥想了n种解决方案,就连晚上睡觉脑子里也是Config配置节点。好吧,也许有的人会疑问,为什么要优化或者说整合项目中的配置文件呢?说白了,也是项目前期没有对配置文件有个很好的总体考虑,当项目越来越大,与其他系统之间又紧密联系在一起,你会发现项目中无论是自身的配置还是第三方的配置都很多,如果之前没有一个很好的规划,配置节点会放的到处都是,而且是毫无章法,根本区分不出那一个配置节点是哪一个模块的,这样就显得很凌乱。处于这样一个背景下,所以我们要优化配置文件,使其分块放置,看起来一目了然。于是乎我又不知道死了多少脑细胞,好吧,谁让咱年轻呢,有的就 阅读全文
-
企业级系统的认证与授权设计SOA WCF
摘要:在IT信息化中,数据安全是必须考虑的问题,小到门户网站,大到企业级平台应用,甚至企业云,公有云,数据安全都是一个核心问题。我从事ERP软件开发多年,在ERP的认证,授权方面相对有一个比较系统的了解,本着讨论交流的精神与大家一起共勉。 首先我们要搞清楚一个问题,什么是认证,什么是授权。 认证——你是谁(Who)? 认证:认证(authentication):即对不同的用户进行识别,检查用户是否有权限对那些受限制的界面进行访问,这种称为认证。比如登录。 授权——谁(Who),在那个系统(Where),可以做什么(What)? 授权(authorization):决定用户可以对哪些功能按钮... 阅读全文
-
机器学习之开源库大总结
摘要:机器学习之开源库大总结研究数据挖掘和机器学习有一段时间了,对数据挖掘来说,商用软件有SAS、Clementine、Oracle数据挖掘组件等等;由于个人学习和版权、算法定制等问题,开源的数据挖掘与机器学习软件(库)目前也十分必需,现在就跟大家介绍下比较流行和常用的机器学习开源库。 以前在学校用过matlab,说实话真方便,通常一个模型只要几十行甚至十几行代码就能搞定,但是正版matlab较贵,而且不太适合商业开发使用,所以工业界使用它的并不多(通信行业、研究所比较普遍);相应地,在工业界机器学习和数据挖掘的实验语言多为java、python,因为python与C\C++具有先天的血缘,所以p. 阅读全文
-
B/S结构一机多屏实现
摘要:B/S结构一机多屏实现,Applet实现。 上一篇讨论了如何实现B/S结构的一机多屏,下面讨论一下具体的实现方法,由于作者是做Java开发的,所以采用Applet来实现一机多屏的效果。 采用Applet获取客户端的屏幕,然后用拼装成自己需要的字符串。举例如下:View Code1 import java.applet.Applet; 2 import java.awt.AWTException; 3 import java.awt.GraphicsDevice; 4 import java.awt.GraphicsEnvironment; 5 import java.awt.Headless. 阅读全文
-
关于如何设计一个基于事件驱动架构的思考
摘要:关于如何设计一个基于事件驱动架构的思考最近一直在思考一个问题:有没有这样一种可能,就是一个领域模型的状态不依赖于外部,它只负责接收外部的事件,然后根据这些事件做出响应;响应分两种:1)根据模型当前的内存状态进行业务逻辑处理,然后产生事件,注意:这个过程不会改变模型当前的内存状态;2)根据事件改变自己的状态;另外,也是最重要的,领域模型不用关心自己所产生的事件到底怎么样了,比如不关心有没有持久化,不关心是否和别的事件有并发冲突。它只管根据自己当前的内存状态做上面这两点的响应;如果这样的设想有可能,那领域模型就是真正的中央业务逻辑处理器了,和CPU很类似了。这样它才能真正快起来。简单的说就是:事件 阅读全文
-
CPU百分百
摘要:秋色园引发CPU百分百命案的事件分析与总结前几天写过一篇文章:秋色园CPU百分百的原因分析由于上文有介绍了一些前因后果和中间过程及基础的内容,所以怎么发生的,中间大体做了什么检测,就不重复写了,下面写一些事情的后续发展。在解决完上文说的,搜索引擎引发的命案后,有网友给秋色园做了下压力测试,链接数直上1-2千,导致CPU挂了。一:URL缓存可能存在的攻击命案:当时我一路正远程用SQL事件探查器和性能计数器观看着,发现IIS并发链接数直接上千,不停的产生SQL语句, 导致数据库占用CPU直接满了,网站挂了打不开。从这里,我发现了系统上存在一些逻辑上的不和谐:比如:http://www.cyqdat 阅读全文
-
web动态部署(热部署)
摘要:web动态部署(热部署)今天跟大家探讨一下关于web动态部署,也就是热部署的问题。说这个之前,先说一个敏捷开发的原则。【最小发布、增量开发】我们在做项目时,设定的期限都特别长。总是想第一个版本就想把所有想到的问题都做完,以至于项目一再延期。所以我们应该改变我们的开发策略。采用敏捷开发的方式。这里我想强调的有2点,1.最小发布。2.增量开发。对于最小发布,就是要在第一版中把核心功能实现,即立即发布第一个版本。在实际的开发中,公司为了抢占市场,都会尽可能早的发布一个V1.0的版本。能有效的占领市场,同时对于开发人员来讲,可以减少对项目的排斥情绪。因为项目拖得越久,开发人员就会越疲惫,就会消极怠工, 阅读全文
-
从细节出发 设计良好的分布式框架
摘要:【C#|.NET】从细节出发 设计良好的分布式框架(一)系列文章完成后 源码发布在我的GIT上https://github.com/dubing/文章仅代表个人观点 旨在交流 欢迎讨论背景 随着信息化的普及,信息系统越来越多,通常不同系统是采用不同的技术基于不同平台开发的,缺乏统一规划、统一数据标准、统一调用接口,因此系统之间的交互变得很困难.通常大家在需要一个现有系统提供某方面功能的话就会让开发人员提供个接口,webservice接口也好,标准http接口也好。然后需求不停的变更,代码不停的迭代。随着应用端量的增多,对于类似业务逻辑提供的数据格式,内容的特殊处理,dto的设计等等都在变化。. 阅读全文
-
大数据排序的实现代码, 理论上支持几百亿没问题吧
摘要:大数据排序的实现代码, 理论上支持几百亿没问题吧先上说说思路,1, 把一个bigdata文件拆分成N个小文件,小文件容量小于当前机器的内存2,对小文件进行排序处理3,对小文件进行并归排序,代码中我是用1 and 1,一个个并归生成新的排序完成的文件,直到全部并归完成简单说说我这里的并归算法,代码中的sortBySmallFile,如有文件A有n个元素, 文件B有m个元素这里的并归,先取出An0,分别比较Bn0,Bn1.... ,当An0>Bn,把Bn写入新文件,直至An0<Bn 时把An0写入结果文件,循环取出An1OK,上代码?packagecom.ben.file;import 阅读全文
-
【框架设计】接口的奥秘
摘要:接口,对于大家都不陌生,至于何时使用,怎么使用?这里举一个例子:假如一个类A,负责传输数据。而类B,恰好是接收数据。我们还需要一个类C用来接收和传输数据。那么怎么样让A类和B类继承C呢?有的编程语言,允许多继承。子类可以继承多个父类。但是在C#中,定义不能多继承,但是可以使用多个接口。那么要继承接口就需要interface定义它ID,内部可以封装方法,但是注意,倘若你要继承ID接口,那么接口内部的所有方法属性都要实现。说到此处,不免有人问:“接口和父类继承有何区别?”.一般是泛类中的个体,即is--a的关系使用继承。如:狗是动物的一种可以使用,Class 狗:动物而接口强调是对象具有某种能力, 阅读全文
-
OpenId学习及DotNetOpenAuth初探
摘要:OpenId学习及DotNetOpenAuth初探最近有朋友向我咨询单点登录的相关问题,并多次提到了OAuth这个名词.本人不才,由于工作关系尚未有过相关经验.于是上网搜索相关资料并初步研究了在.net下单点登录的实际应用.略有微小心得,现记录如下 1.什么是OpenId OpenId是一个分布式的身份管理系统,也叫做分散的单点登录平台。通过在多系统间减化登录过程来提高用户体验. 参考:OpenID对决IT三巨头之识别系统OpenId:身份认证技术要革命? 2.OpenId与OAuth的区别 OAuth和OpenID的区别在于应用场景的区别,OAuth用于授权的,是一套授权(Authoriza 阅读全文
-
现存的数据库的解决方案的原理解析
摘要:现存的数据库的解决方案的原理解析最近,因为在为客户讲述使用数据库集群的相关内容,研究市面上的有关技术和产品,以及MSSQL 自带的技术,接下来几篇就为大家说说之前研究的一些结果,同时也发布一些整理的资料。不少公司推出了针对数据库的“集群”解决方案,下面我们就简要的介绍一下他们的一些实现的原理。基于串行复制技术串行复制技术,本来是用于数据复制和数据备份的,离人们熟悉的“数据库集群”的概念有一定的距离。但是由于计算机软硬件技术和网络通讯技术的快速发展,使得利用这种概念和技术构成的“数据库集群”有了一定的可行性。此类集群,又可以分两类:1.串行异步复此种方式是异步串行复制或日志拷贝(Log Ship 阅读全文
-
BizTalk中利用ESSO保存外部系统用户凭据
摘要:BizTalk中利用ESSO保存外部系统用户凭据一、 问题提出在BizTalk应用集成项目中,BizTalk集成了多个应用系统,在BizTalk应用里很可能会出现有多个(甚至很多)端口指向同一个应用(这个应用可能是SAP系统,也可能是一个SQL Server的数据库),类似这样:在每个端口的设置中都需要设置用户凭据,如果是SQL Server的话,就是SQL的用户名和密码:一般使用中都是对每个端口分别就行设置,分别设置每个端口的用户凭据,输入用户名和密码。如果端口不多的情况下,这么做也很正常,但是如果针对某一个系统的端口比较的的时候,比如连接到外部一个SQL Server数据库的端口有几十个, 阅读全文
-
BPEL 语言介绍和应用
摘要:BPEL 语言介绍和应用概述BPEL:全称为Business Process Execution Language,即业务流程执行语言,是一种使用XML编写的编程语言。用于自动化业务流程,也曾经被称作WSBPEL和 BPEL4WS。广泛使用于Web服务相关的项目开发中,优点为具有可移植性和有效保护了投资。BPEL是一门用于自动化业务流程的形式规约语言。 用XML文档写入BPEL中的流程能在Web 服务之间以标准化的交互方式得到精心组织。这些流程能够在任何一个符合BPEL规范的平台或产品上执行。 所以,通过允许顾客们在各种各样的创作工具和执行平台之间移动这些流程,BPEL使得他们保护了他们在流程 阅读全文