GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

61
Copyright (c) Atomitech Corporation. All rights reserved. Copyright (c) Atomitech Corporation. All rights reserved. KiQ」が拓くゲームサーバの未来 株式会社アトミテック 研究開発室 長久勝 2016/7/15 GTMF2016東京 1

Transcript of GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Page 1: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.

「KiQ」が拓くゲームサーバの未来

株式会社アトミテック 研究開発室 長久勝

2016/7/15 GTMF2016東京1

Page 2: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

(株)アトミテック

設立:2004年資本金:26,000,000円代表取締役:松本 浩司

拠点:山口本社、東京本社、福岡営業所

関連会社:(株)エクスジール

統合運用管理ツール「Hinemos」公式ソリューションパートナー

APNスタンダードコンサルティングパートナー2

Page 3: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

長久勝

株式会社アトミテック 研究開発室 室長

「KiQ」開発チーム責任者

早稲田大学GEC非常勤講師

担当講義:大規模データ解析入門

NPO法人IGDA日本

SIG-4NG 正世話人 / FGJ-TF 副世話人

株式会社エスエヌケイをふりだしに、ゲームや映像配信などコンテンツ業界を中心に技術者として働き、国立情報学研究所を経て、2015年から現職。CEDEC他で講演など多数。

http://researchmap.jp/mnagaku/3

Page 4: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

「KiQ」が拓くゲームサーバの未来

 「KiQ」は、不正に対する安全性や開発ワークフローに配慮したゲームサーバエンジンとして開発を行っており、採用タイトル運用の経験もフィードバックしながら、日々進化を目指しています。

 本セッションでは、ゲームサーバに求められると我々が考え、「KiQ」で提案している事柄について、説明をさせて頂きます。

 ゲームサーバの開発や運用に携わっておられる方に、参考にして頂けるような、お話をさせて頂きたいと考えています。

4

Page 5: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

「KiQ」が拓く

ゲームサーバの

未来5

Page 6: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

未来6

Page 7: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

Future7

Page 8: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

The FutureIs Now

8

Page 9: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

未来、もう、来てた

● ゲームのオンライン要素について、ある程度の合意が得られている○ ゲームサーバエンジンが作れている

● 最近のリアルタイム要素など、合意内容は更新されるが、基本的に追加で進む○ 今の枠組みを捨てることはなさそう○ クライアント側の歴史もそうだし

● 適切なOSSを選定・利用することで必要な技術の調達コストが下がった○ 試行錯誤の経験と、アンテナ張って事例を見つければ、

やり方が見えてくる9

Page 10: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

拓く前に

もう来てた10

Page 11: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

完11

今後も追加される新しい要素に、ご期待下さい!

Page 12: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ほんまに?

12

Page 13: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

現実

13

Page 14: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

問題

提供価値を評価しやすいフロントの開発の比重が高まり、サーバの開発・運用に対する制約が強くなった。

「分かっているけど、できない」既に体制や資産がある場合は、「未来」の恩恵を十分に受けられる。一方、それがない場合は、とても厳しい戦いになる。

14

Page 15: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

解決

前例:

「3Dとかレンダリングとか、もう書いてられへん」

つ「げえむえんじんー」

「通信とかLinuxとか、もう書いてられへん」

つ「げえむさあばあえんじんー」

15

Page 16: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ほんまに?

16

Page 17: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

新たなる敵

その名は「運用」ゲームサーバエンジンを導入しても、自分たちで構築・運用・監視していたら、手間が減らない。

今回は、「書いてられへん」だけでなく「見てられへん」にも対応しないといけなかった。

17

Page 18: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

真・解決

「通信とかLinuxとか、もう書いてられへん。サーバとかネットワークとか、もう見てられへん」

つ「オンラインゲーム開発・運営支援サービスぅー(ゲームサーバエンジンの提供含む)」

18

Page 19: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

オンラインゲーム開発・運営支援サービス「KiQ」

● 開発支援○ ゲームサーバエンジン「KiQ」(狭義のKiQ)○ ゲームサーバ標準機能「KiQ BasicPlugin」○ デバッグ(アトミテック福岡営業所)

● 運営支援○ 構築・運用・監視

19

運営フェーズ開発フェーズ

ゲーム開発社さま

ゲームクライアント開発 ゲーム運営、追加開発

アトミテック

ゲームサーバエンジン「KiQ」提供(KiQBasicPlugin、開発社さま独自ロジックの注入)

