goo blog サービス終了のお知らせ 

Smile Engineering blog ( スマイルエンジニアリング・ブログ )

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

戦術

2015-06-29 09:30:00 | 最新技術動向展開
今月は技術っぽくない話題ですが、
ちょっと箸休め的な視点で書いてみました。

最近では海外のサッカーを見る機会が多くなりましたが、
特に感じる事は、チーム戦術の2極化が進んでいる事です。
それぞれの戦術を簡単に説明すると以下のように整理できます。

◆ポゼッション

 利点
 ・ボールを支配する時間が長いため、主導権を握れる
 ・ボールを失わない限り、失点のリスクが無い
 ・相手を走らせて、体力を消耗させることができる

 欠点
 ・浅い守備陣形のため、最終ラインの裏を突かれるリスクが高い
 ・多数の細かいパスを使うため、パスミスからピンチに陥る可能性がある

◆カウンター

 利点
 ・深い守備陣形のため、最終ラインの裏を突かれるリスクが低い
 ・攻撃に転じた際、スペースを大きく使える

 欠点
 ・守備でボールを追いかける時間が長いため、消耗が激しい
 ・攻撃の際、自陣深い位置からとなるため、相手ゴールまで遠い


どちらが優れているという訳ではなく、それぞれ利点と欠点を持ち合わせており、
相手のパフォーマンスを上回れるかで勝敗が決する気がします。
そして、最近では相手に合わせて使い分けてくるチームも存在します。
戦術理解度も2倍要求されるので、実を結ぶまでの道のりは険しいようです。


ここで恒例の「業務に役立つ発想」に結び付けてみたいと思います。

我々IT業界の業務形態にも様々ありますが、
常に問題や課題と向き合いながら、チームとして動いています。

自分たちから能動的に対処した方が良い問題もありますし、
一歩引いた位置で、状況を確認してから行動した方が良い場合もあります。

強いチームを作るには、置かれている状況を分析し、
効果的な戦術を選択して遂行する。
という事をくり返し、練度を上げて行く事が近道だと思います。

サッカーで、みんながポゼッション戦術で動いているのに、
一人だけカウンター戦術で動いていたら・・・
そこからパスミスが続出して主導権を失いピンチに陥る可能性があります。

業務でもチームの進捗を進めるために、何をすべきか考えながら作業するのと
何も考えずに作業をするのでは、すぐに差は出ないかもしれません。
が、長い時間を掛けてチーム力は熟成されていくと思います。

常日頃から、戦術理解度を高める事と、周囲とのコミュニケーションが
重要であることを改めて再認識できました。

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

Cyber Physical Systems(CPS)

2015-06-08 19:57:53 | 最新技術動向展開
今回はCyber Physical Systems(CPS)を紹介致します。

実世界(Physical空間)にある多様なデータをセンサーネットワーク等で収集し、
IT(サイバー空間)で大規模データ処理技術等を駆使して分析/知識化を行い、
そこで創出した情報/価値によって、産業の活性化や社会問題の解決を図り、
実世界とITが緊密に結合された相互関係を作りだすシステムがCPSです。
とても難しいですね。何の事やら、、、

CPSについて、ゆっくり理解していきたいと思います。

近年のIT技術の発展はめざましく、これにともないIoTの取り組みが進んでいます。
IoTの進化により、いままでデジタル化されることの無かったデータが、
大量にインターネットに流通されるようになってきました。

例えばバイタルデータ。血圧計でシュポ、シュポ。とても古い話ですね。
最近は、手首に巻くスマートなバンドとスマートフォンですかね。
計測したバイタルデータはデジタル化され、スマートフォンやクラウドへ。
これは「すごい最新技術!」ではなく、今や当たり前ですね。
このようにIT技術の発展により、データはデジタル化されています。

