PFS制御ソフトウェア理想と現実
Atsushi Shimono
Univ. of Tokyo; Kavli IPMUPFS Project Officeお題「PFS に関連して装置制御に関わるソフトウェアの最新の動向やデータベースに関わるソフトウェアの最近の話題をソフトウェアの要素技術にフォーカスして紹介」
最近の動向？？
• PCAST “Designing a Digital Future”からIndustrie4.0へ• 密結合から疎結合へという話ではない、はず？

• 専用バスのセンサー・制御からセンシングネットワークやIoT/WoT• SOAP/WDSLの夢再び、マイクロアーキテクチャとサーバレスアーキテクチャ• RDBMS (ACID)からNoSQL (BASE)、MapReduce系(EMR,HIVE,Spark)へ• 開発・オペレーションの自動化・共通化としてのCI、CD、DevOpsへの取り組み• オブジェクト指向への関数型言語の導入、サービス開発企業による新言語の提供

PFSとは？

Project info: http://pfs.ipmu.jp/
Project blog: http://pfs.ipmu.jp/blog/

PFSとは？
• 地理的に分散したハードウェア開発
ハードウェアに紐づいたソフトウェアの分散開発
ハワイに来て初めて全体が繋がる装置構成への対応• 文化・技術的なバックグラウンドや地理的にも大きな断絶統一した開発手法の導入が困難
地理的断絶(時差)によるコミュニケーションの非同時性• ソフトウェアインフラとしてのハードウェアへの制約
変更が困難なすばるの設備、しかも20年選手
完成後5-10年の運用可能性を見据えてのインフラ設計• 運用中の柔軟な機能更新要求に耐えうるソフトウェアカプセル化などによる相互依存性を削減した設計
単体での更新時動作評価試験への対応

