x-アプリ ツール・ソフトウェア

応答しないSONY x-アプリ・・・

2013年1月5日

image
WALKMAN を PC につなぐと X-アプリと WALKMAN の間で同期が走るのですが、WALKMANと通信しはじめると間違い無くこの「x-APPLICATION は応答していません」の状態になります。
しばらく待って、WALKMAN の中身を読み込み終わると(数分かかります)操作できるようになります。
待てば操作できるようになるので、デッドロックしている訳では無く、処理待ちでGUIの操作を受け付けなくなるだけのようです。

ご参考までに、マシンスペックは、以下の通りです。

  • Windows 8 64bit
  • Core i5
  • Memory 8GByte
  • SONY VAIO Type Z
  • WALKMAN への転送曲数 推定 1,900曲(容量11GByte程度)
  • WALKMANの種類:NW-S755

ただ、動きを見てみるとどうも、マシンの性能依存では無いように見えます。
USBケーブルで接続されている WALKMAN の状態を見に行かせようとするだけで、簡単に以下のようなハング状態に追い込めます。(数分して読み込みが終わると操作ができるようになります)

image

長いこと Windows アプリを作っていませんが、外側から見るからに、大きな問題は二つありそうな気がします。

・GUIと裏で動く WALKMAN との同期ロジックが完全に独立したスレッドで動いてない。そのため、WALKMANを読みに行っている間は、GUIの操作も受け付けなくなる。
・一度読み込んだ WALKMAN 側の情報をキャッシュしていないため、画面が一度切り替わって戻ってきた時に、再びWALKMAN に直接情報を読み込みに行き、その間GUIの操作を受け付けなくなる。

Windowを持ったアプリを作る時に一番はじめに基礎として習う部分ですが、UIの操作部と内部ロジックは別スレッドで処理を行わないと、内部ロジックが処理を行っている間 GUI が処理を受け付けなくなります。
基礎の基礎の話なので、プログラマがこの事を知らない事はありえなく、となると、内部ロジックが複雑すぎて処理を分割できない程に手がつけられなくなっている。開発を分業化しすぎて”セクショナリズム”の問題でロジックの見直しができなくなっている。等々。個々のプログラマの能力を超えた、恐らくマネージメント的な問題でスタックしているんではないかな・・・と勝手に想像してみます。

ネットでは上手く動作している方もいらっしゃるようですが、「ハング」「フリーズ」の検索語も普通に Google の検索候補ででてきますので、上手く動かない人も相当数いらっしゃるかと。

一方で、上手く動いている人も居る見たいです。ロジック的には”ハングが起きる仕組み”でプログラムが書かれているように見えるので、ハングを目撃していない人は、PCの性能が異常に高い。WALKMAN 側の読み出し性能が高い。転送している楽曲数が少ない。等の理由で、ハングが"目立たない"だけなんじゃやないかな・・・と疑ったりもしてみたくなります。にしては、上手く動くと主張されている方の中でも、数十GByte の楽曲を転送できている方もいらっしゃるようです。

WALKMAN は、WALKMAN 側に曲のデータベースを持っています。どのようなデータベースかわかりませんが、データベースという割には、たかだか1,900曲程度の曲名やアーティスト名、分数等の情報を x-アプリ側に取り込むの2~3分もかかるというのはかかりすぎなんでは無いかな・・・という気がします。ひょっとしてx-アプリとWALKMAN本体側との相性なのかな・・・
となると、そもそも「本来、スレッドを分割するまでの必要が無い。と想定している程短時間で終わる作業に、時間がかかってしまっている」可能性もあるのかな・・・と言う気もします。

いろいろ試してみる。

ざっと推論を巡らしたものの、机上の空論なのでとりあえずいろいろ試してみます。ネットを検索して、以下の2つを試してみました。

1) x-アプリの削除 / 再インストール

残念ながら効果がありませんでした。

2) WALKMANの「メモリーの初期化」
WALKMAN に初期化の手順があります。WALKMAN側の曲は全て消えます。モデルによって手順は違いますが、だいたい「各種設定」の配下にあると思います。

http://qa.support.sony.jp/solution/S1110278023346/

この方法は、改善しました。
WALKMAN を読み込み中は操作を受けつけない。という点はかわらないのですが、ハングの時間がもともと数分だったのが、10秒強くらいに劇的に短くなりました。

まとめ

x-アプリの、「GUIからの操作を受け付けつけずバックグラウンドの処理が終わるまでハングする現象」は、アプリのアーキテクチャー的にはどうしても残るものの、10秒体程度の短いハング(恐らく転送している楽曲数や容量に依存)に納める事ができる場合があるようです。

いづれにしても、WALKMANへのアクセス処理中にGUI操作を受け付けない、x-アプリ側から頻繁にWALKMAN の内容に読み込みをかける。という仕組みは改善してくれれば嬉しいな・・・と思います。
長時間のハングに陥る原因は、WALKMAN本体側にも問題があるようですが、このような内部的な不具合を検知して自動で初期化をしたりユーザーに初期化を促すような仕組みも必要だろうな・・・と感じました。

工業製品に対する細かな気遣いや、微細な部分の精度のすばらしさ。というのは日本の特徴のような気がするのですが、ソフトウェア製品ではなかなかそういったものは日本から出てこないですね・・・
アップルでは、使い勝手や品質についてスティーブジョブズが強烈にダメだしをしていた事はしられていますが、まさしく日本の昔ながらの”職人さん”的な気質を感じます。

が、今の日本のある程度の規模で、チームでアプリ開発をしている現場でそんな事をしても「どこが、だめなのかきちんと教えてください」「これでも仕様は満たしていると思います」「それ以上はできません」「スティーブのような人の下でなければ力を発揮できません」等の反発にあって上手くはいかない気はします。他にも他人の作成している部分に「それじゃダメじゃ無い?」「クオリティ低すぎない?」とスバッと言えるコミニケーションが成立していないと恐らくだめでしょう。

チームで仕上げていく規模のソフトウェア開発だとリーダーは個々のパーツの具体的に書き方や設計まで把握するのは不可能になってきます。ソフトの知識も日々進化していて「こうやれば良い」という昔の知識の蓄積が直接生きてくる事はなくなってきます。
どうしてもできなくて困っている時に、どこからともなく「親方」がやってきて「ほら。こうやってみな」、「すげー親方!」的な事はソフトの世界では、まず起こりません。

そうなってくるとソフト開発のリーダーとしてもとめられるのは、周りの反発をものともしないくらいの、最終的な完成度に対する「美意識に対するこだわり」なのかな。という気がします。
その「美意識」を推し進めるには経営者としての責任も同時に取れるポジションでなければいけないので、そういった意味ではスティーブジョブズは、両方を兼ね備えていたので「美意識」を追い求める。というギャンブルに打って出てマーケットを獲得できたんだろうな。と何故かスティーブジョブズ論になってしまいました。

-x-アプリ, ツール・ソフトウェア

Copyright© エンジニアの何でもメモ帳 , 2021 All Rights Reserved.