「ロードバランサー」を含む日記 RSS

はてなキーワード: ロードバランサーとは

2021-05-20

anond:20210520100801

Webサーバは、プロキシとかキャッシュとかロードバランサーとか色んな役割を持てるので、役割に応じてapacheでもnginxでも何段にも重ねることはある

2021-02-20

anond:20210220112831

国民教養として必要情報処理法律で現状教えられてないもの、って具体的にはどういうのを想定してるの?

専門家じゃないからわからないよ!

素人所感だと、

情報処理は、「関数」と「レイヤー構造」かな!

関数は、「インプット」「アウトプット」「処理」の要素から成立していることとかね!

関数理解すると、「ソフトウェア関数の集合にすぎないこと」「機械学習所詮関数一種にすぎない」のように、「得体のしれない便利なもの」という理解から進めるからね!

関数理解できれば、Excelはもちろん、熱量計算とか言語分析とか各専門分野で利用できるからね!

プログラミングを教えるべき!」ってのは「関数理解させるべき!」って意味だと思うんだよね。

言語仕様アルゴリズムは必ずしも必要とは思わないよ!

次に「レイヤー構造」ね!

例えば「ソフトウエアにおけるアプリケーション層データ層…」とか「ハードウェアにおけるサーバデータベース、ロードバランサー…」とか「ネットワークにおける物理層セッション層…」とかね!

レイヤー構造理解すると、全体と部分の関係がはっきりして、各要素の理解が進むからね!

レイヤー構造理解できれば、情報処理に限らず、ものごとを整理して理解することに役立つよね!

法律は、「法」と「契約」かな!

法は、各法の目的理解かな!何のために存在して、法改正によってどう影響があるか理解できるからね!

各条文を細かに理解する必要はないけれど、条文の読み方は修得させたいよね!

契約は、騙されないためにだね!

2021-02-11

anond:20210211125240

ロードバランサーかましいるから、ログのものは、難しくないが

ロードバランサーかましているがゆえに、完結障害データロスしやす

まり

高速性ではなく高信頼性が難しいというのが、高速ロギングという言葉で誤解を生んでいるよな

 

高速ロギングとは速度の技術ではなく、その速度で高信頼性を出すための技術のこと

2021-02-03

CloudFrontと相性が悪いため

しばらく

こっちをかしてくれ

 

やはり年単位で調整を繰り返しているが

ブログコメント欄

相性が悪いな

コメントスパムもあるから

PHP直撃にすると、こんどはクローラーに潰される

急激な1日だけの大手サイトリンク対応するとCDNになって、コメント対応できない

 

調整がめんどくさいことこの上ない

バランスが難しいね

どうしてもコメントを開けようとすると

ロードバランサー入れてPHPマルチにしないと負荷に耐えられないが

わずか1年で1日未満のあめに、のこりをずっとあげておけはたしかに無謀

Lambda pressでリミッター入れる以外の方法にたどり着けない

2021-01-30

anond:20210130105634

サーバーを増やしてくれれば、それだけで10倍までは性能が上がるから、弊社はは大丈夫。100倍はちょっと確認がいるけど

10倍まではいける ロードバランサーはうちのちーむではないからしらんが1台1台はそうせっけいしてある。

それ以上となると、いわゆるNFSへの書き込みをさげてやらないと、難しいとは思うがさすがに、そこまではいきすぎだから発注してくれ

トラヒックバーストで10倍までは絶えられれば普通責任分界点を超えている

2021-01-29

とりあえず、報告

Amazon AWSEC2ロードバランサーマルチAZ

RDSはシングルAZ対応したが

EC2はしなかったもよう。

何の意味があるんだ・・・どう考えても専門家がやってねぇ

マルチ構成がなんだかわから設計している

へたすると設計のものが流用(知財権利を買ってない) ちがうとはおもうが、各位確認されたし 通報はあとでまとめて

わかりやすい例を1つだけ

2020-08-02

数千倍まではロードバランサーチームがちゃんバランシングしてくれればたえるはず で 数千倍にたえられれば 国内国民が一人数台のパソコンをつかっても たぶん耐えられる設計にはなってるはず

そのままサーバの台数を倍にして、あとはロードバランサーチームがなんとかする

2020-05-23