で、現実問題どうするか？
DbC (契約による設計)
事前条件Pが成り立つときに、プログラムAを実行するとその実行後に必ず事後条件Qが成り立つならば、プログラムAは、事前条件Pと事後条件Qとに関して部分的に正当(partiallycorrect)である。
• ソフトウェアモジュールを階層化してそれぞれの間にDbCコンセプトを導入
コンセプトを導入
ソフトウェアモジュールを階層化してそれぞれの間に• 個別試験・段階別統合の実現可能性を追求• ソフトウェア・ハードウェアインフラレイヤーについても疎結合の階層化• パフォーマンス要求
ピーク要求を含み)
パフォーマンス要求には数割～数倍の余裕をみて要求には数割～数倍の余裕をみて (ピーク要求を含み
ピーク要求を含み• 各階層での単体試験・結合試験を独立にできるように可能な限り配慮「賢明なソフトウェア技術者になるための第一
歩は、動くプログラムを書くことと正しいプログ
ラムを適切に作成することの違いを認識すること」 (M.A. Jackson 1975)とはいえ理想と現実はいろいろあるわけで・・・・とはいえ理想と現実はいろいろあるわけで・・・・コンセプトソフトウェアハードウェア搬出時の各段階での検証

個別ハード制御SpS/PFIシーケンス
装置統合制御メッセージ交換サーバ
ネットワークレイヤーを一括して扱う通信抽象化 (クライアントライブラリ提供)

ログアーカイブ
共有インフラとしての障害対応基盤提供

基盤ストレージ
拡張性を見越したある程度余裕のあるインフラ構築

共有仮想化基盤
バックアップ基盤

PFSネットワーク
ハードウェア単体

統合コンセプト (II)• カプセル化などによる相互依存性を削減した設計
クライアントライブラリを提供し通信レイヤーを完全に隠蔽
各ハードウェア制御モジュールではローカル関数呼出で対外接続
高度に分離された個別制御モジュールの集合としての統合制御• 単体での更新時動作評価試験への対応
モジュールが公開する関数でのドメイン分離が第一目標
かつ、制御モジュール間連携シーケンスの階層化によりドメインの狭域化• ハードウェアに紐づいたソフトウェアの分散開発
最もハードウェアに近い個別モジュールは各ハードウェア開発サイトで検証
分光器・主焦点部などに閉じたミニシーケンスによる各部分での検証• ハワイに来て初めて全体が繋がる装置構成への対応
データ送受信などインフラ部分は別途パフォーマンス検証
シーケンス中の大容量データの流れはモジュール内制御と独立して検証可能な部分はデータ変換・処理・転送モジュールを単機能分離する構成Subaru
Gen2

g2cam

IIC

g2t

MLP1

MAC

STSSAS

jsonp or CORS

Browser (UI)

MHS

ENU1

2 3 4

NCU1

2 3 4

RCU1

2 3 4

BCU1

2 3 4

FPS

MPS

AGC

DB

Storagejsonp provider

SHM

HTML

DB to json

SQL

etc. …

Status archiverdatabase

MHSコンセプト (II)• カプセル化などによる相互依存性を削減した設計
クライアントライブラリを提供し通信レイヤーを完全に隠蔽
各ハードウェア制御モジュールではローカル関数呼出で対外接続
高度に分離された個別制御モジュールの集合としての統合制御• 単体での更新時動作評価試験への対応
モジュールが公開する関数でのドメイン分離が第一目標
かつ、制御モジュール間連携シーケンスの階層化によりドメインの狭域化• ハードウェアに紐づいたソフトウェアの分散開発
最もハードウェアに近い個別モジュールは各ハードウェア開発サイトで検証
分光器・主焦点部などに閉じたミニシーケンスによる各部分での検証• ハワイに来て初めて全体が繋がる装置構成への対応
データ送受信などインフラ部分は別途パフォーマンス検証
シーケンス中の大容量データの流れはモジュール内制御と独立して検証可能な部分はデータ変換・処理・転送モジュールを単機能分離する構成

PFS Basic Operation Sequence for Single Exposure
Shutter open

Shutter Close
CCD readout
IR up-ramp

CCD data transfer

CCD wipe

IR data compose / transfer

SpS/BIA
PFI/FFIAIR detector reset

Turn on

BIA ON

Turn off

Turn onPFI Fixed fiducial ON

Turn offB

FPS / MCS configuration
MPS

Set Org

Move

Move

Exec sequence

FPS
MCS

Move

MeasureMeasureIR up-ramp

CMeasure
MCS final data

Az
EL
InR
Tel Slew
ADC
Hexapod
AutoGuide

Field Acquisition

On-site DRP processing / Target selection by ETS
Exposure end

D(Slow move)F

E

AG Acquisition

AutoGuideOn-site DRP processing
Exposure startコンセプト (II)• カプセル化などによる相互依存性を削減した設計
クライアントライブラリを提供し通信レイヤーを完全に隠蔽
各ハードウェア制御モジュールではローカル関数呼出で対外接続
高度に分離された個別制御モジュールの集合としての統合制御• 単体での更新時動作評価試験への対応
モジュールが公開する関数でのドメイン分離が第一目標
かつ、制御モジュール間連携シーケンスの階層化によりドメインの狭域化• ハードウェアに紐づいたソフトウェアの分散開発
最もハードウェアに近い個別モジュールは各ハードウェア開発サイトで検証
分光器・主焦点部などに閉じたミニシーケンスによる各部分での検証• ハワイに来て初めて全体が繋がる装置構成への対応
データ送受信などインフラ部分は別途パフォーマンス検証
シーケンス中の大容量データの流れはモジュール内制御と独立して検証可能な部分はデータ変換・処理・転送モジュールを単機能分離する構成System verification and integration
If design follows concepts well, PFS ICS software verification and integration flow will behierarchic, continue validation at each level and to go next level of integration. Thanks toloosely coupled module based design using MHS, validation of each actor or combinationof actors within one (sub-)sequence could be done without any other software module.
These subsystem or module(s) verification are written as sequences and developed as
special actor – spsait or pfiait. Using them, software integration and test flow will be 1)
per module (actor), 2) per subsystem, whose hardware are at one place before shipping toSubaru (A-E in a last slide), 3) full operational sequence at Subaru.
ENU
SpS/SM

