2020年7月23日木曜日

UI/UXとは言うものの・・・

UI/UXとか“クリエイター”さん達はかっこいい言葉を使うのですが、業務システムの場合どうでしょう?


本音ではオフコン時代からのキーでパチパチ速打ち入力がいいと思っている方も多いのではないでしょうか?あまり見ませんがWebでもできます。PCの性能が高くなっている分、Webページにマスターを持たせることもでます。通信が発生しませんから速いです。

サンプルです。1,2,3を打ってください

1日1回 朝食後
1日1回 昼食後
1日1回 夕食後
1日2回 朝食後/夕食後
1日2回 朝食後/昼食後
1日2回 昼食後/夕食後
1日3回 毎食後

薬の用法を分服回数(1日1回、2回、3回)で候補選択する様子を背景色で表示しました。同じように頭数文字でマスター(10,000件以下)を絞り込むことができます。候補をサジェスト表示するのがWebっぽいUIですが業務系では頭3文字+スペースキーで候補表示する方が使いいいです。またUIの紹介したいと思います。
永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年7月4日土曜日

システム開発 〈見積・工数計算〉

システムの設計開発、工数計算をする側のお話です。”見積依頼” とか “提案依頼” の対応、なかなか手間を取ります。それでコンペだったり、価格交渉だったり、使った時間を回収できないこともあります。来ないと困るし、来たら大変だし。だからと言って、おろそかにできません。受注したら責任が発生します。納期、品質を守るにはそれなりのお金が必要で、工数計算間違えていたら大ごとです。その大事な工数計算、このAIの時代になっても進歩していません。逆に技術が細分化、ダイバースしたためトータルで工数を見積もれる人材が減っているのではないでしょうか?

設例)アクセサリーの卸販売を手掛ける企業から、受注業務のシステム化についての見積依頼があった。
出荷配送はサンプル品を除きすべて配送ベンダーに任せており、Webで出荷指示が可能である。ショップからの注文はメール、FAXおよび電話である。FAXが6割、メールが3割、電話が1割で取引先数は 2000件ほどである 
アイテム数はおよそ600、SKUとして3000程度だが、常時入れ変わりがある。オーダーは月平均2000件程度、多いときは5000件、担当者2、3名で平日の営業時間で対応している。 
情報はいったんこれだけだとして、明日までに概算見積が欲しいと言われています。システムの見積できるでしょうか?業界常識など書かれていない与件があるのですが、経験的にはこのシステム ¥5千万から7千万位になるかと思います。もちろん仕事では機能積上げ法の結果と突き合わせます。明日までに概算が欲しいと言われても、¥1千万の見積だしたら大変なことになります。また販売管理パッケージ提案したら物笑いになります。スクラッチです。
このシステム ¥5千万として費用対効果(投資対効果)は見合うでしょうか?2,3名でこなせる業務ですからそのままでは見合いません。同業者と共同利用のような形がとれるなら検討の価値ありです。発注側も見極めが大事です。

情報技術関係の資格試験も増えましたが、工数計算の問題がないのはなぜなのでしょう?工数計算ができないとエンジニアのキャリアも描けないですし、工数計算のできないプロジェクトマネージャーも困ります。直球の問題出してほしいです。細分化した知識試験を積み上げても工数計算も要件定義もできません。ということは知識の持ち腐れになります。
仕事仲間から聞いた話ですが、システムテストが開発工数の〇分の1、システム移行は見積なしという案件があったそうです。基幹系です。情報処理資格は一体何をクオリファイしたのでしょう?発注者のみなさん、お気を付けください。成功に必要なのはコンペよりもセカンドオピニオンです。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年6月25日木曜日

セキュリティ対策 XSS, CSRF, ポップアップブロック そして・・

サードパーティークッキー・ブロック

Webサーバーがコンテンツをブラウザーにレスポンスする際、ヘッダー情報にクッキー ( cookie ) というセッション識別情報を付加することがあります。HTTPプロトコルはブラウザーからのリクエストに対してサーバーがコンテンツをレスポンスして終了です。1ページで終わらないようなアプリケーションの場合、継続しているセッションを知る必要があります。HTMLに識別情報を埋め込んでもよいのですが、コンテンツとは別にヘッダー部にセッション識別情報を組み入れたのが cookie です。

