- PR -

開発環境についてのご相談にのって下さい…

投稿者投稿内容
merry141
会議室デビュー日: 2005/09/09
投稿数: 4
投稿日時: 2005-09-09 10:59
開発環境でご相談させて下さい。

次のようなシステムを構築するのに適している開発言語、データベースは
どんなものになりますでしょうか。

---------------------------------------------------
■事務フロー■

(1)パソコン(オフライン)にて(ユーザが)データ入力

     ↓

(2)パソコン(オンライン)から(1)で入力した
 データファイルを(ユーザが)サーバへアップロード(インターネット経由)

     ↓

(3)パソコン(オンライン)にて該当サイトにログイン(ID+PASSWORD)し、
 (ユーザが)メニュー選択し、(2)でアップされたデータを元にサーバ側で計算処理実行

     ↓

(4)パソコン(オンライン)にて(3)の実行結果ファイルをダウンロードし、
 結果の表示、印刷

※(1)から(4)の繰り返し
※(1)多数のユーザが入力し、(3)で各々入力されたデータを統合、計算処理を行う
---------------------------------------------------

■ポイント

・パソコン(クライアント)のOSはWindows系(確定)、サーバのOSは開発環境により
 UNIX、Windowsのいずれにも変更可能
 ※サーバ(ハード)は開発環境に合わせて新規購入

・パソコン上(1)とサーバ側(3)で取り扱うデータべースは共通なものにしたい
 ※パソコン、サーバのどちらでも操作可能なもの

・データ件数は月約1万件が予想され、年単位(約12万件)で1つのファイルに保存したい
 ※大量の件数であっても壊れにくいもの

・データ転送(アップロード、ダウンロード)を行うため、ファイルを圧縮、解凍したい
 ※圧縮ツールはクライアント

・取り扱うデータは決算内容などを含むため、漏洩防止に努めなければならない
 ※盗まれた場合でもより安全なように暗号化するなどの対策もしたい

・(1)のデータ入力は伝票系の入力が主なため、いわゆる帳票フォームになります
 ※見栄えの悪いデータグリッドではなく、出来ればAccessのような帳票フォームが希望です

・(1)のデータ入力ソフトは配布時に制限のない実行ファイル(EXE)で提供したい
 ※AccessのようにMDBファイル提供ですと、Access本体が必要になるので

・データベースソフトがインストールされていないと動作しないなどがないようにしたい
 ※EXEファイルと、インストール状況に関係なくデータベースファイルのみの配布

---------------------------------------------------

以上が主な内容です。

最後に、出来れば(1)のデータ入力ソフトはVB.NET(FlexGrid利用)で開発したいと
思っております(単に経験ありのため)。

※FlexGridは使ったことがありませんが、かなり評判が良いと聞きますので。

余談ですが、(3)のサーバ側でも(1)と同じような機能を持たせる(データ訂正が目的)予定
なのですが、こちらもVB.NET(FlexGrid利用)の技術は利用できますでしょうか。

同じような画面を2度作ることになりますので考慮頂けますと幸いです。

また(1)データ入力ソフトは本当に超素人向け?になりますので、操作性をかなり重視します。

Accessのようなきめ細かいユーザインターフェースを実現したいのでその辺りも考慮頂けますと幸いです。

Oracle等を含め、いろいろな選択肢があると思いますので、ご教授頂けますと幸いです。

何卒よろしくお願い申し上げます。
らい
大ベテラン
会議室デビュー日: 2005/08/02
投稿数: 159
お住まい・勤務地: 東京都と千葉県のさかいめ
投稿日時: 2005-09-09 11:23
引用:

merry141さんの書き込み (2005-09-09 10:59) より:
開発環境でご相談させて下さい。

次のようなシステムを構築するのに適している開発言語、データベースは
どんなものになりますでしょうか。



とりあえず。
データ内容が見えないので、一般的な回答で。

【金銭的なことを考えた場合】
ASPかな?
# 当方はFlexGridについての知識は皆無のため、
# やりたくてもできないというのが本音(^^;;。

