CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

InstallShieldLecture InstallShield でインストーラを作成する方法 ( 初級編 ) ソニーエンジニアリング 設計 3 部 1 課 齋藤佑輔.
1 会社名: 氏名: 日付: 会社名: 氏名: 日付:. 2 内容 企業のセキュリティ対策状況 ユーザー管理の重要性 ユーザー管理製品 市場状況 Active Directory とは Active Directory 利用に最低限必要な準備 ユーザー管理のご提案内容 最初の取り組み:ユーザー情報の統合管理.
© 2012 IBM Corporation ISCCD7.5 構築 その 3 IBM SmarterCloud Control Desk 7.5 導入 2011/09/30 日本アイ・ビー・エム株式会社.
オートデスク・コラボレーション・サービス オートデスク株式会社
BOM for Windows セキュリティログ監視キット ファイル・アクセスログ収集ソリューション
Global Ring Technologies
オーダー端末操作手順書 WideNet株式会社 Ver.2013/01/30.
安全なログオン手順 2004/08/26 Port139 伊原 秀明.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
状況に応じたサービスを 提供するための人や物に 共通の情報管理
ハルビン絵葉書コレクションシステムの再構築と機能追加 -サーバ側:PHPとMySQLを用いて
JPAを利用した RESTful Webサービスの開発
WEBから確認できる 駐車場管理システムについて
ISCCD7.5構築 その2 Middleware 導入
SharePoint Server において 構成ウィザードが失敗する場合の トラブルシューティング
電子社会設計論 第11回 Electronic social design theory
「絵葉書を通じてのハルビンの 街の印象調査」システムUIの iPadアプリ化 谷研究室  飯 祐貴.
Accessによるデータベース(3) Ver /11.
WagbyR6.5 Update 12 PPT版 更新情報
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
Webサイト運営 09fi118 橋倉伶奈 09fi131 本間昂 09fi137 三上早紀.
IBM SmarterCloud Control Desk 7.5 新機能ガイド - スケジュールの変更
RDBMSについて 2年7組  小鹿 慎太郎.
EBSCOhost 詳細検索 チュートリアル support.ebsco.com.
メッセージ機能 相手にメッセージを送信する 04 送信する相手を選んでメッセージを送信します。
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
パフォーマンスチューニング on Rails
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
iStorage NSシリーズ ウィルスチェック運用の手引き
データベース設計 第9回 Webインタフェースの作成(1)
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
IPv6アドレスによる RFIDシステム利用方式
プログラム実行履歴を用いたトランザクションファンクション抽出手法
管理画面操作マニュアル <サイト管理(1)> 基本設定 第9版 改訂 株式会社アクア 1.
第2回 SQL インジェクション その攻撃と対処 NECラーニング 山崎 明子.
ネットワークプログラミング論 平成28年12月26日 森田 彦.
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
学校におけるネットワークの運用と技術 テクニック編.
SQL パフォーマンス チューニング ~ プランガイドの利用~
Xenによる ゲストOSの監視に基づく パケットフィルタリング
わんくま同盟・techbank.jp 夏椰 Insight Technology, Inc. 今川 美保
NASのアクセス履歴を記録・検索できる! マイナンバー制度対応のファイルサーバー(NAS)ログ管理ソフト
Javaによる Webアプリケーション入門 第7回
Cisco Umbrella のご紹介 2018 年 1 月.
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
RD セッション ホストにおける RDC クライアントの シングル サインオン (SSO) について
スマートデバイスのビジネス活用を支援する法人向けファイル共有サービス
gate-toroku-system のしくみ
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
G Suite導入ガイド Ver1.3.
発注者側サイト操作説明書 作成日:2004年6月 Ver1.0 初版 改 訂:2005年9月 Ver1.2 株式会社 コニファ.
e-PILON 利用登録申請書 社名 役職 利用者の 責任者氏名 裏面記載の規約内容を承諾の上、e-PILONの利用を申し込みます
データベース設計 第8回 クライアント=サーバーモデル(2)
Cisco Configuration Professional Express 3.3 アップデート
エピソード記憶に訴えるBookmarkless Bookmarkの実現
A18 スパムサーバの調査 ~ボットを見抜けるか?~
3.リレーショナルデータベース,主キー, SQL
バーチャルサーバー設定資料 (管理者様用)
gate登録システム: 設計ポリシーから使い方まで
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
BCP対応システムについて 横浜ゴム㈱ グローバル調達本部.
gate-toroku-system のしくみ
アプリケーションゲートウェイ実験 2001.10.5 鬼塚 優.
TCP/IPの通信手順 (tcpdump)
Presentation transcript:

CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 1.1.0.0 対応) 第3版 2014/04/03 株式会社 CO-CONV

概要 端末の利用履歴を記録するデータベースの記録方式について説明します 2019年5月18日

データベース設計の特長 SQL Server Express をもちいた環境で1日10万件の情報記録をできる性能設計とする 端末の突然死に対応する 終了時刻を推測してデータベースに登録する機能を持つ セッションの接続状態を記録する 特に、セッション接続元の情報を記録する点を特徴とする テーブルを日付別にすることで、過去の記録を消去することを容易にする 2019年5月18日

info テーブル システムの情報を保持する。 特に、schema_version の値はテーブルの構造が変化したときに変わるため重要です。この文章はschema_versionの ‘1.1.0.0’ についての仕様を記載しています。 利用履歴データベースを参照するアプリケーションは、参照前に info テーブルの schema_version が期待した値であることを確認することを推奨します。 2019年5月18日

info テーブルのカラム カラム名 意味 name 設定の名前。 value 設定の値。 2019年5月18日

info テーブルのSQL の例 schema_version の値を取得する SELECT [value] FROM [dbo].[info] WHERE [name] = ’schema_version’; 2019年5月18日

state テーブル SQLで問い合わせた時点での「端末の起動状態・ログオン状態・セッションの状態やアプリケーション実行状態」を保持する 開始ログ記録時にレコードが作成され、終了ログ記録時に消去される Logテーブルへの終了ログ記録時にも、logテーブル上の終了ログを書き込むべきレコードを取得するために、このテーブルを検索する 2019年5月18日

state テーブルのカラム 2019年5月18日 カラム名 Typeによるフィールドの有無 意味 Power Logon Connection Application Id ○ テーブル内でのID。Serial 。 time レコードの作成時間。将来的には「あまりにも古い記録は削除する」といった用途に利用する可能性がある。 type 0(Power): 端末の電源状態・コンソールの状態 4(Logon): ユーザーのログオン状態 2(Connection): リモートコネクションの接続状態 3(Application): アプリケーションの動作状態 Logon が 4 である点にご注意ください。 hostname ホスト名 username X ユーザ名 user_domain ユーザのドメイン (記録するかどうかは端末側設定 send_user_domain による) ip 端末のIPアドレス session_id 端末上でのセッションID。 (同一ユーザが複数のセッションにログオンしていた場合に、ログオフ処理を個別に行えるようにするために必要。) app_filename アプリケーションのファイル名 process_id アプリケーションのプロセスID log_table_name 開始時刻を記録した logのテーブル名 log_id log テーブルにおける開始ログの ID 2019年5月18日

state テーブルのSQL の例 現在ログオン中の端末名・ユーザー名を列挙する 現在起動中の端末名を列挙する SELECT [hostname] ,[username] FROM [dbo].[state] WHERE [type] = 4; 現在起動中の端末名を列挙する SELECT [hostname] FROM [dbo].[state] WHERE [type] = 0; 2019年5月18日

log テーブル 利用履歴が蓄積される 日付別のテーブルに記録される (log_YYYYMMDD) 開始ログ記録時に「終了時刻不明」で追加される。 終了ログ記録時に終了時刻が更新される 2019年5月18日