pre-ship verification on
subsequence and AITsequence

SubaruNCU

xxxait

RCU
BCU

PFI

FPS

g2t

AGC

MAC

MPS

pre-ship verification
on API of each actor

PFS
operation

Verification of connection between PFS module andSubaru during pre-integration connectability test

コンセプト (II)• カプセル化などによる相互依存性を削減した設計
クライアントライブラリを提供し通信レイヤーを完全に隠蔽
各ハードウェア制御モジュールではローカル関数呼出で対外接続
高度に分離された個別制御モジュールの集合としての統合制御• 単体での更新時動作評価試験への対応
モジュールが公開する関数でのドメイン分離が第一目標
かつ、制御モジュール間連携シーケンスの階層化によりドメインの狭域化• ハードウェアに紐づいたソフトウェアの分散開発
最もハードウェアに近い個別モジュールは各ハードウェア開発サイトで検証
分光器・主焦点部などに閉じたミニシーケンスによる各部分での検証• ハワイに来て初めて全体が繋がる装置構成への対応
データ送受信などインフラ部分は別途パフォーマンス検証
シーケンス中の大容量データの流れはモジュール内制御と独立して検証可能な部分はデータ変換・処理・転送モジュールを単機能分離する構成SubaruSTARSGen2

HiloOn-site DRP

g2cam

IIC

g2t

MLP1

MAC

STS

SASMHSMHS

2 3 4

NCU1

2 3 4

RCU1

2 3 4

BCU1

2 3 4FPS

MPS

AGC

DBsummit

ENU1Storage

etc. …

off-summit backup storage

Statusarchive

DBbackup(ICS)

db server
Daily backup

replication
Daily backup

db server
hilo

operation

DBbackup

Summit master iSCSI storage

hilo outside-DMZ

Externalaccess

PFS Network Physical Wiring DiagramPFI

PFI Controllers
Cal Controllers

COBRA

MCP

fiber
metal

AG Cam (x6)JHUMedia Conv.

PCIe-USB

Media Conv.

IPMU

POpt2 Cable Wrapper
SubaruDifferent fibers at PF exchange

Subaru E-LAN (G)(metal)SM
MM 62.5

MM 62.5

ASIAA

MPS
PCIe extender
AG Ctrl

Cisco 2960X-24TS-L
FlexStack x2 (dual link)

8x 1Gbps metal in device multipath iSCSICisco 2960X-24TS-L
CB2F

ICS Storage (iSCSI or NFS)
SM

4SM in LACPCs Stand-by

SpS SM1 switch
Cs focus

Cisco 2960X-24TS-L
SpS SM2 switch

Exchanged

2960CG-8TL-LCs

SpS SM3 switch
SpS (TUE-IR)SpS SM4 switchさて、現実を見よう（涙）
• 文化的・技術的なバックグラウンドに大きな断絶
開発支援・管理ツールの利用への温度差から共通文化の構築が困難
自己開発・自己利用でない観測装置の運用に向けた意識改革必要？
コードレビューやりたいけれど・・・・• 最もハードウェアに近い個別モジュールは各ハードウェア開発サイトで検証
各グループの技術バックグラウンドが品質に直結(してる感じはある)
また、当然ながらハードウェア開発の遅れの影響はそのまま効きますハードウェアの可制御性の検証結果がドメイン境界に影響する悩みも同じ• カプセル化などによる相互依存性を削減した設計
原理的にはIFより後ろではモジュール内で何をやってもらっても大丈夫というよりは、その手の放任？放置？主義をとるしかない人手不足
そもそも(PO/すばるで)誰がレビューやるの？
• データ送受信などインフラ部分は別途パフォーマンス検証
大規模化してインフラ・セキュリティーなどの重要性が・・・。どう協働する？
湯水のように性能が出るわけではない！ソフトウェア設計でも考慮しないと