このデジタル化されたデータも当初は各々のデータとして扱われていました。
最近では(最近といっても少し昔のことですが)
デジタル化されたデータはビッグデータとして集積された状態になっています。
これらデータを解析、分析することで得られる情報は多く、
これら情報を実世界で利活用する事は、高度で快適な実世界を創ることに役立ちます。
ビッグデータ等を活用して得られた情報を実世界に利活用する事で、
実世界は高度で快適になると考えられます。
これを実現するために必要なシステムがCPSです。

CPSを活用することで実世界には今までにない付加価値が生まれ、
いまは当たり前の事がCPSを活用した世界では変わってくると考えられます。

どのように変わるのでしょうか。
健康や医療というキーワードで少しイメージしてみましょう。

いまは、
体調の不調を感じると病院へ行き治すといった『治療』という考えが当たり前ですが、
CPSを活用すると『治療』という意識が『予防』にシフトすると考えられます。

日々のバイタルデータ等は集積されるでしょう。
老若男女あらゆるタイプのデータがビッグデータとして。
ある特定の人のデータを時系列に見るだけでも得られる情報はあるでしょうが、
さまざまなデータを組み合わせて分析する事で、予測が可能となります。
「喉が痛い。風邪の兆候」というレベルのものではなく、
「何十年後にかかる風邪」というレベルでの予測が可能になるのかもしれません。
このような世界では、病気になる前に対策ができるため、
『治療』という意識よりは『予防』へと意識が変わるのです。

健康や医療というキーワードを用いて、想像しやすい例で考えてみました。


そもそもCPSという言葉が注目され出したのは、2009年のことです。
米国の科学財団がCPSに関するワークショップを開催し、CPSの可能性や課題などを議論しています。

日本のWEBサイトを検索してみると、あるWEBサイトでは2010年11月ごろから2011年2月にかけて、
CPSに関する連載が行われているものもありました。

IoTの発展とともに再度CPSが注目されています。

国を挙げての取り組みはIoTの発展と共に加速し、
今後私たちの暮らしに改革をもたらすことでしょう。


monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

アシスト

2015-05-27 09:30:00 | 最新技術動向展開
今回紹介したいのは、車に関する技術の話題です。

最近の自動車メーカーの動向として、自動ブレーキのような
運転をアシストする機能の開発に力を入れているようです。

車の運転好きな私としては、過剰に運転をアシストする機能は好みませんので、
動力をアシストする機能を紹介したいと思います。

現在ではかなり普及してきているハイブリッドカーですが、
その動力アシスト機能は大きく3つに分類できます。

①パラレル方式
 基本はエンジンで走行しますが、大きな力が必要なときは
 モーターが動力アシストします。
 力が必要でないときは、モーターを発電機として充電します。
 イメージとして、電動アシスト付き自転車が近いです。

②スプリット方式(シリーズ・パラレル方式)
 発進時はモーターのみで走行しますが、速度が上がってくると
 エンジンとモーターを効率よく使い分けて走行します。
 複雑な制御をしていますので、モーターと発電機は別々です。
 恐らく流通している数は一番多いです。

③シリーズ方式
 モーターの力のみで走行します。
 エンジンの動力は全て発電機へ入力され、走行には利用されません。
 発電機を積んだ電気自動車です。
 モーターと発電機、バッテリー容量が大きいものを要求されるため、
 あまり採用されていないようです。

それぞれ性格の異なる動力アシスト機能ですが、
一番アシストしたいタイミングは発進時という事が判ります。
やはり、発進時が最も燃料を消費するからでしょう。


一般車のアシストも面白いのですが、
レーシングカーのアシスト機能も方向性が違うので
少しだけ触れておきたいと思います。

その昔、1990年代のF1では「オーバーテイクボタン」というのが付いていて、
押している間、燃料に添加剤を混ぜる事によりパワーが上がる仕組みがありました。
が、公式な発表など無かったので、本当に付いていたかは定かではありません。

数年前の状況では、ブレーキ時に蓄電した電気を使い
モーターによるアシストがあったと思います。

