デベロップメントオンラインゲーム開発に最適なプログラミング言語は何か?最近のゲーム開発者は、ゲームをより分かりやすく、魅力的なものにすることに注力しています。そのためには、最適なプログラミング言語を選択するという問題が生じます。すべての要件を満足する言語を選ぶのは簡単ではありませんが、JavaScriptのようなリーダに頼ることは可能です。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。ReplayはNASDAQ公認の株式市場の過去の動向のリプレイと分析を提供するアプリケーションです。Service(S3)を使っています。S3とAIRの組み合わせによって、自前でインフラをほとんど持たないでも強力な展開モデルを実現しています。このシンプルでロバスト(耐障害性のある)な展開モデルはAIRランタイムがクライアントマシンで動くためにできることです。S3は従来の中間層サーバを不要としています。Replayアプリケーションによってユーザは任意の時点の最良気配を見ることができ、リアルタイムにシミュレートされた市場の動きをリプレイでき、ミリ秒レベルまで経過を詳しく見ることができます。投資家であれば最良執行が行われているか、レギュレーションNMS(全米市場システム規制)を遵守されているかを確認できます。ブローカ(株式仲買人)やトレーダ(投機家)は自分が取引を行った時に問題や機会損失がなかったかをレビューできます。ブローカは取引時点のNASDAQ公認の情報を顧客に送ることで、自らの実績を示すこともできます。関連スポンサーコンテンツ投資家やトレーダにとって「何があったのか?」と問いたくなることは、プロであってもなくても普遍的に経験することです。ブローカは最良執行とレギュレーションNMSに合う企業を得たのか?トレーダは機会を逃したのか?どうしてあの小口投資家は予想とは違う値段をつけたのか?投資家、トレーダ、法令準拠管理者がこのような問いに答えるために必要とするのは、実際に何があったのかを秒単位あるいはミリ秒単位で詳細に遡り見ていける手段です。Replayアプリケーションは「NASDAQ公認」のデータを使ってこれを実現します。Replayを有効活用する使用例は多くあります。NMSや他の最良執行ルールに準じてないとみられるトレーダを知らせるレポートを受け取る。Replayを使って該当する取引の時点の相場を再現し、タイムスタンプを合わせるのに時間を進めたり戻したりし、ミリ秒単位のレベルまで拡大して1ミリ秒以上続いた相場を見ていく。分析が終わると、この管理者はNASDAQ公認の履歴やスクリーンショットを顧客あるいは監督機関に見せることでルールに準拠していることを証明できる。ある小口投資家がブローカから取引確認を受け取り、なぜ価格が自分の予想と違ったものになったのかを知りたいと考える。Replayを使って自分が取引した時の市場をリプレイする。この投資家はブローカの実力と市場とをまとめて知ることができる。ある証券会社のコールセンタのオペレータが顧客からある取引の価格についての問い合わせ電話を受ける。Replayから取得してこの顧客に提供する。Replayへのリンクを提供することもでき、そこで顧客はその取引につながる出来事やその後の出来事をリプレイして見ることができる。Replay上の関連するリプレイへのリンクを各取引確認書に記載することもできる。Replayは各顧客からの問い合わせ電話の数とそれにかける時間を減らすことができることになる。積極的な投資家であるトレーダ、あるいはデイトレーダは市場の一連の出来事に合わせた良好な取引を行いたいと考える。トレーダは興味のある市場の出来事を見て、何が起きたかをより深く理解したいと思う。Replayを使うことで出来事をリプレイしたりレビューしたりして実際に何が起きたのかを見ることができる。トレーダは他のトレーダとリプレイを共有して、自分のスキルを実際に示したり相手にアドバイスを求めたりもできる。Replayはあまり熱心でない投資家にもプロの投資家にも市場で何が起きたかを把握するのに必要な情報を提供するのです。AIRプラットフォームの正式版である1.0をリリースしました。AIRとS3プラットフォームの力によって、アプリケーションのコンセプト立案から実際に動作するまでにたった6ヶ月ほどしか掛かりませんでした。10人からなるチームがバックエンドのデータ処理とユーザインターフェースの両面からアプリケーションを実装していきました。Flexを利用して構築され、AIRランタイム上で動作していました。Player上で動作するアプリケーションを構築するために利用するアプリケーション開発フレームワークです。AIRはHTML/CSSやjax、Flash、Flexといったウェブテクノロジーを利用したデスクトップ用のアプリケーションを開発者が作成するのを可能にします。AIRはクライアントアプリケーションを配信できるようオフラインサポート及び簡単なデプロイメントパラダイムを提供します。リプレイに必要な大容量のデータでも格納できるロバストなシステムを提供します。このことでAIRアプリケーションがユーザのコンピュータで動き、データはS3にあるというユニークな配置が可能になっています。これらのおかげでアプリケーションを商用版として配布するのにも重厚なサーバインフラを用意する必要はありませんでした。Replayの実装では同じようなシステムに比べいくつもの方法でその価値を高めています。Flex/AIRテクノロジを使うことで高いレベルの利便性、視覚化、リプレイ機能を実現する。ReplayはNASDAQ公認のデータをNASDAQから直接取得して提供する。Replayは速く安く作れミスも少なくなる。Replayは費用がかさまずスケール性能も高いS3を使うので、データを消去する必要がない。S3の組み合わせはデータの抽出と視覚化を素早く行うことを可能にします。このアプリケーションの主な機能の一つはユーザが任意の時点についての統合された注文板を見れるようにすることです。アプリケーションは新しい注文板をS3から素早く読み取ることができ、AIRはユーザのデスクトップマシンの処理能力をユーザインターフェースを更新するために使うことができます。これによりユーザはある注文板から別の注文板へと簡単に移ることができ、その時はサーバが注文板の次の状態を表示するために再計算し送信するせいでもたつくようなこともありません。AIRこのアプリケーションの機能の最も重要な点は、トレーダがワークステーションで見るのと同じように、ユーザへリアルタイムに市場活動の正確なリプレイを提供することにあります。このためには注文が更新されたメッセージをソートし集約して、任意の時点に関する統合された注文を作る必要があります。Flexで作ったインターフェースでは、メインの2つの画面によってこれを実現しています。タイムチャート:タイムチャートは読み込んだデータから計算した各時点の最良気配を表示します。注文板:注文板の画面は各時点における注文板の全情報を表示し、リプレイ中には動的に更新をします。キーとなるのはアプリケーションがデータのどんな詳細も表示することです。そのためにはミリ秒レベルで売買の変化がわかるまでズームできる必要があります。ユーザがどんどん時間枠をズームしていってデータの各要素を見ることができないといけません。その上、出来事が人間の目で分かるようにリプレイの進む速度を遅くできないといけません。Flexを選んだのは自然なことでした。Runtimeの主な利点はアニメーションをネイティブでサポートしていることで、それによりこのリプレイアプリケーションに強力な視覚化基盤が提供されます。Flexフレームワークはデータの一般的な視覚化方法としてのチャートコンポーネントを何種類も持っています。Flexのチャートコンポーネントは他の標準コンポーネントと同様、リッチな機能を備えると同時に拡張性も備えています。Replayアプリケーションでは標準Flexチャートコンポーネントを拡張したりカスタマイズしたりしています。標準であるFlexのデータ視覚化コンポーネントを使って始めることで、NASDAQは一から始めるより速くカスタムコンポーネントを開発することができました。標準のチャートコンポーネントを使うことはまったく簡単なことです。以下の例では、仮データがMXMLソースファイルにハードコーディングされています。MXMLはFlexフレームワークに含まれる宣言的なXMLマークアップで、Flexアプリケーションのパーツをコーディングするためのものです。Playerのコアなプログラミング言語であるActionScriptが抽象化されています。</mx:Panel></mx:Application>この例では、データ内蔵型の例としてデータをソースにハードコーディングしています。S3データストアから読み込まれます。Chart)コンポーネントを使ってデータを視覚化します。その結果が次のスクリーンショットです。AIRはクライアントアプリケーションにとって理想的な実行環境を用意してくれます。ローカルのリソースを大量のデータを速く処理するのに使えるからです。ユーザは各取引所での最良気配や市場の最良気配の最安値/最高値を計算する時間の幅を選択できます。このような計算には通常大量のデータが必要で結果をはじき出すには重い処理が必要になります。ユーザのリクエストをサーバで処理するには強力なウェブサーバが必要でしたし、各処理リクエストについてラウンドトリップリクエストを待たないといけないため時間がかかるということが起きていました。AIRを使えば最低限のサーバインフラだけ用意して、ほとんどの処理をユーザのデスクトップマシンにまかせることができます。ユーザエクスペリエンスを向上させる別の理由は、リプレイと分析機能のために常にネットワークへアクセスしなくてもいいことにあります。S3からデータファイルを読み込めんでしまえばインターネットに接続できてもできなくてもリプレイや計算ができます。これはNASDAQのクライアントにとって便利なだけではなく、NSDAQの販売員にとっても便利なもので、彼らがクライアントを訪れる時にインターネット接続がなくてもアプリケーションのデモンストレーションがおこなえます。AIRとFlexはアプリケーションの開発を始めるキーとなる要因でした。標準コンポーネントによって開発を始められたことは、高品質の成果をすぐに見せるのに必要なことでした。これらのコンポーネントはアプリケーションを強化するのにあわせてカスタマイズされ、最終的に今の完成版アプリケーションを作り出しました。S3が選ばれた理由は、あまり費用がかからずスケール性能もいい方法で市場データの履歴を保存する必要があったからです。株式市場は日々ギガバイトクラスの取引データを生成します。Replayアプリケーションのためには、全ての詳細が保存され、かつシステムがユーザのリクエストに素早く応えれるようにデータを用意する必要があったのです。NASDAQが長年に渡って蓄えてきたデータをオンライン化してリーズナブルなコストで関係者全員がすぐに利用できるようなデータサービスを求めていたことからもS3は魅力でした。Replayは数十億のファイルをパフォーマンスを犠牲にせず無数のユーザに提供することができるのです。Replayは数ヶ月あるいは数年前の取引に関して監督機関からの問い合わせや法的な調査や顧客の問合せを受けるようなユーザをサポートします。そのため全てのリプレイ用履歴データをすぐに利用できるというのは重要な要件でした。その点S3はずっと高速なアクセススピードを実際に維持してきました。データを保管する前に、NASDAQはテストサーバを使って、データをリアルタイムに配信するためのフォーマットからリプレイ用に最適化したフォーマットへ変換します。この独自の変換処理を行うことでアップロードやダウンロードに最適なシンプルで効率のいいテキストファイルを作ります。これらのファイルはAIRで作ったデスクトップアプリケーションがどれだけでも詳しくリプレイしたり分析したりするのに必要な価格情報を全て含んでいます。Replayは1日に数十万のファイルをS3に送ります。ReplayはCSV形式のデータファイルを使います。S3は大量のファイルを速く確実に保存したり取り出したりできるよう設計されています。そのファイルにふくまれるデータは以下の例にあるようにシンプルで人間にも可読な形式になっています。そのファイル名からは証券コード、日付、そしてデータがカバーする期間の始めの時刻が分かります。最初の数レコードは各取引所の売り気配と買い気配の初期状態です。それに続くレコードは全ての変化を表します。気配株数、買い気配株数、売り気配値、買い気配値、開始時刻(0時から経過したミリ秒)終了時刻(0時から経過したミリ秒)です。Replayによく合うものなのです。いうのも一つのリプレイや分析には限られた量のデータしか必要ないからです。そのため必要なデータだけ格納した手頃なサイズのファイルがサーバにあれいいのです。アプリケーションはユーザのリプレイリクエストからファイル名を決定できます。S3にリクエストして、それが届いたら一回だけパースするだけでいいのです。アプリケーションは今のところ対象株の数や期間が設定されないクエリには対応していません。詳しいレベルまで見たり分析したりするのは単一の株についてだけとなっています。S3に格納されたデータへアクセスするためにRESTとSOAPの両方のインターフェースを提供しています。SOAPの両方のインターフェースが扱えるようになっています。Codeにはas3awss3libというオープンソースのAPIがあり、AIRランタイムでActionScriptを使ったS3とのやり取りを行うための包括的な手段をサポートしています。as3awss3libを使ってファイルにアクセスするコードは以下のようなものになります。as3awss3libのAWSS3クラスのインスタンスを生成し、必要なファイルを取得するgetObjectメソッドを呼び出しています。Flexはリモートサービスに非同期でアクセスします。AWSS3Event.OBJECT_RETRIEVEDイベンに応答するハンドラを使ってgetObjectの結果を処理します。このサンプルではファイルを保存してAlertをユーザに見せるようになっています。この処理ではデータを用意するのに必要なファイルを決めます。一つのファイルは単一銘柄のある日の特定の10分間(9:25-9:35や9:35-9:45などのように統一されます)をカバーします。ファイル名はデータの銘柄、日付、期間が分かるように日付、銘柄、期間をつなげたものになってます。ユーザは銘柄、日付、期間を指定してリプレイを始めることができます。このクライアントアプリケーションは銘柄、日付、期間の情報をファイル名に変換し、S3へ必要なファイルをリクエストします。S3は直ちにファイルを見つけてその内容を返してきます。S3を選んだ理由は、技術的な利点以外に価格モデルもあります。S3の価格は透明性があり予測可能なものです。そのおかげで運用にかかるコストを正確に予測したりリアルタイムにかかった費用を見ることができます。アップロードされたファイルをきちんと用意できることと、それにかかるS3のコストはNASDAQがデータを消去しないですむようにする上で重要なことでした。S3は費用が抑えられますし、その大半はデータをアップロードしたりダウンロードする時に発生されるものです。一ヶ月の間アクセスされないことが多い大量のファイルを維持するのにかかる費用は非常に少なくすみます。Replayが使う容量分だけ課金します。Replayを開発しリリースするのにかかるコストを劇的に減らしました。NASDAQがハードウェアを購入しても、それをフルに使うには数ヶ月も数年もかかるはずです。S3のスケール性と価格モデルのおかげで必要に応じてスケールアップできるので、ユーザの裾野が拡大した時に備えて余分なスペースを買っておく必要もありません。Replayは新しいバージョンがリリースされようとしています。このバージョンでは売買だけでなく株価が含まれるようになります。このためにはアプリケーションに、株価データと売買データの同期、チャート画面の作り直し、売買リストとその指標も示す新しいパネル、売買データの新しい計算などの変更が必要でした。ReplayアプリケーションとAIRとS3プラットフォームが持つアーキテクチャの品質とパワーを証明するものです。AIRは起動ごとに更新がないかチェックしインストールするので、この新しいバージョンを配布するのも容易です。今はソフトウェア業界にとってエキサイティングな時代です。Replayの実装は、強力なデータドリブンアプリケーションが限られた予算内で市場に素早く出ることが可能だという実例です。その多くを担うのがプラットフォームの改善であり、クラウドコンピューティングや強力なクライアントサイド環境の出現の両方に負うところが大きいのです。Replayアプリケーションのフリートライアル版をNASDAQのDataStore(https://data.nasdaq.com/MR.aspx)で手に入れることができます。フル機能版を使いたい方は、いつも使われている株式市場データのプロバイダ(ブローカやファイナンスに関するウェブポータルや金融情報ベンダなど)にたずねてください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。