ハードウェア/ソフトウェアアーキテクチャであって、複数のアプリケーションが実行する高レベルのソフトウェアスタックと、ハードウェアプラットフォームタイプを有する、基礎となるハードウェアプラットフォームと、前記高レベルのソフトウェアスタックと前記基礎となるハードウェアプラットフォームとの間に存在し、前記複数のソフトウェアアプリケーションのうちの2つ又はそれ以上が、前記ハードウェアプラットフォームタイプとは独立に、相互に対話するのを可能にするように構成される、ミドルウェア層とを備える、ハードウェア/ソフトウェアアーキテクチャ。前記高レベルのソフトウェアスタック内に少なくとも1つのオペレーティングシステムOSを更に備える、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記ハードウェアプラットフォームタイプは、ARM命令セットアーキテクチャISAを備える、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記ミドルウェア層は、新たな世界標準の命令セットを備えるインタフェースオプションを提供するように更に構成される、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記複数のソフトウェアアプリケーションは、ARMベースのアプリケーションを備え、前記ミドルウェア層は、前記ARMベースのアプリケーションが異なるアーキテクチャ上で実行することを可能にするように更に構成される、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記ミドルウェア層は、オフロードされたレガシーの命令セットアーキテクチャを受け取るように更に構成される、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記ミドルウェア層は、オフロードされた低性能の命令セットアーキテクチャを受け取るように更に構成される、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記ミドルウェア層は、命令セットアーキテクチャISAエミュレータを備える、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記ミドルウェア層は、アーキテクチャ独立のバイナリトランスレータ/エミュレータを備える、請求項1に記載のハードウェア/ソフトウェアアーキテクチャ。前記バイナリトランスレータ/エミュレータは、前記高レベルのソフトウェアスタックを対話するように構成される、請求項9に記載のハードウェア/ソフトウェアアーキテクチャ。前記バイナリトランスレータ/エミュレータは、柔軟かつ適応的で容易に修正可能である、請求項9に記載のハードウェア/ソフトウェアアーキテクチャ。第1のオペレーティングシステムOSを使用して第1のソフトウェアアプリケーションを実行する第1のデバイスと、第2のOSを使用して第2のソフトウェアアプリケーションを実行する第2のデバイスと、ハードウェアプラットフォームタイプを有する、基礎となるハードウェアプラットフォームと、前記第1及び第2のOSと前記基礎となるハードウェアプラットフォームとの間に存在するミドルウェア層であって、前記ハードウェアプラットフォームタイプに関わらず、前記第1のソフトウェアアプリケーションと前記第2のソフトウェアアプリケーションとの間の通信を促進するように構成される、ミドルウェア層とを備える、システム。前記ミドルウェア層は、アーキテクチャ独立のバイナリトランスレータ/エミュレータを備える、請求項12に記載のシステム。前記第1のデバイスと前記第2のデバイスの少なくとも一方は、モバイル電子デバイスである、請求項12に記載のシステム。機械制御される方法であって、ミドルウェア層が、第1のデバイス上の第1のソフトウェアスタック内で実行されている第1のソフトウェアアプリケーションから、ハードウェアプラットフォームを有するアーキテクチャ内における第2のデバイス上の第2のソフトウェアスタック内で実行されている第2のソフトウェアアプリケーションと通信するよう求める要求を受信するステップであって、前記ハードウェアプラットフォームはハードウェアプラットフォームタイプを有する、ステップと、前記ミドルウェア層が、前記プラットフォームタイプとは独立に前記要求を許可するステップとを含む、方法。レガシー命令セットアーキテクチャ、低性能命令セットアーキテクチャ又はその双方を、前記ミドルウェア層にオフロードするステップを更に含む、請求項15に記載の機械制御される方法。前記ミドルウェア層が、新たな世界標準の命令セットを備えるインタフェースオプションを提供するステップと更に含む、請求項15に記載の機械制御される方法。プロセッサによって実行されると、該プロセッサに、第1のデバイス上の第1のソフトウェアスタック内で実行されている第1のソフトウェアアプリケーションから、ハードウェアプラットフォームを有するアーキテクチャ内における第2のデバイス上の第2のソフトウェアスタック内で実行されている第2のソフトウェアアプリケーションと通信するよう要求を受信するステップであって、前記ハードウェアプラットフォームはハードウェアプラットフォームタイプを有する、ステップと、前記プラットフォームタイプとは独立に前記要求を許可するステップとを実行させる命令を記憶する、非一時的な機械読取可能媒体。前記命令は更に、前記プロセッサに、レガシー命令セットアーキテクチャ、低性能命令セットアーキテクチャ又はその双方を、プラットフォーム独立のミドルウェア層にオフロードさせる、請求項18に記載の非一時的な機械読取可能媒体。前記命令は更に、前記プロセッサに、ARMベースのアプリケーションが異なるアーキテクチャ上で実行することを可能にさせる、請求項18に記載の非一時的な機械読取可能媒体。したがって、改善されたハードウェア/ソフトウェアのアーキテクチャの必要性が、特にこれらの間に存在するミドルウェアに関して依然として存在する。開示される技術の実施形態は、限定ではなく例として図面に例示されており、図面においては、同様の参照番号は類似の要素を示している。開示される技術の特定の実施形態は、特定のハードウェア及び/又は命令セットアーキテクチャISAについて開発されたアプリケーションが、これらを実行しなければならないハードウェアプラットフォームのタイプとは独立に実行可能にされる、例えばサポートされることを可能にする。そのような実施形態は、ハードウェア設計の特殊性、並びに一部の場合においては対応するハードウェア及び/又はISAに依拠するアプリケーションをサポートするのに必要な対応するオーバヘッドを取り除くように機能し得る。特定の実装は、高レベルのアプリケーション/OSスタックと、対応するプラットフォームアーキテクチャとの間のトランスレータとして動作する、柔軟かつ適応的で容易に修正可能なバイナリのエミュレータを用いることを含む。プラットフォームで実行されるアプリケーションの観点から、このミドルウェア層は、ハードウェアを抽象化して、例えば標準のインタフェース等の汎用インタフェース又はこれらのアプリケーションが通信するのに用いることが可能なプログラム可能なエミュレータインタフェースのいずれかを提供してもよい。そのような実施形態は、例えばプラットフォームがARMであるか、IAISAであるかに関わらず、あるいは実質的に任意のタイプのアーキテクチャであるかに関わらず、アプリケーションが、プラットフォーム上のネイティブのハードウェアと対話するのを可能にする。特定の実装は、全ての対応するアプリケーションを、例えばARM又は何らかの他のタイプのアーキテクチャ等の基礎となるプラットフォームに関わらず移植可能にすることができる。諸実装は、プラットフォームハードウェア設計が、例えばハードウェアで実装されるようなレガシーサポートをやめることを可能にし、そして本質的に、ハードウェアの進化/再設計を通じて持続的な性能改善に励む際の重荷から解放され得る。アプリケーションスタックは、開示される技術に係るミドルウェア層によって提供されるインタフェースオプションに依拠して、バックエンドのハードウェアと通信する。これらのインタフェースオプションは、新たな世界標準の命令セットuniversalstandardinstructionset、又は現在のISAの場合は、関連するアプリケーションの改善された移植性を含み得る。開示される技術の特定の実装は、特定のタイプの機能性をネイティブに実装するのではなく、その特定のタイプの機能性をエミュレートすることを含み得る。そのようなアーキテクチャにおけるプロセッサは、例えば中央処理装置CPU及び/又はグラフィクス処理装置GPUの能力に関して測定されるような、例えばARMISAをエミュレートするのに十分な処理能力を有し得る。このコンテキストにおいて、バイナリエミュレータをミドルウェアと見なしてよい。例えば小規模アーキテクチャminutearchitecture等の小さなコアを伴う特定の実施形態において、機能性及び/又は性能に関するトレードオフを促進するために、より長いレイテンシを要する命令をエミュレータにオフロードしてもよい。そのような実施形態は、ミドルウェア内の互換性のある層を保持しつつ、例えばx87ISA等のレガシーISA、異質のISA及び/又はあまり頻繁に実行されないISAをオフロードするための機構を含み得る。これらの実装を、例えばユニバーサルシリアルバスUSB接続を介するRS-232プロトコルのエミュレーションを含むシナリオまで拡大して、レガシーポートの数を低減させることも可能である。図1は、現在のプラットフォーム依存のハードウェア/ソフトウェアアーキテクチャ100の例を示すブロック図である。アーキテクチャ100は、例えばアプリケーション及び/又はソフトウェアコンポーネント等のソフトウェア層100と、ハードウェアプラットフォーム130とを含む。ミドルウェア層120は、双方向の矢印128によって示されるようにハードウェアプラットフォーム130と対話し、双方向の矢印112によって示されるように、アプリケーションプログラミングインタフェース層115によってソフトウェア層110とも対話する。図2は、開示される特定の実施形態に係るプラットフォーム独立のハードウェア/ソフトウェアアーキテクチャ200の例を示すブロック図である。この例において、アーキテクチャ200は、高レベルのソフトウェアスタック210、例えばオペレーティングシステムOS及びソフトウェアアプリケーションと、例えばARMアーキテクチャのようなハードウェアプラットフォーム230とを含む。アーキテクチャ200は、高レベルのソフトウェアスタック210とハードウェアプラットフォーム230との間に存在するミドルウェア層220を更に含む。ミドルウェア層220は、双方向の矢印212によって示されるようにソフトウェア層210と対話し、双方向の矢印228によって示されるようにハードウェアプラットフォーム230とも対話する。この例において、バイナリエミュレータのミドルウェア220は、高レベルのソフトウェアスタック210の一部となることがあり、したがって、新たな及び/又は複数の命令セットをサポートするか、性能を改善するように、ネイティブのハードウェアプラットフォーム230を設計し直さなければならないという負荷を必要とせずに、例えば柔軟性、プログラム可能性、素早いターンアラウンドのような従来のソフトウェアに関連付けられた利点の一部又は全てを有することがある。特定の実施形態において、ミドルウェア層220は、ARMベースのアプリケーションを他のアーキテクチャで実行できるように、またその反対も可能にし、その結果、アプリケーションとプラットフォームの改善された相互運用性が得られる。これは、プラットフォーム、アプリケーション及び最終的には複数の消費者に利用可能な選択についての広範な適用性につながる可能性がある。特定の実装において、アーキテクチャ200は、例えば負荷をかけることなく、アーキテクチャ200を解放して新たな性能指標を目標とするために、レガシーのISA又は低性能のISAの対処をミドルウェア220にオフロードすることを可能にし得る。図3は、図2のプラットフォーム独立のアーキテクチャ200のミドルウェア層220のような、開示される技術の特定の実施形態に係るミドルウェア層300の例を図示している。ミドルウェア層300は、様々なタイプのプラットフォームアーキテクチャとインタフェースすることができるプログラム可能なインタフェース302を含む。ミドルウェア層300は、トランスレータ/エミュレータ304、標準アプリケーション/OSインタフェース306、プログラム可能ARM又は他のインタフェース308、あるいはこれらの任意の組み合わせも含み得る。図4は、開示される技術の実施形態の特定の態様が実装され得るデバイス400の例を図示している。デバイス400は、これらに限られないが、デスクトップコンピュータ又はラップトップコンピュータのようなコンピューティングデバイス、ハンドヘルドコンピュータ又はタブレットコンピュータのようなモバイルデバイス、スマートフォンのような通信デバイス、あるいはキオスク又はATMのような業界固有の機械を含み得る。デバイス400は、ハウジング402、ハウジング402と関連するディスプレイ404、ハウジング402と関連する入力機構406、ハウジング402内のプロセッサ及びハウジング402内のメモリ410を含む。入力機構406は、キーボードのような物理的デバイスを含んでもよく、タッチスクリーン内に実装される仮想キーパッドのような仮想デバイスを含んでもよい。プロセッサ408は実質的に、上述されるような複数の動作のいずれかを実行し得る。メモリ410は、プロセッサ408によって実行された処理の結果得らえる情報を格納し得る。図5は、開示される技術の特定の実施形態に係るネットワーク化されたシステム500の例を示すブロック図である。この例において、システム500は、インターネット、イントラネット、ホームネットワーク又はこれらの任意の組み合わせのようなネットワーク502を含む。パーソナルコンピュータ504及び506は、ネットワーク502に接続して、相互に又はネットワークに接続された他のデバイスと通信することができる。システム500は、3つのモバイル電子デバイス508~512も含む。これらのうち2つのモバイル電子デバイス508及び510は、携帯電話又はスマートフォンのような通信デバイスである。もう1つのモバイルデバイス512は、パーソナルデジタルアシスタントPDA又はタブレットデバイスのようなハンドヘルドコンピューティングデバイスである。リモートストレージデバイス514は、コンピュータ504、506、又はモバイル電子デバイス508~512のいずれかによってアクセスされて使用されるデータの一部又は全てを格納してよい。特定の実装において、図2のアーキテクチャ200のような、プラットフォーム独立のハードウェア/ソフトウェアアーキテクチャは、図示されるシステム500内のデバイスのいずれか又は全てに及び得る。例えばデスクトップコンピュータ504上で実行しているアプリケーションは、モバイルデバイス512上で実行しているアプリケーションとの対話を求める可能性がある。プラットフォーム独立のアーキテクチャは、基礎となるハードウェアプラットフォームに関わらず、そのような2つのデバイス504と512との間の通信を可能にし、促進し得る。開示される技術の実施形態を、様々なタイプのアーキテクチャに組み込むことが可能である。例えば特定の実施形態を、以下のいずれか又は組み合わせとして実装してよい。すなわち、1つ若しくは複数のマイクロチップ又はマザーボードを使用して相互接続される集積回路、グラフィクス及び/又はビデオプロセッサ、マルチコアプロセッサ、ハードワイヤードロジック、メモリデバイスによって格納されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路ASIC並びに/あるいはフィールドプログラマグルゲートアレイEPGAのうちのいずれか又は組み合わせとして実装してよい。本明細書で使用されるとき、ロジックという用語は、例としてソフトウェア、ハードウェア又はこれらの任意の組み合わせを含むことがある。本明細書では、特定の実施形態を図示して説明してきたが、開示される技術の実施形態の範囲を逸脱することなく、広範な変更及び/又は等価な実装を、図示及び説明された特定の実施形態と置き換えてもよいことが当業者には認識されよう。本出願は、本明細書において図示及び説明される実施形態の全ての適応又は変形を網羅するように意図されている。したがって、明らかに、開示される技術の実施形態は、特許請求の範囲及びその均等物によってのみ限定されるよう意図されている。