如何減少無謂的資源消耗?如何在倉庫拓撲中進行 SOC 設計?
倉庫中的每個儲存單元、傳輸設施以及物品都與特定屬性相關。這些屬性被稱為儲存組織標準(Storage Organization Criteria , SOC)。這個標準定義了特定儲存單元中,可以儲存哪些型別的物品,或者特定傳輸設施可以傳送哪些型別的物品。儲存組織標準的例子還包括:吞吐量類、有害類以及溫度類。
對每一個標準都有特定的、可列舉的允許值,如對吞吐量類來說有快速、中等和低速幾種。
倉庫管理流程控制系統中的領域功能使用這些資訊來決定三個問題:
要存放物品的目標位置是什麼?
從當前位置到目標位置的中間步驟有哪些?
每一步驟用來傳輸物品的傳輸設施是什麼?
例如,只儲存一小段時間就快速取出的物品屬於吞吐量類的快速類,這時應當將物品只存放在快速類的儲存單元中。類似地,具有某種有害性質(如易燃性的物品),則應當由適合傳輸易燃 物的傳輸設施來傳送。
某一特定儲存單元、傳輸設施以及物品的儲存組織標準通常很少隨時間變化,除非是對倉庫進行現代化改造。在正常的倉庫執行中它們通常都是固定不變的,一旦確定了特定儲存單元、傳輸設施或物品,則儲存組織標準就只能由相應的管理功能來顯式地調整。
如何減少無謂的資源消耗?
在倉庫管理流程控制系統的具體安裝中,維護這些數最龐大的儲存組織標準就產生了一個問題。將每一個儲存單元、傳輸設施和帶有私有的相關儲存組織標準集合的物品聯絡起來需要大量的記憶體,比如,有的倉庫可能會有超過一百萬個箱子。此外,因為許多倉庫拓撲元件共享相同的儲存組織標準,這會“浪費”很多記憶體。但是,為了確保倉庫操作正確,又必須使得它們中的每一個都與一個良好定義的儲存組織標準集合聯絡起來。
問題:怎樣才能為倉庫中的每個儲存單元、傳輸設施以及物品提供相應的儲存組織標準列表,而避免消耗巨大的記憶體呢?
對策:可以將儲存組織標準採用恆值(Immutable Value)解決方案來實現,從而在倉庫拓撲的多個元件之間共享。
解決方案:在多執行緒環境中共享和狀態改變的問題會成倍的增加。因此,定義一個值物件,使其例項是不可改變的。值物件的內部狀態是在建立時設定的,並且不允許後續改變,如下圖示。
沒有任何狀態改變意味著不需要同步。這本身就決定了 Immutable Value 是執行緒安全的,而且因為沒有加鎖機制,也意味著它在多執行緒環境中的使用是高效的。
在倉庫拓撲中 SOC 設計
在具體的倉庫拓撲儲存組織標準(Storage Organization Criteria ,SOC)設計中, 每個儲存單元、傳輸設施和物品都維護著一份不變的儲存組織標準集,這是在具體的倉庫配置時指定的。在這個設計中這個集合由組合結構的根類(Storage 類)維護,如下圖所示。
對每一個標準都有特定的、可列舉的允許值,如對吞吐量類來說有快速、中等和低速幾種。
倉庫管理流程控制系統中的領域功能使用這些資訊來決定三個問題:
要存放物品的目標位置是什麼?
從當前位置到目標位置的中間步驟有哪些?
每一步驟用來傳輸物品的傳輸設施是什麼?
例如,只儲存一小段時間就快速取出的物品屬於吞吐量類的快速類,這時應當將物品只存放在快速類的儲存單元中。類似地,具有某種有害性質(如易燃性的物品),則應當由適合傳輸易燃 物的傳輸設施來傳送。
某一特定儲存單元、傳輸設施以及物品的儲存組織標準通常很少隨時間變化,除非是對倉庫進行現代化改造。在正常的倉庫執行中它們通常都是固定不變的,一旦確定了特定儲存單元、傳輸設施或物品,則儲存組織標準就只能由相應的管理功能來顯式地調整。
如何減少無謂的資源消耗?
在倉庫管理流程控制系統的具體安裝中,維護這些數最龐大的儲存組織標準就產生了一個問題。將每一個儲存單元、傳輸設施和帶有私有的相關儲存組織標準集合的物品聯絡起來需要大量的記憶體,比如,有的倉庫可能會有超過一百萬個箱子。此外,因為許多倉庫拓撲元件共享相同的儲存組織標準,這會“浪費”很多記憶體。但是,為了確保倉庫操作正確,又必須使得它們中的每一個都與一個良好定義的儲存組織標準集合聯絡起來。
問題:怎樣才能為倉庫中的每個儲存單元、傳輸設施以及物品提供相應的儲存組織標準列表,而避免消耗巨大的記憶體呢?
對策:可以將儲存組織標準採用恆值(Immutable Value)解決方案來實現,從而在倉庫拓撲的多個元件之間共享。
解決方案:在多執行緒環境中共享和狀態改變的問題會成倍的增加。因此,定義一個值物件,使其例項是不可改變的。值物件的內部狀態是在建立時設定的,並且不允許後續改變,如下圖示。
沒有任何狀態改變意味著不需要同步。這本身就決定了 Immutable Value 是執行緒安全的,而且因為沒有加鎖機制,也意味著它在多執行緒環境中的使用是高效的。
在倉庫拓撲中 SOC 設計
在具體的倉庫拓撲儲存組織標準(Storage Organization Criteria ,SOC)設計中, 每個儲存單元、傳輸設施和物品都維護著一份不變的儲存組織標準集,這是在具體的倉庫配置時指定的。在這個設計中這個集合由組合結構的根類(Storage 類)維護,如下圖所示。
一個 Immutable Value 可以由不同的儲存單元、傳輸設施以及物品共享,甚至多個控制執行緒也可以共享同一個 Immutable Value。此外, 倉庫管理流程控制系統中的領域功能不允許修改Immutable Value,而只能通過相應的管理功能來顯式改變。
相關文章
- 團隊拓撲:減少軟體團隊的認知負擔 - mimacomMac
- 怎麼減少程式設計中的 bug?程式設計
- 測試生存指南!如何在快速迭代的專案中減少返工?
- 在Linux中,如何在Linux中進行資源配額管理?Linux
- 如何在Mac上減少PDF檔案大小Mac
- 如何在資料庫中進行RBAC許可權應用資料庫
- 如何通過 WebP 相容減少圖片資源大小Web
- 基於Hive進行數倉建設的資源後設資料資訊統計:Hive篇Hive
- 基於Hive進行數倉建設的資源後設資料資訊統計:Spark篇HiveSpark
- 樹的拓撲序計數
- 遊戲測試 Perfdog 實戰之減少 CPU 消耗遊戲
- 前端進階演算法1:如何分析、統計演算法的執行效率和資源消耗?前端演算法
- 何謂開源程式設計?程式設計
- Android studio 減少應用大小,刪除無用資源Android
- Kubernetes 資源拓撲感知排程優化優化
- 如何在MySQL資料庫中進行網際網路常用架構的搭建?MySql資料庫架構
- 在資料庫設計中,狀態欄位(如status)用0代表成功還是失敗,有所謂嗎?資料庫
- oracle中找出最消耗資源的sqlOracleSQL
- 向量化的HTML5拓撲圖形元件設計HTML元件
- ApacheStorm官方文件——在生產環境中執行拓撲ApacheORM
- 如何在 Ubuntu 中刪除倉庫及其 GPG 金鑰Ubuntu
- 拓撲排序排序
- 如何通過 WebP 自適應方案減少圖片資源大小Web
- Ecoisme:連線一切智慧家居 減少能源消耗
- 減少失誤提高策略性,ACT遊戲中的戰鬥資源控制遊戲
- 如何在Django ORM中進行not查詢?DjangoORM
- 如何在 Java 中進行圖片剪裁Java
- HTML5拓撲圖形元件設計之道(一)HTML元件
- 亞馬遜想用遊戲化減少倉庫工人的枯燥感,但未必是件好事亞馬遜遊戲
- 如何在無響應的Linux系統中殺掉記憶體消耗最大的程式Linux記憶體
- dhtmlxGantt如何在DHTMLX Gantt中設定資源管理選項HTML
- 建設yum源倉庫
- Oracle 中定位重要(消耗資源多)的SQLOracleSQL
- 如何在 Linux 中找出記憶體消耗最大的程式Linux記憶體
- HT For Web 拓撲圖背景設定Web
- 不要進行無謂的OOP與FP爭論 - Mathias VerraesOOP
- 拓撲排序 (BFS )DAG (有向無環圖)排序
- 如何在 Fedora、CentOS、RHEL 中啟用 RPM Fusion 倉庫CentOS