街中で見かけて「グッときた人」の思い出

こんにちは。こんな素人が考えなければいけないこの世界を恨みます。。。
皆様お力をお貸しください!!!

何店舗が経営しているレストラングループがありまして、その売上を1つのサーバに集めて集中的にデータを見たい、と言った事に対応しなければいかずどの様に開発するかグランドデザインを自分が考えなければいけなくなりました。
ホストになるサーバに送る為にはサーバを特定する必要があると思うのでHTTPなどでファイルを転送するならばサーバにGloval IPなどを設定すれば基本的にはファイルを送る事が出来るのでしょうか?
この考えだと、逆にホスト側からクライアントに何か送る場合には全部のクライアントにGloval IPが必要になると思うのですが、
もしクライアント側がホストに置いてあるファイルを取りに行くのであれば、やはりホスト側だけGloval IPがあれば大丈夫だと思ったんですが、おおむねその様な考えであっているでしょうか?
クライアントの環境がまちまちでFTPの設定がそれぞれ違ってしまいそうなのでHTTPにしようと素人であるわたくしが考えました。

とにかくお前が考えるのやめた方が良いよ。と考えず上記についてどんなアドバイスでも結構なのでご意見頂ければと思います。
よろしくお願いします!

A 回答 (3件)

ANo.2で途中で話が終わっていた部分があったので追加で書きます。

申し訳ない。

> もう一つは、出力から考える事だ。
のところだが、
これは要するに出力(システムから出したい帳票があるとか)に必要の無い
入力画面や入力項目は可能な限り削れ、という事を言いたかった。
使う人は、このシステムを使う事で楽をしたいんです。
このシステムに日別の売り上げを一生懸命打ち込まないといけなくなっただなんて
むしろシステム導入前より忙しくなってますから! 残念!
経営者的な観点で見ると、20代がよっけ来たとか、
この時間帯女性が多いとか多角的にデータを見たいだろうけど、
まずは現場でスムーズにシステム導入できるスタートを考えるべきだろう。
もちろん、画面には出さないけど後で増やしたいような入力項目を
後ろで保存するデータにはあらかじめ持たせておいていい。

補足説明に対する回答
> HTTPでデータの送信をする事と
> anmochiさんがおっしゃっていたFTPでデータ送信をする場合では
> セキュリティーの観点からどちらが有利でしょうか?
普通にHTTPでデータの送信をするのが簡単・便利・楽で得だと思う。
なぜかと言うと、HTTPはHTTPSというセキュアな通信方法が確立されているけど、
FTPに対するFTPSはとてもハードルが高く、
SFTPというものもあるがそれはFTPとは別ものだからだ。
SFTPも用途によっては検討に値するかも知れんが、
クライアントにプログラムを配置して、そのプログラムが自動的に
サーバーにデータをぽいぽいあげていく、というようなものでは
やはりHTTPSを使うのが一番楽だろう。
ANo.2でも言及しているが、店舗に置くであろうクライアントパソコンと
本部かインターネット上にあるであろうサーバーの間にVPNというものを
用意すればFTPでも問題ない。
まぁ、トータルでお勧めするのはやはりHTTPで何とかしようぜべいべーってとこだ。

さて、ここで重要な事は、HTTPかFTPかというのはさして重要じゃないという事だ。
まず必要なのは「サーバーとクライアントがどのタイミングでどんなやりとりをするか」を洗い出す事で、
極端な話クライアントがサーバーに「あ」という文字を送りたい時に
サーバーが「あ」を受け取れるなら電子メールだろうと伝書鳩だろうと飛脚だろうとなんでもいい。
実際に電子メールでデータのやり取りを行うシステムも実在する。
もちろんそれらはレアケースかも知れないが、「通信経路」はあくまでインフラとして考えるべきで
システムの中に入れるような話ではなく、今考えられるネットワーク構成の中で
どの通信経路が「楽か、安いか、安全か、(やりたい事が)実現可能か、安定しているか」などを考慮して決定されるものだ。