EC21台 RDS1台の最小構成だけど ロードバランサー最初から入れておいたほうが楽かもね

ロードバランサー1台 EC2 1台 RDS1台 VPC2個 サブネット2個ぐらいかスタートするのがいいか

テストときだけEC2 2台にして 普段は1台で とまったらとまったでいい

2017-08-29

ロードバランサー

今日ね、負荷分散をしようと思ってロードバランサーを立てたんですよ。

で、ドメインDNSレコードでAAAA値を追加しようとした時に気がついたんですが

ロードバランサーipv6が無かったんですよ。

で、ヘルプデスクに聞いてみたわさ。ほいたらすったらもんねー!ってさ。

あいまんこったねー!ってさ。

グモさん、そりゃねーんじゃねえべか?ipv4はもうすぐ枯渇するべよ?

2017-05-27

はっぴょんの件

huluブランド継続するのにドメイン変えるって悪手だなーと思っていたんだけど、hulu側のシステム日テレ側が(技術的か法的かわからないけど)全く触ることができなくて、ああいリニューアルになったんじゃないかなと思った。

ドメイン同じで新旧のシステムを振り分けるなら、前面にロードバランサー置いてUA見て振り分ける、とかになると思うけどその辺のシステムが触れない。

happyon.hulu.jpというサブドメインをつくって、そっちでアクセス受けて新システムにに振り分ける、ということもできそうだけど、DNSも触れない。

みたいな

2017-03-05

コメ率の低いはてブエントリ英語エロか?

http://anond.hatelabo.jp/20170305115905増田以外のホットエントリで見ると。

2017年2月コメント率の低いホットエントリ