DBに関しては、1万件/月というごく少量なので、
Oracleとか高いものはコスト的に会わない気が…。
# 別にOracleがダメというわけではない
ということで、Accessでいいのではないでしょうか?
# もしくは、MSDEやフリーのDB等お金のかからないもの

【金銭的なものを考慮に入れない場合】
Delphi + SQLServer2000(Oracleでも可) …とか。
サーバ上の処理はストアドに任せて、あとは力技とか。
# サーバ処理は、ストアドとか組んだほうが楽なので。

こんなところでしょうか?
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-09-09 12:02
引用:

merry141さんの書き込み (2005-09-09 10:59) より:
---------------------------------------------------
■事務フロー■

(1)パソコン(オフライン)にて(ユーザが)データ入力

     ↓

(2)パソコン(オンライン)から(1)で入力した
 データファイルを(ユーザが)サーバへアップロード(インターネット経由)

     ↓

(3)パソコン(オンライン)にて該当サイトにログイン(ID+PASSWORD)し、
 (ユーザが)メニュー選択し、(2)でアップされたデータを元にサーバ側で計算処理実行

     ↓

(4)パソコン(オンライン)にて(3)の実行結果ファイルをダウンロードし、
 結果の表示、印刷

※(1)から(4)の繰り返し
※(1)多数のユーザが入力し、(3)で各々入力されたデータを統合、計算処理を行う
---------------------------------------------------
■ポイント

・パソコン(クライアント)のOSはWindows系(確定)、サーバのOSは開発環境により
 UNIX、Windowsのいずれにも変更可能
 ※サーバ(ハード)は開発環境に合わせて新規購入

・パソコン上(1)とサーバ側(3)で取り扱うデータべースは共通なものにしたい
 ※パソコン、サーバのどちらでも操作可能なもの

・データ件数は月約1万件が予想され、年単位(約12万件)で1つのファイルに保存したい
 ※大量の件数であっても壊れにくいもの

・データ転送(アップロード、ダウンロード)を行うため、ファイルを圧縮、解凍したい
 ※圧縮ツールはクライアント

・取り扱うデータは決算内容などを含むため、漏洩防止に努めなければならない
 ※盗まれた場合でもより安全なように暗号化するなどの対策もしたい

・(1)のデータ入力は伝票系の入力が主なため、いわゆる帳票フォームになります
 ※見栄えの悪いデータグリッドではなく、出来ればAccessのような帳票フォームが希望です

・(1)のデータ入力ソフトは配布時に制限のない実行ファイル(EXE)で提供したい
 ※AccessのようにMDBファイル提供ですと、Access本体が必要になるので

・データベースソフトがインストールされていないと動作しないなどがないようにしたい
 ※EXEファイルと、インストール状況に関係なくデータベースファイルのみの配布

---------------------------------------------------




数点質問をさせてください。

1. (1)の処理ではオフラインでクライアントが行う処理ですが、
行われた処理のデータはその時点でクライアントのテキストファイルなどに
保存しておくということでよろしいでしょうか?

2. ファイルのアップロードはFTPサイトを使用する感じですか?
それともWebページにアップロードのファイルを指定し、
HTTP経由でアップロードをする感じですか?

3. アップロードされたファイルについてサーバで計算を行うとの事ですが、
(1)の時点で、クライアントで計算できない処理があるということですか?

4. ダウンロードするファイルの種類などは考えていますか?

5. クライアントとサーバで「取り扱うデータべースは共通なもの」とありますが、
クライアントからDB接続を行う要件があるのですか?
(行う業務フローでそのようなモノが見当たらない気がしているので)

6. 「(1)のデータ入力は伝票系の入力が主なため、いわゆる帳票フォームになります」
というのはクライアントのインターフェースをそうしたいということで
よろしいですか?


上記の質問が決まらないと自分的には決められないのですが、
業務フローだけ見ていると、