そして最近ではインディーカーが好きでよく見ていますが、
やはり「プッシュトゥパス」というアシストシステムが付いています。

モーターや燃料添加剤によるアシストではなく、
ターボチャージャーの過給圧とエンジン回転数の引き上げによるアシストです。
厳密にはアシストと呼ぶのは苦しいかもしれませんが、
一時的にパワーを追加するという見解で大目に見てください・・・


ここで業務に役立つ発想ができないか考えてみました。

発進時のアシストが一番効果的であることを踏まえ、
若い人が初めての作業をする際、周囲からアシストする事が
組織にとって効果が高いのではないかという考えに至りました。
その際は、やり方とタイミングが大事だという事を再認識しました。

そして、最後に最新技術っぽい事を思いつきましたが、
近い将来、一般車のアシスト機能とレーシングカーのアシスト機能を組み合わせた
画期的な車が世に出てくるかも知れませんね。


monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

HTML5のお勉強 第2回 ~WebWorkers~

2015-05-20 13:21:41 | 最新技術動向展開
ちょっとずつ色々な話が出てきているWindows 10ですが、
その機能の中に「Universal Windows Platform(UWP)」というものがあるそうですね。
AndroidやiOSを含む様々な端末向けに開発されたアプリケーションを、
出来るだけ手を加えずにWindows上で動作させることを目的としています。

その中にはHTML+CSS+JavaScriptで記述されたWebアプリケーションも含まれていました。
スマートフォンのネイティブアプリをHTML+CSS+JavaScriptで作成することが
ある種の流行となっていた気がしますが、とうとうWindowsでも標準でサポートするようです。
そんな勢いに乗っているWeb技術ですので、知っていればきっと役に立つと思います。


さて、今回はWebWorkersをご紹介します。
JavaScriptでは旧来から「シングルスレッド」であるがゆえに出来ないことが数多くありました。
時間のかかる複雑な計算をしたり、サイズの大きなファイルを操作したり…。
こういった処理をするたびに画面が固まり、
「応答のないスクリプト」の警告メッセージを見た方は大勢いらっしゃると思います。

そういった状況に対応すべく、WebWorkersというものが登場しました。
端的に申しますと、JavaScriptのマルチスレッド化です。
しかも、WebWorkersは他の言語におけるマルチスレッドと比較して非常に扱いやすく、
デッドロックのような問題も発生しづらい堅牢な作りとなっています。


WebWorkersは概ね下記のような形で使用します。


  ◆UIスレッド側◆

  // ワーカースレッドを生成する。
  var worker = new Worker("JSファイル名またはURL");

  // ワーカースレッドからのデータを受け取る。
  var worker.onmessage = function(message) {
    // 「message.data」にワーカースレッドから渡されたデータが格納される。
  };

  // ワーカースレッドへデータを送る。
  worker.postMessage(/* 送りたいデータ(文字列かJSONオブジェクト) */);


  ◆ワーカースレッド側◆

  // UIスレッドからデータを受け取る。
  self.onmessage(message) {
    // 「message.data」にUIスレッドから渡されたデータが格納される。

    // 好きな処理をする。
    // ここで行う処理は画面とは無関係に実行されるため、
    // 画面が固まったりすることはない。

    // UIスレッドへデータを送る。
    self.postMessage(/* 送りたいデータ */);
  }


似たような文字の羅列で読みにくいかと思いますが、
WebWorkersの基本的な使い方は上記の通り30行にも満たない
とてもシンプルなものとなっています。

それぞれ少しだけ解説します。



■WebWorkersの生成

  ◆UIスレッド側◆
  // ワーカースレッドを生成する。
  var worker = new Worker("JSファイル名またはURL");

ここでWebWorkersの生成を行っています。
引数のJSファイルはWebWorkersを生成(new Worker)した関数が
終了した後に別スレッドで読み込みを開始するようです。

