SlideShare a Scribd company logo
CyberGarage
情報家電プロトコルスタックの開発
最終報告会資料
今野 賢 (Satoshi Konno)
skonno@cybergarage.org
http://www.cybergarage.org
2005年8月24日
2004年度IPA未踏ソフトウェア事業
CyberGarage応募時目標設定
■概要
組み込みシステム向け情報家電プロトコルスタックとしてUPnPを実装する。
開発は、将来の組込みシステムの高性能化を見越した高機能版と、最低限
機能を有する軽量版の実装を目標とする。
C++およびJava版のUPnPプロトコルスタックの開発経験を活かし、軽量なUPnP
プロトコルスタックを開発する。実装はC言語を想定しており、簡便さをそのままに、
実行速度およびプログラムサイズを考慮しながらデバイス回りの必要最低限の
機能から実装する。手順として、WindowsおよびUnixプラットフォームで基本
機能実装確認後、各プラットフォームへの移植する
■高機能版
既に開発済みC++ 版のUPnPプロトコルスタックをベースに、XMLパ-サー等の
軽量化および移植作業をベースに実装する。
■軽量版
■対応プラットフォーム
組み込み系 : T-Engine、μITRON、BTRON
PC系 : Windows(WIN32)、Linux、MacOSX
CyberGaragePM助言内容/成果
■省サイズ
オブジェクトサイズを100KBとの目標設定に向けて設計および
実装作業を進めたが、UPnP全機能を実装の対象と方向転換
した要因もあり、結果として最終的なオブジェクトサイズは
モジュール選択(コンパイルオプション)により軽量版実績は
230KB~180KBにて完了。
他ベンダーのC言語による実装調査の結果も、200KB程度であり、ある程度妥当な
結果と思われる。ただし、ライブラリ関数領域節約のため、可能なものはマクロ展開
したため、ある程度の可読性は犠牲となった。
■モジュール化
ユーザー側で、組み込みたい機能を取捨選択できるよう軽量版に関してはコンパイル
オプションによるモジュール指定を可能とした。
UPnPデバイス(サーバ)機能/コントロールポイント(クライアント)機能部に大別し、UPnP
デバイス機能も、開発者が取捨選択可能なようコンパイルオプションを導入した。
軽量版
230KB
コンパイルオプション
コントロールポイント機能無効 × ○ ○ ○ ○
デバイス購読機能無効 × × ○ ○ ○
デバイスアクション機能無効 × × × × ○
デバイス問い合わせ機能無効 × × × ○ ○
オブジェクトサイズ 227KB 211KB 194KB 187KB 178KB
有効:○ 無効:×
CyberGarage実装進捗状況
■実装進捗率
No 機能 詳細 高機能版 軽量版
1 基本設計 - 100%
2 SSDP 100% 100%
3 GENA 100% 100%
4 SOAP 100% 100%
5 XML 100% 100%
6 HTTP 100% 100%
7 UPnP 100% 100%
8 入出力 100% -
9 ネットワーク 100% 100%
10 時刻管理 時間管理仮想化関数 100% 100%
11 タスク タスク管理仮想化関数 100% 100%
12 排他制御 排他制御管理仮想化関数 100% 100%
13 文字操作 文字列操作、トークン分割関数等 100% 100%
14 データ構造 ベクタ構造・双方向リスト構造関数等 100% 100%
UPnPデバイス発見/応答サーバ・クライアント機能
UPnPサービス要求/応答サーバ・クライアント機能
SOAPメッセージサーバ・クライアント機能
XMLパーサー/ツリー構造操作機能
HTTP/1.1(RFC2616)サーバ・クライアント機能
UPnPデバイス/コントロールポイント関連機能等
ファイル入出力共通関数 / Java互換入出力ストリーム
ソケット(TCP/UDP)仮想化関数、URL処理機能等
基本的実装は
100%作業完了
CyberGarage移植進捗概要
■プラットフォーム別進捗率
No プラットフォーム高機能版 軽量版 備考
1 WindowsXP 100% 100%
2 Unix 100% 100%
3 MacOSX 100% 100%
4 T-Engine 100% 100%
5 μITRON 95% 95% ミスポ製シュミレータにて作業中
6 BTRON 100% 100% 一部機能実装不可
7 WindowsCE - 100% 実施計画書対応予定外
TCP/UDPプロトコルスタックはKASAGO製
高機能版および軽量版に関する全機能実装および移植作業は完了。主としてこれらの
プラットフォームにて各機能のテストを実施。
■WindowsXP/Unix/MacOSX
■T-Engine
■μITRON
高機能版/軽量版共に、全プラットフォーム依存部をμITRONの関数にて置き換え作業、
タスク/同期関連機能部の動作確認完了。ネットワーク機能部につき動作確認中。
■BTRON
開発途中にOSとしてマルチキャスト機能の不備等の問題があったため、作業上は
コンパイルを通すレベルにて進捗。将来的にはOSが拡張されれば即時に対応可。
高機能版および軽量版に関する全機能実装および移植作業は完了。主としてこれらの
プラットフォームにて各機能のテストを実施。
オープンソース公開の成果として、ユーザー貢献および協力作業にて軽量版の
移植作業完了。
■WindowsCE
済
済
済
済
μITRON移植作業中
CyberGarage
■対象ユーザ
成果公開
UPnPによる家庭内ネットワークまたは組み込み機器の相互接続環境構築の必要性の
ある開発者が主対象。対象者は、個人および企業、商用・非商用を問わない。
またオープンソースであるため、各プラットフォーム移植、HTTPクライアント/サーバー
実装等の教育的側面もあり。
■試験公開
No 代表者 所属 貢献内容
1 Aapo Makela Nokia
2 Johannes Gutlebe CERN
3 Theo Beisch 未確認
4 Rosfran Borges 未確認 軽量版評価
軽量版評価/設計アドバイス
軽量版評価/libxml2(XMLパーサ)対応/バグフィックス
軽量版評価/WindowsCE対応/バグフィックス
本公開に先立ち、軽量版を下記ユーザーに試験公開した。試験公開の結果として
以下のような貢献があり、本成果物に反映させた。
No 成果物 URL
1 高機能版 http://www.cybergarage.org/net/upnp/cc/index.html
2 軽量版 http://www.cybergarage.org/net/upnp/c/index.html
■本公開
高機能版/軽量版共にオープンソース(BSDライセンス)として公開予定。SourceForgeとの
併用を予定しており、同サイトの承認が取れ次第下記URLにて公開予定。
CyberGarage特徴(1)
■オブジェクト指向
BOOL upnp_clock_actionreceived(CgUpnpAction *action)
{
char *currTime = …..;
char *actionName = cg_upnp_action_getname(action);
CgUpnpArgument *currTimeArg =
cg_upnp_action_getargumentbyname(action, "CurrentTime");
cg_upnp_argument_setvalue(currTimeArg, sysTimeStr);
return TRUE;
}
<?xml version="1.0"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0" >
….
<actionList>
<action>
<name>GetTime</name>
…...
</action>
</actionList>
</scpd>
<?xml version="1.0" ?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
……
<device>
<deviceType>urn:schemas-upnp-org:device:clock:1</deviceType>
……
</device>
</root>
/**** デバイス初期化 ****/
CgUpnpDevice *clockDev = cg_upnp_device_new();
/**** デバイス定義情報設定 ****/
cg_upnp_device_parsedescription(clockDev,
    CLOCK_DEVICE_DESC, strlen(CLOCK_DEVICE_DESC));
