Boomiとは【主観9割で紹介してみる】

# 改定
 Boomi Japanの中の方よりご指摘を受けまして、改定させていただきました。現在はDell社から独立してBoomi社単独だそうです。
大変申し訳ありませんでした...

# 前書き
　本記事はBoomiという~~Dell社~~Boomi社のiPaas製品に普段から触れることの多い筆者が**主観**を交えつつBoomiについて語ってみようと思った記事である。そもそもニッチな分野なので、こんなものもあるんだな程度に聞いてください。（今回の記事では数あるBoomiの機能の中でもIntegrationという機能に絞って話します。）
　ちなみにほんとに主観が強いので、本記事を読んだ後に自身で少し調べられることを推奨します。

# Boomiとは何ぞや
　公式サイトによると以下の文言が。
>BOOMIはインテリジェントなコネクティビティとオートメーションを実現する唯一のプラットフォームです
https://boomi.com/ja/

　上記だと難しい...（筆者はIT業界に入って1年もたってないので...）

　前書きでも触れましたがBoomiには様々な機能があります。その中でも「Integration」という機能では、色んなアプリとデータを迅速かつ容易に統合できます。ここでいう色んなアプリとはSalesforceやServiceNow（最近CMやってますね）、CoupaなどのSaaS製品や、AWSやAzureといったクラウドサービスのことを指します。

　ただ、主観的な意見で言うとBoomiのIntegration機能の最大の利点は以下の2つだと思っています。
・データのやり取りをする際にデータの整形が楽
・利用できるコネクタの種類が豊富
他にも上げると色々とあるのですが上記2点に絞って詳しく書こうと思います。
（詳細が更に気になる人は調べるなり、TwitterとかQiitaで問い合わせください...答えられる範囲でお答えします）

# データのやり取りをする際にデータの整形が楽
　タイトルに似つかわしくない歯切れの悪い一文ですね。すみません。（笑）

　本題ですが、これに関しては本当に楽です。他にSaas製品やInfomaticaに触れたことがある方ならわかると思いますが、大体備え付けの機能だけで解決できなくて、スクリプトを描く必要があるんですよね...(JavaScriptなりなんなりで)

　一方でBoomiでは**スクリプトがほとんど必要ありません**。ちょっと頭をひねる必要があったりしますが、備え付けの機能だけで大体のデータ整形に関することはできちゃいます。また、備え付けの機能を組み合わせて新しい関数を作成してコンポーネント化したりもできるので、一度ロジックができてしまえば全員が使えてハッピーです。

　また、Boomi上の処理を考える際には「**Profile**」と「**ドキュメント**」という2つの概念（まあ読んでそのままなのですが...）が重要になります。この2つの要素を理解してIntegration機能を使用すれば、やりたいことは大体すぐにできるようになると思います。
　このあたり気になる方は実際に触っていただければと思うので、本記事末尾に体験登録用のリンク置いておきますので良ければ触ってみてください。

# 利用できるコネクタの種類が豊富
　これはね、ほんとにすごいんですよ。（語彙力）
　先述した各種サービスもそうですし、やろうと思えば提携していないAPIまで叩けてしまいます...

　具体的に言うと、APIのベースURIが定まってさえいればぶっちゃけAPI大体叩けます。
　つまり**自作APIもサーバーに配置していれば叩けます**し、**IntegrationでAPI作成して別のIntegration内で呼び出すこともできます**。
　
　ここまで読んであれ？違和感ってなった方いませんか...?
　そう、実はBoomi君、コネクタが優秀すぎて**自分でAPIが作成できちゃう**んです。
　
　この機能、何がやべえって、例えば特定のカラムを持ったcsvを一部カラムのデータを切ったり張り付けたりして、JSONに変換してほしいとするじゃないですか？こういうAPIも作ろうと思えばなれちゃえば5分～10分でできちゃうんです。（あくまで主観なのでもっとややこしい処理するとか話別ですよ？もっとかかるわとか言わんでくださいね...）

　上の機能をPythonやらJavaやらでコード書こうとしたらめっちゃ手間になると思うんですよね...特に個人開発とか少人数開発だと尚更あると思うんですよ。機能に比して書く工数はもったいない、けどセキュリティの観点とかも考えると自作APIのがいいんやわ...みたいなの。
　なので、Boomi君こんな使い方あるなんて（筆者の記憶では）チュートリアル含めて一言も言ってませんが、そういう使い方もありなんじゃないかと個人的には思っております。

# デメリット
　ここまではメリット（完全主観）を語ってきましたが、当たり前ですがデメリットもあります。その中でも一部を紹介したいと思います。

　まず初めに、日本語の情報が少ない。これはもうね、英語が苦手な人からしたら苦痛なレベルです。Chromeの自動翻訳使えばいいんじゃないって思うじゃん？Boomiのサイトその機能使っても変な訳し方多くて最初は全く理解できないのよ...
　どれぐらい理解できないって初めてオブジェクト指向触った時のInterfaceぐらい理解できない（盛りました）。まあ、Interfaceぐらい理解できないってことは狂気を公衆の面前にさらけ出せば理解できるんすけどね...
>Interfaceで狂気をさらけだした記事はこちら。ネタとして読んでやってください。
https://qiita.com/ohisama_nayu/items/926e1c5090f12d6e4163


　次にバグの検知が難しい。とりあえず作ってみた、動かそうで動かすじゃないですか。これ、明らかに間違ってる場所があってエラーはいてくれる場合はいいんですが、Boomi君手心加えてなんとかかんとか最後まで処理やってくれるときあるんすよ...
　これが簡単な処理ならすぐ見当つくのでいいんですが、複雑になればなるほどバグ検知が難しくなっていきます。なので個人的には単体テストはしっかり条件考慮してやった方がいいですね。特にInとOutのデータ見比べて正しいかどうかは絶対に複数条件で確認した方がいいです。その上であとは自分の作ったプロセスをしっかり理解してデータの流れを頭で作りながら追えるようになれば、改修作業ははかどります。

　ほかにも色々ありますが、また後日細かく上げていこうと思うのでよろしくお願いいたします。

# 最後に
　ここまで筆者の緩々なBoomiオススメ紹介してきましたがいかかでしたでしょうか。ここまで読んでくださった方、ちょっと触ってみようって気になったんじゃないですかね？（というかなったよね？？）
　そんなあなたは以下のリンクからサインアップを行ってBoomiに登録してください。Integration機能はなんと無料である程度使えちゃいますよ！（１つ2つ機能作るぐらいなら余裕で出来ちゃう）
>Boomiトレーニング＆認定ページ
https://boomi.com/ja/services/training/

　登録出来たら「Integration Essentials」というコースを良ければ受けてみてください。日本語版もあるので良ければ是非。（ただし、日本語版は結構分かりづらいです。もしかしたらもう改善されてるかもですが...）

登録するのもめんどくさいけどもうちょっと概要詳しく！って方や登録方法分かりずらいねん！って方はこちらのページを
>https://community.boomi.com/s/topic/0TO1W000000QhQ3WAK/1-boomi-ipaas%E3%81%AE%E3%81%94%E7%B4%B9%E4%BB%8B%E5%9F%BA%E6%9C%AC%E7%B7%A8

　以上になります。今回の記事のように私の備忘録かねてBoomiの技術について触れていこうかと思いますので、今後も気になる方は良ければフォローしてお待ちください。
　次回は初心者の方がごっちゃになりやすいプロパティについて触れようと思ってます！

　ではまた！