FileMakerAdvanceランタイムでデータ共有 (76レス)
1-

1
(14): 2009/07/19(日)11:04 AAS
Advanceでランタイムを作って、それを各クライアントにインストール、
サーバーに見立てたPCにデータファイルを置いて、各ランタイムでデータ共有。
そんな「ケチケチファイル共有大作戦」を構想実験中。
2: 2009/07/19(日)11:33 AAS
【目的とメリット】

・サーバー+クラ台数分というFMアプリ導入費を何とかしたい

例えば10台で運用するには、現状だと
pro(\34,200) * 10 + svr(\115,200) = \457,200
という費用が発生してしまう。
ランタイム運用なら開発側のAdv償却費程度(100%でも\52,200)

・OSとFMのバージョンアップによって発生するコストとライセンス追加問題を何とかしたい

バージョンアップも全クラ同時にアップグレードが必要になり、運用コストがバカにならない。
旧バージョンで組んだシステムにクラ追加したくても、ライセンスが入手できない。
ランタイム運用ならライセンスは無視できる(若干御幣覚悟w)
省5
3
(1): 2009/07/19(日)12:53 AAS
たとえば10台でとか書いてるけど、10台あっても誰か1人しか使うことが出来ないじゃん。
今誰が使ってるか確認しながらなんて実運用に耐えられるんだろうか?
まだインスタントwebとか使った方がストレスなさそう。
4: 2009/07/19(日)12:59 AAS
>>3
もうちょっとお待ちを。そのカラクリを書きますんで。
5: 2009/07/19(日)13:40 AAS
〜現状の基本概念〜

ランタイムはファイル共有操作は一切できないが、単独でファイルを開く事は可能であり、
それがOSのネットワーク共有フォルダにあってもローカル動揺に可能なので、その仕組みを利用する。
他のユーザーと同時にファイルを開けない。誰かが開いてる時は、他の誰かが開こうとしたら
エラー発生 →エラーの場合はN秒後に再実行 を繰り返す事で、共有は成り立つ。
・・・はずだが、ここにシステム依存なリスクが潜んでいる可能性が高く、最悪ファイルの破壊を想定しなければならない。

〜具体的な流れ〜

【1】ファイル閲覧・・・まず仮に、サーバーに見立てたPC「S」、クライアント「A」と「B」とする
?AはSのファイル(以下file-S)を開く
?Aローカルディスクに「名前を付けて保存(以下file-A)」にて上書きする
省17
6: 2009/07/19(日)13:41 AAS
【3】新規レコード作成・・・仮にT5テーブルにレコード追加したい場合
?file-Sを開く
?T5に新規レコード作成、同レコードRC=1
?file-Aにfile-S上書き
?T5の新規レコードに移動
?入力後【2−2】実行

【4】レコード削除・・・仮にT7R30を削除する場合
?file-Sを開く
?T7R30のRCが1ならfile-S閉じて終了、0の場合は削除(ダイアログ等自由)
?file-A上書き
省1
7
(1): 2009/07/19(日)13:59 AAS
つまり、file-Sを開いたら即file-Aの上書きコピーをし、file-Sを開いている時間を
最小限に留める事により、あたかもデータ共有しているかの様な操作体系が狙い。

〜以下、現状で問題視している事〜

A.各クラが特定レコードを編集するという事を明示的に行う必要があり、
 例えばフィールド全置換えのような自由な編集を可能にするには工夫が必要。

B.クラ側には常にfile-Sの上書きが起るため、スクリプトはfile-A上では走らせられない。
 つまり、クラ側にはfile-Aをコントロールする別のスクリプトファイルが必要。

C.編集後のレコードをfile-Sに返す時、最もバッティング動作が危険と思われる。
 これについては、S側にデータインポート中だという事を示すフラッグファイルを一旦置き、
 インポート完了後にそのファイルを削除する事により、他者がアクセスする時はこの
省2
8
(1): 2009/07/19(日)14:29 AAS
とりあえず乙。なるほどね。概略はわかった…ような気がする。
もっとシンプルにならんもんかね?AとBで差分抽出して交換するみたいな。

あと、
>?編集されたT3R15の1レコードのファイル(file-SR)を、Sローカルにエクスポート保存する。
>?file-Sを開く
>?file-SのT3R15にfile-SRを上書きインポート・RC消去