クライアントには
・暗号化・復号化ソフト(またはロジック)
・データ入力プログラム
が必要となるようなので、クライアントはVB.NETなどでフォームベースのプログラムを
作成することになるのかなぁ?と思いました。
処理内容としては
「クライアントプログラムで入力されたデータを
CSVなどのテキストに出力⇒暗号化し、保存しておく。」
「ダウンロードしたデータを
復号化⇒画面読み込み」
って処理でいいかと思ったんです。

サーバ側はWebシステムで構築し、
・ファイルアップロード用のWebページ
・計算処理を指示するWebページ
・結果をダウンロードするためのWebページ
があればいいかと。

アップロード用Webページで
アップロード⇒ファイルの復号化⇒データ読み込み・計算など⇒DB格納という処理
計算処理をを指示するWebページで
計算処理と結果の格納という処理
ダウンロード用Webページで
DBからのデータ取得⇒暗号化⇒ダウンロードの処理

こんな感じで考えると
クライアントはVB.NETで作成し、
サーバはWinでもLinux系でも構わなくて
ASP.NETやJava系でもいけて〜って選択肢はある程度の自由度はもてますね。
後は暗号・複合などの使用ソフトの対応具合により選択が狭まるので
それにあわせますかねぇ。

とりあえず、自分が考えるとこんな感じになりますっていう例くらいです。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2005-09-09 12:36
unibon です。こんにちわ。
#クイズっぽく、まずは最初のご投稿だけ見て、他の方のご回答は見ずに書いてみます。

引用:

merry141さんの書き込み (2005-09-09 10:59) より:
余談ですが、(3)のサーバ側でも(1)と同じような機能を持たせる(データ訂正が目的)予定
なのですが、こちらもVB.NET(FlexGrid利用)の技術は利用できますでしょうか。

同じような画面を2度作ることになりますので考慮頂けますと幸いです。


サーバーとクライアントは、明確に分けたほうが良いと思います。すなわち、上記の「データ訂正」のような機能もクライアント側の機能のひとつに「管理モード」のようなものを設けて混ぜ込んでしまったほうが良いです。サーバーはバックエンドで黙々と動くだけのようにしたほうが扱いが簡単になります。この管理用に Windows のクライアントPCがもうひとつ余計に要る?今時10万円で買えます。
クライアント側にもDBは要るか?DB(ここではACIDを満たすDBMSを指します)は、クライアント側には要らないんじゃないでしょうか。XMLファイルあたりでクライアント側で保持していれば良いと思います。サーバー・クライアント通信も、今時ならXMLに基づいたものが良いでしょう。DBの実装はサーバー内で隠蔽したほうが無難です。
サーバーは Web Service にしてしまう。暗号化は SSL を指定するだけで良い?

もしくは、Microsoft Access の Runtime 版のアプリケーション + VPN で作って MDB ファイルはファイル共有。 現実的にはこっちのほうが良かったりして。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-09-09 13:11
こんにちわ〜、ぼのぼのです。

私も基本的にはunibonさんの意見に賛成です。特にクライアントにDBは要らない、という辺り。
あと、開発媒体として.NETによるWindowsアプリを選択した時点で、全クライアントに.NET Frameworkが必須になりますので、そこは要検討です。
逆にOffice前提で良ければ、ExcelVBAやAccessVBAという選択肢もありだと思います。きめ細かい制御を求められてるなら、ASP.NETやjspなど、HTMLベースのユーザーインターフェースは安易に導入しない方が良いような気がします。
Beatle
ぬし
会議室デビュー日: 2003/06/09
投稿数: 394
投稿日時: 2005-09-09 15:10
パッと見た雰囲気だけで考えると、

クライアントアプリは何でも良いと思いますよ。(環境が許すなら)
VB.NETでもVB6でも良いし、ネイティブな方向ならC#、VCでも可。
DBと言っても格納庫として使うだけなら、ADO+MDBな環境ならACCESSは不要
ですし、いっそテキストファイルでも良いかも。

まぁWEBアプリというかサーバー側でしょうねぇ、検討が必要なのは。

引用:

merry141さんの書き込み (2005-09-09 10:59) より:

(2)パソコン(オンライン)から(1)で入力した
 データファイルを(ユーザが)サーバへアップロード(インターネット経由)

     ↓