基本的にはWebWorkers用のJavaScriptファイルを用意してそのパスを引数として渡しますが、
Data URI Schemeを利用することでWebWorkersの処理内容を動的に生成することもできます。



■UIスレッドとワーカースレッド間の通信

  ◆UIスレッド側◆
  // ワーカースレッドからのデータを受け取る。
  var worker.onmessage = function(message) {
    // 「message.data」にワーカースレッドから渡されたデータが格納される。
  };

  // ワーカースレッドへデータを送る。
  worker.postMessage(/* 送りたいデータ */);

  ◆ワーカースレッド側◆
  // UIスレッドからデータを受け取る。
  self.onmessage(message) {
    // 「message.data」にUIスレッドから渡されたデータが格納される。

    // UIスレッドへデータを送る。
    self.postMessage(/* 送りたいデータ */);
  }

どちらのスレッドからでも、postMessageメソッドを呼ぶことによって
もう一方のスレッドへデータを送ることができます。
この時に文字列かJSONオブジェクトを1つだけ引数として渡すことができます。

データを受け取るには、onmassageハンドラやaddEventListenerなどで
イベント発生時に呼ばれる関数を設定しておく必要があります。



■いくつかの注意点

・ワーカースレッド内ではDOM操作が出来ません。
 ワーカースレッドは完全に画面から切り離されているため、
 UIスレッドで使用できるwindowやDOM要素を操作することができません。

・スレッド間の通信で渡すデータは複製したものが渡されています。
 サイズの大きなオブジェクトを渡す場合、相応の時間がかかります。

 「Transferable Objects」を利用することで、
 データを複製することなく高速に渡すことも可能です。
 ただし、Transferable Objectsで利用できるデータは今のところ
 「Uint8Array」などのArrayBufferとMessagePortの2つだけのようです。



簡単な使用例も作成してみました。
ファイルをドラッグ&ドロップすることで、ZIP圧縮してくれます。
※大量のメモリを消費しますので、~10MB程度のファイルに留めてください。

http://s.codepen.io/jsp-t/debug/mJErYv
(ソースはこちら: http://codepen.io/jsp-t/pen/mJErYv )



monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業

MQTT

2015-04-22 08:30:00 | 最新技術動向展開
今回はMQTTを紹介します。

M2MやIoTで使えるプロトコルです。
(formerly Message Queue Telemetry Transport)
アプリケーションレイヤーのプロトコルです。

M2MやIoTの何に使えるのか?
M2MやIoTの世界では、
機器同士がお喋りするわけです。

お喋りのお約束が必要ですよね。
まさに「プロトコル」なのですが、
機器同士でやり取りする
メッセージのお約束が「MQTT」です。

特徴は、軽量なところ。
メッセージヘッダとか、少なめ。
何故軽量である必要があるか?

M2MやIoTの世界、
ひ弱な機器もいるでしょう。きっと。
また、たくさんの機器がおるわけで、
トラフィックも半端ないでしょう。
想像できますね。

なので、
軽量なメッセージングプロトコルが必要なわけです。

ちなみに、
MQTT v3.1.1 というバージョンが、OASISで仕様化されています。

ちょっと MQTT に触れてみよう!というJava好きな方は、
「Apache Apollo」と「Eclipse paho」を使うと
簡単にM2Mのサンプルが作れるようです。

以前は「Message Queue Telemetry Transport」と言っていた。
MQTTには「Queue」という概念がないため、
いまは「MQ Telemetry Transport」が正しいようだ。

私は、
M2M,IoTというキーワードに関連してMQTTを知りましたが、
Facebook MessengerはMQTTを使っているのですね。

調べ物、もっと上手にならないとな。
ここから派生して、いくらでも調べられるわけで、
知らないことは山ほどあるわけで。

興味があるものから少しずつ、
私の最新技術動向として展開できればと思っております。


以上


monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業