ところで、HTTPで通信するっつーのは、
こちらとしてはWebサーバー側にPHP(のプログラム)なんかを仕込んでおいて、
クライアント側にはプログラムはおかずにWebブラウザーでサーバーのWebサーバーに
アクセスして日々のデータを打ち込んでいくだとか、
クライアントからデータをPOSTしたらPHPがその中身を解析してDBに入れるとか、
POSTした内容をそのままファイルに書き込むとかそういう話を想定しているのだけれど、
クライアントでファイルを作る→サーバーに転送する
というような動きを考えているのであればFTPの方が適しているのかも知れない。

以上の事から、今私があなたにあなたが今からデザインするシステムで
HTTPを使うべきだ、いやFTPがいいよ、という事は現段階では言えない。
HTTPを採用するつもりでHTTPでできる事だけで構成したシステムにするもよし、
双方向が必要になっちゃったからHTTPではちょっと対応できないねだったり、
いやいや双方向もクライアント側が定期的にサーバーに用事を聞きに行く
ポーリング(クライアントプル)方式で何とかなるからHTTPがやっぱ一番だし、
とか、その辺はあなたが死ぬほど悩んで決めてくれたまい。

ま、HTTPが大体どんな場合でも外れが無いと思うよ。
サーバーのURLをHTTPSに変えて証明書を入れるだけで
自動的にインターネット越しもセキュアになるしね。
    • good
    • 0

Globalだね。



> もしクライアント側がホストに置いてあるファイルを取りに行くのであれば、
> やはりホスト側だけGloval IPがあれば大丈夫だと思ったんですが、
> おおむねその様な考えであっているでしょうか?
いえーすざっつらいと。
サーバーだけGlobal IPでOKだよ。クライアントは各店舗でインターネット接続を一番安い奴でつなげばOK。最悪の場合でも1店舗に1台ノートパソコン+モバイル通信デバイス(WiMaxとか各携帯電話会社のUSBとかでつなぐ奴)を貸与したらそれでいい。
まぁFTPでも大抵の場合OKなんだけど、通信を全部HTTPでやってしまうというものばっちOKだ。

> この考えだと、逆にホスト側からクライアントに何か送る場合には
> 全部のクライアントにGloval IPが必要になると思うのですが、
それもその通りなんだけど、基本的にその処理は行わない(行う必要がない)ようにデザインすべきだろうな。これは「サーバープッシュ」と呼ばれる方式なのだが、基本は処理の起点は全てクライアント側になる、「クライアントプル」方式で実現できないかを考える方がのちのちトラブルが少ない。

どうしてもやる必要に迫られたら、HTTP以外の独自TCP通信を作るのがお勧めだ。
双方向にHTTPするなんてナンセンスの極みだと私は個人的には思う。
それも、サーバーからクライアント側の通信は指令の通達のみを行って、
実際の処理はやはりクライアント側から開始させる方がいいだろう。
ところで、サーバー側をどうするか分からないけど、
サーバーと各店舗のクライアントパソコン間でVPNというものを張れば、
クライアント側がGlobal IPじゃなくても双方向通信が実現できますぞ。

グランドデザインを綺麗にするためには、「(今から作ろうとしているシステムに対して)誰が、いつ、何をする」というのを洗い出すのが近道だろう。
例:
「各店舗の店長が、毎日閉店後に、本日のPOSデータのコピーをサーバーに上げる」
「システム管理者が、随時、必要に応じてメニュー&価格表をサーバー内でメンテナンスする」
「各店舗で最初に出勤した人が、毎日開店前に、本部から通達が無いか確認する」
これらをだーーーーーっと全部挙げた後で整理したものがUMLという表現方法の中で「ユースケース図」と言うものになる。
それらの操作を行うためのプログラムをどう作ってどこに配置するかを考えるのはその後だ。
ここでのキモは、人間だけではなく他のシステムも「誰」にあたる点だ。詳細は後述。