AWS上に開発・運営環境を提供(構築・運用)

デバッグ(アトミテック福岡営業所)

サービス監視・システム監視

Page 20: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

オンラインゲーム開発・運営支援サービス「KiQ」

● 開発支援○ ゲームサーバエンジン「KiQ」(狭義のKiQ)○ ゲームサーバ標準機能「KiQ BasicPlugin」○ デバッグ(アトミテック福岡営業所)

● 運営支援○ 構築・運用・監視

ゲーム本体の開発、運営以外の、ゲームクリエイターにとって煩わしい作業を、全てアトミテックが引き受ける。

開発と運営の支援を一括で担当することで、素早い障害対応、精度の高い監視が可能。つまり、「インフラが動いていること」、「サーバが動いていること」ではなく、「ゲームが動いていること」を監視できる。

20

Page 21: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

適用事例A 概要

2016年3月末にリリースされたブラウザゲームにて

採用。ゲームサーバ基盤提供、構築、運用・監視

を担当。毎分数万アクセスの環境で、3ヶ月間、担

当部分でトラブルなし。

● 開発支援○ ゲームサーバエンジン「KiQ」○ デバッグ(アトミテック福岡営業所)

● 運営支援○ 構築・運用・監視

21

Page 22: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

適用事例Aデプロイサーバ上のゲームロジックは、クライア

ント開発チームが担当し、クライアント開

発に使われているC++で開発が行われ

た。ビルド、デプロイはJenkins job化さ

れ、クライアント開発チームは、自分た

ちの好きなタイミングで、自由にサーバ

上のゲームロジックを更新でき、最新の

コードを動作確認できた。

運営においても、本番環境への最新

コードのデプロイなど、通常のオペレー

ションは、クライアント開発チームが

Jenkinsのjobを通じて実施している。22

Page 23: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

サーバ上の

ゲームロジックは、

クライアント開発チームが

担当し?23

Page 24: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

サーバを書くための専任者を置く必要がない

C/Sが別々の実装言語で、実装担当者が別々だと、コミュニ

ケーションコストや待ち時間など、ムダが多い。1つの機能実現

が分担作業になってしまう。

そこで、

同じ言語で同じ人が

両方書けるようにする。

24 Linux

Vert.X

KiQ

JVM 共有ライブラリ(so)JNA

サーバ側ゲームロジック

(C++、プラグイン)

コンパイル

クライアント側ゲームプログラム

(C++)RPC

プログラマ

1人のC++プログラマが両方書ける

Page 25: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

適用事例A 開発

クライアント開発から見た場合

RPCは単なる関数呼び出しに

見える25

クライアントプログラム

サーバロジック関数呼び出し

クライアントプログラム

サーバ呼び出しライブラリ(所与)

関数呼び出し

ゲームサーバ

サーバロジック

通信

開発初期:サーバなしで開発

開発後期:サーバと組み合わせて開発

Page 26: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ゲームサービスは、多種のサブシステムの

複合体として構成されるため、監視すべき

項目は多岐にわたるが、その何れかに異

常を見つけた時、サービスが影響を受けて

いないか確認する必要がある。

運用に入る前から、デバッグ業務を通じて、そのゲームの振る舞いについて

知見を蓄積できる。この知見を有効活用して、サービス監視の自動化を実現

している。

適用事例A 監視

26

監視システム

異常通知監視

動作確認システム

※デバッグチームが運用報告

クライアント及び

弊社メンバ

Page 27: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

サービス監視の自動化?

27

Page 28: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

適用事例A 監視の自動化

28

監視システム

異常通知監視

動作確認システム

※デバッグチームが運用報告

クライアント及び

弊社メンバ

枠内は全部コンピュータがやってる

監視システム、動作確認システム、人間の間はメールで連携。メールの状況をGoogleAppScriptで監視し、動作確認システムが起動しなかった場合や、動作確認でサービス停止が判明した場合には、人間にエスカレーション(着手しましたメールを出すまで、携帯電話にメールが飛び続ける)する。

「24-365」を外注していない

Page 29: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

適用事例B 概要

2016年8月にリリース予定のタイトルにて採用。

ゲームサーバ(KiQBasicPlugin)提供、構築、運用

・監視を担当予定。

● 開発支援○ ゲームサーバエンジン「KiQ」○ ゲームサーバ標準機能「KiQ BasicPlugin」○ デバッグ(アトミテック福岡営業所)