(3)パソコン(オンライン)にて該当サイトにログイン(ID+PASSWORD)し、
 (ユーザが)メニュー選択し、(2)でアップされたデータを元にサーバ側で計算処理実行

     ↓

(4)パソコン(オンライン)にて(3)の実行結果ファイルをダウンロードし、
 結果の表示、印刷




このあたりがどういう要件かによると思うのですが...
「暗号化や圧縮ファイルを扱える」というのもひとつですし、アップロードした
データをどう扱うかですよね。解凍なりしてテキストのままで扱える類のもの
なのか、DBに登録するような類のものなのか...リアルタイムでの計算なのか
バッチなのか...そのあたりを考えると複数の言語が必要になるかもね。
(逆に全部JAVAということも有りかも)

でまぁ、暗号化、圧縮は扱ってませんがアップロード→DB登録→バッチ処理→
ファイル出力→ダウンロード(手動)という流れは、ASP+WSH+PL/SQLで作り
ましたけどね。
merry141
会議室デビュー日: 2005/09/09
投稿数: 4
投稿日時: 2005-09-10 16:15
皆々様、多数親切な回答を頂いて、本当にありがとうございます。

ご説明が不足しており大変申し訳ございません。

今回構築するシステムについて重要なご説明が抜けておりました。

不特定多数の企業様(クライアント)に対して、ある事務サービスを有償にて提供する、というのが
主旨でございます。

そのため原則どんな方がどんな環境のパソコンでソフトを利用されるのかは特定できません。

※OSはWindows98SE、ME、XP上(確定)、出来ればNT、2000上でも動作させたい。

例えば、ある企業様から契約を頂いた場合、まず企業様宛てに専用ソフト((1)データ入力用)の入った
セットアッププログラムを配布し、原則お客様ご自身でインストールして頂きます。

同時に弊社ではサーバ側に対して、企業様に利用して頂くための準備作業(ID+PASSWORDの登録等)を行います。

そして企業様での準備(クライアント)、弊社での準備(サーバ)がどちらもOKとなった時点でサービスを開始します。

初めのご説明と重複しますが、企業様でデータを入力頂き、弊社専用サーバへアップロードして頂いた上、
特定URLからログイン(サーバ)すると、特定の事務処理(有償サービス)が実行できるようになります。

そこで結果を表示、印刷することが出来ます。また必要であれば実行結果をダウンロードして頂くことも可能です。

ここまでが一連の流れになります。

前述で”企業様でデータ入力”とありますが、企業様だけが入力するとは限らず、
企業様からのお申し出により弊社スタッフが入力代行を行うこともあります。

もちろん企業様とスタッフが分担して入力することもあります。

サーバへアップさせるのは、複数の入力者(何名かは分かりません)のデータを統合させる目的があります。

インターネット経由にすることで、どこにいても閲覧が可能になります。

以上が、補足になります。

皆様から頂いたご意見を参考に担当者で検討した結果、クライアント側はVB.NETで開発を行うことになりそうです。

データベースについては検討中ですが、Accessになるかもしれません。
(格納するだけならAccess本体は不要ですよね?)

サーバ側は漠然とASPにしようかな…と考えているくらいです。

サーバでの結果印刷で細かい位置指定(プレ印刷された専用帳票へ印刷)が必要になりそうなのですが、
HTML形式ですとかなり厳しいですよね。

そうなると印刷処理はクライアント側(つまりVB.NET)に持っていくことになりますでしょうか。

この辺り何分知識が無く、申し訳ございません。

次に頂いているご質問について回答させて頂きます。

■夏椰(かや)様からのご質問について

> 1. (1)の処理ではオフラインでクライアントが行う処理ですが、
> 行われた処理のデータはその時点でクライアントのテキストファイルなどに
> 保存しておくということでよろしいでしょうか?

入力されたデータはとりあえずデータベースに格納しておきます。

アップロードする時に、テキストファイルにエキスポートし、
そのテキストファイルをサーバへ転送します。

ですのでデータ入力後に毎回行うということはありません。

