MAGIC-RIA事例紹介
基幹システム(PC RIA) から WEB受注(WEBマージ)倉庫管理(モバイル RIA) まで ALL MAGIC 開発事例
アプリケーションサーバー dbMAGIC8 Enterprise Server
MRB データベースサーバー MetaFrame dbMagic8 Client dbMAGIC8 Client 企業内専用線 遠隔地営業所
1:MAGIC開発の過去 2000年
“クラウド”という言葉がなかった時代・・・・・ ~ DBMAGICバージョン8の3階層開発はこうだった~• S社(1)様にてMAGIC V4製基幹システムのリプレースをMAGIC V8+MAGICエンタープライズサーバーで構築。 ⇒目的はバッチ処理の負荷分散だった。 時間がかかる処理はリクエストを投げて サーバー上で処理させる 東京・名古屋・大阪 の支店単位で サーバーを保持 3階層ロジック 2階層ロジック
アプリケーションサーバー
dbMAGIC v9plus Enterprise Server MRB
データベースサーバー
MetaFrame dbMagic v9plus Client
企業内専用線 ↓ IP-VPN ↓ インターネットVPN 遠隔地営業所 遠隔地営業所 支店
2:MAGIC開発の過去 2005年
PC・インフラの処理能力は次第に向上した ~遠隔地で非WEB業務システムを動かすにはコストがかかる~ • サーバーの処理能力向上により、分散されたサーバーを集約。 ネットワークインフラも速度向上したが、遠隔地ではレスポンスよくシステムを使うために METAFRAMEは残された 全社 サーバー統合 3階層ロジック 2階層ロジック3:現代はクラウドベースのシステム提案&開発
~サーバーメンテ不要。どこでも使える業務システム~・ユーザーインターフェースはそのままに⇒ ⇒ ⇒
RIA
・お金はかけたくない⇒ ⇒ ⇒
脱
METAFRAME/
脱
ターミナルサービス
X
INTERNET4:VISUAL STUDIOでのRIA開発
~WINDOWS COMMUNICATION FOUNDATION(WCF)~
・総合相談支援システム(社会福祉協議会・社会福祉法人様向け) WELFARE365
・ユーザーインターフェースはいつものWINDOWS フォーム。
裏ではクラウド上のIISでホストされるWCFサービスと通信を行っている。 ・.NET FRAMEWORK上で動くためWINDOWS OSは必須
5:VISUAL STUDIOのRIA開発
~WINDOWS COMMUNICATION FOUNDATION(WCF)~
・プログラムは大きく2つに分かれる⇒サービス側(DB処理)とクライアント側(ユーザー画面)
・設定ファイル(サービス(サーバー)側:WEB.CONFIG クライアント側:APP.CONFIG)
データベースとの接続文字列など サービスの指定、プロキシーの有無、ClickOnceの.netFrameworkのバージョン指定など
Magic Xpa3.1ではWCFサービス にアクセス可能!
6:VISUAL STUDIOのRIA開発
~WINDOWS COMMUNICATION FOUNDATION(WCF)~
【○】 ・サーバー、クライアント共に、.NETFRAMEWORKが入っていれば動く ⇒ラインタイムソフトウエアが不要&ブラウザのバーションに依存しない ・クライアント側は通常のWINDOWSフォームアプリケーションなので開発は特に困ることない。 ⇒情報が多い。デバッグはコール先のサービス側プログラムもステップインできる。 【△】 ・設定類(SSL通信、プロキシー設定など)が難解。(APP.CONFIGで設定) ・アプリのリリース時、バージョン設定やサービス参照先の変更は手動で行ってビルド&リリースするので ちょっと神経を使う。 ・サービス側、クライアント側それぞれ開発するので、2階層アプリケーションより開発工数がかかる。
7:MAGIC XPA2.5のRIA開発
~MAGIC RIA(WIT販売)~
8:システム業務フロー(1)
本 社 事 務 所 倉 庫 仕 入 先 得 意 先 DL発注入力 受注一覧画面 受注伝票入力 DL注文状況照会 詳細情報の編集 (商品コードの変更等) または DLを通さない受注の入力 発注伝票生成画面 DL発注入力された一覧を抽出。 ★在庫の有無を確認。 ・仮納期の入力。(在庫があれば正式 納期の入力) 在庫が無ければ、発注する。 ⇒発注チェックボックスにONする (発注入力画面に抽出される) 検品対象リスト発行 発注伝票入力 分割処理など伝票の修正 受注伝票の 発注チェックボックスON明細を抽出。 ⇒メーカーを指定して抽出。 ※明細は受注No単位にはせずにまとめる。 ★外貨で入力 発注一覧画面 発注伝票の未輸送中状態の明細を抽出。 ⇒INVOICE番号と日付を入力する。 ★外貨で入力 正式納期を入力する ※輸送中処理画面は 受注とは紐づいていないので、 正式納期の入力は受注一覧画面で行う 仕入伝票入力 生成された伝票の修正など。 発注を通さない仕入。 在庫がある場合、 発注せずに ピッキングリストが発行対象となる。 ★優先順位は納期の早い順だが、 最終ジャッジは高橋さん? (営業担当との連絡方法は?) |||||||||||||||| ・在庫の増 ・発注残の消込 invoice DL注文状況照会 受注一覧画面 メーカーWEB画面やFAXで発注 注文 出荷開始 到着 発注伝票入力 生成された伝票の修正など。 または在庫品の発注。 ハンディチェック 仕入計上 スキャンできなかった 商品はラベルを発行させてスキャンする。 検品対象リストの全品がスキャン完了したら仕入計上可能。9:システム業務フロー(2)
本 社 事 務 所 倉 庫 仕 入 先 得 意 先 ||||||||||||||| ピッキングリスト ピッキングリスト 発行選択画面 ★棚番表示 ハンディチェック 売上計上 HDTで登録された明細を抽出 チェックボックスONで売上伝票生成する。 売上伝票入力 生成された伝票の修正など。 ピッキングを通さない売上。 ・在庫の減 ・受注残の消込 納品書 送り状CSV 請求締め処理 請求書発行 請求書 入金入力 支払入力 外貨と現時点レートの入力 納品 納品書 請求書 送金 送金10:MAGIC XPA2.5のRIA開発
11:MAGIC XPA2.5のRIA開発
~MAGIC RIA(WIT販売)~ ・プログラムの作り方はいままで同様。
ただし、VB.NETの開発と同じくサービス(サーバー)側とクライアント側の考えは同じなので、その辺りを意識して開発する必要あり。 ⇒基本は同じ。DB処理するのはサービス側!
12:MAGIC XPA2.5のRIA開発
~MAGIC RIA(WIT販売)~ 【○】 ・MAGICの特徴ではあるが、改めてVBと比べると 開発工数は少くなくて済むと実感。 (特にデータベース(バッチ)処理、ファイル転送) ・SSLの設定がラクすぎる。チェックボックスONにするだけ。 ・アプリのリリースはキャビネットファイルをつくり サーバー上にコピーするだけでOK(ただしMRB再起動必要) ・IOS、ANDROIDのランタイムがある。 【△】 ・ランタイム(RIA SERVER)は有料です・・・・ ・デバッガーが使いずらい(私が無知なだけ?) など13:WIT販売
~MAGIC RIA(WIT販売)~ 【○】 ・安い。ゼロから作るより工数減。 ・RIA環境構築手順もわかりやすいマニュアルがあり、 悩むことなくリリースできる。 【△】 ・帳票類のほとんどはREPORTS MAGICで作られている。 ・標準メニューは大きくて、画面上 裏で残っているので邪魔。 (ユーザー意見) ---細かいことを言えばキリがないですが、 この値段でこのソースが手に入れば十分な価値はあると思います。14:クラウドシステムにかかるライセンス
15:クラウドシステムにかかるライセンス
~今後はMS-AZUREが独占状態になる?~• 基本的に、月額使用料(下りの従量課金制)を支払っていれば、MSライセンス(SPLA)の縛りが
ない。
なので、OFFICE365(EXCEL等)もAZUREサーバー上であればインストール利用OK。
・今後気になるAZUREの「SQLデータベース」
⇒ MAGICからの接続DEMO
16:稼働中システム構成
~上限料金があるクラウドエヌ+データベースは商用フリーのPOSTGRESQL~ 仮想サーバー Windows2012R2 EnterpriseServer 2スレッド データベース INTERNET X3台 X17台 RIAServer 20user 数百社の得意先店舗 SSL 暗号化通信 ODBCゲートウエイ17:POSTGRESQLってどうなの?
~全然使えます~
• 本体:バージョンは9.4.4-3(WINDOWS-X64版)を使用
• ODBCドライバー:バージョンは09_03_0400を使用(32BIT版を使用)
• 管理ツール(SSMSのようなGUIツール):PGADMINーⅢを使用
18:POSTGRESQLってどうなの?
~SQLSERVERとの比較~ • 日付0000/00/00は受け付けない(1950/01/01等にしないといけない) • SQL文:カラム名は、ダブルクォーテーションでくくる。(SQLSERVERは [ ]) • SQLSERVERでいう照合順序がない⇒バイナリ形式と同じ。大文字小文字がはっきり区別される。 ⇒LIKE文ではなく、ILIKE文を使う 言語設定⇒ ・POSTGRESQLはインストールしただけでは、自ホストからしか接続できない (RIAの環境では問題ないのだが) HTTP://WWW.PROJECTGROUP.INFO/DOCUMENTS/POSTGRESQL/POS_000007.HTMLX
19:POSTGRESQLってどうなの?
~POSTGRESSQL.CONF~ ・メモリ・パフォーマンスチューニング:SQLSERVERはある程度自動でやってくれるが、POSTGRESQLは設定ファイル(POSTGRESQL.CONF)で設定しないといけない。 参考までに今回の環境のPOSTGRESQL.CONFの設定は下記のとおり ---• MAX_CONNECTIONS = 200 • DEADLOCK_TIMEOUT = 30S =仮想サーバーのメモリ:16GBの設定= • SHARED_BUFFERS = 3GB • WORK_MEM = 32MB • WAL_BUFFERS = 32MB • CHECKPOINT_SEGMENTS = 16 • RANDOM_PAGE_COST = 3.0 • EFFECTIVE_CACHE_SIZE = 3GB---20:POSTGRESQLってどうなの?
~MAGICのODBCゲートウエイで使う場合~
・DB SQLの書き方
21:IPOD TOUCHを使ったハンディターミナルの開発
~お手軽ハンディターミナル~・バーコードスキャナ: イメージャーKDC420I
BLUETOOTH接続(
専用キーボードソフトウエア不要
)
USB充電可能だが、IPOD-TOUCHからは
充電されない
マニュアルがすごくわかりにくい・・・
22:KDC420
BLUETOOTH接続
~読み取り~
23:IPOD TOUCHを使ったハンディターミナルの開発
~ここに注意。ハまります~
・キーボードは英語以外は消しておいたが、IOSをバージョンアップすると
勝手に日本語キーボードが増える。
24:動画DEMO
25:ラベル発行はBROTHER
ラベルプリンター添付ソフトで
~CSVを定義したフォルダにダウンロードさせるだけ~ INTERNET ClientFileCopy()P-touch Editor 5.1
26:MAGIC ENTERPRISE SERVERを使った
B TO C WEB受注画面
~デザイン面~ ・開発:マージ形式 ⇒ テンプレートは「BOOTSTRAP」を使用 レスポンシブWEBデザインに対応⇒スマートフォンやタブレットなど個別に対応す るスタイルを作っていると大変手間がかかります。 BOOTSTRAPはCSS3のメディアクエリを使用しているので、ブラウザの横幅サイズ を判断基準として、レイアウトデザインを柔軟に調整することが可能です。27:MAGIC ENTERPRISE SERVERを使ったB TO C WEB受注画面
~画面~
28::クラウドを使ったベストなシステム提案とは
~なにが一番喜ばれる?~ • WEBシステム(ブラウザベース)のシステムを使っていたお客様にRIA提案するときは注意! • RIA:操作面は素晴らしいのだが、1画面しか開けないことが難点。 (例:過去の商品売上情報画面を参照しながら、伝票入力したい・・・など) ⇒ブラウザのようにタブで複数画面を開いて切り替えて開けない ⇒ブラウザのように、画面内検索ができない(CTRL+F) ⇒ブラウザのように、画面まとめてコピーができない • WIT販売のデモサイトでお客様にてRIAの動きを検証いただく必要あり29:最後:クラウドを使ったベストなシステム提案とは
~なにが一番喜ばれる?~