● 運営支援○ 構築・運用・監視

29

Page 30: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

適用事例B 工数削減

開発が進んでいたタイトルについ

て、サーバに不安があるという相談

を頂き、仕様を協議したところ

KiQBasicPluginで賄えることが分

かり、提案、採用。

KiQBasicPluginの仕様の範囲内に

収まる場合、ゲームサーバ側のロ

ジックを書く必要はなく、クライアント

にRPCライブラリを入れて、呼ぶだ

けで済む。

30

クライアントプログラム

サーバ呼び出しライブラリ(所与)

関数呼び出し

ゲームサーバ

KiQBasicPlugin

通信

サーバロジックに所与の「KiQBasicPlugin」を採用

Page 31: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

それ今までの他社製品と同じやん......31

Page 32: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.多言語対応RPCフレームワーク「Thrift」RPC定義言語Thrift IDLの採用により、クライアント側の通信ライブラリを、多言語で、自動生成できる。クライアント側のプログラミング言語に合わせて、通信ライブラリを提供できる。

32

Page 33: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.

ご相談、お待ちしています!ご希望があれば詳細説明に伺います。下記まで、ご連絡ください。[email protected]

33

Page 34: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

お高いんでしょう?

34

Page 35: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

無料サービス準備中

KiQBasicPluginのみ利用できる(独自ロジックは実装できない)ゲームサーバを、無料で提供する準備を進めています。CEDECまでには何とか......※無料サービスに対する動作保証は限定的なものになる予定です

小規模な案件に対して、性能保証の低い廉価なプランを、秋以降に順次、提供する予定です。月に1万円、10万円、50万円といった枠を検討中です。

それを超える規模の案件につきましては、個別に対応させて頂きます。35

Page 36: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

無料ハンズオン準備中

無償版のサーバを公開後、

UDXにてハンズオンセミナを

計画しています。

36

Page 37: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.

ご相談、お待ちしています!ご希望があれば詳細説明に伺います。下記まで、ご連絡ください。[email protected]

37

Page 38: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.

開発スタッフ他募集中(勤務地:UDX)プログラマ、インフラエンジニア、広報・営業などスタッフも募集中です!https://careers.atomitech.jp/エントリーシートの「その他」に、希望職種と「KiQチームへの応募」を記入して下さい。

38

Page 39: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.

よし、出展費分は宣伝したぞ!ここからは自由時間ですまずは告知から

39

Page 40: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

告知

CEDEC2016ラウンドテーブル

「ゲームサーバについてのパターンマイニング」

応募時の詳細、本文5行で通った、やる前から伝説のラウンドテーブル40

Page 41: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

告知

IGDA日本SIG-4NG地方の小中学生を対象にワークショップを提供しています。

公益財団法人

中山隼雄科学

技術文化財団

からの助成を

受けて実施して

います。41

Page 42: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

告知

IGDA日本

福島ゲームジャム

今年もあるよ!

郡山メイン会場の参加申し込み締め切りは、7/19(火)

42

Page 43: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.

残り時間で中身とか構想とか

43

Page 44: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえた(うちでやれるはんいで)さいきょうのげーむさーばのえーだぶるえすじょうでのこうせい

44

Page 45: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえた(うちでやれるはんいで)さいきょうのげーむさーばのびるどとでぷろい

45

Page 46: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえた(うちでやれるはんいで)さいきょうのげーむさーばのしゅっかはんていしけん

46

Page 47: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえた(うちでやれるはんいで)さいきょうのげーむさーばのふかしけん

47

fullbok、直しました!(うちのスタッフが)CentOSに入れ替えて直しました!(AmazonLinuxがね、ちょっとね……)https://github.com/mnagaku/fullbok/blob/develop/fullbok.template

Page 48: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

48

インフラ監視の一環で、使っているAWSのサービスの稼働

状況を、実リクエストベースで監視している。特定リージョ

ンの特定サービスで、瞬断が観測されることは月に何回か

みたいな頻度である。そのつもりでコードを書いたり構成を

考えたりしておく。

# aws ec2 start-instances --instance-ids hogehoge A server error (InsufficientInstanceCapacity) occurred when calling the StartInstances operation: We currently do not have sufficient c4.8xlarge capacity in the Availability Zone you requested (ap-northeast-1c). Our system will be working on provisioning additional capacity. You can currently get c4.8xlarge capacity by not specifying an Availability Zone in your request or choosing ap-northeast-1a.

マシンを起動できない場合も考えたりしておく。

IT土方は見た

Page 49: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえたさいきょうのちゅうしょうどのたかいせっけいがいねん

● 現状

C/Sで技術基盤が違う

C/S開発を別々の担当者が行う

「2つのシステム」が連携して動く

● 理想

ゲームという「1つのシステム」の中の

C/Sという部分があるに過ぎない

49

Page 50: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえたさいきょうのちゅうしょうどのたかいせっけいがいねん

例:画面遷移

● 現状

「Cで画面遷移」、「C/Sで通信、Sでゲームロジックの処理」は個別に考えられている。通信APIは「Sでゲームロジックの処理」単位に設計される

● 「1つのシステム」

何かを表示する必要があり、その何かを得る1つの実装パターンが、通信とSのゲームロジック処理、に過ぎない。画面遷移と通信を不可分の関係として見直せるのでは?50

Page 51: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえたさいきょうのちゅうしょうどのたかいせっけいがいねん

51

Page 52: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

ぼくのかんがえたさいきょうのちゅうしょうどのたかいせっけいがいねん

画面遷移と通信を不可分の関係とする

→例外を包含可能な形で、そのような設計が可能

メリット

● 通信エラーの単純化● チート対策● 仕様が分かりやすくなる● 検証しやすくなる

52

Page 53: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

「状態遷移の管理」

53

KiQゲームKiQ

クライアントとサーバがそれぞれ状態遷移を管理し整合性を確認

Page 54: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

「画面遷移から通信を設計」

54

Page 55: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

状態遷移で異常検知①

● 状態遷移図の情報を使うと、設計上あり得る通信の順序が明確になり、異常(不正)な通信を検知することができる

55

Page 56: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

状態遷移で異常検知②

//状態遷移図から起こした遷移のチェーンの定義

S->checkLogincheckLogin->(login | t1[isLogin==true])login->(getTopTotalRanking | t2[プレイ開始操作])t1->(getTopTotalRanking | t2)getTopTotalRanking->

(getScopedTotalRanking | t3[ランキング画面からタイトル画面に戻る])getScopedTotalRanking->(getScopedTotalRanking | t3)t3->(getTopTotalRanking | t2)t2->(stageClear | gameset)stageClear->t4[ステージ終了からステージに戻る]t4->(stageClear | gameset)gameset->t5[終了画面からタイトル画面に戻る]t5->(getTopTotalRanking | t2)

56

Page 57: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

状態遷移で異常検知③

//通信の無い遷移を捨象して通信のある遷移のみに変換した

//遷移のチェーンの定義

S->checkLogincheckLogin->(login | getTopTotalRanking | stageClear | gameset)login->(getTopTotalRanking | stageClear | gameset)getTopTotalRanking->

(getScopedTotalRanking | getTopTotalRanking | stageClear | gameset)

getScopedTotalRanking->(getScopedTotalRanking | getTopTotalRanking | stageClear | gameset)stageClear->(stageClear | gameset)gameset->(getTopTotalRanking | stageClear | gameset)

57

Page 58: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

状態遷移で異常検知④

//ある通信の前にあり得る通信をまとめたもの

S->checkLogincheckLogin->login(checkLogin | login | getTopTotalRanking | getScopedTotalRanking | gameset)->getTopTotalRanking(getTopTotalRanking | getScopedTotalRanking)

->getScopedTotalRanking(checkLogin | login | getTopTotalRanking | getScopedTotalRanking | stageClear | gameset)->stageClear(checkLogin | login | getTopTotalRanking | getScopedTotalRanking | stageClear | gameset)->gameset

58

Page 59: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

状態遷移で異常検知⑤

● ここまでの変換は自動で行える

● サーバ側でこの情報を元に監視を行う

● 設計時に、この情報をレビューすること

で、この例では、stageClearやgamesetを無限ループで呼べることが脆弱だと

判断できたりする

59

Page 60: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.

状態遷移で異常検知⑥

● モデル検査できる

● プロセス代数系の実装モデルを採用し

たプログラミング言語と相性が良い

○ ほんとは、GoやErlangで書けるとキ

レイなんじゃよ

60

Page 61: GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック

Copyright (c) Atomitech Corporation. All rights reserved.Copyright (c) Atomitech Corporation. All rights reserved.

ご相談、お待ちしています!ご希望があれば詳細説明に伺います。下記まで、ご連絡ください。[email protected]

61