これこうする必要ある?直接Aからピンポイントでインポートすればって思うが、何か問題ある?
9: 2009/07/19(日)14:31 AAS
いや待てw、そもそもサーバーのファイルってどこで開くの?鯖?蔵?
だめだ何かちょっと理解及んでないわw 出直してくる。
10: 2009/07/19(日)15:04 AAS
>>8
>これこうする必要ある?直接Aからピンポイントでインポートすればって思うが、何か問題ある?

サーバ側のファイルをローカルで開いて操作するんだけど、直接クラからインポートとなると、クラが複数で
インポート元が1つじゃなくなるんで、サーバーファイルにクラ数分のスクリプト用意する必要があります。
更新レコードファイルを、各クラで統一した保存先とファイル名にすることで、サーバー側のスクリプトを
一元化できるわけです。

ただそれが原因で>7のCっていう問題が発生するんですがね^^;
11
(1): 2009/07/19(日)15:58 AAS
ちょっと参加してみます。宜しく。
正直本スレ見て無理じゃないかなと勘繰ってたんですが、
思ったよりイケソウナキガスルーです。

サンプルファイル的なものは無いでしょうか?
無ければ別にいいです。自分で作ってみますんで。
12
(1): 2009/07/19(日)16:08 AAS
つインスタント Web機能
入力は出来ないけれどな。
13: 1 2009/07/19(日)16:15 AAS
>>12
検討はしてみたけど、UI的に無理かなぁと。制約多すぎて。
14: 1 2009/07/19(日)16:17 AAS
>>11
現時点でサンプルないっす。実働ファイルの改変で起こしたんで。
時間あったら作るけど、まだ未完成だし、ちと時間無いです。すまそ。
15
(1): 2009/07/19(日)16:19 AAS
>1
>>ランタイム運用ならライセンスは無視できる(若干御幣覚悟w)
せっかく良スレ期待なんだが、この一文は喧嘩腰杉じゃないか・・・まぁ覚悟はわかったガンガレ。

ところでこれバージョンどのあたり対象?なんとなく10限定みたいな感じするが。
16: 1 2009/07/19(日)16:30 AAS
>>15
喧嘩腰ってわけじゃないですがね^^; FM社に喧嘩売ってる意味合いは否定しませんがw
バージョンについては、私の手元のは9です。確かに10なら色々楽になりそうなんだけど・・・
スクリプト変数多用するんで、今回は8以降って感じで。
17
(2): 2009/07/19(日)16:39 AAS
>?Aローカルディスクに「名前を付けて保存(以下file-A)」にて上書きする

これ簡単に書いてるが、ネットワークトラフィックとか問題無いの?
毎回ウン百MBとかいちいち流せんだろ。ギガLAN前提としてもキツイと思うが。
小規模なら大丈夫だろうけど、うちじゃこの時点でアウト。
レコード修正時刻とかで改変レコード絞って抽出した方が賢いかと思う。
18
(2): 2009/07/19(日)17:14 AAS
本スレの938です。
ざらっと読みましたが、結構工夫されてますね。
私の場合はノートの持ち出しと、帰社時の同期だけだったんで
事情が若干違いますが、似たような苦労をしました。

記憶を頼りに思い付いた点挙げてみます。

1.権限管理
これは共有で運用する以上、貴方のプランに限らず必要な事で、
基本と言えば基本ですが、徹底するとファイル更新が楽にできます。
17さんの言われる「編集済みレコード抽出」を避けて、ファイルごと
コピーを繰り返す設計をした理由は、私が想像するにはおそらく
省16
19
(1): 2009/07/19(日)17:50 AAS
始めてカキコです。

うちの会社も実はバージョンアップ問題に直面しています。
数年前にバージョン5のサーバーと20クライアントを導入したんですが、
現状残っているライセンスが1つだけで、そろそろ何とかしないといけない状況です。
追加ライセンスは当然5(6)は入手できないし、アプリケーションのバージョンアップは
8で試してみたけど、そのままやるとマトモに動かない事が判明しました。
それにそもそもOSがVistaだとバージョン6はサポート外です。orz

考えられる方法は、相当な時間とお金をかけて全てバージョンアップを断行するか、
もっとお金をかけて?DBマネージメントを他所に依頼するか、という状況です。
実際やっていることは大したことではなく、社員各自の日報やタイムカードの連携といった程度なんですが、
省5
20
(1): 2009/07/19(日)18:10 AAS
この方法ってFM社視点だと営業妨害になんねーの?
ここじゃなくて他で非公開でコソーリやる方がよくね?
1-
あと 56 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.629s*