> 2. ファイルのアップロードはFTPサイトを使用する感じですか?
> それともWebページにアップロードのファイルを指定し、
> HTTP経由でアップロードをする感じですか?

こちらは知識不足で申し訳ありませんが、アップロードのイメージとしては
クライアントのメニューでアップロードボタンをクリックし、ID+PASSWORDを入力すれば、
自動的にローカルHDDにある該当ファイルを、サーバの該当ディレクトリに転送させる、というのがベストです。

VB.NETでそういった処理は出来ますでしょうか。

サーバ側でアップロード機能を持たせるのが通常ですが、そうなると転送するファイルを
コモンダイアログから選択させる必要があると思います。

そういった操作は素人さんに絶対にさせたくありませんので、転送対象ファイルも転送先サーバ(ディレクトリ)も
自動的に判定(クライアントの環境ファイルに持たせる等して)、転送したいと考えています。

例えばサーバ側のシステムで、そういった自動転送が可能になる方法があるようでしたら、
それでもOKなのですが…

ダウンロードも同じことが言えます。

> 3. アップロードされたファイルについてサーバで計算を行うとの事ですが、
> (1)の時点で、クライアントで計算できない処理があるということですか?

前述のように、計算処理部分が有償サービスになるからです。

> 4. ダウンロードするファイルの種類などは考えていますか?

テキストファイルを圧縮、暗号化したもの…でしょうか。

> 5. クライアントとサーバで「取り扱うデータべースは共通なもの」とありますが、
> クライアントからDB接続を行う要件があるのですか?
> (行う業務フローでそのようなモノが見当たらない気がしているので)

ここは特にこだわらなくていいようですね。

アップロード、ダウンロードのいずれの場合でもデータベースから一旦エクスポートするような
形になりますので。

同じもの、別物というより、クライアント、サーバ各々のプログラムで
扱いやすいものを選択すればよいようです。

> 6. 「(1)のデータ入力は伝票系の入力が主なため、いわゆる帳票フォームになります」
> というのはクライアントのインターフェースをそうしたいということで
> よろしいですか?

そうです。Accessの帳票フォームのようなものが一番ベストです。といいますが、絶対要件です。

■unibon様のご指摘について

> 上記の「データ訂正」のような機能もクライアント側の機能のひとつに「管理モード」のようなものを設けて混ぜ込んでしまったほうが良いです。
> サーバーはバックエンドで黙々と動くだけのようにしたほうが扱いが簡単になります

サーバ側のデータ訂正機能については、クライアントと同等というものはそもそも望めないので
ごく簡単なものを搭載することにします。

■ぼのぼの様のご指摘について

> 私も基本的にはunibonさんの意見に賛成です。特にクライアントにDBは要らない、という辺り。

クライアント側にも帳票出力がありますので、その時にDBの方なら処理が楽かな…というだけでした、すみません。

> あと、開発媒体として.NETによるWindowsアプリを選択した時点で、全クライアントに.NET Frameworkが必須になりますので、そこは要検討です。

これは知らなかったのでありがとうございました。

以上がざっと回答です。

最後に何点か追加のご質問です。

ファイルの圧縮、解凍、暗号化ですが、クライアントとサーバで当然同じ技術(LZH、ZIP等)で
行う必要があると思いますが、サーバ側で現段階予定しているASPで実現するにはどうしたらよいのでしょうか。

そもそもそういったことは可能でしょうか。

クライアント側をAccessで行った場合、Runtimeが必要になりますが、このRuntimeはいろいろと問題があるので
おすすめしないと聞いております。

製品版が入っていた場合の影響(2000で開発=2000のRuntime、2002がインストールされていた場合等)などはどの程度でしょうか。

問題ばかりで申し訳ございませんが、ご意見を頂戴出来れば幸いです。

何卒よろしくお願い申し上げます。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2005-09-11 13:01
Accessは2GB超えたら対応できないと言う記憶があります。

データ量の測定をお願いします。
2GB超えたらSQLServerかExchhangeだった様な気がします。
_________________

スキルアップ/キャリアアップ(JOB@IT)