StimulsoftEXとは
OutSystems専用に開発された帳票開発ソリューションで、Forgeにて公開されています。
基本的にStimulsoftEXの帳票システムは、ブラウザ上で動作するJavaScriptによりビューの表示や印刷を行います。
使いなれたブラウザ上で、帳票に関わる操作がすべて完結するので、現代の業務アプリケーションと非常に親和性が高いのが特徴となります。
リモート印刷とは
帳票印刷システムによっては、多くの印刷物を処理するためにプレビューなしで効率よく印刷する仕組みが求められます。また、拠点数が多かったりするなどで各拠点にてプリンター機器を管理したいなどの要件もあります。
このような場合、OutSystemsサーバーから、拠点に設置しているリモートプリントサーバーへデータを転送し直接印刷指示をすることにより、より多くの印刷ジョブを効率よく処理することで解決できます。
StimulsoftEX リモート印刷
リモート印刷のための RemotePrint アクションが準備されています。
IPアドレスとポート、その他パラメーターを設定することで、ターゲットプリンターのサーバーへ直接、軽量で効率のよいプロトコルバッファー経由で印刷指示を出せるようになります。
印刷処理においては、枠線などの太さや色などの定義情報と印字に必要なレコード情報である印刷データから、レンダリングを行い印刷オブジェクトを生成します。一般的に印刷オブジェクトのデータは、情報量の多いスプールデータでプリンターへ転送されるので、データサイズは大きくなります。
これに対し、StimulsoftEXのリモート印刷ではテキストによる少量の構造化データをバイナリ化し、そのまま遠隔地に転送するので、スプールデータ転送より効率がよいということになります。
Protocol Buffers(プロトコルバッファー)
プロトコルバッファーは、構造化データを高効率なバイナリへシリアル化する技術で、Google社により開発がすすめられています。
JSON に似ていますが、データサイズは小さく高速であるため、マイクロサービスの中核技術として注目を浴びています。
リモート印刷には圧縮オプションがありますが、プロトコルバッファー自体の効率がよいため、サーバーと拠点が近距離でネットワークスピードが確保されている場合には、非圧縮で送ったほうが圧縮処理のオーバーヘッドがない分、トータルのレスポンスがよい場合があります。
転送データサイズの効率化例
例えば、以下のような見積書の場合、印刷スプールで転送されるデータサイズは1.05MBにもなりますが、プロトコルバッファー経由だと、圧縮なしの場合でも308KBと非常にコンパクトになります。
見積書見本と印刷キューサイズ
開発手順
ボタンクリックなどのアクションに以下のフローを定義します。
通信処理になるので、印刷処理の前にボタンを非活性にして、処理が終了するまでユーザーが2重操作しないようにします。
RemotoePrint アクションのパラメターは以下となります。
■RemotePrint
パラメーター | 説明 |
---|---|
IP | ターゲットサーバーのIPアドレス |
Port | ターゲットプリンターに設定したポートの値 |
Template | 帳票テンプレートデータ |
SourceData | 印字データ |
IsCompress | 圧縮/非圧縮 拠点までの回線速度が遅い場合などに印刷データの圧縮を選択できます。 |
IsSSL | 暗号化あり/なし 通信をSSLにより暗号化するかを選択できます。 |
IsPrintout | 印刷あり/なし 印刷なしでリモートプリントサーバーへ印刷データの送信のみを行います。 ※拠点までのデータ送信などのテストを行いたい場合に利用します。 |
PrinterOptions | 印刷オプション ※下の項を参照 |
Output | 戻り値 処理の成功可否、レスポンス時間、送信データサイズ、ターゲットプリンター名 |
■PrinterOptions
パラメーター | 説明 |
---|---|
Copies | 枚数 |
Color | -1[規定値] 0[白黒] 1[カラー] |
Landscape | -1[規定値] 0[縦] 1[横] |
Duplex | -1[規定値] 0[片面] 1[長辺両面] 2[短辺両面] |
Kind | 8[A3] 9[A4] 11[A5] 12[B4] 13[B5] 日本ハガキ[43] 0[カスタム] ※原稿のサイズに関係なく、指定のサイズに拡大縮小 |
Width | 用紙幅(カスタム) |
Heigth | 用紙高さ(カスタム) |
リモートプリントサーバー
ターゲットサーバーのタスクトレイに常駐するサーバーアプリです。OutSystemsサーバーからの印刷指示を各ポートで待機します。
- インストールとアプリケーション起動
RemotePrintServer.exeを任意のフォルダーに配置し実行ファイルを実行します。
自己完結型アプリケーションなので、.Netなどのライブラリーのインストールは不要です。
また、実行ファイルのショートカットを適切な場所に作成しておくと起動が容易になります。 - ポート設定
リモートプリントサーバーに接続されたプリンターのリストが表示されるので、ポート番号を指定しUpdateボタンを押すと、各プリンターが印刷指示待ちとなります。 - アプリケーション終了
タスクトレイにあるアイコンを右クリックして「Exit」を選択すると終了します。
- アンインストール
実行ファイルを配置したフォルダを削除するだけです。特にレジストリ等への書き込みは行っていません。
暗号化通信(SSL)
RemotePrintアクションのパラメータIsSSLをtrueにすることで、通信を暗号化することができます。
また、SSL通信を開始するには、リモートプリントサーバーへPFX形式の証明書を登録する必要があります。
設定するには、証明書ファイル(.pfx)をCertificateボタンで保存しパスワードを入力してください。
注)暗号化処理自身は、それなりに負荷がかかるのでレスポンス性能に影響があります。
まとめ
如何でしょうか。OutSystemsでは、プロトコルバッファーのように新しい技術を素早く取り入れることができ、規模の大きな印刷業務システムを構築することも可能となります。