質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.77%

  • Java

    9316questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Webサイト

    666questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Webサーバー

    261questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

  • バッチファイル

    102questions

    バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

バッチ処理とは何ですか?どのように実装してどのような動作をするものなのでしょうか?Webアプリケーション

解決済

回答 3

投稿 2015/04/27 01:38 ・編集 2015/04/27 01:43

  • 評価
  • クリップ 3
  • VIEW 12K+

tacao__

score 8

IT業界に転職して2年が経ちました。
この度、新たな現場でバッチ処理の製造を担当してほしいとの依頼がありましたが、今まで実装経験はありません。バッチ処理のイメージとしては指定した時間に勝手に動作して定期的に情報を収集するもののような認識です。
バッチ処理とはどのうようなもので、どのような実装が求められるのでしょうか?
具体的な回答を頂けると助かります。あえてgoogle等では検索せず有識者様の的確なご回答を頂きたいと思っております。よろしくお願い致します。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

バッチ処理の認識としてはそんなに間違っていないと思います。

よく利用されるのがシステムの日次処理や月次処理などで、サーバ上で決まった時間に実行されるようスケジューリングされて、データのメンテナンスや集計などを行います。

求められる機能としては、
  1.  指定された時間に自動実行する
  2.  ユーザの入力を必要とせず動作する
  3.  終了時に実行結果が判るようにする(終了コードやメッセージをログに出力するなど)
あたりが基本的なところではないでしょうか。

処理内容や実現手段などは様々です。いろいろな技術を組み合わせても目的を達すればよいと思います。
私が関わった物で言うと、unix系サーバの日次処理用にシェルスクリプトを書いたり、Windows系サーバのデータメンテナンス用にc言語でプログラムを何本か書いて、それをBATファイルで順番に呼び出す物を作ったり、月次でエラーログ内のエラーを発生件数別に統計をとるためのExcelマクロなんかも作りました。

なので、実現手段については向き・不向きの点で定番はあるものの特に決まりはなく、求められる機能を実現できる手段を模索することになると思います。

こんな感じの回答でよろしいでしょうか。

投稿 2015/04/27 02:26

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2015/04/28 00:44

    現場の作業に基づいた具体的な回答ありがとうございます。さらにイメージが深まりました。シェルスクリプトについて少し調べてみたいと思います。手段を模索ですか…とりあえず頑張ってみます。

    キャンセル

+1

バッチ処理は、メインフレームに由来するプログラム様式で、一般に業務時間外など、システムが空いている時間帯に、大量の計算処理を実施するために用意されたものを指します。対義語はリアルタイム処理であり、バッチ処理の特徴としては「ユーザとの対話を伴わない」ということが言えます。

DOS/Windowsの世界には、一連のコマンドを実行するための「バッチファイル」と呼ばれるものがありますが、これはメインフレームにおけるJCL (Job Control Language) に由来するんじゃないかと思います。DOS/Windowsの世界のバッチファイルによる処理は、必ずしもバッチ処理とは限らず、ユーザとの対話を伴うものもままあります。

バッチ処理を実現する方法は、様々です。どのような言語でも記述することができます。バッチ処理を書くときは、実行時にエラーが発生した場合、実行前の状態に戻すように実装することがあります。エラーを検出した後、オペレータによって単純に再実行すれば良いと便利だからです。

バッチ処理では、定型的なパターンがあるので、定型的パターンをカバーするフレームワークを用いることがあります。

こんなところかな...

投稿 2015/04/27 07:43

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2015/04/28 00:41

    フレームワークを用いて実装することが多いのですね。高度な実装を求められなければ多少は安心できるのですが、実際作業しないとわかりませんね…
    ご回答ありがとうございました。

    キャンセル

+1

Webシステムのようなのでそれを元に簡潔に言うと。

ブラウザからのアクセスを元に処理を行うのがリアルタイム処理とすれば、
アクセスにかかわらず行う処理がバッチ処理です。

さらに言うと、バッチ処理はブラウザのアクセスを元に起動されることもあれば
手動で起動することもありますし、
当然時間単位で起動することもあります。

つまり、起動よりも「いつレスポンスを返すか」でバッチ処理なのかそうでないのかの違いです。

用途の違いは、バッチ処理の反対語のリアルタイム処理に着目すると良いです。
名前の通りその場で結果をユーザに返すべき処理はリアルタイム処理で行う。
そうでないものやリアルタイムでは処理しきれないものをバッチ処理で行います。

投稿 2015/04/27 08:14

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2015/04/27 08:15

    肝心の作り方が漏れてましたが、他の回答者さんにお任せします。

    キャンセル

  • 2015/04/28 00:37

    リアルタイム処理の反対がバッチ処理なのですね。イメージが深まりました。ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.77%

関連した質問

同じタグがついた質問を見る

  • Java

    9316questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Webサイト

    666questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Webサーバー

    261questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

  • バッチファイル

    102questions

    バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

閲覧数の多いJavaの質問

  • トップ
  • Javaに関する質問
  • バッチ処理とは何ですか?どのように実装してどのような動作をするものなのでしょうか?Webアプリケーション