コメントタイトルコメント数/ブクマブクマページ
0.0%Python3.6 から追加された文法機能 - Qiita0/96b.hatena.ne.jp/entry/324476241
0.8%文章ベクトル化して類似文章の検索 - Qiita2/245b.hatena.ne.jp/entry/324662835
1.0%[wip] 会社サーバサイドエンジニアにReactとかReduxのことを説明する資料 - Qiit1/97b.hatena.ne.jp/entry/319535213
1.1%機械学習ディープラーニングの入門者向けコンテンツまとめ - Qiita1/94b.hatena.ne.jp/entry/321793279
1.9%Web制作時の概算費用と想定納品日を簡単に計算する票をつくってみた – のんびりデザインしているよう7/375b.hatena.ne.jp/entry/320010979
2.0%最近見かけるレイアウト・ナビゲーション・スライダーフォームなどがどうやって実装されているのかのまと7/344b.hatena.ne.jp/entry/322198623
2.2%フロントエンド知らない私のwebpack入門 その1 - Qiita4/186b.hatena.ne.jp/entry/319233247
2.3%フルマネージドのSaaSクラウドデータベースサービスdashDBの活用スタイルとは ~手間いら5/216b.hatena.ne.jp/entry/323891713
2.4%Pythonをやるときに参考になりそうな情報 - のんびりSEの議事録19/807b.hatena.ne.jp/entry/322300431
2.5%React基礎 · GitBook17/681b.hatena.ne.jp/entry/321494522
2.7%開発効率を上げるテスト設計 // Speaker Deck5/183b.hatena.ne.jp/entry/323584734
2.8%畳み込みニューラルネットワーク可視化 - 人工知能に関する断創録3/108b.hatena.ne.jp/entry/322431100
2.8%グランブルーファンタジーを支えるインフラ技術 // Speaker Deck10/359b.hatena.ne.jp/entry/324611754
2.9%仮想DOMの内部の動き | プログラミング | POSTD6/206b.hatena.ne.jp/entry/321289144
3.0%金融データPythonでの扱い方 - 今日も窓辺でプログラム16/527b.hatena.ne.jp/entry/322842311
3.1%Python Jupyter notebookでpandasを使いCSVを読み込みグラフを描画してp5/162b.hatena.ne.jp/entry/321556884
3.1%React Redux Real World Examples 〜先人から学ぶReact Redux9/290b.hatena.ne.jp/entry/323749846
3.2%Awesome Python:素晴らしい Python フレームワークライブラリソフトウェア・リ15/472b.hatena.ne.jp/entry/319013267
3.2%履歴書志望動機|最速で書く方法と受かる書き方14/433b.hatena.ne.jp/entry/279613157
3.4%今日からはじめるGitHub初心者がGitをインストールして、プルリクできるようになるまでを解38/1128b.hatena.ne.jp/entry/318690305
3.4%スケーラブル GCP アーキテクチャ6/178b.hatena.ne.jp/entry/322723492
3.5%アーキテクチャから新しい! 初めてのエディタには、21世紀生まれの「Atom」がおすすめ【続・若手エ11/311b.hatena.ne.jp/entry/322534650
3.5%フロントエンドの基礎知識 // Speaker Deck15/423b.hatena.ne.jp/entry/322749937
3.7%ロードバランサー再入門 | ツチノコブログ26/704b.hatena.ne.jp/entry/323163487
3.7%APIサーバを立てるためのCORS設定決定版 - Qiita5/134b.hatena.ne.jp/entry/321742626
3.8%画像】こんなのソフマップじゃないwwwwwwwwwwwwww|ラビット速報5/131b.hatena.ne.jp/entry/321219627
4.0%動画あり】人志松本のゾッとする話のあるある探検隊の話怖すぎwwwwww | 2ちゃんねるスレッド10/252b.hatena.ne.jp/entry/319507149
4.0%翻訳2017年展望: pandas, Arrow, Feather, Parquet, Spa7/176b.hatena.ne.jp/entry/324411617
4.2%【たまに行くよ!って人向け】いつもと少しちがう東京ディズニーシーデートにするための5つの方法 @ja3/72b.hatena.ne.jp/entry/321496344
4.3%高速なシステムを作る方法 // Speaker Deck9/211b.hatena.ne.jp/entry/283448858
4.3%処分・廃棄にお金は要らない!?パソコン無料引取してくれる業者一覧7/162b.hatena.ne.jp/entry/320803373
4.3%タデサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~3/69b.hatena.ne.jp/entry/322583838
4.4%「Front-End Developer Handbook 2017」がGitBookで無償公開。フ24/542b.hatena.ne.jp/entry/318947145
4.6%デブサミ2017「DeNAの機械学習基盤と分析基盤」講演メモ #devsumi - 元RX-7乗りの7/152b.hatena.ne.jp/entry/322562611
4.6%大量の要素を高速に表示するためのバーチャルレンダリング入門 / Virtual Rendering 6/130b.hatena.ne.jp/entry/323604383
4.7%MySQLアンチパターン22/473b.hatena.ne.jp/entry/319218778
4.7%5年間コードを書き続けたエンジニアが、新人に読んでもらいたい11冊+αを紹介する - エンジニアHu47/1006b.hatena.ne.jp/entry/313934939
4.7%グーグル社員も長友選手も行う集中力を高める方法 - 自分で学ぶ心理学20/427b.hatena.ne.jp/entry/322090614
4.8%例の機械学習コースが良いらしいと知りながらも2年間スルーし続けたがやはり良かったという話 - Qii68/1418b.hatena.ne.jp/entry/321403591
4.9%NoSQL を使用する場合と SQL を使用する場合Microsoft Docs28/577b.hatena.ne.jp/entry/322834020
4.9%Awesome Selenium : 素晴しい Selenium ライブラリの数々 - Qiita5/102b.hatena.ne.jp/entry/321629987
4.9%誰でもできる、プレゼンが劇的にうまくなる基本テクニック - 科学非科学迷宮77/1557b.hatena.ne.jp/entry/318913434
5.0%脆弱性発見者が注目する近年のWeb技術 // Speaker Deck24/481b.hatena.ne.jp/entry/319516657
5.1%たった3つのコトで仕事が楽になる!「できる上司の会議」がマジで真似したい | CuRAZY [クレイ7/138b.hatena.ne.jp/entry/322534334
5.1%日経電子版を支える基盤API // Speaker Deck13/256b.hatena.ne.jp/entry/319592914
5.1%30歳から始める数学 - Shoyan blog50/982b.hatena.ne.jp/entry/323617832
5.1%インフラチームと開発チームの垣根をなくすためにAWSのCI環境を構築した話 - VOYAGE GRO20/392b.hatena.ne.jp/entry/323171376
5.1%『How to Get Startup Ideas』 - いかスタートアップアイデアを得るか -17/333b.hatena.ne.jp/entry/324384439
5.1%無料ウェブサイトブログに使える写真を検索可能な28サービスまとめ - GIGAZINE18/350b.hatena.ne.jp/entry/323600897
5.2%内向的な人のための面接ガイド - GIGAZINE14/271b.hatena.ne.jp/entry/322036523

Pythonデータベース関連が目立つ。コメント無しで96ブクマに達するPythonさん凄い。マウンティング心?を刺激しないのだろうか。炎上したくない人はインデントに気をつけながらオブジェクト指向で書くといい。

2017年2月コメント率の高いホットエントリ

コメントタイトルコメント数/ブクマブクマページ
74.5%はてブ要望「返信出来るようにして欲しい」 - interact114/153b.hatena.ne.jp/entry/319990286
73.5%あなた朱雀とか白虎とか四神を覚えたキッカケは何?」という質問に対し世代がバレそうになる人々→「幽319/434b.hatena.ne.jp/entry/322198765
67.8%内海 聡さんのツイート: "あなた甲殻類アレルギーだった場合あなたの心は殻に閉じこもっている可449/662b.hatena.ne.jp/entry/318821783
67.4%日米首脳会談 首相は「ドラえもん」のスネ夫になった!民進党野田幹事長が批判 (産経新聞) - Ya95/141b.hatena.ne.jp/entry/321930776
65.7%いい記事書けばブクマつくとか嘘っぱち!こんな嘘がまかり通るはてな界に物申すっ! - ゆるくいきていく260/396b.hatena.ne.jp/entry/323206934
65.5%痛いニュース(ノ∀`) : 梅沢富美男(66)、老害判定に怒り 「日本は俺達が作ったんだぞ!」 - 190/290b.hatena.ne.jp/entry/322785094
65.5%茶碗に米粒を残した状態で「完食」する人は完全悪ではないけど相容れられない、という話に意見続々 - T413/631b.hatena.ne.jp/entry/321479096
64.6%けものフレンズを視聴1分30秒で挫折。 - 自由ネコ122/189b.hatena.ne.jp/entry/321589678
63.7%けものフレンズコスプレ批判に対する異論まとめ - Togetterまとめ228/358b.hatena.ne.jp/entry/323622485
63.6%レジでバレる!二流の人の超ヤバい3欠点』という東洋経済記事を読んで。クレジットカードイメージ119/187b.hatena.ne.jp/entry/323599229
63.5%痛いニュース(ノ∀`) : 日本在住のイスラム教徒の子どもがハラール対応給食に苦慮→学校側に配慮290/457b.hatena.ne.jp/entry/321128745
63.0%あざなわさんの炎上はてな村権威のなさ - メロンダウト133/211b.hatena.ne.jp/entry/323813866
62.7%プレミアムフライデーって何でこんなに叩かれてるんだろう? - シャイニングマンの「勇気を君に」126/201b.hatena.ne.jp/entry/324113658
62.5%飯田譲治さんのツイート: "日本が悪い日本が悪いって、民間人は殺さないってルール破って、原爆落として65/104b.hatena.ne.jp/entry/321434534
62.4%偏差値40の大学日本必要なのか?子供を焼き殺す大学補助金は不要 - カキカエブログ166/266b.hatena.ne.jp/entry/318786744
62.2%坂上忍 清水富美加の月給5万円は正当「僕らの時もそうだった」 (デイリースポーツ) - Yahoo!237/381b.hatena.ne.jp/entry/321888913
61.9%清水富美加17日著書出版「全部、言っちゃうね。」 - 芸能 : 日刊スポーツ73/118b.hatena.ne.jp/entry/322431771
61.5%警視庁捜査1課長が竹刀で23歳美人記者ボコボコ (文春オンライン) - Yahoo!ニュース415/675b.hatena.ne.jp/entry/322218394
60.7%ゴルフに興じる首相、誇れない」民進・蓮舫氏:朝日新聞デジタル136/224b.hatena.ne.jp/entry/321608217
60.6%金があるのに、理屈をつけてコンテンツに金を落とさない」連中について - うらがみらいぶらり243/401b.hatena.ne.jp/entry/321324226
60.6%痛いニュース(ノ∀`) : 中学校で「やばい」という言葉を使用禁止に 若い世代意味多様化 - ラ132/218b.hatena.ne.jp/entry/324642052
60.3%受動喫煙対策東京だけでやれ」 自民党内で反対論噴出:朝日新聞デジタル241/400b.hatena.ne.jp/entry/321316384
60.1%娘の卒業式用の服を買いに行ったら驚愕した - コバろぐ92/153b.hatena.ne.jp/entry/321299915
60.1%「洗剤いらず」スポンジで教頭などが児童の体こすりけがNHKニュース215/358b.hatena.ne.jp/entry/322584234
60.0%松井一郎さんのツイート: "長谷川さんが、ブログで伝えたかったのは、健康であるための自己管理重要201/335b.hatena.ne.jp/entry/320414066

2013-11-09

Webサーバが3台って

今日、同僚と2人で飲みに行った。

相手はソフトウェア業界で働く業界6年目の男。

私は業界11年目だが、ともに中途入社で彼とは同時期に転職してきた。

だけど、彼の技術レベルが低すぎて泣ける。

Webサーバが3台あるシステムがあるんだけど、

彼は3台ある意味が分かっていなければ

ロードバランサーという言葉も知らない。

「何でWebサーバが3台あると思う?」

「1号機がリクエストを受けて、2号機、3号機と順にデータコピーしてるんじゃないんですか?」

もうほんと謎。


本人いわくサーバはあまり経験いから、ってことだけど、そのレベルを超えてる。

頭いたいわ。

2008-10-13

http://anond.hatelabo.jp/20081013123012

Web系は動けばよいで、セキュリティー忘れて、大問題になった、例が過去どれだけあるかを説明しないといけないのは、とっても手間だよね。

あと、Web系でもベンチマークは必要。マシン2台と1台の差はあまりないかもしれないけど、200台と100台の差は結構あるし。

電気代や、サーバーラック代、メンテナンス費用、などのランニングコストに効いてくる。

ロードバランサーも高い物を検討しないといけなくなってくる。

システムから見れば、Web系でもベンチマークしてトータルソリューションのコストダウンすることは非常に重要

というのを説明しないと行けないのは、とっても手間だよね。

わかります。

2008-03-19

自慢の知識が役に立つと思ったのに

ネトゲ雑談を聞きに行ったら、

突然、システマティックな話題に移り、

それについて行けない俺は涙目。

Lv.○○までは、あの武器スライム叩いとけばパフォーマンスぐっどよーみたいな話ならついて行けるのに。

TCPとかロードバランサーの話題なんて反則だあああ

2008-02-27

Joel On Software私訳

訳してみた。あらためて、和訳はものすごく時間を要する作業だということがわかった。もうしないと思う。

注意:以下は意訳、適当訳、稚拙訳であり、誤訳を多々含んでいることは確実であり、Joel氏が本当に以下のように述べているとは限りません。

なぜMicrosoft Officeファイルフォーマットはこんなにもややこしいのか (そしてその対処法を幾つか)

Tuesday, February 19, 2008

先週、MicrosoftOfficeバイナリフォーマットを公開したが、このフォーマットは殆ど正気でないように見える。Excel 97-2003ファイルフォーマットは349ページのPDFファイルだ。でも待って、それで全部じゃない。このドキュメントには次の面白いコメントが書いてある。

それぞれのExcelワークブックは1つのcompound fileに収められている

つまり、Excel 97-2003ファイルはOLE coumpound documentで、それは結局、1つのファイル内にあるファイルシステムである。これは、理解するのにあと9ページはスペックを読まなくちゃならないぐらいには十分に複雑だ。そしてこれらの「スペック」は、普通我々が考えるようなスペックというよりは、Cデータ構造みたいに見える。これ全体が階層的ファイルシステムなのだ。

もしあなたが週末を、Wordドキュメントブログインポートしたり、あなたの個人的な財務データからExcelフォーマットスプレッドシートを生成するような気の利いたコードを書くのに使おうと思ってこれらのドキュメントを読み始めたなら、このスペックのややこしさと長さがそんな気をあっという間に失せさせるだろう。普通プログラマはこのOfficeバイナリファイルフォーマットについて次のような結論を下す:

この4つ全てについて、きみは間違っている。ちょっとだけ掘り下げて、これらのファイルフォーマットがどうしてこんなに信じがたいくらいに複雑なのか、なぜMicrosoftの悪いプログラミングを反映しているのではないのか、そしてそれを回避するためにあなたに何ができるか、を明らかにしよう。

理解すべき最初のことは、これらのバイナリファイルフォーマットはちょっと違ったデザインゴールを持って設計されたということだ。たとえばHTMLとは。

これらはすごく古いコンピュータで速く処理できるようにデザインされた。Excel for Windowsの初期のバージョンでは、1MBのRAM、20MHz動作の80386が Excelを快適に走らせることができるための妥当なものだった。このファイルフォーマット内には、ファイルを素早く開いたり閉じたりするための最適化が沢山仕込まれている:

これはライブラリを使うことを想定して設計されている。もしあなたがバイナリインポートするものを1から書き上げたいと思ったら、Windows Metafile Format (何か図を描く場合) や OLE Counpound Storage みたいなものをサポートしなくてはいけなくなる。もしあなたが Windows上でやるのなら、そうしたことをたいしたことのない作業にするためのライブラリサポート存在する... そういったフィーチャーを使うことは(元々)マイクロソフトチームのためのショートカットだった。でもあなたが全部を自分でスクラッチから書くなら、全部の作業を自分自身でやらなくてはいけない。

オフィスはcompound documentsに対して広範囲のサポートを持っている。例えば、スプレッドシートWord文書に埋め込んだりできる。完璧Wordファイルフォーマットのparserは、同じように、埋め込まれたスプレッドシートで何かインテリジェントなことが出来るべきだろう。

それは相互協調性(interoperability)を意識してデザインされてはいない。仮定されていたのは、WordファイルフォーマットWordからのみ読み書きされなくてはいけない、ということで、それは当時においては十分に合理的なものだった。これは、Wordチームのプログラマファイルフォーマットをどう変更するかについて決定を行う場合にはいつでも、彼らが気にするのは (a)何が高速か (b)Wordコードベースにおいて最小の行数になるのは何か、だったことを意味する。SGMLHTML-interchangeableといった標準ファイルフォーマットのようなアイデアは、最初にインターネットドキュメントの相互交換を実現するまで現実のものにはならなかった。それはOfficeバイナリフォーマットが最初に考案されてから10年後のことだったのだ。ドキュメントを交換するのにインポーターエクスポーターを使うことができるという仮定が常にあった。実際Wordは簡便な交換のために設計されたRTFと呼ばれるフォーマットを持っており、そのフォーマットは殆ど最初のころからあり、今も100%サポートされている。

それはアプリケーションの全ての複雑さを反映していなくてはいけない。 全部のチェックボックス、全部のフォーマッティングオプション、そして全部の、Microsoft Officeのフィーチャーは、ファイルフォーマットのどこかで叙述されていなくてはいけない。Wordパラグラフメニューにある、"Keep With Next" と呼ばれるチェックボックス、これはパラグラフを、その後ろのパラグラフと同じページに置くのに必要な場合は、次のページに移動させるもの(?)だが、これもファイルフォーマットの中に無くてはいけない。そしてこれはつまり、あなたがWordドキュメントを正しく読み込める完璧Wordクローンを実装したいなら、そういったフィーチャーを実装しなくてはいけないということだ。Wordドキュメントをロードする競争力のあるワードプロセッサを作っているのなら、ファイルフォーマットからそのビットをロードするコードを書くのには1分しかかからないかもしれないが、ページのレイアウトアルゴリズムをそれに対応させるのに何週間もかかるかもしれない。もしあなたがそうしない場合、カスタマーがあなたのクローンWordファイルを読み込んだら、全部のページがぐちゃぐちゃになってしまうだろう。

それはアプリケーション歴史を反映していなくてはいけない。 このファイルフォーマットに見られる多くの複雑さは、古く、複雑で、愛されず、めったに使われないフィーチャーを反映している。それらはファイルフォーマットのなかに後方互換性のためにまだあり、そしてMicrosoftにとってその辺りのコードを残しておくことには何らコストはかからない。しかしあなたがこれらのファイルフォーマットをparseおよびwriteする一貫した完全な仕事をしたいと思うなら、Microsoftインターンが15年前にやったのと同じことを全て、またやらなくてはいけない。要点は、何千人年の仕事が今のWordExcelには費やされてきたのであり、これらのアプリケーション完璧クローンを作りたいと本当に欲するなら、あなたは何千人年を費やさなくてはならないことになる、ということだ。ファイルフォーマットは単に、アプリケーションサポートする全てのフィーチャーの簡潔なサマリーなのだ。

手始めに、小さな例を一つ、深く見てみよう。Excelのワークシートは色々なタイプのBIFFレコードの集まったものだ。私はスペックの一番最初のBIFFを見てみたい。1904と呼ばれるレコードだ。

Excelファイルフォーマット仕様のこのレコードについての記述は非常に曖昧なものだ。そこでは単に、1904レコードが「1904日付システムが使われているかどうか」を示すレコードだ、と述べているだけだ。ああ、使えない仕様書の典型的な一例だ。あなたがExcelファイルフォーマットで何かしている開発者で、そしてファイルフォーマット仕様にこう書いてあるのを見つけたなら、あなたがMiocrosoftは何かを隠しているのだと結論付けたとしても無理はない。この情報の断片は十分な情報をあなたに与えはしない。あなたには幾ばくか外部の情報が必要で、私は今ここで、それを提供しよう。Excelワークシートには、2種類ある。日付のエポックが1900/1/1のもの(これには、Lotus 1-2-3 との互換性のために故意に入れられた閏年に関するバグがあるが、ここでそれについて述べるのは退屈すぎる)、および、1904/1/1のものだ。Excelは両方をサポートしているが、それはExcelの最初のバージョンMac版であり、それは単に簡単だったという理由でOSエポックを使っていて、しかしWindows版のExcel1-2-3ファイルインポートできなくてはならず、そしてそれは1900/1/1をエポックとして採用していたからだ。あなたが涙ぐむのも無理はない。歴史のどの時点においても、プログラマが正しいことをしなかった、という時はないのだが、しかし現実にあなたが手にしているものはこれなのだ。

1900と1904のファイルタイプは両方とも世の中には広く存在しており、それは通常、ファイルWindowsMacのどちらで作られたかによる。一方のタイプから他方のタイプへ黙って変換するのはIntegrity的に問題があるので、Excelファイルタイプを変換することをしない。Excelファイルをparseするためには、あなたは両方を扱わなくてはならない。それはファイルからこのbitをロードするだけの問題ではなく、あなたが日付表示と両方のエポックを扱うparsingのコードまで書き直さなくてはいけないということを意味する。実装には何日かかかるだろうと私は思う。

実際、あなたがExcelクローンの作業をするなら、日付の扱いについて、あらゆる種類の微妙ディティール発見することになるだろう。Excelは日付の値をいつ変換するのか? 表示の整形はどうやっているのか? なぜ1/31は今年の January 31と翻訳され、また一方で1/50はJanuary 1st, 1950と翻訳されるのか? Excelソースコードと同じだけの量のドキュメントを書かないがぎり、振る舞いに関しての微妙ビットを全て完全に記述することはできない。

そしてこのレコードは、あなたが扱う何百もあるBIFFレコードの最初の1つに過ぎず、しかももっとも単純なものなのだ。他のレコードの殆どは、より多くのプログラマーを涙に暮れさせるぐらいには十分複雑だ。

唯一導き得る結論はこれだ。

MicrosoftMicrosoftOfficeファイルフォーマットリリースしたことは大変有用なことだが、しかしそれでOfficeファイルフォーマットインポートしたり保存したりするのが楽になるということは全く無さそうだ。それらは狂気じみて複雑で、リッチアプリケーションで、そしてあなたは人気のある20%の部分を実装して80%の人々を幸せにするというくらいのことしかできない。バイナリファイル仕様によってなされるのは、多く見積もっても、著しく複雑なシステムリバースエンジニアリングにかかる時間を何分か削減するくらいだろう。

オーケー, 私はいくつか回避法を教えると約束した。良いニュースは、殆どの良く知られたアプリケーションにとって、Officeバイナリファイルフォーマットを読み書きしようと試みることは誤った決定だということだ。あなたが真剣に考えなくてはいけない代案が2つある。Officeそのものにそれをやらせるか、書き込むのが簡単なファイルフォーマットを使うかだ。

ヘビーな仕事Officeにやらせよう。WordExcelは実に完全なオブジェクトモデルを持っており、COMオートメーションの手段が可能で、これであなたは何でもプログラムでやるようにできる。多くのシチュエーションでは、Office内のコードを再利用するほうがそれを実装しようとするよりも良い。ここにいくつか例がある。

  1. Webベースアプリケーションがあって、それが既存のWordファイルPDFフォーマットに出力するようにする必要がある場合、それを実装するにはこうする: ファイルを読み込んでからWord 2007のビルトインのPDFエクスポーターを使ってそれをPDFとして保存する、数行のWord VBAコードだ。あなたはこのコードIISで動作しているASPASP.NETコードから直接呼び出す。これでうまくいく。最初にWordを立ち上げるときは数秒かかる。2回目はCOMサブシステムによりWordはまたあなたがそれを必要としたときのためにメモリ中にキープされている。それは通常のWebベースアプリケーションにとっては十分に速い。
  2. 上と同じ。ただしあなたのWebホスティング環境Linuxだった場合。フルライセンスWordインストールされたWindows 2003サーバを買う。そしてその仕事をする小さなWebサービスを構築する。C#ASP.NETでの半日の作業だ。
  3. 上と同じ、ただしあなたがよりスケールさせたいと望む場合。ステップ2で構築した全部のボックスの前にロードバランサーを置きなさい。コードは必要ない。

この手のアプローチは、全ての種類の一般的なOfficeタイプについての、サーバ上であなたがやりたいと思うであろうアプリケーションで、うまくいくだろう。例えば:

これらのケースの全てにおいて、Officeオブジェクトインタラクティブ動作でないことを教えてやる方法があり、だから表示をアップデートするのに煩わされたり、ユーザ入力を促す必要はない。ところで、このようなやりかたでいく場合には、gotchas(?)がいくつかあり、そしてそれはMicrosoftは公式にサポートしているものではない。だからあなたがそれを始める前にはKnowledge baseの記事を読むように。

書き込むファイルにはもっとシンプルフォーマットを使いなさい。単にOfficeドキュメントプログラムで生成したいなら、殆どいつでもOfficeバイナリフォーマットよりももっと良いフォーマットWordExcelでも問題なく開くことができるようなフォーマット存在する。

いずれにせよ、全てのOfficeファイルを完全に読み書きできるような、文字通りのOffice競合製品を作ろうとする(その場合には、何千年もの作業があなたに予約される) のでない限り、Officeバイナリフォーマットの読み書きをするというのは、何であれあなたが解決しようとしている問題を解決するためのもっとも労働集約的な方法だ。

2008-02-01

WEBアプリセキュリティ対策はばっちり?

みんな、どのくらいまでセキュリティ対策してる?

俺の場合は、、、

使用するパラメータ標準入力(POST)、環境変数クエリストリング)を全てチェックして、

不正ならエラーを吐いて中止。

必要に応じてパラメータ削除エスケープ/クォート/サニタイズすればいいのかなあなんて、思ってるんだけど、

実際のところ、どこまでやればいいのか検討つかないや。

DOS攻撃にそなえて、アクセスしてきたIPアドレスは常に解析して、動的にアクセス拒否する必要があるのかとか、

アクセス集中にそなえて動的コンテンツキャッシュするだの、サーバクラスタリングだの、ロードバランサー設置とか、

バックアップは何分おきにやるのかとか、

午前三時にメンテナンスのために作業するのかとか、

ポテトチップスを食べた手でキーボード触るなとか、

地震地帯を避けつつ、法律問題を回避できる国で、税金エネルギーの安い土地にサーバルームを作って、

サーバを鎖で縛って、電磁波遮断して、部屋にかぎ掛けて、クーラー効かせて、元特殊部隊の人をガードマンに雇って、

最終的にはサーバ核シェルターに入れて、あらゆる攻撃から守らなくちゃいけないのかなあ。

ああ、憂鬱だ。

 
ログイン ユーザー登録
ようこそ ゲスト さん