もう一つは、出力から考える事だ。コンピューターシステムを作ろう、ていう時に、
画面をデザインする際とにかく入力項目を盛り込もうとするけど、
その入力項目は本当に必要か、という判断をするためには、
「最終的に入力したデータをどう出力したいのか」を先に考える。
レストランだったらそれは月次売上表であったり、月間日別売上推移表だったりするだろう。
収支計算書みたいなものをこのシステムから印刷したいかも知れないし、
そうでなくて売り上げCSVみたいなのをこのシステムから出力して
会計ソフトにインポートして月次の売り上げ管理を行いたいかも知れない。
この時、あなたが今からデザインしようとしているシステムにとっては
この会計ソフトも(CSVの列定義というインターフェースを介して)相互にデータをやりとりしあう、
いわばシステムにとっては会計ソフトないしはそのCSV出力・入力機能は
ユースケース図に盛り込まれるべき機能という事になる。

とにもかくにも、あなたが今やろうとしている「システムのグランドデザイン」というタスクには
当然成果物を求められる。最終的にどのような成果物を作るかをイメージできたら、
後は成果物に盛り込むべき内容に的を絞って検討していけば良いだろう。
あれもこれもと考えすぎると何をやっていいやら分からなくなってパニックになっちゃうのだわん。

この回答への補足

anmochiさん
こんなに情報を頂いて本当にありがとうございます!!
後半の部分はこれからもし自分が同じ様な依頼が来た時にも非常に貴重な考え方と頂いたと思っています。あまりにも今回は急にこんな話しが飛び込んできていろいろな順番がごっちゃですが、ユーズケースをまず意識してプロジェクト自体のフレームワークを考えていきたいと思いました!
昨日は質問してから自分でも調べてみたんですが、HTTPでデータの送信をする事とanmochiさんがおっしゃっていたFTPでデータ送信をする場合ではセキュリティーの観点からどちらが有利でしょうか?
I/PASSを掛けるFTPが素人目から良いのかなと思ったんですがHTTPでも同じようにセキュアな環境を構築する事は可能でしょうか?
本当はベストアンサーを50個位上げたいのですがもしお時間あればお教え下さい。
よろしくお願いします!!

補足日時:2014/06/17 12:38
    • good
    • 0
この回答へのお礼

anmochiさん
新たな質問にも細かく返答して頂いてありがとうございます!
技術的な部分に疎くこちらに質問したのですが、FTPでもHTTPでも問題が無い事は解りました。
>「通信経路」はあくまでインフラとして考えるべきで
システムの中に入れるような話ではなく、今考えられるネットワーク構成の中で
どの通信経路が「楽か、安いか、安全か、(やりたい事が)実現可能か、安定しているか」などを考慮して決定されるものだ。

その通りだと思います。そもそも今回質問した経緯と言うのはその通信経路をシステムに内包するべきか、と言う事でした。
ホスト側は今回新たに設けるのでこちらでどのように構築する事も可能ですが、店舗側は環境がまちまちでどの様に設定するかを考えていました。
できればこれから構築するソフトウェア側にその部分も内包して、設置する際に最小限の作業で済む事ができればと思っています。その為に店舗側がインターネットにつながっているPCがあれば店舗側は他の作業が必要なくなる、がベストと考えました。
当初VPNを構築できれば簡単に行えるなと自分も考えましたが、非常に店舗が多い場合に構築するに結構手間が掛かるなと言う事と全くシステムが解らないスタッフに設定をお願いできないと思い他の方法が無いかこちらで質問させて頂きました。
本当はまたこの内容に伴い新たに質問したいのですが、これを続けていくとベストアンサーを永遠にあげれないと言う事に(笑)なってしまうので今回はここで切りたいと思います。
もしお時間があれば新たに投稿する質問にもアドバイス頂けると幸いです。

本当にありがとうございます!

お礼日時:2014/06/18 11:41

トレンドなクラウドですね。

(^^)
HTTPで扱うのが最も楽でしょう。
面倒くさければ、googleグループなどを使えばよいかと思います。非公開でね。
 ⇒Google グループ( https://groups.google.com/forum/?hl=ja#!overview )
    • good
    • 0
この回答へのお礼

ORUKA1951さん
返信ありがとうございます!
Googleグループ・・・・初めて知りました~ orz
調べてみます!ありがとうございました~

お礼日時:2014/06/17 12:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!