ローコードベンダーロックインからの脱却
ローコードプラットフォームでベンダーロックインに対処する方法を学ぼう。
Iván Alfonso, Aaron Conrardy, Jordi Cabot
― 1 分で読む
目次
ローコードプラットフォームは、ユーザーが最小限の手書きコードでアプリケーションを作成できるツールだよ。ビジュアル的にソフトウェアを構築・修正できるから、開発が速くなってプログラマーじゃない人にもアクセスしやすくなるんだけど、これらのプラットフォーム同士の連携が悪くて、ユーザーにとってはイライラする経験になっちゃうことが多いんだ。
ベンダーロックインの問題
ローコードプラットフォームを使うときに直面する大きな問題の一つが、ベンダーロックイン。特定のプラットフォームでアプリを作ったら、別のプラットフォームに移動するのは、悪い関係から抜け出すみたいに大変で、ゼロからやり直しになっちゃう。異なるプラットフォーム同士はうまく情報を共有できないから、行き詰まることも。簡単に言うと、ヘアサロンで自分の髪型を変えようとしても、前髪しかカットできないサロンにいる感じ。
相互運用性って?
相互運用性は、異なるプラットフォームが異なる言語やルールを持っていても、一緒に機能できる能力のことだよ。パーティーで異なる文化の友達がコミュニケーションを取るのと似てる。お互いの言語だけ話すと、うまくやっていくのは難しい。良好な相互運用性があれば、異なるプラットフォーム同士が理解し合えて、ユーザーがプロジェクトをもっと簡単に移行できるんだ。
現在のローコードプラットフォームの状態
ローコード市場には、Mendix、OutSystems、Microsoft PowerAppsなどいくつかの人気プラットフォームがあるよ。これらのプラットフォームは強力な機能が知られてるけど、プロジェクトを移動するオプションが限られていることで批判されることも多いんだ。最高のフードトラックが町にあっても、一種類のタコスしか提供しないみたいなもん。お客さんはタコスが大好きだけど、いつか他のトラックのブリトーが食べたいと思っても、タコススタンドから離れられない。
これらのプラットフォームは、インポートとエクスポート機能が限られてることが多くて、大きな障害になっちゃうんだ。同じ技術フォーマットを使っているかもしれないけど、スキーマや基盤となる言語が十分に違って、データ移行に障害が出るんだ。
相互運用性の分析
ローコードプラットフォームの相互運用性を理解するためには、モデルのインポートとエクスポートのオプションを見てみよう。新しい料理を作るためにキッチンの在庫を確認するのと同じ感じだね。
プラットフォームが基本的な機能しか提供しないと、多くのユーザーが不完全なレシピを持つことになる。例えば、あるプラットフォームはデータ構造をエクスポートできても、アプリがスムーズに機能するために必要な関係や他の重要な詳細はエクスポートできないことがあるんだ。そうなると、ユーザーは半焼けの材料で料理を作っているシェフになっちゃうから、完全な食事を作るのはかなり難しい。
相互運用性へのアプローチ
相互運用性を向上させるために、モデルベースのアプローチが導入されるよ。これは、ユーザーがプロジェクトを移行したいときに、毎回ゼロから始めるのではなく、標準のポイントから始められるってこと。異なるブランドのテレビを管理するためのユニバーサルリモコンを持つようなものだね。
このモデルベースのアプローチは、主に2つのシナリオで機能するよ:
-
正式なエクスポート方法:プラットフォームがモデルをReadableなフォーマットでエクスポートできる場合、その情報を簡単に抽出して移行の準備ができる。
-
代替エクスポート方法:正式なエクスポートを提供しない場合は、視覚認識手法を使ってモデルのスクリーンショットを分析し、画像に基づいて新しいモデルを生成できる。
正式なエクスポート方法
プラットフォームがモデルをテキストフォーマットでエクスポートする方法を提供している場合、プロセスがより簡単になるんだ。これにより、クラスや関係などの情報を抽出して、新しいプラットフォームで使えるモデルに変えることができる。これは、プレイリストの中で一曲から別の曲にスムーズに切り替わるのと同じ感じだよ。
ここでは、変換ルールがエクスポートプロセスをガイドする。各プラットフォームは独自のデータ構造を持っているけど、多くは似た概念を使っているから、翻訳がしやすくなる。アイデアは、ソースプラットフォームからターゲットプラットフォームが理解できるフォーマットに変換できる要素を特定することだね。
代替エクスポート方法
プラットフォームが適切なエクスポート機能を提供しない場合、視覚モデルに頼ることができる。モデルの画像を分析することで、新しい表現を生成できる。もちろん、この方法はすべての詳細をキャッチできるわけではないけど、最初の計画が失敗したときのバックアッププランみたいな感じで、ディナーが遅れたときにスナックを見つけるようなものだね。
視覚言語モデル(かっこいいAIツールみたいなやつ)は、スクリーンショットを解釈してモデルを再構築するのを助ける。このプロセスでは、特定のプラットフォームについてのコンテキストを提供して、AIが画像を正しく解釈できるようにする必要がある。
モデルのインポート
モデルが準備できたら、ターゲットプラットフォームにインポートすることを考えてみよう。このプロセスにも2つのシナリオがあるよ:
-
正式なインポート方法:ターゲットプラットフォームが正式なインポートを許可する場合、期待されるフォーマットに合ったファイルを生成できる。
-
代替インポート方法:直接的なインポートオプションがない場合、多くのプラットフォームはユーザーがExcelやCSVファイルからデータをアップロードして新しいプロジェクトを作成できる。これは、あるレストランから別のレストランへ残り物を持ち帰るためのテイクアウトボックスを使うようなものだね。
正式なインポート方法
プラットフォームが正式なインポートをサポートしている場合、新しいプラットフォームが理解できるように構造化されたファイルを作成できる。このプロセスでは、生成されたモデルの要素をターゲットプラットフォームの言語や構文にマッピングする必要がある。
このマッピングは、適切にフィットするようにすべてをまとめ、スムーズな移行を実現するための翻訳ガイドとして機能する。また、AppianやOracle Apexのようなプラットフォームは、データ、動作、グラフィカルモデルを含むフルプロジェクトを定義されたフォーマットでインポートできるんだ。
代替インポート方法
直接的なモデルインポートをサポートしないプラットフォームでは、多くがExcelやCSVファイルからデータインポートを許可している。これはデータモデルをインポートするための標準的な方法ではないけど、そういう状況のユーザーにとっての代替手段になる。プロセスは、ターゲットプラットフォームに必要なデータモデルを推測するのを助ける構造化されたファイルを作成することだね。
Excelを使うと、それぞれのシートが新しいクラスを生成し、列が属性を作り出す。ただ、この方法では関係を正確にキャッチできないことが多くて、あまり包括的なモデルにならない。これは、ドレッシングなしでサラダを注文するようなもので、ヘルシーだけどあまり満足できない感じ。
これからの課題
相互運用性を向上させるための提案された方法があっても、課題は残っているよ。ユーザーは、ローコードプラットフォームがしばしば堅牢なドキュメントやプロジェクト移行のサポートが不足していることを知っておくべきだね。多くの商業プラットフォームは、移行を助けるのではなく、顧客を維持することに焦点を当てているから、使っている製品が簡単に退出できない状況にいるのは、まるで自分が望んでいない商品を買わされる永遠のセールスピッチにいるようなものだ。
標準的なインターチェンジモデルの構築
相互運用性の問題を解決するための重要な解決策の一つは、ローコードプラットフォームのための標準インターチェンジモデルを作ることだよ。標準化されたモデルがないと、各プラットフォームは独自の泡の中で運営され、切り替えたいユーザーにとってフリクションポイントが生まれる。
そういったモデルを作ることで、プラットフォーム間でのスムーズな移行が可能になり、デバイス間で標準化された絵文字が人々のコミュニケーションをもっと自由にしているみたいな感じになる。みんなが同じ歌の歌本を持って歌っているみたいに、モデルの移動も楽になるし、ユーザーは構築に集中できるようになるんだ。
インポート/エクスポートの制限に対処する
インポート/エクスポート機能の制限は、不完全なモデルにつながって、ユーザーが重要なピースを欠いたパズルを持つことになってしまう。手動で完成させる方法もあるけど、欠けている要素を自動的に復元するための技術を開発する方が遥かに効果的だよ。これは、料理中に忘れたステップを教えてくれる信頼できるレシピサービスのようなものだね。
AIやシンプルなルールベースの方法を使えば、移行体験を向上させられて、ユーザーが探偵ごっこをしなくても済むようになる。目的は、移行を簡単にすることだよ。
インクリメンタル移行
フルモデルを移行することを越えて、プラットフォームはインクリメンタル移行のアイデアも考慮すべきだね。これは、既存のコンポーネントを認識して、新しい要素を追加しながら、ユーザーのカスタム変更を上書きしないことを意味するんだ。全体を変えることなく、ピザに新しいトッピングを振りかけるソフトウェアプラットフォームを想像してみて。他の人の作業に柔軟性とコントロールを与えることが大事だよ。
インポート/エクスポートのためのAIベースの方法
代替インポートとエクスポート方法のために高度なAI技術を探求することも、プロセスを改善するかもしれない。エクスポートのためには、マルチイメージや動画認識を利用して、AIが大規模なモデルの各詳細を正確にキャッチできるようにすることができる。
インポートに関しては、ターゲットプラットフォームのユーザーインターフェースを使ってモデルを再現するためにAIを訓練するのが画期的なことになる。こういう知的アシスタントがユーザーをモデル再構築に導いてくれたら、移行がもっと楽に感じられるよ。
これからの道のり
大きな課題があるとはいえ、ローコードの風景は変わりつつあって、改善が期待できる。ベンダーロックインの問題に対処して相互運用性を向上させることで、すべてのユーザーがより良い体験を得られるようになるんだ。もっと統一感のあるアプローチを作れば、ユーザーは素早く移行できて、頭を悩ませることが少なくなるよ。
特にUIや動作モデルに関与するより良いツールサポートを開発することが重要だね。これは、移行プロセスを簡単にするためのユーザーフレンドリーなインターフェースを作る計画を含む。ソフトウェアの世界における頼りになるバディが、移動プロセスをステップごとにガイドしてくれるようなイメージだよ。
開発者やイノベーターがこれらの解決策に取り組み続ける中で、新しい協力の時代が生まれることを期待してる。そうすれば、ユーザーはローコードプラットフォームの完全な利点を享受できるようになり、特定のベンダーのエコシステムに閉じ込められることがなくなるんだ。未来は明るいし、ローコードプラットフォームが本当に仲良くなる世界が待ってるかもしれないね!
オリジナルソース
タイトル: Towards the interoperability of low-code platforms
概要: With the promise of accelerating software development, low-code platforms (LCPs) are becoming popular across various industries. Nevertheless, there are still barriers hindering their adoption. Among them, vendor lock-in is a major concern, especially considering the lack of interoperability between these platforms. Typically, after modeling an application in one LCP, migrating to another requires starting from scratch remodeling everything (the data model, the graphical user interface, workflows, etc.), in the new platform. To overcome this situation, this work proposes an approach to improve the interoperability of LCPs by (semi)automatically migrating models specified in one platform to another one. The concrete migration path depends on the capabilities of the source and target tools. We first analyze popular LCPs, characterize their import and export alternatives and define transformations between those data formats when available. This is then complemented with an LLM-based solution, where image recognition features of large language models are employed to migrate models based on a simple image export of the model at hand. The full pipelines are implemented on top of the BESSER modeling framework that acts as a pivot representation between the tools.
著者: Iván Alfonso, Aaron Conrardy, Jordi Cabot
最終更新: 2024-12-06 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2412.05075
ソースPDF: https://arxiv.org/pdf/2412.05075
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://listlu-my.sharepoint.com/:p:/g/personal/ivan_alfonso_list_lu/EUUIsqZjUkdGtA8S6CMVU7UBssQvnAUFS7iXk7fUgZrUWA?e=COAdEo
- https://www.outsystems.com/forge/component-overview/18855/cool-data-model-info-react-o11
- https://www.outsystems.com/forge/
- https://www.omg.org/spec/UMLDI/1.0/About-UMLDI
- https://docs.anthropic.com/en/docs/build-with-claude/computer-use
- https://github.com/BESSER-PEARL/BESSER-Migration-Hub.git
- https://github.com/BESSER-PEARL/BESSER.git
- https://www.ifml.org/