その cookie 、長年の問題がありました。ユーザーが意図していないタイミングで受け取ったり、送ったりしてしまうのです。
例えばニュースサイトをみて通販商品のコンテンツがあったとします。そのコンテンツは別のサイトのものだったとします。ユーザーはニュースサイトを見ているつもりですが、通販サイトはユーザーがニュースサイトのどのページをいつ見たかを記録します(できます)。通販サイトへのリンクをたどらずとも記録されます。ニュースサイトに通販コンテンツがあることを事前にユーザーはわかりません。また一度クリックすると別サイトでも同じ商品の広告が出てくるのはサイトを越えてクッキーの使い回しができるからです(事前にユーザーはわかりません)。このリンクが書き換え、悪用されてもそれっきりです。

この例のようなセキュリティの問題をはらむクッキーをサードパーティクッキーといいます。実はブラウザーの設定でサードパーティークッキーの受け取りを拒否することができます。高い、不便、遅くなるで不評のセキュリティ対策としては、例外的にただ、簡単、遅くならない、しかも強力なものです。ただブラウザーのクッキー設定を変更しているユーザーは少ないのではないでしょうか?会社のPCどうですか

しかし朗報です。Appleは2020年3月に Webブラウザ Safari の初期設定を “サードパーティークッキーの受け取り拒否” としました。サードパーティークッキーの主たる用途は広告宣伝なのです。セキュリティもですが追っかけ広告も鬱陶しいですよね。サードパーティークッキーの濫用というか、そもそもネットマナー、エチケットとしてどうなのかと思っていました。広告宣伝行為として後ろめたさありますよね。会社のマーケティング部門に勤めている知人も個人的にはやりたくないし、自宅のPCはサードパーティクッキーをブロックしているそうです(私もです)。Apple やりますね。マイクロソフト、Google も諦めて欲しいものです。

ブラウザーの設定画面のキャプチャーを貼りました。設定した後は、過去のクッキーをクリアしましょう。クッキー・ブロックは受信拒否であり送信拒否ではありません。過去の設定でブラウザーに保存されているクッキーは有効期限まで送信され続けます

Chromeの設定


Edgeの設定


サイト運営者、Webエンジニアのみなさま、自主的にクッキーポリシー SameSite=Lax  を明示しましょう。Apache であれば mod_header で append SameSite=Lax とするだけです。 php でも jsp でも HTTPヘッダーに反映されます。簡単です。Apache 知っていると得することまたご紹介します。枯れた技術に宝ありですね。
永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年6月21日日曜日

外部認証 OAuth2 業務サービスのクラウドでは?

外部認証、身近なものでは “Facebookでログイン” とか “Googleでログイン” のことです。ユーザ登録は面倒ですし、パスワードも覚えていられないのであれば使われている方も多いかと思います。OAuth2 なのですがコンシューマ向けと業務サービスでは構成、シーケンスに違いがあります。なぜか?というお話です。


最初に業務サービスのの場合の認証シーケンスの例をご紹介しましょう。

ユーザーは認証サイトBにログインし業務サービスを利用していますが、あるオプション機能はサイトAのものだとします。まだサイトAにログインしていないので、オプションメニューをクリックすると、認証トークンが埋め込まれたサイトAへのログインページがサイトBから返されます。ここがポイントで、サイトAへのログインページをサイトAのセッションで返されると、認証トークンをサイトBから得るセッションがブロックされます。なのでサイトAにログインするページはサイトBから返してもらう必要があります。サイトBは有効なセッションをもつユーザー(ブラウザー)に対してサイトAの認証を代行します。認証OKの場合はトークンを返します。トークンはサイトAから提供された秘密台帳による署名付きです。

ログインページはブラウザーのリダイレクション機能を使って直ちにサイトAにアクセスします。認証トークンはサイトAの秘密台帳で検証されログインが成立、ユーザーはサイトAの提供するオプション機能を利用できるようになります。

さて同じことをコンシューマ向けサービスで出来るでしょうか?サイトBを Facebook 、サイトA を転職情報サイトとでもしましょう。Facebookにログインしているユーザーが転職情報サイトのバナー広告をみてクリックします。しかしここで引っ掛かります。サイトAへのログインページです。Facebookに自由にWebページを配置することはできません。このようなシーケンスになります。


いったん、ただのアンカーリンクでサイトAのページを表示します(ページ要求)。そのページはサイトB( Facebook )にリダイレクし認証トークンを受け取ります( 認証要求(1) )。ブラウザーは再度リダイレクしサイトAに認証要求(2)、めでたくログインとなります。
1.サイトBページ→サイトA(バナー広告のクリック)
2.サイトAページ→サイトB(リダイレクション、認証要求、トークン発行)
3.サイトBページ→サイトA(リダイレクション、認証トークン検証、ログイン成立)
4.サイトAページ

これが本来のOAuthの流れなのですが、業務系の場合は1と2をセットで行い、3へ行くことができます。被認証サイトへのログインページを認証サイトに配置できるとシーケンスを簡略化、認証処理の開発、テストも簡素化できます。高品質、安定稼働で安上がりです。業務サービス、企業向けクラウドの場合はこれが可能です。ちょっとしたことなのですが一考の価値ありです。

もう一つ。これはどうでしょう?



先に結論を言うとクロスサイトスクリプティングなので、そのままでは動きません(動いてはいけません)。サイトAのセッションの間にあるサイトBとのセッション(Javascriptで張られたセッション)が、サイトA以外にトークンを渡しうるからです。サイトCもしくは別のユーザーからこのトークンで認証要求されてもサイトAにはわかりません。なりすましでサイトAにログインできます。

postMessage による制限つきの処理も可能ではあるのですが、リダイレクションのような安全かつ一般的な手法を採用しない理由を説明できません。一見構成も簡単なのですが postMessage は特殊なケースに限定されると思います。
ITの世界は流行り、廃りが速いので変化にロバストであるよう、一般的な要素でシステムを構成、簡素化するよう心がけています。寿命の長いシステムはエンジニアの誇りです。ユースケースに応じた簡素な設計、費用対効果の高いシステムほど長持ちです。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年6月1日月曜日

マルチホーミング

マルチホーミング、わかります?ITの世界でマルチホーミングといえば物理的なネットワークの冗長化です。最近とんと聞かなくなりましたが、可用性確保で案外落とし穴かもしれません。クラウド流行りでエンジニアも希少化しているのではないでしょうか。インフラ担当としてアサインされたら焦りますよね。。


クラウドへのアクセスはアプリケーションプロバイダーの責任範囲から外れるのまずネットワークの冗長化要件が来ることはないのですが、以前は自前でマシンを設置してアクセス回線を手配していたので、冗長化も仕事の範囲でした。

最初に確認することは、NTT以外の幹線が建屋の近くの(道路の下)に来ているかで、来ていれば建屋への引き込みを依頼します。大技で有線回線と無線回線を併用するなんてのもありました。冗長化の趣旨からするとできるだけ異なる特性のものを組み合わせたほうが良いので悪くないアイデアです。

さて難しいのは、なじみの薄いL1,L2レイヤーを意識しないといけない点ですが、現在はフルIPなのでまだましですね。それでもルーターを用意してBGPの設定となると、なかなか手ごわいですね。できればパスしたいです。できるのでしょうか?
ことと場合によると出来ます。負荷分散としても割りと悪くない方式だと思います。概略を紹介します。

フロントウェッブは一般的なクラウドサービスに配置し、アプリケーションサービスを別のサービスサイトから提供することとします。マルチホーミングの対象はサービスサイトのみです。
ネームサーバーに www.***.com (フロント), svc1.***.com (サービス1), svc2.***.com (サービス2)の3ホストを登録します。フロントはサービス1、サービス2をタイムアウト付きでコールする javascript を組み込んだページを返します。
もうお分かりですね。サービス1が障害されていれば、タイムアウトしてサービス2にアクセスするという簡単なものです。サービス1のホストが回線A経由で、サービス2のホストが回線B経由でアクセスされます。2つのホストが同一DC内であれば疑似マルチホームで、別々のDCであればDC可用性確保になります。
* サービス1、サービス2のIPアドレスがクラスター共有されていれば元々の定義のマルチホーミングらしくなりますが、やるかどうかはユーザーメリット次第ですね。

何も難しいことはありませんし安上がりですぐに適用できますね。というか、DC可用性確保は基本しておいた方がいいです。有名なクラウドサービスもダウン前提ですから(フロントも複数のホストに配置し、ネームサーバーに登録ですよ)。
タイトルと書きだしを否定するようですが、ルーターでマルチホーミングなんて割りが合いません。ajax のおかげで手軽にサービスレベルを上げることができます。
システム設計は、ユースケース、アーキテクチュア、インフラトータルで見ましょう。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年5月15日金曜日

使える AI 使えない AI

コロナの影響で派手な催しもできず AI / IT バブルがすっかり鳴りを潜めた感がありますが、本当のところはどうなんでしょうか? IT なんて不要不急の代名詞かと思いきや AI 系は影響を受けていないようです。よっぽど医療関係のほうがダメージが大きいです。


