データベースを接続可能にしたウインドウアプリケーションというのはあまり見かけません。
その理由として考えられる事項はどういったことでしょうか?
最近はブロードバンドなどの高速な回線が利用できるようになり、環境的な問題はないか
と思います。尚、前提条件として下記があるものとします。
・利用ユーザーは多くありません。(数十名程度)
・データベースに接続するには認証が必要で、ユーザー名、パスワードは強固なものが設定されているとします。
・アプリケーション側では接続文字列は暗号化してあり、閲覧はできません。
・データベース側の権限は必要なものしか割り当てられていないとします。
一番考えられることが、なぜブラウザがあるのにわざわざウィンドウアプリケーションをダウンロードして、それをインストールしないといけないのかということではないでしょうか。
株取引の独自のウィンドウアプリケーションなどのものはありますが、圧倒的にウィンドウアプリケーションは少ないと思います。
1. Windowsアプリケーションにした場合は、別途インストールが必要だが、ブラウザを利用すれば、IEがそのまま使用できる。
2. HTTPプロトコルをそのまま利用すれば、独自プロトコルを開発する必要がなく、既存のライブラリ、関数を利用できる。
という理由が考えられます。
ただし、実際にはかなり使用されていると思います。
回答ありがとうございます。
そうですか、実際使用されているケースは社内向け等の理由で表に出てきていないのかも知れませんね。
また、ネット経由で接続が可能なデータベースの多くはTCP/IPを利用しているのでファイアウォール等
の使用ポートの開放だけで利用できるようです。
たくさん出ています(^^;
Webベースの物ならいろいろとフリーで、Windows上で動作するアプリケーションならフリーはもちろん商用利用を目的とした物で有料の物などがあります。
ODBCなどで接続できれば、MicrosoftOfficeに入っているMS Accessで接続し、普通にクエリーなどを使って集計したりするのも可能です。
※社内で数値を分析するといった際には、各人の端末にAccessを
入れて、サーバ上でODBCを解放するのが自由度が高くやりやすいです。
EUC(End User Computing)
http://e-words.jp/w/EUC-1.html
お使いのデータベースの種類が分からないので適当に列挙しておきます。
phpMyAdmin
http://d.hatena.ne.jp/keyword/phpMyAdmin
※MySQLをWeb上から
phpPgAdmin
http://phppgadmin.sourceforge.net/
※PostgreSQLをWeb上から
かんたんテーブル設計ツール // DBDesigner
http://katsubemakito.net/neko/2006/02/dbdesigner.html
※MySQLのテーブル設計から、設計した内容をそのまま
DBへ反映できます。
Oracle
http://www.oracle.co.jp/database/system/
※Oracleの場合、最初からついてきます
【PostgreSQLウォッチ】第2回 相次いでリリースされたGUI管理ツールを解説する
http://itpro.nikkeibp.co.jp/members/SI/oss/20031017/1/
※Windows上で動作するアプリなど
【MySQLウォッチ】第29回 GUIツールのセットとMySQL日本法人の活動状況
http://itpro.nikkeibp.co.jp/article/COLUMN/20060830/246850/?ST=l...
※Windows上で動作するアプリなど
回答ありがとうございます。
上にも書きましたが、一般的に接続にTCP/IPを利用するデータベース、という
ことになるかと思います。
クライアントサーバー型の場合は殆どがウインドウアプリケーションですが、インタ
ーネット経由となると途端に使いやすさや機能を制限してまでもWeb(ブラウザ)ベースに
なるのが不思議に感じていました。
なのでセキュリティ的な面とか他に特別な理由があるのかと思っています。
Window アプリケーションにした場合の問題点としては、
1.通信が暗号化されていない(または暗号化できるがDBにやらせるのは負荷が高い)
2.DBを直接インターネット上に出さなければならない。
(DBのセキュリティ機能は比較的貧弱なものが多く、またOSのアップデートも頻繁には行えないのでセキュリティの保持は他に比べて難しい。)
3.実行するアプリケーションの数だけコネクションを張るので、性能が必要以上に要求される。
とくに3の理由が一番大きいです。
DB及びOSにとってつなぎっぱなしのコネクションはコストが高いです。
数十コネクション程度でもサーバー性能によってはつらくなってくることもあります。
アプリケーションサーバー経由であれば必要な時にアクセスするだけなので、平均すると接続するコネクションの数が抑えられます。
ただし、社内アプリケーションであればこれらは運用等でで回避できるので問題にならない事もあります。
これまでの開発現場を見た限りでは、Webアプリは開発コスト(特に設計フェーズ)がWindowsアプリに比べ非常に安く上がります。Windwosアプリで考えた場合、TCP/IP上にオリジナルのプロトコルの整備が必要になるケースがほとんですが、Webアプリの場合そのへんを意識する必要がまずありません。
逆に、機能を限りなくリッチにしたい場合は、Webアプリによるシステムが従来のサーバクライアントモデルを超えることはないでしょう。たとえばMMOなどの大規模なオンラインゲームでは数十台のサーバを使用し、数千のクライアントをリアルタイムに同期処理する必要があり、こういった用途(特殊ですが)ではWebアプリという選択肢はありえません。
同報性や即時性の強いシステム(データの更新などをリアルタイムに全ユーザーに通知する必要があるとか)であれば、必然的にサーバクライアント型にならざるを得ないと考えますが、そうでない場合は上に挙げられているような手軽さに関するビハインドを抱えることになると思います。
ちなみに私もmikadekoさんと同じ疑問をずっと抱えていました。
回答ありがとうございます。
ご存知のようにブラウザベースのアプリケーション(プアクライアント)に対しウインドウアプリケーション(リッチクライアント)の方が圧倒的に複雑なユーザーインターフェースを実装できます。また開発自体もHTTPの非同期ではないため、
開発しやすいと言った理由もあるかと思います。