如何减少无谓的资源消耗?如何在仓库拓扑中进行 SOC 设计?
2017-11-14 14:58
309 查看
仓库中的每个存储单元、传输设施以及物品都与特定属性相关。这些属性被称为存储组织标准(Storage Organization Criteria , SOC)。这个标准定义了特定存储单元中,可以存储哪些类型的物品,或者特定传输设施可以传送哪些类型的物品。存储组织标准的例子还包括:吞吐量类、有害类以及温度类。
对每一个标准都有特定的、可枚举的允许值,如对吞吐量类来说有快速、中等和低速几种。
仓库管理流程控制系统中的领域功能使用这些信息来决定三个问题:
要存放物品的目标位置是什么?
从当前位置到目标位置的中间步骤有哪些?
每一步骤用来传输物品的传输设施是什么?
例如,只存储一小段时间就快速取出的物品属于吞吐量类的快速类,这时应当将物品只存放在快速类的存储单元中。类似地,具有某种有害性质(如易燃性的物品),则应当由适合传输易燃 物的传输设施来传送。
某一特定存储单元、传输设施以及物品的存储组织标准通常很少随时间变化,除非是对仓库进行现代化改造。在正常的仓库运行中它们通常都是固定不变的,一旦确定了特定存储单元、传输设施或物品,则存储组织标准就只能由相应的管理功能来显式地调整。
如何减少无谓的资源消耗?
在仓库管理流程控制系统的具体安装中,维护这些数最庞大的存储组织标准就产生了一个问题。将每一个存储单元、传输设施和带有私有的相关存储组织标准集合的物品联系起来需要大量的内存,比如,有的仓库可能会有超过一百万个箱子。此外,因为许多仓库拓扑元件共享相同的存储组织标准,这会“浪费”很多内存。但是,为了确保仓库操作正确,又必须使得它们中的每一个都与一个良好定义的存储组织标准集合联系起来。
问题:怎样才能为仓库中的每个存储单元、传输设施以及物品提供相应的存储组织标准列表,而避免消耗巨大的内存呢?
对策:可以将存储组织标准采用恒值(Immutable Value)解决方案来实现,从而在仓库拓扑的多个元件之间共享。
解决方案:在多线程环境中共享和状态改变的问题会成倍的增加。因此,定义一个值对象,使其实例是不可改变的。值对象的内部状态是在创建时设定的,并且不允许后续改变,如下图示。
![](https://img-blog.csdn.net/20171114145745774?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGNpY3Q=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
没有任何状态改变意味着不需要同步。这本身就决定了 Immutable Value 是线程安全的,而且因为没有加锁机制,也意味着它在多线程环境中的使用是高效的。
在仓库拓扑中 SOC 设计
在具体的仓库拓扑存储组织标准(Storage Organization Criteria ,SOC)设计中, 每个存储单元、传输设施和物品都维护着一份不变的存储组织标准集,这是在具体的仓库配置时指定的。在这个设计中这个集合由组合结构的根类(Storage 类)维护,如下图所示。
![](https://img-blog.csdn.net/20171114145751454?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGNpY3Q=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
一个 Immutable Value 可以由不同的存储单元、传输设施以及物品共享,甚至多个控制线程也可以共享同一个 Immutable Value。此外, 仓库管理流程控制系统中的领域功能不允许修改Immutable Value,而只能通过相应的管理功能来显式改变。
对每一个标准都有特定的、可枚举的允许值,如对吞吐量类来说有快速、中等和低速几种。
仓库管理流程控制系统中的领域功能使用这些信息来决定三个问题:
要存放物品的目标位置是什么?
从当前位置到目标位置的中间步骤有哪些?
每一步骤用来传输物品的传输设施是什么?
例如,只存储一小段时间就快速取出的物品属于吞吐量类的快速类,这时应当将物品只存放在快速类的存储单元中。类似地,具有某种有害性质(如易燃性的物品),则应当由适合传输易燃 物的传输设施来传送。
某一特定存储单元、传输设施以及物品的存储组织标准通常很少随时间变化,除非是对仓库进行现代化改造。在正常的仓库运行中它们通常都是固定不变的,一旦确定了特定存储单元、传输设施或物品,则存储组织标准就只能由相应的管理功能来显式地调整。
如何减少无谓的资源消耗?
在仓库管理流程控制系统的具体安装中,维护这些数最庞大的存储组织标准就产生了一个问题。将每一个存储单元、传输设施和带有私有的相关存储组织标准集合的物品联系起来需要大量的内存,比如,有的仓库可能会有超过一百万个箱子。此外,因为许多仓库拓扑元件共享相同的存储组织标准,这会“浪费”很多内存。但是,为了确保仓库操作正确,又必须使得它们中的每一个都与一个良好定义的存储组织标准集合联系起来。
问题:怎样才能为仓库中的每个存储单元、传输设施以及物品提供相应的存储组织标准列表,而避免消耗巨大的内存呢?
对策:可以将存储组织标准采用恒值(Immutable Value)解决方案来实现,从而在仓库拓扑的多个元件之间共享。
解决方案:在多线程环境中共享和状态改变的问题会成倍的增加。因此,定义一个值对象,使其实例是不可改变的。值对象的内部状态是在创建时设定的,并且不允许后续改变,如下图示。
没有任何状态改变意味着不需要同步。这本身就决定了 Immutable Value 是线程安全的,而且因为没有加锁机制,也意味着它在多线程环境中的使用是高效的。
在仓库拓扑中 SOC 设计
在具体的仓库拓扑存储组织标准(Storage Organization Criteria ,SOC)设计中, 每个存储单元、传输设施和物品都维护着一份不变的存储组织标准集,这是在具体的仓库配置时指定的。在这个设计中这个集合由组合结构的根类(Storage 类)维护,如下图所示。
一个 Immutable Value 可以由不同的存储单元、传输设施以及物品共享,甚至多个控制线程也可以共享同一个 Immutable Value。此外, 仓库管理流程控制系统中的领域功能不允许修改Immutable Value,而只能通过相应的管理功能来显式改变。
相关文章推荐
- 如何减少无谓的资源消耗?如何在仓库拓扑中进行 SOC 设计?
- FPGA 设计如何进行面积优化(逻辑资源占用量优化)
- 如何对网站的文件资源进行优化并减少页面加载时间
- 如何让Jmeter压力测试减少压力机的资源消耗
- VS2008 在进行ASP.NET 开发时 如何避免加载设计页面时假死及减少保存所耗的时间。
- Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。 那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少
- 如何进行类设计
- 如何对网站的文件和资源进行优化?
- 你如何对网站的文件和资源进行优化?
- 4张图让你了解:云管理平台系统如何进行资源管理的?
- 互联网架构,如何进行容量设计?
- 原型设计测试—如何在不同设备中,进行可用性测试
- 数据仓库如何在电信网络资源分析系统中应用
- 在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++开发,如何取出资源文件中的版本信息
- 如何进行软件架构设计2--如何进行软件架构设计
- 如何解决IBM AIX PowerPath xcryptd进程在AIX主机消耗大量的CPU 和内存资源的问题
- 如何进行软件架构设计?
- 如何高效的进行设计验收?
- 你如何对网站的文件和资源进行优化?
- 如何对apache 服务器上的资源使用情况进行监控