Critical Windchill and FlexPLM Security Notice

Critical new security patches will be available on Tuesday, July 14. Customers are urged to plan accordingly and apply the patches immediately upon their release.

Learn More
ブログ 実装エンジニアに聞く ThingWorx での開発

実装エンジニアに聞く ThingWorx での開発

2023年12月21日

製品技術事業部 プラットフォーム技術本部
プリンシパル・テクニカル・スペシャリスト

アプリケーションビジネス20年、プリセールス業11年、IoT歴4年。
PTCには2018年4月に入社し、IoT / AR製品のプリセールスを担当。
主にプロモーション、パートナー様のビジネスのサポートを担当。

この筆者の記事一覧を見る
ThingWorx の開発はお客様自身に行っていただくケースやパートナー様に請け負ってもらうケース、PTC のエンジニアが担当するケースなどがあります。
今回は PTC でお客様の開発案件で実装を担当しているエンジニアの渡邉に ThingWorx での開発について聞いてみました。


- はじめに渡邉さんのこれまでの開発経験について教えてください。

はい、PTC に入社する前はいわゆるシステム会社で開発を担当していました。
何十人ものプロジェクト開発というより、少人数で要件定義からテストまで行うような開発が多かったですね。
使用経験のある言語は Java、JavaScript、PHP などです。また、Salesforce 社の Force.com を使用した開発やサイボウズ社の kintone を使用した開発も経験しました。


- なるほど。ローコードプラットフォームでの開発も経験されているのですね。差支えのない範囲でどんなシステムを開発したのかもお聞きできますか?

資産管理のシステムや申し込みサイトのシステムなどです。申し込みサイトは申し込み用の画面とリポジトリだけではなく、申込者のその後のステータス管理をおこなうようなシステムでした。またこれらの帳票出力もよくある要件でした。


- ありがとうございます。では、そのような開発経験がある渡邉さんからみて、ThingWorx での開発はどのような印象ですか?

システムの開発を開始してから一通りの機能と画面をリリースするまでが非常に速いですね。早い段階でリリースして、お客様に確認していただき、改良していくというサイクルを回しやすいです。
また、開発に必要な機能が 1 つのシステムの中に揃っているのも便利です。例えば「接続」、「内部データ構造定義」、「画面開発」、「ロジック実装」などの機能がそろっているので、複数のシステムを組み合わせたり、バージョンの整合性を取ったりする手間が少なくてすみます。ローコードプラットフォームの中には他システムとの連携が難しいものや、バックエンドのロジック実装が難しいものもありますが、ThingWorx はそういった部分の心配が少ないです。


- 画面開発のしやすさはどうでしょうか?

BI などと比較してしまうと少し経験が必要かなと感じる部分がありますし、画面を構成するためのパーツにもう少し機能があるとありがたいかなと思います。でも、先ほどもお話ししたとおり、お客様にお見せする画面を作るまではかなり速く作れます。また、各パーツの機能もリリースごとに強化されていますし、表示系だけではなく入力系のパーツがそろっているのも画面を作るうえでは嬉しいですね。


- 今説明していただいた点を考慮すると、ThingWorx はどんなシステムの開発に向いていると思いますか?

もともとが IoT アプリケーション開発プラットフォームなので、データをリアルタイムに確認してモニタリングするような用途が一番向いていると思います。もちろんデータは IoT 的なセンサーや設備の稼働データだけではなく、他のシステムのデータにも対応できます。また、複数のシステムのデータを手軽に繋いで見せるようなシステムにも向いていると思います。
反対に大量のデータを保持してバッチで処理するような用途にはあまり向いていないかなと思います。


- IoT の話と他システム連携の話が出ましたが、ThingWorx での開発において、IoT 以外の用途での開発はどのぐらいありますか?また、他システムと連携するケースがどれぐらいあるかも教えてください。

感覚的な割合になってしまいますが、IoT システムとしての使用が 7 割ぐらい、IoT に関連しないシステムとしての使用が 3 割ぐらいという感じでしょうか。
また、どちらのケースでも 8 – 9 割ぐらいは他のシステムと連携要件がありますね。


- ほとんどのシステムで他システム連携があるのですね。接続方法はどういった方法が多いですか?

連携先のシステムが Web システムで API を提供している場合はそのまま API を使用して接続します。他には、アクセスが許可されていれば DB 接続でデータを取得するケースや、連携先のシステムが生成する CSV ファイルを取り込むケースがあります。実は ERP などの業務システムとの連携では ERP 側のライセンスの関係や、バージョンアップ時の変更などの事情で最初は直接連携を検討していても、最終的に CSV を使用するケースが多いです。


- 少し技術的な話になってきました。せっかくなので ThingWorx での開発時にどういった技術が必要になるか教えてください。

ThingWorx での開発では JavaScript が重要です。ロジックの実装などは JavaScript で記述しますので、ほとんどすべての開発案件で使用します。それからデータベースと SQL の知識も必要なケースが多いです。先ほどお話しした CSV の扱いも把握しておいた方がいいです。
また特定の技術というわけではないですが、Web アプリの構成イメージとしてサーバーとクライアントの関係性を理解しておくことも重要です。
もちろん ThingWorx の重要なコンポーネントである Thing モデルは理解したうえで開発していただくのがいいと思います。


- これまでの渡邊さんの開発経験が活かされているという感じですね。逆に ThingWorx の開発で苦労するところはどんなところですか?

テストの仕組みという面が強くないので、ユニットテストなど自分たちで工夫して実施する必要があります。また、素早く開発できるところはいいところなのですが、継続して改善していくためには DevOps を考える必要があります。ThingWorx の Extension や Community で Git や Jenkins との統合がガイドされているので、これらを活用しています。
開発したシステムの可読性という観点ではプログラミングとは異なりますので、Thing の構成や Mashupでどのデータを取り出し/保存しているかをドキュメント化しています。


- このあたりは今後の機能実装を期待したいですね。

機能実装の期待という意味ではレガシーウィジェットのマイグレーションというか、置き換えるような機能も期待したいです。ThingWorx の開発が速いとはいえ、既存のMashupのウィジェットを置き換えるのには手間と時間がかかりますので、そういう機能が今後実装されると嬉しいです。


- 渡邉さん、ありがとうございました。最後に ThingWorx の開発に携わる方へのメッセージをお願いします。

ThingWorx は使い方次第で素早くそして面白く価値が生み出せるシステムなので、どんどん開発して、お互いに情報を共有して盛り上げていきましょう!


まとめ

ThingWorx はお客様自身でアプリケーションを開発していただくことも、PTC や PTC のパートナーにご発注いただいて開発することもできます。また、渡邊のような経験豊富なエンジニアがお客様に開発の支援をさせていただきながら初期のアプリケーションを作成し、その後の改修はお客様自身に実施していただくことも可能です。
支援やトレーニングについてお聞きになりたいことがあれば下記へお問い合わせください。
https://www.ptc.com/ja/contact-us
トピック コネクティッドデバイス デジタルツイン インダストリー 4.0
豊福 泰斗

製品技術事業部 プラットフォーム技術本部
プリンシパル・テクニカル・スペシャリスト

アプリケーションビジネス20年、プリセールス業11年、IoT歴4年。
PTCには2018年4月に入社し、IoT / AR製品のプリセールスを担当。
主にプロモーション、パートナー様のビジネスのサポートを担当。

続きを読む