SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Cloud SQLで学ぶ業務・基幹系アプリ再入門

スマートデバイスとCloud SQLのトランザクション制御で在庫管理

Cloud SQLで学ぶ業務・基幹系アプリ再入門(4)


  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載ではGoogle Cloud SQLを使って、業務アプリケーションを構築する方法を基礎から解説します。基幹系システム構築で要求される知識やノウハウについても触れますので、予備知識のない方にもお勧めです。連載第4回ではスマートフォンを使用した在庫数量更新のサンプルを紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

1. 今回サンプルの概要

 基幹系システムは仕訳データが発生する業務系システムであることは前回、前々回で見てきましたが、その他に基幹系では在庫つまり「モノ」を扱う部分もでてきます。そしてこの「モノ」の部分は入出庫処理などを含む在庫管理システムで扱われることになりますが、これも基幹系での大変重要な機能要素となってきます(注1)。

 在庫管理システムでの管理品目は、購入品、製品、それに製造業では資材・部品や仕掛り品など多様ですが、在庫管理システムのポイントはなんといっても正確な在庫数量を把握・維持管理することにありますが、情報システムで扱う場合には次のような問題点も発生しがちでした。

入出庫数量更新での問題

 従来の在庫管理システムでは、在庫場所すべてにPCなど入力端末を配置することが困難な場合も多く、従って現場では入出庫数量を紙に記帳し、日単位のバッチ入力で、記帳された数量を端末から入力するようなことも行われていました。しかしこの場合、その日の内に変化した数量は在庫データに反映されないため、システムに登録されている在庫数量への信頼が低くなる様なことも出てきてしまいます。このような場合、正確な在庫数量を知るため、わざわざ倉庫まで出向いて確認(現品確認)しなければならない場合も発生し、時間と労力の大きなロスに繋がってきます。しかし今は、スマートフォン等の携帯端末もあり、これを倉庫現場での入出庫数量入力に使えばリアルタイムでの在庫数量更新も可能になり、情報システムで管理する在庫数量への信頼も向上するでしょう(注2)。連載第4回ではスマートフォンを使用した在庫数量更新のサンプルを紹介します。

トランザクション処理を使用した在庫数量更新

 複数ユーザからのデータベース同時更新が発生するようなアプリケーションの場合、あるユーザが更新処理を行っている間は、他のユーザのアクセスを制限して更新が正確に行われるようにする必要があります。もしこれを怠った場合は更新数量が不正確になってしまい、これもシステムの維持・管理する在庫数量への信頼を低下させてしまいます。

 この問題への対応はデータベースのトランザクション処理機能によって行われますが、GAEで従来から使用されていたデータストア(Bigtable)ではトランザクション処理(エンティティのロック処理)には一定の制約がありました。しかし、Google Cloud SQLのリリースによってGAEでもRDBのトランザクション処理機能を使用できるようになっています。今回のサンプルでは在庫数量を正確に維持するため、Cloud SQLでのトランザクション処理について紹介します。

注1)

 ほとんどの業種では商品等で「モノ」(ソフトウェアを含む)を扱いますが、銀行などの金融業では物を取り扱いません。このような業種では基幹系に対応する業務機能は勘定系と呼ばれています。

注2)

 今回のサンプルでは紹介しませんでしたが、スマートフォンにはバーコード読み取り用のアプリケーションも使用できるようになっており、正確な数量把握をさらに簡単な操作で行うこともできるようになっています。

今回サンプルのシステム構成

図1 今回サンプルのシステム構成
図1 今回サンプルのシステム構成

 今回のシステム構成では標準的なCloud SQLのシステム構成に、クライアント側ではスマートフォン用JavaScriptライブラリのjQuery Mobileを使用しており、GAEサーバ側ではCloud SQLでのトランザクション処理機能を使用しています。

スマ-トフォンとライブラリ

 スマートフォンは機種、OS、画面サイズなどが多種多様で、UI作成での対応の難しさがありますが、そうした中で注目されているのが「スマートフォン向けのライブラリ」です。これを使うことによって、デバイス毎の特性の違いが吸収され、わずかなHTMLやJavaScriptの記述でスマートフォンに最適化したサイトを作成できるようになります。

図2 jQuery Mobile公式ページ(http://jquerymobile.com/
図2 jQuery Mobile公式ページ(http://jquerymobile.com/)

 サンプルではスマートフォン向けのライブラリとしてjQuery Mobileを使用しますが、他のライブラリと比べて対応デバイスが多いことが特徴です。サンプルで使用しているAndroid(Galaxy SIII)やiOSなど、WebKit(注3)ベースのスマートフォンの他、Windows PhoneやBlackBerryにも対応しており、さまざまなスマートフォンのUIに自動的に最適化してくれるという特徴があります。

注3

 WebKit(Webキット)は、アップルが中心となって開発されているオープンソースのHTMLレンダリングエンジン群の総称で、HTML、CSS、JavaScript、SVGなどを解釈することができます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
jQuery Mobileプログラミングの基本

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Cloud SQLで学ぶ業務・基幹系アプリ再入門連載記事一覧

もっと読む

この記事の著者

清野 克行(セイノ カツユキ)

慶應義塾大学工学部電子物理専攻卒。日本IBM、日本HPで、製造装置業を中心とした業務系/基幹業務系システムのSE/マーケティングや、分散アプリケーションによる社内業務システム開発などに携わる。現在は、クラウドやAjax関連の/ソフト開発/書籍執筆/セミナー講師/コンサルティング、などを行っている。情...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6738 2012/08/31 16:18

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング