随笔分类 - [20]DesignAnalysis设计分析
-
推荐系统对外服务接口解决方案
摘要:推荐系统对外服务接口解决方案留意Netfix的推荐系统的架构,我们可以看到他们公司的推荐系统有明显的分层,分别为离线、近线和在线推荐,各部分职责明确,共同为用户提供推荐服务。将其系统做最大的简化,剩下两部分,离线计算和在线推荐服务,前者通过在内存或Hadoop中计算相似度(或者使用基于模型的方法)为后者提供推荐结果数据,而后者就是直接与外部系统进行对接的Web Service系统,把推荐结果数据返回给外部系统。推荐系统的这一层对外服务接口将是本文阐述的内容。关键词:推荐系统,WebService,NodeJS,Restify,推荐反馈一. 概述这一层对外服务接口需要做什么主要职责:接收外部系统 阅读全文
-
基于A2DFramework的事件机制实现
摘要:随笔- 102 文章- 3 评论- 476发布订阅 - 基于A2DFramework的事件机制实现SUMMARY能做什么DEMO原理图应用场景能做什么A2DFramework的事件机制是基于发布订阅模式改进得来的一套API,中间件部分实现了msmq、redis、Supersocket可替换。能够实现较彻底的模块事件传递过程中的解耦,支持分布式环境。由于订阅端采用了消息队列作为转发层,因此也能支持事件量很大的场景。DEMODemo工程下载地址(可右键保存):发布订阅Demo.rar一、建立各个工程,并且加入A2DFramework.EventService的引用二、给各个工程加入A2D基本代码, 阅读全文
-
事件机制与消息机制的架构设计区别
摘要:事件机制与消息机制的架构设计区别(一)公司一个项目中有这样一个情景:这是一个C/S架构的软件,S端采集各类第三方系统数据,传输到C端,然后在C端将数据整合成一个个的业务对象,同时针对各类业务对象,编写了相应的展示UI;用户在二次开发时,根据实际需要将业务对象与展示UI进行匹配,最后形成对第三方系统数据的动态显示。其实说白了就是类组态软件,这个在很多行业都有类似的软件。 在这个场景中,实际上涉及到这样一种需求:要求业务对象的数据变化能够传递到UI对象中,以触发UI对象的展示逻辑,进而形成实时动态数据显示。 在设计C端架构时,针对这个需求,我和同事提出了两种架构设计:第一种:我的设计PS:没有.. 阅读全文
-
博客加上“Fork me on Github”彩带
摘要:给你的博客加上“Fork me on Github”彩带起 如今,随着Git的大热以及Github的优越性,许多知名开源项目都将源代码托管到Github上了。在Github上不仅可以托管自己的开源项目,还可以Fork人家的源代码,给自己感兴趣的项目评价(star)。即便不Fork,你还可以关注(watch)该项目,甚至上升到个人“崇拜”(follow)。当然,本篇并不来讲怎么使用Git和Github,关于这方面的教程网络上已经足够多了。Github官方给出的帮助也非常有用。这篇博客就说说怎么给自己的博客加上“Fork me on Github”彩带。 许多开源项目的首页上,往往会有“Fo... 阅读全文
-
可扩展验证框架
摘要:可扩展验证框架 - A2DFramework验证框架使用介绍SUMMARY用途DEMO演示NuGet相关的资料VS工具端的设置用途数据验证的作用很重要,目前.NET提供的内建验证机制是采用DataAnnotation方式来实现属性的验证,并且也提供了很多验证Attribute,如下图:不过缺点也有:没有基于场景的验证支持如订单Entity如果是PC录入,则要求验证完整的属性有效性如果是Mobile录入,则要求验证一部分属性有效性如果是后台admin录入,则要求最小属性有效性硬编码导致不灵活生产环境中的维护成本,重新编译、测试、上线管理人员无法修改规则,只能通过开发部门基于上述2点,做了些改进, 阅读全文
-
Web缓存(Varnish方案)
摘要:Web缓存(Varnish方案)转载http://www.s135.com/post/313/arnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好。Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算 机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid 阅读全文
-
Weapsy 分析网站架构
摘要:Weapsy 分析(一)网站架构这个项目看了好久了,但是老没时间写一些分析心得。下班后想了想,事情也不能老拖着,还是得做。如图所示:Weapsy由5个项目所组成,有点可惜了,没有测试的项目,说明一些小的项目老外也不写啥测试,项目能Hold住测试都免了 ^_^。核心层Core:主要由Cookie,Cache,Mail,AppSetting等一些公用的组件。除实体层外,它被所有的项目所引用。数据层Data:负责一些基于CodeFirst的数据初始化,仓储,实体关联。实体层Entities:定义整个实体层。服务层Service:定义服务,展示层调用各种服务。展示层Web:不解释了.--------- 阅读全文
-
WebAPI 2.x中如何扩展Identity Store
摘要:WebAPI 2.x中如何扩展Identity StoreASP.NET WebAPI 中引入了新的一套身份验证和授权的机制,官方的叫法是ASP.NET Identity,有关这个概念的细节,感兴趣的同学可以参考http://www.asp.net/identity这套新的机制,默认还是使用SQL Server来做身份保存的,但更多的是提供了灵活性,包括与外部验证系统(OAuth)的整合。但在一些较为简单的场合下,我们可能希望简化这个部分,例如我们不需要外部整合,而且我们的用户数也相对有限,不希望用数据库来实现。本文提供了一个实例,我是使用XML文件的方式来保存用户信息的,该文件的格式大致如下 阅读全文
-
从Script到Code Blocks、Code Behind到MVC、MVP、MVVM
摘要:从Script到Code Blocks、Code Behind到MVC、MVP、MVVM刚过去的周五(3-14)例行地主持了技术会议,主题正好是《UI层的设计模式——从Script、Code Behind到MVC、MVP、MVVM》,是前一天晚上才定的,中午花了半小时准备了下就开讲了。今天看到了大家在为MVVM knockout.js友(ji)好(lie)地交流,所以就整理下然后更扩展地分享。主要目的也不是为了争论,毕竟只是正巧主题相近,原本的打算也就是一次技术分享并且记录下来。那么我们就按照大致的历史进程将这些概念进行划分:ScriptCode Blocks、Code BehindMVC、M 阅读全文
-
ASP.NET MVC+Knockout+Web API+SignalR
摘要:架构设计(ASP.NET MVC+Knockout+Web API+SignalR)架构设计(ASP.NET MVC+Knockout+Web API+SignalR)2014-01-16 18:12 by 圣殿骑士,2437阅读,29评论,收藏,编辑最近忙于重构项目的架构设计,没有时间发博客,也没有时间回复邮件及博文评论,忘各位见谅:今天先发布架构设计图,同样没有时间写相关的介绍也没有时间回复评论,所以就不发在首页,希望给看到的朋友一些参考,同时也希望大家给点意见!作者:圣殿骑士出处:http://www.cnblogs.com/KnightsWarrior/关于作者:专注于微软平台项目架构 阅读全文
-
SignalR的服务器广播
摘要:可以试试https://github.com/angular-ui/bootstrap这个框架啊[渣译文] SignalR 2.0 系列:SignalR的服务器广播2014-03-13 09:18 by Bce,404阅读,3评论,收藏,编辑英文渣水平,大伙凑合着看吧……这是微软官方SignalR 2.0教程Getting Started with ASP.NET SignalR 2.0系列的翻译,这里是第八篇:SignalR的服务器广播原文:Tutorial: Server Broadcast with SignalR 2.0概述VS可以通过Microsoft.AspNet.SignalR. 阅读全文
-
单页程序
摘要:单页程序bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序2014-03-11 08:45 by Jesse Liu,1149阅读,14评论,收藏,编辑也许单页程序(Single Page Application)并不是什么时髦的玩意,像Gmail在很早之前就已经在使用这种模式。通常的说法是它通过避免页面刷新大大提高了网站的响应性,像操作桌面应用程序一样。特别是在当今的移动时代,单页程序如果放在移动设备上去浏览就能够拥有像native app一样的体验,也许我们web开发者们应该期待这种技术的大力普及,这样不管前端还是 阅读全文
-
enode框架
摘要:enode框架 2.0 step by step之整体架构介绍前言enode框架简介enode架构图command handler一次只处理一个command让domain生活在in memory中event store的设计关于重复的command的幂等处理和聚合根可能存在的并发冲突的判断关于domain event大数据量的考虑enode物理部署结构图前言今天是个开心的日子,又是周末,可以轻轻松松的写写文章了。去年,我写了enode 1.0版本,那时我也写了一个分析系列。经过了大半年的时间,我对第一个版本做了很多架构上的改进,最重要的就是让enode实现了分布式,通过新增一个分布式消息队列 阅读全文
-
开发使用混合式Winform模块
摘要:开发使用混合式Winform模块1、Winform数据访问模式定义传统的Winform程序模块:用于传统的数据库通讯获取数据,这种方式获取数据,方便快捷,可以用于常规的业务系统的场景,用于单机版软件或者基于局域网内的业务系统软件。WCF的Winform程序模块:采用了WCF技术的分布式开发模式,系统能够通过远程的WCF服务获取数据,而不用直接和数据库相连,提高数据的安全性和可维护性,适用于互联网、局域网环境下的业务系统的搭建,是一种稳定、安全的框架应用。混合式Winform程序模块:是指混合了传统数据访问和WCF数据访问的特点,可以在两者之间自由切换,统一了系统界面层对业务服务的调用模式,所有 阅读全文
-
NET系列文章
摘要:NET系列文章由于博主今后一段时间可能会很忙(准备出书:《.NET框架设计—模式、配置、工具》,外加换了新工作),所以博客会很少更新;在最近一年左右时间里,博主各种.NET技术类型的文章都写过,根据博友们的反馈觉得还不错,所以应该有整理一下目录的必要,防止随着时间的推移很多现在来说还比较新的技术文章到时候就不知名的石沉大海了;整理之后更方便大家查询,阅读,谢谢;.NET Linq.NET深入解析LINQ框架(一:LINQ优雅的前奏).NET深入解析LINQ框架(二:LINQ优雅的前奏).NET深入解析LINQ框架(三:LINQ优雅的前奏).NET深入解析LINQ框架(四:IQueryable、 阅读全文
-
推荐系统的架构
摘要:推荐系统的架构 本文从互联网收集并整理了推荐系统的架构,其中包括一些大公司的推荐系统框架(数据流存储、计算、模型应用),可以参考这些资料,取长补短,最后根据自己的业务需求,技术选型来设计相应的框架。后续持续更新并收集。。。 图1 界面UI那一块包含3块东西:1) 通过一定方式展示推荐物品(物品标题、缩略图、简介等);2) 给的推荐理由;3) 数据反馈改进个性化推荐;关于用户数据的存放地方:1)数据库/缓存用来实时取数据;2) hdfs文件上面; 抽象出来的三种推荐方式 图2 图3 图3中,推荐引擎的构建来源于不同的数据源(也就是用户的特征有很多种类,例如统计的、行为的、主... 阅读全文
-
html+js+ashx+easyui+ado.net权限管理系统
摘要:分享一个html+js+ashx+easyui+ado.net权限管理系统EasyUI、权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用。一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得去看懂,还有一些不是在推广自己的代码生成器就是在卖权限组件,看着漂亮的UI和完善的功能就是没源码学习,真是恼人。前段时间公司项目阶段性结束了,就抽空把权限控制的部分抽取出来写了个html+js+ashx+ado.net的权限管理系统分享给一些初学者,这个权限系统demo没有MVC、没有ORM、数据库表都没设外键关系、级联删除 阅读全文
-
对于大数据大流量情况下微软架构的水平扩展的瞎想
摘要:对于大数据大流量情况下微软架构的水平扩展的遐想(瞎想)最近回顾SAAS的书籍,书中的扩展架构都有点让我痴迷,但书中介绍的都是以Java,Apache,JBoss,Hadloop等技术实现负载均衡,大数据处理,对于微软架构并未提及,所以让我陷入无限遐想,夜不能眠啊。今天的文章纯属瞎想,有错的不要批评,大家一起讨论就可以了。对于大数据处理来说,要解决的问题:1、web服务器的负载均衡2、web服务器的水平扩展3、数据库的分库处理4、数据库读写分离5、数据库的水平扩展大概的架构:(没什么工具,用word画的,丑了点,哈)在大数据,大流量的情况下,web服务器的水平扩展及数据库的水平扩展尤为重要,水平 阅读全文
-
领域驱动设计(DDD)的实际应用
摘要:领域驱动设计(DDD)的实际应用笔者先前参与了一个有关汽车信息的网站开发,用于显示不同品牌的汽车的信息,包括车型,发动机型号,车身尺寸和汽车报价等信息。在建模时,我们只需要创建名为Car的实体(Entity)对象。其他的信息,比如车身尺寸,都是对Car起描述作用的,因此应该建模成值对象(Value Object)。此时创建的Car对象如下:public class Car { private String id; private CarType type; private EngineType engineType; private String brand; p... 阅读全文
-
前端与后端分离的架构实例3
摘要:前端与后端分离的架构实例(三)2014-02-19 14:30 by 麦舒,674阅读,11评论,收藏,编辑自从前几天写了篇前端与后端分离的架构文章,总觉得有点意犹未尽的感觉,于是乎准备把写成一个系统。准备逐渐深入地给大家去展现这个系统的架构。不过,我会写得比较随意,基本上想到什么就写什么,不会有很严谨的逻辑关系。这个系统,是我现在正在开发的一个系统的架构,可不是什么理论或者拍脑袋想出来的。事实上,这个架构我思考了差不多一年了,还在上一家公司工作的时候,这个架构就在我的头脑中酝酿了,只可惜一直没有机会让我去做,很感谢现在的老板,给我这么一个机会,让我把它变为现实。我们再来重温一下我所负责开发的 阅读全文