/**** サービス取得/定義情報設定 ****/
CgUpnpService *timeService =
cg_upnp_device_getservicebyname(clockDev, "urn:schemas-upnp-org:service:timer:1");
cg_upnp_service_parsedescription(timeService, CLOCK_SERVICE_DESC, strlen(CLOCK_SERVICE_DESC);
/**** アクション処理関数設定 ****/
CgUpnpAction *getAction = cg_upnp_service_getactionbyname(timeService, “GetTime”);
cg_upnp_device_setactionlistener(clockDev, upnp_clock_actionreceived);
/**** デバイス開始 ****/
cg_upnp_device_start(clockDev);
……
/**** デバイス停止 ****/
cg_upnp_device_stop(clockDev);
/**** デバイス解放 ****/
cg_upnp_device_delete(clockDev);
UPnP機能を抽象化/隠蔽。開発者はデバイスXML定義およびアクション関数を作成する
だけであり、既存アプリケーションのUPnP対応も容易。
UPnPデバイス定義(CLOCK_DEVICE_DESC)
UPnPサービス定義(CLOCK_SERVICE_DESC)
アクション関数(upnp_clock_actionreceived)
CyberGarage特徴(2)
■軽量性
組み込み系であるT-Engine/μITRONを対象プラットフォームとし、高機能版を含めて軽量性
を重視した。高機能版は従来より軽量化し、軽量版のオブジェクトサイズは220KB。
本成果物を含め、開発者はC/C++/Javaの多様プログラム言語の選択が可能である。また
各プログラミング言語版の基本設計は共通であり、その移行は容易である。
■多言語対応
C++版 Java版 C言語版
using namespace CyberLink;
Device *dev = new Device();
dev->loadDescriptoin(….);
dev->setActionListener(dev);
dev->setQueryListener(dev);
dev->start();
……
dev->stop();
import org.cybergarage.upnp;
Device dev = new Device();
dev.loadDescripton(……);
dev. setActionListener(dev);
dev. setQueryListener(dev);
dev.start();
……
dev.stop();
CgUpnpDevice *dev = cg_upnp_device_new();
cg_upnp_device_parsedescription(dev, ….);
cg_upnp_device_setactionlistener(dev, …);
cg_upnp_device_setquerylistener(dev, …);
cg_upnp_device_start(dev);
……
cg_upnp_device_stop(dev);
■移植性
一般的なWindows(WIN32)やLinuxプラットフォームだけではなく、Unix全般および
組み込み系のT-Engine/μITRONを含む、幅広いプラットフォームを対象としている。
機種依存部は基本機能部のみで、他プラットフォームへの移植対応も容易
■オープンソース
オープンソースの一般的な特徴については割愛するが、公開ライセンスとしてBSDを
選択しているため、商用/非商用を問わず同ライセンス下で自由に活動できる。
また、試験公開時にもユーザーからの貢献があり、今後も完成度向上に向けて、
優秀な技術者の協力が得られる点も魅力である。
CyberGarage動作環境
TCP/IPプロトコルスタックとしてKasago for T-Engineが必須。本プロトコルスタックの選定
理由は、マルチキャストに対応していた為。開発ではパーソナルメディア社製の「T-Engine/
SH7727開発キット」を選択。
■T-Engine
■μITRON
ミスポ製μITRONおよび同社のTCP/IPプロトコルスタックが必要。本製品の選定選定理由
は、ITRON TCP/IP API仕様を独自拡張してマルチキャストに対応していた為。開発では
同社の「NORTi Simulator」を選択。
WindowsXPにて動作確認。基本的にはWIN32プラットフォームでの動作は問題ないと
思われる。WindowsCEに関しても、動作確認済み。
■Windows/WindowsCE
■UNIX
Automakeによるソースコンパイルが必要。開発環境としては、主にFedoraCore1および
MacOSXにて動作確認。
■BTRON
パーソナルメディア社製の超漢字4を開発環境として選択。マルチキャスト機能の不備に
より、コンパイル動作確認程度。ただし、タスク/同期等移植可能な部分は全て作業済み。
CyberGarageデモストレーション
■システム構成
UPnP
Clock Sample
T-Engine(SH7727) WindowsXP
CyberGarage開発全体の苦労点
T-Engineではシリアルコンソール経由のソフトウェアデバッガでの開発環境であったため
デバッグ作業に時間がかかった。高価ではあるが、もう少し開発機材を充実すべきで
あったかもしれない。
■デバッグ環境
■サポート体制
T-Engineベンダーでは購入後1ヶ月のみの技術サポートしかなく、実質的なサポートが
受けられなかった。μITRONベンダーに関しては、回答に時間がかかり、かつ中々要領が
得られなかった。
基本的にベンダー頼りの開発形態となり、迅速な開発を進める上で、一般公開された
情報が豊富に、個人でも参加できるユーザー会等が存在すると有難かった。
■機種選定
各組み込みプラットフォームの事前情報ががなく、資料集めにはベンダー個別に
問い合わせの必要があり、時間を要した。
特にT-Engine/μITRONではマルチキャストに対応しているTCP/IPプロトコルスタックの
選定に要領が得られず、こちらの質問に対するベンダー担当者からの回答がない/
誤った回答である場合もあり、選定に時間がかかる要因となった。
CyberGarage今後の展開
今後もオープンソース公開によるユーザー要望の反映およびバグフィックス等により
完成度を上げる活動を継続予定。
■プラットフォーム拡充
■オープンソース活動の継続
■他プログラミング言語対応
特定プラットフォームでメジャーな言語、スクリプト言語への対応を予定。具体的には
Objective-C(MacOSX)やRubyへの対応を予定している。特にスクリプト言語に関して
は、下記ビジュアル言語実行エンジンとしての布石としたい。
より低価格で処理性能の低いプラットフォームへ対応したい。近々はEmbeddedLinux、
将来的にはワンチップマイコンレベルまで視野に入れ拡充を予定している。
■情報家電ビジュアル言語
家庭内の情報家電を相互接続して定型処理
(例:ドアが開けばエアコンが動作)等の設定が、
初心者でも簡単に設定できるようなビジュアル
言語の作成を予定している。
右図は以前開発した3Dコンテンツ用ビジュアル
言語だが、データフローを主として
オブジェクト指向的な言語を開発したい。
CyberGarageまとめ
本成果物の公開により、対応プラットフォーム(WindowsCE)、
対応XMLパーサ(libxml2)等の、実施計画書にはない機能
追加の結果となった。
■μITRON移植作業遅延
■オープンソースによるユーザー貢献
μITRONのネットワーク関連部に関して現在も作業中である。進捗遅延の要因としては
他工程(主としてT-Engine移植作業)増大、ネットワーク部の理解度不足(固定リソースや
TCP/UDP関数分離)および開発環境/ベンダーサポート体制の不備等である。
■BTRON事前調査不備
超漢字4でTCP/IPプロトコル実装の一部機能不備が判明したため、対象プラットフォーム
としての優先度を下げた。ただし、マルチキャスト関連部以外のネットワーク機能、その他
タスクや同期管理等の移植可能な機能について作業は完了させ、将来的な拡張に備えた。
■UPnP機能全実装
実施計画当初、開発期間の要因もあり、軽量版に関してはUPnPの全機能を実装の
範囲としないことで、組み込みプラットフォームにおける省サイズ/省メモリに重点を
置いていたが、他社製品との相互接続性に問題がある可能性もあり、全機能実装とした。
ただしHTTPクライアント/サーバ機能部に関しては、軽量版はHTTPv1.0を基本とした
実装に留め、機能過多によるオブジェクトサイズ増加を防いだ。
完成自己評価
95%
CyberGarageおわりに
本事業により、個人レベルでの開発に障壁がある組み込み系プラットフォームの経験、
UPnPプロトコルスタックをC言語で新規設計の機械を与えて頂いた事に感謝したい。
またプロジェクトマネージャの坂村健東京大学大学院教授、YRPユビキタスネットワー
キング研究所の越塚登/新堂克徳両氏には本プロジェクトにおいて様々なご指導を
頂いた。
また、Aapo Makela、Johannes Gutlebe、Theo Beisch、Rosfran Borgesには本成果物の
機能および完成度向上に多大な貢献を頂いた。ここに記して感謝したい。

More Related Content

Similar to 2004年度IPA未踏ソフトウェア事業 情報家電プロトコルスタックの開発

Microservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureMicroservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureTsukasa Kato
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)Ryuuta Tsunashima
 
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化Yusuke Goto
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
Infrastructure of Pathtraq
Infrastructure of PathtraqInfrastructure of Pathtraq
Infrastructure of PathtraqKazuho Oku
 
