『设计』Slithice 分布式架构设计-支持一体式开发,分布式发布

项目原因:

参与过各种 分布式项目,有 Socket,Remoting,WCF,当然还有最常用的可以跨平台的 WebService。

 

分布式编码的时间浪费:

但是,无一例外的,开发分布式程序的开发遵循 如下规律:

>那就是 得先写服务端代码;

>然后 通过工具生成代理类;(特别浪费时间)

>客户端代码 调用代理类 完成业务;

 

这种编码规律,就有一个问题:

那就是 当我们调试程序时,得先以调试模式启动服务端,再以调试模式启动客户端——然后在调试中找到代码的BUG。 这种调试方式 调试一次 需要 5-10分钟(太浪费时间);

如果 服务端是 基于 WinService 的话,过程就更麻烦:你得先卸载已经安装的WinService,再安装新的WinService,然后 附加进程,再以调试模式启动客户端。这种调试方式 调试一次 需要 10-15分钟(更浪费时间)

 

于是,针对调试时间的浪费,就有了 一体式开发,分布式发布 的设计(直接右键 调试,就能找到 服务端,客户端 两者的 BUG,最终发布时,只要将编译的程序集 丢到 服务端的目录下,就能直接实现功能)——这种调试方式 调试一次 只需要 0.5-1分钟。

 

分布式通常解决的问题:

>分布式用于解决:让多台机器同时办事,三个臭皮匠,顶个诸葛亮——以实现运行速度的最快速;

>分布式的稳定:当分布式中,一台机器宕机,其他机器依然办事——不会因一台服务器的问题 而影响整个程序的稳定;

但是,如果有如下意外:

>写好的分布式程序,本来用的是 WinService 的 WCF 做服务端,但是最后客户 买不起服务器,只能买个空间——于是我们得将 WinService 改成 WebService,得费多少人力物力;

>分布式中,两台服务器 做同一个事情,调度均衡 也是一个问题:你得让 高配置的服务器多做事,配置低的服务器少做事;少出错的服务器多做事,多处错的服务器少做事——这种调度均衡 恐怕 非专业人士 还得费一番脑经吧;

 

于是,就想  能不能有一种设计:

>一体式开发 分布式发布 的节省编码时间;

>已经编译的程序集 可以轻易丢到 任何类型的 服务端宿主下,随意更换 Socket,Remoting,WCF,WebService;

>而且实现调度均衡,平衡利用服务器资源;

 

设计过程:

>本设计其实在 之前的文章  《『架构』2013需要完成的 架构》 中,有过记录;

>而实际编码 从 2013-02 开始,但是断断续续时间一直并不充分,没有更多业余时间;

>目前的过程,仅停留在 现行Demo阶段(2013-05月左右完成):实现主要功能,忽略所有细节;

 

相关手稿 和 设计图:

 

 

 

 

 

关于设计图:

>其中,我们看到 客户端>Slithice调度模块>服务端>Action插件调度类;

>于是,我们 基于 Slithice 的内核,只需要实现 插件 就行;

>调试的时候,我们 不用 走 如上的线路,我们只需要  客户端>Action插件调度类; 于是就能轻易实现 一体式开发;发布的时候,将编译程序集 丢到服务端目录,就能实现 分布式发布

 

 

先行Demo 和 正在进行的整合版:

先行版 的 内核功能已经基本实现:实现核心功能,完成理想主义的运行;

整合版 却还在 编码过程中:实现细节,开始适应各种实际情况,且 还需要一个 集群配置器 的UI界面;

 

最后的简结:

>参与大大小小各种项目;公司的,学校的,个人的;已经五年了;

>当初觉得很难的技术,在今天看来 都不过如此;新的技术总在前方;

>各种项目,各种问题,各种思考,各种灵感 —— 有如泉涌的灵感 在这五年,总是接踵而至;

>五年了,没有自己实现不了的功能;没有自己学不会的技术;没有自己写不了的算法;没有自己攻克不了的技术攻关;

>但这些  功能,技术,算法,技术攻关 也是 无尽的;

>我以为 完成了  《『架构』2013需要完成的 架构》  中的事情,我可以 完美的 停下自己的业务时间编码;

>但是,编程作为一种兴趣,占据了自己太多的 业余下班时间;我现在很想将更多的业余时间 用到 其他方面;

>于是,本文的设计 并不是 之后编码的前奏,只是一个思想的备份;本文的设计 我可能 找不到时间 或者 不想 完成了;

>更多的,我想我更愿意花点时间 写几首情诗,打几个电话,看几本书,一切都慢慢来——放下自己有如着魔的编程;

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值