わからないものです。医療のほうが不要不急だったとは。ただ区別しないといけません。医療は個人のニーズで、AI / IT は企業のニーズです。たまたま私はそのふたつを掛け持ちしているので比較してしまうのですが、企業活動は個人活動を凌ぐ力、強さがあるようです。

AI にお金払っている個人います?いませんね。パソコン相変わらず賢くありません。このブログも賢くないかな漢字変換で効率悪く作っています。お金出して ATOK 入れたほうがいいのは分かっていますが、人間がカバーして良しとしてしまいます。

ところが、企業は AI にお金払います。AI が全部できる訳ではないです。本当に限られたシーン、適切なユースケースだけです。ただボリュームが大きくなると人間の 1/10 以下のコストで業務をさばきます。24時間365日さばき続けます。10倍、1/10 というのは、パラダイムシフトが起きる目安で、以前のニューラルネットや AI ブームが終わってしまったのは、せいぜい 3倍、1/3 どまりだったからです。

さてタイトルの “ 使えるAI 使えないAI ” 決め手は認識率だけではないです。ユースケース設計です。認識率が 仮に 80% でも、サンプリング調査であれば サンプル数を 25% 増やせば必要なデータは得られますね。ちょっと机上計算をしてみましょう。

・1 サンプル に10円かかる調査 で 1000サンプルなら 1万円、1250サンプルなら 12,500円
・1サンプルを人間がデータ化するのに 10円、AI だと 1円だとします。
 1000サンプルを人間がデータ化するには、1万円
 1250サンプルを AI がデータ化するには 1250円
結果、人間だと2万円、AI だと13,750円です。2万円と1万4千円ではインパクトないですが、2億円と1億4千万円だとしたら、 AI に切替ない経営陣は責任を問われます。

使える AI はユースケースに利があります。利があるユースケースをターゲットにして不要不急のコストをかけずに市場を拡大しています。AI  もまた資本主義の申し子、おそるべし資本主義!資本主義の辞書に自粛という言葉はないようです。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)


2020年4月28日火曜日

システム開発 原価計算・資産計上

以前取り上げた 工事進行基準廃止! 2021年4月から強制適用の影響いかがでしょうか?分割検収が一つの手ですね。要件定義と設計開発が同時に進むようなアジャイルでは分割検収できないのでウォータフォールに逆戻りしている案件もあるのではないでしょうか。その検収ですが異質なのがAI領域ですね。納品時点では認識率が目標値に達していないことがあります。使い続ければユースケースに最適化されていくことは分かるのですが数値保証はされません。“資産計上していいのか?” 経理部さんを悩ませます。


AI技術を搭載した業務システムが導入され、自社業務・自社データで受入試験開始します。1日目で気付くと思います。“カタログスペックまず出ません”。コンピュータって賢くないです。AIだろうと電卓だろうと同じ、しょせん足し算と条件分岐の組み合わせです。コンピュータにはコンピュータに向いた仕事を定義して、単純ロジックに整理してあげないとエラーが多くて使い物になりません。それがユースケースです。ユースケースを整理できるAIはまだありません。一番面倒なところは人間仕事です。

いったん適切なユースケースが与えられれば、AIシステムは処理データ量・使用時間とともに精度が向上していきます。かな漢字変換(ATOKとか)もそうですが、使うほどにユースケースに最適化されていきます。かな漢字変換も入力効率が上がっていきます。大規模なAIシステムだと経済効果が大きなものになります。当初想定した投資対効果を上回り、めでたしとなるのですが、システムの資産価値はどうでしょうか?ソフトウェアなら5年の減価償却が基本ですね。減価償却ということは費用処理できる訳ですが、使うほどに生産性の向上するソフトで利益圧縮ができるなんて経営側から見れば打ち出の小づちです。本来なら、販管費から一部、資産に振替えていかなければならない気がします。類似するのは製造原価計算の副産物の原価控除でしょうか。

大手鉄鋼メーカーの経理部の方にお聞きしたことがあるのですが、現在の製造原価計算法は鉄鋼製造に由来しているところが少なくないそうです。AIソフトの普及、進展とともに減価償却の逆で資産が年々増える会計処理が制度化されるかもしれません。その際は単純な計上基準であってほしいですね。

ところAIソフトですが、最初からカタログスペックに近い値が出るのは不吉なサインです。自社業務のユースケースを学習させる余地がないからです。他社業務のユースケースで学習飽和したニューラルネットを再学習させるのは難しく、学習量の少ない未熟なニューラルネットを強化する方が容易です。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)