El text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiriEl text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiriRCCSRENKEI
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像Akira Inoue
 
Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Yutaka Kawai
 
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...Insight Technology, Inc.
 
MozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術についてMozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術について Takagi Koichi
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発Ryuuta Tsunashima
 
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugJAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugYasuhiro Matsuo
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)RCCSRENKEI
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Shingo Kitayama
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばYoshihiro Nakajima
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIMPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIKentaro Ebisawa
 
Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介npsg
 

Similar to 2004年度IPA未踏ソフトウェア事業 情報家電プロトコルスタックの開発 (20)

Microservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureMicroservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on Azure
 
gRPCurlDotNet.pptx
gRPCurlDotNet.pptxgRPCurlDotNet.pptx
gRPCurlDotNet.pptx
 
GTC Japan 2017
GTC Japan 2017GTC Japan 2017
GTC Japan 2017
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
 
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
Infrastructure of Pathtraq
Infrastructure of PathtraqInfrastructure of Pathtraq
Infrastructure of Pathtraq
 
El text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiriEl text.tokuron a(2019).katagiri
El text.tokuron a(2019).katagiri
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
 
Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)Open capi meetup20180409 (revised)
Open capi meetup20180409 (revised)
 
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
 
MozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術についてMozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術について
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発
 
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugJAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIMPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
 
Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介
 

2004年度IPA未踏ソフトウェア事業 情報家電プロトコルスタックの開発