log_YYYYMMDDテーブルのカラム カラム名 Type によるフィールドの有無。 意味 Power Logon Connection Application Id ○ テーブル内でのID。Serial 。 start_time 開始時間。対応する開始ログが送付されなかったときには NULL になることがある。 end_time 終了時間。終了ログなどにより更新された時間でもある。終了ログを送付されたとき、サーバー側で終了を検知したときの時刻が記録される。 end_status end_timeの状態として、次のいずれかを記録する ・ 0(Open): End_timeの記録はまだなし (start状態) ・ 1(Closed): 端末からのstop通知による記録 ・ 2(Dead): ポーリングにより端末が死んでいたことによる記録 ・ 3(Zombie): いつの間にか死んでいて、端末からの起動通知が来たことによる記録 hostname 端末のホスト名 username X ユーザー名 user_domain ユーザーのドメイン名。(記録するかどうかは端末側設定 send_user_domain による) ip 端末のIPアドレス type 0(Power): 端末の電源状態・コンソールの状態 4(Logon): ユーザーのログオン状態 2(Connection): リモートコネクションの接続状態 3(Application): アプリケーションの動作状態 Logon が 4 である点にご注意ください。 session_id 端末上でのセッションID。 remote_ip コネクションの接続元のIPアドレス (デフォルトでは Connection はリモートからの接続のみを記録する。端末側設定の [log_agent] にsend_local_connection=1 を追加すると、コンソール上での接続を記録する。このとき、コンソールからの接続の場合には “” となる) app_path アプリケーションのパス (パスを記録するかどうかは端末側設定send_process_full_pathによる。検索時の利便性を考え、パスとファイル名は分けて記録) app_filename アプリケーションのファイル名 process_id プロセスID 2019年5月18日

log テーブルへSQL の例 2014年4月2日におけるログオンの記録を抽出する 2014年4月2日における端末起動の記録を抽出する SELECT [start_time] ,[end_time] ,[hostname] ,[username] FROM [dbo].[log_20140402] WHERE [type] = 4; 2014年4月2日における端末起動の記録を抽出する SELECT [start_time] ,[end_time] ,[hostname] FROM [dbo].[log_20140402] WHERE [type] = 2; 2019年5月18日

内部設計 以下のスライドは、CO-COがDBを操作する際の内部動作に関する資料です。 2019年5月18日

開始ログ記録時の内部動作 state・log更新時には、端末ごとの排他処理を行う サーバーの時刻と極端に異なるログは無視する 電源の切断通知なしに起動した場合の対策 stateテーブルに該当端末のレコードがないことを確認 ある場合には適切に終了扱いにする (logの end_timeは現在時刻、end_statusは Zombie) logテーブルにレコードを作る start_timeは端末が通知する時刻(端末の時計で計測) end_timeは空欄、ログの end_statusはOpen logテーブルの「テーブル名・ID」を取得 stateテーブルに記録 2019年5月18日

終了ログ記録時の内部動作 先にstateを検索, そのあとlog を更新後、stateを消去する。 ホスト名はCase insensitiveで比較する(IPには頼らない) ログのtypeにより必要な追加処理をする Application ・Logon ・Connection 特になし Power その端末のApplication, Logon, Connection があるときには Closed 扱いにする log の end_time と end_status をUpdate stateを消す 2019年5月18日

定期的な端末ポーリングの内部動作 ポーリング対象は、state テーブルの hostname カラムに存在するホスト一覧 端末が死んでいることを確認したら、その端末に対する次の処理を行う 端末をシャットダウン状態にする stateテーブルに該当端末の記録があれば、終了扱いにする。その際logのend_statusはDeadにする。 時刻はサーバ側での調査時間。調査してからDBを変更するまでの時間は極力短くする。 DB更新中は排他処理をする。 2019年5月18日

利用履歴記録処理の詳細な仕様 ログ記録に伴うDB操作と 端末のポーリング後のDB操作とが、特定のホストについて競合することがないように、排他処理を行っている。 上記条件のもと、特定のホストの情報に対するDB の更新処理は、同時1セッションしかアクセスがないような設計とする。 stateテーブルの検索時に hostnameは信じるが、IPは信じない。 端末は電源起動時に、電源オンの通知を送る前には、それ以外の通知を送らない。 ホスト名・ユーザ名はCase Insensitiveに比較できるようカラムを設定している。 端末側ではサービス起動時に、本当に電源オンによるサービス起動かどうかの判定を厳密に行い、本当に電源オンのときにのみ、電源オン通知を送る。 コンソールからのログオンかどうかは remote_ip が””かどうかで判断する。 2019年5月18日