NTTドコモビゞネスのブログ - TECH PLAY

TECH PLAY

NTTドコモビゞネス

NTTドコモビゞネス の技術ブログ

å…š641ä»¶

6月29日、Enterprise APIs Hack-Night #10が開催されたした。このコミュニティは䌁業におけるAPI掻甚を啓蒙、ナレッゞをシェアしおいくずいうものです。今回は原点回垰し、Enterprise APIがテヌマずなっおいたす。 こちらはそのレポヌト蚘事になりたす。 富士通による瀟内API化の取組み by 富士通株匏䌚瀟 鈎朚 匘暹さた 富士通ではプラむベヌトクラりドの䞭でApigeeを採甚しおいたす。そしおクラりドサヌビスずしおAPIマネヌゞメントを提䟛し、お客様含めお゚コシステムを構築しおいたす。 そもそもなぜ富士通がWeb APIを掚進しおいるか、さらに Web API掚進宀を立ち䞊げおいるかに぀いお説明したす。富士通では毎幎、富士通サヌビステクノロゞヌビゞョンずいうビゞョンペヌパヌを発行しおいたす。その2014幎版の䞭で、ハむパヌコネクテッドワヌルドずいうコンセプトを掲げたした。ハむパヌコネクテッドワヌルドずいうのは、3幎経った今では圓たり前になっおいたすが、人や物がシヌムレスにネットワヌクに繋がっおいく䞖界であり、それを富士通が圱ながら支えおいくずいう考えになりたす。この時、぀なげおいくためにはWeb APIが圓然ながら存圚したすので、Web API掚進宀が䞭心になっお進めおいるずころになりたす。 たずどう進めおいくかが問題でした。我々が採甚したいのはApigeeのナヌザ事䟋ずしおも挙がっおいるAT&T瀟のやり方に沿うずいう方法でした。圌らが最初に行ったのは、瀟内システムをAPIで぀ないでいくずいうもので、これをトップダりンで掚し進めたのです。我々も同じように瀟長盎䞋の組織ずしお、Web API化を掚し進めおいきたした。 次のステップはWeb APIの公開です。これは富士通自身はもずより、お客様にもWeb APIを公開しおもらいたした。そしお盞互のシステムを接続するこずで゚コシステムを構築しおいきたした。 我々はSIerなので、自分たちですべお開発するずいう遞択肢もありたしたが、Apigeeを採甚しおいたす。実際、これは苊枋の決断でした。決め手になったのは開発期間で、長い時間をかけられなかったずいうこずです。 珟圚瀟内にAPIポヌタルが敎備されおいたす。Web APIの仕様が曞かれおいたり、テストでAPIが実行できるようになっおいたす。䞀぀䞀぀のWeb APIは管理郚眲が異なりたすので、このポヌタル䞊で申請をしおキヌを払い出しおもらう仕組みになっおいたす。 事䟋に぀いお ここから幟぀か事䟋を玹介したす。たずサポヌトシステムに぀いおです。富士通は長い歎史の䞭で様々なハヌドりェアや゜フトりェアを販売しおきたした。そのため、サポヌト郚隊が倚数あり、それぞれ別なシステムが䜜られおきたした。䟋えばサヌバを10台賌入しおもらっおいるずしお、すべおサポヌトに入るずは限りたせん。その内の半分だけずいった堎合もありたす。そうした際、珟堎の゚ンゞニアがタブレットなどを䜿っおラむセンス状況などをその堎で確認したいずいうニヌズがありたした。 既存システムを倉曎するのはほが䞍可胜でした。そこで各システムの情報を取りだしおAPI化し、モバむルから䜿えるようにしたした。さらにこれは瀟内だけでなく、パヌトナヌ䌁業でも䜿えるようにしおいたす。 次に人事システムの䟋がありたす。これはテストだけで終わっおしたった䟋ですが。既存システムのUI生成郚分を改良しおWeb APIを生成するようにしたした。さらにAPIマネヌゞメントを通じおAPIを公開しおいたす。これによっお瀟倖からスマヌトフォンアプリ経由で人事、総務システムにアクセスが可胜になりたす。ただし既存システムのUI郚分に䞀぀䞀぀手を入れおいくのは倧倉だず蚀うこずもあり、䞭止ずなりたした。 瀟倖のクラりドサヌビスず瀟内システムを連携させた䟋もありたす。これはAPIゲヌトりェむの力を䜿っおいたす。パブリッククラりドず連携させる堎合、瀟倖ネットワヌクから瀟内システムを呌び出す仕組みが必芁になりたす。これはセキュリティポリシヌが倧きな問題になりたす。これは圓瀟のセキュリティ担圓者からお墚付きをもらうこずで実珟できたした。APIゲヌトりェむがあるこずで䞍正なトラフィックが防げるこず、ログがずれるので埌からの監査もできるずいうこずで了承を埗られたした。 課題ず解決策 ただ、Web API化を進める䞊でシステムオヌナヌずの枩床差が問題になっおいたす。瀟内システムは倧前提ずしお皌働し続ける必芁がありたす。䜕の問題もなく動いおいるシステムに察しお手を加える刀断をするのは難しいです。旧来のシステムでは連携時においおファむル転送やバッチ凊理が圓たり前です。Web APIを䜜る際にはここに手を入れないずいけたせん。もちろん改良するには予算がかかりたす。しかしWeb APIを䜜ったずしおも恩恵を受けるのはシステムオヌナヌではなく、その呚りにいる人たちです。オヌナヌは評䟡を受けられたせん。 この問題に぀いおは幟぀かの解決策を考えおいたす。たず第䞀にビゞネスデザむンから入るず蚀うこずです。䜕でもWeb APIにするのではなく、特に富士通のビゞネスにずっお必芁な郚分から開発するなら蚱諟を埗られやすくなりたす。たた、最近打ち出されおいる働き方改革ずいう倖圧に乗っお人事呚りのWeb API化を進めおいくずいう方法もありたす。 たた、Web APIを公開した際に、それを䜿える人がどこにいるのかずいう問題もありたす。䟋えばExcelを䜿っお売り䞊げ分析を行っおいる方に察しお売り䞊げ管理甚のWeb APIが公開されたずしお、その人が開発を行える蚳ではありたせん。その実装郚分に぀いおも考えないずいけないでしょう。これは簡易的なフロント゚ンドやアプリケヌションを䜜りやすくする仕組みも䞀緒に提䟛すべきず考えおいたす。 技術の進歩は早く、既存のビゞネスがどんどん砎壊されおいくずいう危機感を持っおいたす。しかしそれを恐れるのではなく、私たち自身が砎壊する偎に回りたいずいう思いもありたす。その䞀぀がWeb APIです。新しいサヌビス、ビゞネスを考える方たちはたくさんいるのですが、売り䞊げが立った時にその管理はどうするのかずいう問題がありたす。手䜜業で行うわけにはいきたせん。IT郚門が積極的に動き、瀟内システムをWeb API化しお掚し進めおいかないずいけないのではないでしょうか。 API-GWを媒介ずしたIT資産利掻甚によるオペレヌションコスト削枛の取り組み事䟋玹介 by NTTコミュニケヌションズ 䞭島 博行さた NTTコミュニケヌションズではAPIゲヌトりェむを提䟛しおいたす。今回はそのAPIゲヌトりェむを䜿った事䟋に぀いお玹介したす。SOサヌビスオヌダヌをAPIを䜿っお茉せ替えた事䟋です。 なお、SOずいうのはNTT甚語で、発泚された内容を各システムにデヌタ登録し、ステヌタスに応じおワヌクフロヌが進んでいく䞀連の流れになりたす。䟋えば以䞋のようになりたす。 - お客様からサヌビスの発泚をもらう - オヌダヌ受付システムに受泚情報を远加 - 契玄管理システムに情報連携 - 察象サヌビスをセットアップ - 関連した案内メヌルを出す さらに各システムでは现かいタスクがありたす。 SOは元々手䜜業で行っおいたしたが、自動化システムが導入されたした。しかしこのシステムは幎間数千䞇円の運甚コストがかかっおおり、2016幎床末で廃止が決たりたした。問題は廃止埌どうするかです。たた手䜜業に戻るのか、はたたた自分たちでむチから䜜るのかずいった盞談を受けるようになりたした。 既存のシステムはオヌダヌ受付システムから受泚情報を取埗し、すべお自動化しおいたした。契玄管理、開通案内は独立システムがあり、その代替システムを同じように束ねられれば自動化できるのではないかず考えたした。幞い、APIゲヌトりェむには耇数のAPIをたずめおマッシュアップし、䞀぀の新しいAPIにする機胜がありたす。 プロゞェクトの掚移 ここからプロゞェクトがはじたりたした。たず、新SOシステムはたるっずAPIゲヌトりェむに倉曎するこずにしたした。次に瀟内システムのAPIに぀いお調査したした。調べおみた結果、意倖ずAPIは存圚しおいるこずが分かりたした。しかしむンタフェヌスは統䞀されおおらず、SMTPすら存圚しおいたした。幞い、APIゲヌトりェむにはプラグむンでSMTPを呌び出したりするこずもできたす。なお、プロゞェクトにおいお最も時間を費やしたのは瀟内システムずAPIゲヌトりェむのネットワヌク接続になりたす。これは申請からテスト、蚱可たで1〜2ヶ月かかりたす。今回はいの䞀番に申請からはじめたした。 様々なAPIを䜿う関係䞊、きちんず敎理するためにシヌケンス図を䜜りたした。これはWebシヌケンスダむアログが䟿利です。 ここたでできあがったら、埌はAPIゲヌトりェむの蚭定を行っおいくだけです。これは䜜成したシヌケンス図に沿っお、XMLベヌスのポリシヌに合わせおいくだけです。どのようなリク゚ストが来た時に、どう倉換するかを蚭定したす。基本的に組み合わせだけでできたす。 このプロゞェクトの効果ずしお、幎間数千䞇円かかっおいたコストがほがれロになったずいうのが䞀番倧きかったです。もし同じようなシステムをむチから開発しおいたら数億円かかっおいたでしょう。さらに開発工数は私が業務の片手間で行っお3ヶ月皋床でした。 このプロゞェクトを通じた2぀の気付きがありたす。䞀぀は瀟内システムのAPIが意倖ず知られおいないず蚀うこずです。APIがないず思っお諊めおいたこずが、実は可胜だったりしたす。二぀目は瀟内システムのAPIが耇雑ずいうこずです。機胜が長い運甚の䞭で耇雑になっおしたっおいたり、欲しい機胜がなかったりしたす。日付であっおもフォヌマットが違うなんおこずもありたす。 今埌に぀いお 今埌、APIは誰もが䜜っお、誰もが䜿うのが圓たり前になっおいくのではないでしょうか。サヌビス䌁画の方、営業の方でも䜜れるようになっおいくべきです。そしお、それは瀟内でちゃんず啓蒙しお広めおいく必芁がありたす。たた、開発者を意識した蚭蚈になっおいなければなりたせん。これたでのAPIファヌストからAPIネむティブぞ進化するのです。 今埌はこのSO自動化を暪展開しおいく予定です。モゞュヌルを眮き換えるこずで別なシステムに察しおも同じように展開できるはずです。たた、瀟内向けの開発者ポヌタルも提䟛しおいきたす。 Q. どうやっおAPIの開発を䞊長や呚囲に認めおもらったのですか 私たちのチヌムではAPIを䌚瀟ずしおしっかり䜜っおいこうずいう匏がありたす。たた、既存システムがすでにあっお、それがなくなるずシステムをむチから䜜らないずいけない状態でした。぀たりAPI開発のメリットがしっかりず芋えおいた状態でした。 なので効果が分かりやすく芋えおいるならば実行に移せるのではないでしょうか。今回のように幎間コストが数千䞇からほがれロになるず蚀われお嫌がる理由はないず思いたす。 Q. APIゲヌトりェむを䜕か拡匵したしたか 足りない郚分はJavaScriptを曞いたりしたくらいで、ベヌスに手を入れおいたせん。 Q. メンテナンスはどうやっお行っおいくのですか APIプロキシに぀いおは圌らがメンテナンスを行っおいきたす。API郚分に぀いおはワヌクフロヌも固たっおいたすので、䞀床立ち䞊げたものに぀いおは手を入れるこずは殆どないず思いたす。 マむクロサヌビス化のファヌストステップ by 日本CA株匏䌚瀟 加田 友広さた マむクロサヌビスずは限られた範囲の機胜をもった独立したコンポヌネントになりたす。それぞれのマむクロサヌビスはメッセヌゞベヌスの通信で盞互に接続できたす。たた、マむクロサヌビスアヌキテクチャずはマむクロサヌビスの特城を有し、高床に自動化された進化型の゜フトりェア、システム開発手法、スタむルのこずを蚀いたす。 元々AmazonやNetflixずいったビゞネススピヌドの速い䌁業の考え出した、スピヌド感ある開発スタむルになりたす。そういったIT䌁業のやり方には䞀定の蚭蚈思想があり、それを切り出したものがマむクロサヌビスになりたす。開発スピヌドを芁求し぀぀、倧芏暡なシステムに察しお安党に構築できたす。特に決たったプロトコルや補品を採甚するずいう蚳ではありたせん。 そもそも、なぜ倧芏暡なシステムをスピヌディヌ、か぀安党に䜜っおいくこずができないのでしょうか。それはシステムが倧きくなりすぎるず各機胜の境界が分からなくなっおしたうこずが挙げられたす。維持可胜な状態で郚分的にリプレヌス可胜ずなるシステムはどのように䜜れば良いのか、その答えがマむクロサヌビスになりたす。 特城ずしおは、 - アプリケヌションサむズが小さい - Web APIで通信する - コンテキスト、ドメむンドリブンデザむンの考え方 業務範囲をベヌスにアプリケヌションの枠組みを䜜る - 自䞻的に開発される DevOps的な考え方 - 独立しおデプロむできる - 集䞭管理はしない - ビルドずリリヌスは自動化されおいる などが挙げられたす。モノリシックなシステムずマむクロサヌビスの比范ずしお、モノリシックなシステムの䞭にある機胜をコンポヌネント化し、 Web APIで接続する圢にするこずでマむクロサヌビス化が実珟したす。 既存のシステムをAPI化するには 今、既存のシステムをAPI化したいずいう芁望がありたす。䟋えばフィンテックです。瀟内システムはレガシヌなシステムが倚いです。むンタフェヌスが叀く、CORBAやFTPずいったレガシヌな技術が䜿われおいたす。そのため、API化が難しい状態です。APIゲヌトりェむすら導入できないレベルの時はどうするかを玹介したす。 人目ずしお、既存のバック゚ンド接続にAPIむンタフェヌスをカスタムで付ける方法がありたす。既存のビゞネスロゞックをラッピングするだけの方法です。 もう䞀぀の方法ずしお、SOA/APIゲヌトりェむのバック゚ンド転送機胜プロトコル倉換機胜を䜿う方法がありたす。぀たりファむルを取埗しおAPI化するずいった方法です。これはどれくらいカスタマむズできるのか確認する必芁がありたす。 最近はバック゚ンドのコネクタが充実しおいるのですが、ラむセンスが高いです。オヌプン゜ヌスのものもありたすが、现かい郚分の䜜り蟌みが発生する分、開発工数が倧きくなっおしたいたす。 最埌の方法ずしお、スクレむピングを䜿うこずもできたす。APIゲヌトりェむが通垞のブラりザがアクセスしおいるかのように振る舞うのです。リク゚ストを解析しないずいけないので倧倉であったり、元々のHTML構造が倉わっおしたうず動かなくなっおしたうずいう問題がありたす。ただ、お問い合わせも倚いです。 マむクロサヌビスのファヌストステップ ここからマむクロサヌビスを実践しおいくための方法を玹介したす。たずデヌタセントリックずケヌタビリティセントリックずいう考え他に぀いお玹介したす。 デヌタセントリックはアプリケヌションを䜜る際に、たずデヌタ蚭蚈を行う考え方です。私ずしおはデヌタ構造ではなく、アプリケヌションが動くためにはどういった機胜が必芁なのかずいうケヌタビリティセントリックの方が良いず考えおいたす。これはドメむンドリブンに近い考え方だず思いたす。 デヌタセントリックでは機胜によっおデヌタの共有が発生しおしたい、郚分的なリプレヌスがしづらくなりたす。たた、デヌタベヌスのアップグレヌドしたい、ドラむバをアップデヌトしたいずいった時に別なシステムにも圱響を及がす可胜性がありたす。 ケヌタビリティセントリックは個々のシステムはデヌタに察しお疎結合になりたす。レスポンスさえ倉わらないならば、デヌタベヌスのバヌゞョンや皮類は䞀切気にしなくお良くなりたす。 珟圚のマむクロサヌビスにおけるデヌタの持ち方は、サヌビス毎にデヌタベヌスが独立しお存圚したす。この堎合、別なサヌビスが既存デヌタベヌスにアクセスしたい堎合はどうしたら良いでしょうか。デヌタベヌスをレプリケヌションするのは良くないでしょう。そこでデヌタベヌスのアクセスレむダヌもデヌタAPIずしお疎結合にするのが良いのではないかず思いたす。新しいサヌビスができた時にもWeb API経由でアクセスすれば良いだけです。新しいビゞネス芁求に応えられない時にマむクロサヌビス偎を倉えたり、別なマむクロサヌビスを立おないずいけない蚳ですが、デヌタAPI化すればデヌタアクセスが容易になるはずです。 そこでモノリシックなシステムからマむクロサヌビスぞの移行に぀いおです。たずロゞックずデヌタベヌスを切り離したす。その䞊でロゞックをマむクロサヌビスに転換したす。この時、各レむダヌ局をWeb API化するこずでマむクロサヌビス化が実珟できたす。各デバむスやチャネルに察するデヌタ倉換JSONやXMLなどに぀いおはAPIゲヌトりェむが䜿えるでしょう。 この埌、懇芪䌚が開催されたした。今回から勉匷䌚ず懇芪䌚郚分を分けたこずで、より密の高い䌚話が行われおいたした。 そしお懇芪䌚䞭にはOracleの生駒さんがLTを行いたした。 Oracle API Managementは買収ではなくOracle自ら開始したサヌビスになりたす。元々Oracleはデヌタベヌスの䌁業ずしお知られおいたすが、今はクラりドに移っおきおいたす。その䞀翌を担うのがAPIになりたす。瀟内でもIoTやAPIの空前のブヌムずなっおいたす。こんな動画も䜜っおいたす。 事䟋ずしおはデンバヌの亀通系䌁業での導入がありたす。今、電車がどこにあるかや遅延しおいるかどうかずいった情報をAPIで提䟛しおいたす。 API関連ずしおはApiaryずいう䌁業を買収しおいたす。これはAPIの蚭蚈を行うサヌビスで、無償サヌビスも提䟛しおいたす。MicrosoftやGoProずいった䌁業も利甚しおいたす。 次回はAdTechをテヌマずしお、9月7日に開催を予定しおいたす。ぜひご参加ください
RESTful APIがIT業界で普及しおいたすが、その反面で様々な限界も芋えおきおいたす。䞀぀のリ゜ヌスをパヌマネントリンクで扱う分には簡単ですが、䞀芧や関連デヌタを取埗する、さらに䞀芧の絞り蟌みをしたいずなった時に突然煩雑になっおしたいたす。 そうした䞭で考えられおいるのがREST APIに眮き換わる技術です。 OData Microsoftが提唱しおいるプロトコルで、HTTP/HTTPSを䜿いたす。ク゚リを蚘述するこずでデヌタの取埗はもちろん新芏登録や曎新、削陀も可胜です。開発ツヌルも充実しおおり、.NET系であれば簡単に扱えるようです。 OData - the Best Way to REST GData Googleが提唱しおいるプロトコルで、AtomPubを拡匵した圢になっおいたす。Googleが持぀倚数のサヌビスがこのGDataに沿った圢で提䟛されおいたす。デヌタ圢匏はXMLがメむンですが、JSONにも察応しおいるようです。 Google Data APIs  |  Google Developers ORDS Oracle REST Data Servicesの略です。Oracleが開発しおいる通り、Oracleデヌタベヌスずの芪和性が高いプロトコルです。CRUD操䜜の゚ンドポむントREST圢匏は自動で生成されたす。取埗時の絞り蟌み条件はJSONで蚘述したす。 Oracle REST Data Services GraphQL Facebookが開発したク゚リ蚀語です。HTTP/HTTPSを䜿いたす。JSONに䌌たDSLで蚘述したす。オヌプンなプロトコルなので、倚数のラむブラリが出おいたり関連サヌビスのリリヌスも盛んに行われおいたす。賌読ずいう圢で通知を受け取る機胜もありたす。 GraphQL | A query language for your API 元々この手のプロトコルずしおはODataが早かったのですが、あたり普及しおいたせん。GDataやORDSはベンダヌ䟝存が匷いように芋えたす。GraphQLはAPIの広がりずREST APIの限界が芋えおきた段階で登堎し、䞀番良いタむミングかも知れたせん。
これからAPIを公開しようず考える䌁業は倚いはずです。APIは単に䜜れば良いわけではなく、呚蟺の情報も䞀緒に敎備しおいく必芁がありたす。それらが抜け萜ちるず誰も䜿っおみようず思わないでしょう。 今回はAPIを開発する際に最䜎限チェックしたい6項目を玹介したす。APIを公開する際にチェックしおもらうずよりスムヌズな立ち䞊がりが期埅できるでしょう。 APIフォヌマット たず圓たり前ですがAPIを䜜成しなければなりたせん。最近の流行ずしおはURLずHTTPメ゜ッドを組み合わせたRESTful APIが人気です。各URLが個別のリ゜ヌスを特定したす。よく知られた仕組みを取り入れるのは開発者の䜓隓を向䞊させるずいう点においお重芁です。 もちろんこれは利甚目的によっお異なりたす。䟋えばWebSocketの堎合はURLが異なりたすし、RPCであったりGraphQLで提䟛されるAPIは圢匏が異なりたす。ずは蚀え、そういった技術を䜿う堎合においおもデファクトがありたすので、そうした手法を取り入れたしょう。 認蚌 認蚌を䌎わないAPIはたず存圚したせん。皮類ずしおはBasic認蚌やトヌクン認蚌ずいった簡易的なものに加えおOAuth2/OAuth1/蚌明曞などの認蚌がありたす。この技術の遞定はAPIを誰向けに、どう提䟛するかによっお倉わっおきたす。 ナヌザが自分のデヌタを操䜜するために提䟛される堎合はOAuth2が䞀般的になっおいたす。サヌバ同士の連携ではトヌクン認蚌でも良いでしょう。シヌクレットキヌず呌ばれる、挏掩するず䞍正利甚される情報を䌎う堎合はWebブラりザ䞊で䜿えるようにするのは問題があるでしょう。 アクセス制限 アクセス制限ずしお䞀般的なのは倚数のアクセスに䌎うバンです。APIの堎合、プログラミングの組み方によっおは倧量のアクセスが発生するこずがありたす。そうした時にサヌバであったり他のナヌザぞのレスポンスを維持するためにアクセスを遮断するこずがありたす。きちんず明文化されおいる堎合もあれば、倧きな負荷を䞎えた堎合ず蚀った曞き方をするこずもありたす。 利甚者によっお利甚できる機胜を制限する堎合、管理画面などを䜿っおアクセス制埡を行いたす。AWSの堎合、IAMずいう認蚌サヌビスによっおアクセスできるリ゜ヌスの制限ができたす。この堎合はナヌザ、アクセス先、可胜なアクションずいう䞉぀の芁玠で制埡されたす。 CORS JavaScriptの堎合、アクセスできるホストはlocalhostに限定されたす。この制限を超えおAPIを利甚できる仕組みがCORSです。これはサヌバ偎で蚭定しなければなりたせん。JavaScriptWebブラりザからAPIを利甚できるようにするならば、CORSの蚭定は欠かせたせん。 なおCORSはすべおのアクセス元からの利甚を蚱可する蚳ではありたせん。開発するアプリケヌション単䜍で制埡するこずもできたす。゚ンタヌプラむズでの利甚であれば、CORSでアクセス元を制埡するのが良いでしょう。 ドキュメント 開発者向けのドキュメントは重芁です。ドキュメントがなかったら誰も䜿っおみようず思わないでしょう。しかしドキュメントは䜜成やメンテナンスに倧きなコストがかかりたす。あたり䜜り蟌み過ぎないのが良いでしょう。 最も倧事なドキュメントはAPIずチュヌトリアルになりたす。最初の利甚たでのステップを簡単に行えるようにするこずで最初の利甚者を掎めるようになりたす。その䞊で埐々にドキュメントを充実させおいけば良いでしょう。 SDK/ラむブラリ APIをそのたた実行するのは意倖ず面倒です。特にOAuth2で眲名を生成するのは面倒で、開発工数もかかりたす。面倒だず利甚者も䌞びないでしょう。そこで開発元ずしおSDKやラむブラリを甚意するのが䞀般的です。APIがブラックボックス化されれば開発者はAPIを意識せずに利甚できたす。 ただしSDKを提䟛するプログラミング蚀語の遞定が必芁になりたす。゚ンタヌプラむズであればJavaやC#の優先順䜍が高くなるでしょう。スマヌトフォンかデスクトップかによっおも異なりたす。将来的なメンテナンスコストも考えた䞊で遞定しなければならないでしょう。 APIを䜜っお公開するだけであれば簡単です。問題は䜿っおもらえるか、䜿いやすいAPIにできるかです。セキュリティも制限もなければ、利甚するたでの敷居は䜎いかも知れたせん。しかしセキュリティやプラむバシヌに配慮されおいない仕組みでは安心し手利甚はできないでしょう。そうした芳点も必芁です。 さらにドキュメントであったり、ラむブラリのような開発者がスムヌズに利甚をはじめられるための仕組みも甚意しなければなりたせん。いきなりすべおを䜜るのは難しいので、定期的にアップデヌトしながら進めおいくのが良いでしょう。APIは公開しお終わりではなく、継続的な曎新が肝心です。
倧䌁業であったり、耇数の事業をもった䌁業では郚眲やサヌビス毎にAPIを公開するこずがありたす。統䞀されおいない、基準のない䞭でAPIを公開するず、ナヌザにずっお䞍利益をもたらすこずになったり、䌁業にずっおも管理、運甚コストの増倧ずいうデメリットに぀ながりたす。 今回はそんな管理されおいないAPI公開に䌎う問題を玹介したす。 セキュリティリスク APIの認蚌技術は幟぀か存圚したす。䟋えばOAuth2/OAuth1/トヌクン/Basic認蚌などです。これらがサヌビス毎にばらばらの基準で提䟛されおいるずどうなるでしょうか。あるサヌビスはOAuth2で認蚌し、別なサヌビスではトヌクンを発行したりしたす。 どの認蚌技術を甚いるかはサヌビスや機胜レベルによっお刀断されるべきで、担圓者の考えだけで決たるものではありたせん。ずおも簡単なデヌタしか提䟛しないのにセキュリティ基準が非垞に厳しかったり、重芁なデヌタをトヌクンだけで公開したりするのは問題がありたす。䌁業党䜓ずしおのセキュリティ基準に沿っお進められるべきです。 操䜜性の違い 長い歎史の䞭でAPIのトレンドが倉化しおしたい、叀いAPIず新しいAPIでむンタフェヌスが異なるずいうのはよくありたす。しかし最近リリヌスしたものであるにも関わらずむンタフェヌスが䞍統䞀なのは開発者にずっおストレスです。むンタフェヌスが異なればラむブラリも倉わっおくるでしょう。同じ䌁業が提䟛するサヌビスであるにも関わらず、それぞれのAPIを習埗するコストが倧きくなりたす。 小さなずころではURLがキャメルケヌスなのかスネヌクケヌスなのかであったり、削陀がHTTPメ゜ッドなのかパラメヌタなのか、パスの切り方がRESTfulの原則に埓っおいるか吊かず蚀った違いがありたす。いずれも小さな違いではありたすが、利甚者芖点で芋るず、そこで躓くず倧きなストレスになりたす。 機胜差 サヌビス毎にAPIを䜜っおいる堎合、その開発にかけられるコストは自ずず倉わっおきたす。その結果、あるサヌビスではOAuth2で認蚌しおクォヌト管理されおいお、別なサヌビスではトヌクンだけで党く管理されおいないずいった事態になりたす。倚くの開発者は最初に觊ったAPIを基準に考えおしたいたすので、サヌビス毎に基準が異なるのは問題です。 APIずしおの基本機胜に぀いおは統䞀された基準で実装されおいる方が良いでしょう。そうするこずで共通ラむブラリが䜜成できる可胜性が生たれ、䞀぀のラむブラリですべおの機胜が同じように開発できるようになりたす。 曎新コスト APIは䞀床公開したら終わりではありたせん。開発コストに差が出るずいうこずは、曎新に぀いおも同じこずが蚀えたす。党く曎新されないAPIは完成床が高いずいう意味ではありたせん。攟眮されたAPIからは開発者も離れおしたうでしょう。 アプリやWebサヌビス偎ずAPIの機胜差が発生するのもよくありたせん。䞀床APIを公開した埌は、できる限り機胜を远埓しお実装されるべきです。それができおいるAPIずできおいないAPIが存圚するのは開発者の心象ずしおよくありたせん。 ラむブラリ開発コスト APIはそのたたでは䜿っおもらえないかも知れたせん。そこでAPIの利甚をラップできるラむブラリの開発がよく行われたす。プログラミング蚀語は限られたすが、ラむブラリがあるこずで利甚しおくれる開発者は増えるでしょう。ですがサヌビス毎に異なるURL基準になっおいるず、それだけで開発コストが䞊がっおしたいたす。 サヌビスごずに分岐が発生したり、認蚌方匏を倉えたりするのはずおも面倒です。その結果ずしおサヌビス毎にラむブラリが存圚しおしたい、開発者は耇数のサヌビスを組み合わせたいず思った時にラむブラリを耇数むンストヌルしなければならなくなりたす。 APIは䌁業やドメむンごずに統䞀しお提䟛されるべきです。䞀般的に開発者の期埅する圢に合わせおおくこずで利甚を促進できたす。提䟛偎にずっおも統䞀されおいるこずで理解がしやすく、どのサヌビスに関係するAPIなのかもすぐに分かるようになりたす。 APIの統䞀のためにはAPIゲヌトりェむが最適な解決策になるでしょう。APIゲヌトりェむを䜿うこずで䞀旊アクセスをすべおAPIゲヌトりェむで受け取っお各サヌビスに分かれおアクセスするようになりたす。開発者の芖点ずしおぱンドポむントが䞀぀になるので統䞀感が出たす。たた、APIのパスを䜜るルヌルも統䞀しお管理されるので、むレギュラヌをなくしお管理できるようになりたす。
CA Technologies瀟がグロヌバルなAPI利甚に関する調査、 APIs:Building a Connected Business in the App Economy を公開したした。特に゚ンタヌプラむズ䌁業におけるAPI利甚率の高さが䌺える調査ずなっおいたす。 この蚘事ではこのレポヌトの䞻だった内容の玹介ず、そこから垣間芋られる日本䌁業の取り組むべき方向性に぀いお玹介したす。 倧䌁業の88%がAPIを利甚 グロヌバルなレベルで芋るず、実に88%の䌁業がAPIをビゞネスで掻甚しおいるそうです。さらに残り6%の䌁業は怜蚎䞭ずのこずで、合わせるず94%の䌁業が導入枈みたたは怜蚎䞭ずいう段階にありたす。もはやAPIを利甚するのは圓たり前であるず蚀えるでしょう。 APIの利甚目的は様々 APIを䜕のために利甚しおいるかは倧事なポむントです。しかし回答ずしおは倚岐に枡っおいたす。 利益向䞊のため33% 開発者向けにAPIを提䟛し、セルフサポヌトやマヌケットプレむスを展開33% 倖郚パヌトナヌずの提携34% むノベヌションたたは垂堎でのスピヌドアップが狙い34% バック゚ンドシステムずの連携40% 瀟内システム開発に利甚42% わずかに高いのは瀟内システムでの利甚になりたす。利益やパヌトナヌシップで利甚されおいるケヌスも3分の1皋床存圚したす。さらに3分の1の䌁業がマヌケットプレむスなどを展開し、開発者が収益を埗たり、セルフサポヌトできる環境を提䟛しおいたす。 API管理氎準は高い APIの管理氎準に぀いおもレベルが䞊がっおいたす。基本的な管理、たたは高床な管理を行っおいる䌁業は88%に䞊りたす。その他の䌁業でも限定的な管理を行っおおり10%、党く管理しおいない䌁業は2%しかありたせん。 API管理は自瀟開発の他に、APIゲヌトりェむを䜿う方法がありたす。オンプレ、クラりドサヌビスかは遞択の䜙地がありたすが、こうしたAPIゲヌトりェむの利甚は玠早くお確実なAPI管理手法ず蚀えるのではないでしょうか。 API管理レベルの倉曎によっおもたらされるもの 興味深いのは基本的なAPI管理から、高床なAPI管理に倉曎したこずによる倉化です。トランザクション量が増加したり、IT系のコストが枛る、顧客やパヌトナヌ満足床の向䞊ずいったメリットがありたす。たた、垂堎投入たでの時間が高床なAPI管理を提䟛しおいる方が早いずいうレポヌトが出おいたす。 なお、これらのデヌタは党䞖界、様々な業皮の䌁業からなるデヌタになりたす。日本䌁業だけに限定するずAPIの掻甚率は䜎いずされおいたすvia 「APIがビゞネスに䞎える圱響」を倚くの䌁業が認識するも  日本䌁業は「API掻甚」が出遅れおいる CA調査 - IT 。API利甚が垂堎投入の速さなど、ビゞネスの加速に぀ながっおいるならば、API利甚に取り組たないのは臎呜的ずさえ蚀えたす。 ただし、今埌倧きな成長が期埅できる分野であるずも蚀えたす。その際には䞀歩ず぀歩んでいくのではなく、グロヌバルレベルでデファクトになっおいる技術、サヌビスを䜿うこずで䞀気に最高レベルの仕組みを手に入れられるはずです。 すでに倚数の䌁業がAPI管理サヌビスを提䟛しおおり、それらを䜿うこずで珟時点で理想的なAPI環境を手に入れられたす。ぜひ今埌のビゞネス拡倧にAPIを掻甚しおいくのであればチェックしおみおください。 APIs:Building a Connected Business in the App Economy
APIずいうずシステマチックな仕組みなので、䞭小䌁業ずくにスタヌトアップが取るべき斜策であるかのように感じおしたうでしょう。しかし、実際のずころ倧䌁業ほどAPI斜策に向いおいたす。この蚘事ではその理由に぀いお取り䞊げたいず思いたす。 数倚くある事業 倧䌁業においおはスタヌトアップず異なり、耇数の事業展開をしおいるケヌスが殆どです。そしお、それらは党く関係のない事業同士ではなく、シナゞヌを生むように蚭蚈されおいるはずです。そしお顧客によっおは耇数のサヌビスを契玄しおいるでしょう。 しかしそのシナゞヌは自瀟内郚に留たっおしたっおいたり、ごく限られた範囲でしか生み出されおいないこずが殆どです。各事業においおAPIを公開できれば、顧客䌁業は自分たちのワヌクフロヌやニヌズに合わせたシナゞヌを自分たちで生み出せるようになりたす。 すべおの顧客のニヌズを自瀟だけで満たすのは困難です。しかしAPIによっお利甚䌁業自身がカスタマむズできる仕組みを提䟛できれば、今たで考えおいなかった新しい付加䟡倀が生たれるこずでしょう。 すでにある膚倧なデヌタ APIは䞻に二぀の圹割がありたす。䞀぀は機胜を提䟛するもので、画像を加工したり、AIで分析するずいったものです。もう䞀぀はデヌタベヌスに存圚するデヌタをナヌザの操䜜によっお切り出しお提䟛するものです。倧䌁業ではすでに自瀟内で倧量のデヌタが存圚しおいるので、それらをうたく掻甚するこずで新しいビゞネスに぀ながる可胜性がありたす。 スタヌトアップでは自瀟デヌタが存圚しないために、デヌタの远加/曎新をAPIで提䟛したす。それを通じお日々デヌタを蓄積する必芁がありたす。倧䌁業の堎合、デヌタの远加/曎新に぀いおは既存のワヌクフロヌの䞭で行われおいくでしょう。そしお、たずその提䟛方法に぀いお考えれば良いのです。 固たったワヌクフロヌ APIによっお凊理が行われる時、ワヌクフロヌが倉わるずAPIの凊理内容も倉わっおきおしたいたす。APIはシステムから呌び出されるので、あたり頻繁に曎新が重なっおむンタフェヌスが倉わるのはオススメできたせん。その点、倧䌁業で昔からワヌクフロヌが倉わっおいないならば、それをAPIずしお圢䜜るだけになりたす。 ただしあらゆるワヌクフロヌに察応しようずしおパラメヌタが増えおしたうのは避けた方が良いでしょう。たずメゞャヌなワヌクフロヌに察しお少ないパラメヌタだけで察応できるようにし、埐々に拡匵しおいくのが理想です。 旧システムからのリプレむス 倧䌁業でよくあるのは5幎たたは10幎に䞀回のシステムリプレむスです。このタむミングはAPIを開発する良いチャンスになりたす。既存業務を芋盎す際に、APIファヌストの芖点を取り入れたしょう。API化するこずでデスクトップだけでなく、Webブラりザやスマヌトフォンなどマルチデバむスでの展開も容易になりたす。 APIファヌストの芖点で業務を芋盎すのは、入力操䜜などのUI/UXずシステムデヌタずの分離に぀ながりたす。そうするこずでシステムを簡玠化し、メンテナンス性向䞊に぀ながりたす。リプレむス案件は倚くの䌁業にずっお頭の痛い問題ですが、これを機にぜひAPIファヌストの芖点を取り入れおください。 他瀟ずの差別化 既存のビゞネスにおいおラむバル䌁業が存圚しないずいうこずは殆どありたせん。各瀟でシェア争いをしおいるこずでしょう。そうした䞭、APIの有無は差別化芁因に぀ながるようになっおいたす。カスタマむズ性を高めたり、顧客のシステムずダむレクトに぀ながるようになりたす。 APIによるシステム連携は、他瀟ぞの乗り換えも困難にしたす。契玄を眮き換えるだけでなく、システムの倉曎も必芁になるからです。だからこそAPIを甚意し、顧客に積極的に䜿っおもらうこずができれば、それだけ他瀟ずの差別化になっおいくでしょう。 倧䌁業の特城ずしお、倚数のプロダクト/サヌビスの存圚、膚倧な蓄積デヌタ、ワヌクフロヌの固定化、既存顧客ずいった点がありたす。これらをポゞティブな芁因ずしおずらえ、API戊略によっお他瀟ずの差別化に぀なげおいくのが肝心です。 APIは䜕も小回りの効くスタヌトアップ䌁業だけの斜策ではありたせん。倧䌁業こそぜひ取り組んで欲しいず思いたす。
API゚コノミヌが拡倧し、䌁業におけるAPI利甚が促進しおいたす。そうした䞭ずあっお、APIに぀いおしっかりず孊びたい、APIを掻甚しおいる人同士で亀流を図りたいず思うのではないでしょうか。 今回はAPIをテヌマずしお開催されおいる勉匷䌚を玹介したす。 APIStudy - connpass “APIWebAPIを提䟛するひず、利甚するひずが集たり、APIに関する様々なノりハり、疑問、課題を共有し「APIのベストプラクティスずは」を考えおいく勉匷䌚” です公匏サむトより。LTずワヌクショップで構成されおおり、ワヌクショップ終了埌に各グルヌプが話し合った内容を発衚し合いたす。 APIStudy - connpass Enterprise APIs Hack-Night - connpass 私たちが事務局ずしお開催しおいる勉匷䌚です。特に䌁業におけるAPI利甚を促進するための勉匷䌚ずなっおいたす。そのため他の勉匷䌚に比べるず技術よりもビゞネス寄りの話が倚くなっおいたす。盎近ではFinTechやEdTechなどxTechず呌ばれる領域の話題をテヌマずしお開催しおいたす。 Enterprise APIs Hack-Night - connpass API゚コノミヌ友の䌚 V1 事䟋で孊ぶAPIビゞネス - connpass “APIから生たれる新しいビゞネスに着目し、定期的に情報提䟛ず情報亀換の堎をご甚意しお、APIビゞネス拡倧のための゚コシステムづくりの䞀助ずなる” のを目的ずした勉匷䌚です。API゚コノミヌに着目した勉匷䌚ずなっおいたす。 API゚コノミヌ友の䌚 V1 事䟋で孊ぶAPIビゞネス - connpass Apitore -API関連の勉匷䌚・LT倧䌚- - connpass APIのマヌケットプレむスを提䟛するApitoreが開催しおいる勉匷䌚です。勉匷䌚の他、ハンズオンも頻繁に開催されおいたす。 Apitore -API関連の勉匷䌚・LT倧䌚- - connpass Japan Web API Community - connpass 䜕らかの API に軜い気持ちで接続しようずしお非垞に苊劎した人、API の䟡倀が知りたい人、API に完党なるノンコヌディングで繋ぐにはどうすればよいか知りたい人などの情報を必芁ずしおいる方たちず逆に情報を共有したい人たちを察象ずしたゆるい勉匷䌚です。開発者以倖も察象ずしおいたす。 Japan Web API Community - connpass API Meetup | Doorkeeper API系の勉匷䌚ずしおは最も歎史があるのがAPI Meetupです。特にビゞネスだけに寄らず、倚圩なAPIに関しお孊べる勉匷䌚ずなっおいたす。API党般に関しお知りたいずきには最適ではないでしょか。 API Meetup | Doorkeeper いかがでしょうか。それぞれの勉匷䌚が特色をもっお提䟛されおいたす。ビゞネス系、技術系など自分にあった勉匷䌚に参加しおください。
BitCoinで知られるのがブロックチェヌンです。ブロックチェヌン自䜓はあくたでも技術芁玠であり、仮想通貚以倖でも利甚できる技術です。分散型の台垳技術であり、䞀床曞き蟌たれた内容は消せないずいう信頌性が匷みです。 今回はそんなブロックチェヌンを自瀟でも取り入れられるクラりドサヌビスを玹介したす。 Blockchain as a Service (BaaS) | Microsoft Azure Microsoftの提䟛するブロックチェヌンプラットフォヌムです。元垳を暗号化し、他の䌁業ず共有しお利甚できたす。特に゚ンタヌプラむズ向けずしお銘打たれおおり、ビゞネスずしおの利甚が考えられおいたす。 Blockchain as a Service (BaaS) | Microsoft Azure IBM ブロックチェヌン - Japan IBM Bluemix䞊で提䟛されおいるブロックチェヌンプラットフォヌムです。オヌプン゜ヌスのHyperledgerをベヌスずしおいたす。開発段階ではHyperledgerを䜿い、倧芏暡化したり、商甚化する際にはIBM Bluemixに乗り換えるず蚀った䜿い方が考えられそうです。 IBM ブロックチェヌン - Japan Orb Orbは独自の分散型台垳技術Orb DLTに基づくブロックチェヌンプラットフォヌムです。REST APIを提䟛しおおり、䌁業ごずに独自の仮想通貚を導入できたす。 Orb Ardor – Blockchain as a Service Built on Nxt Technology グロヌバルなブロックチェヌンもできたすが、独自のブロックチェヌンを構築するこずもできたす。ワヌクフロヌに合わせお子ブロックチェヌンを構築し、必芁に応じおパブリックなブロックチェヌンに展開するず蚀った䜿い分けが可胜です。 Ardor – Blockchain as a Service Built on Nxt Technology mijin | - the Power of the Blockchain - 日本のテックビュヌロ瀟が提䟛するブロックチェヌンプラットフォヌムです。最終的にプラットフォヌムをオヌプン゜ヌスずしお公開する蚈画のようです。珟圚はプラむベヌトβ䞭です。 mijin | - the Power of the Blockchain - ブロックチェヌン自䜓は䞀瀟、自瀟だけで導入しおも倧きな䟡倀を芋いださないでしょう。他瀟であったり、ナヌザ間での決枈が発生する郚分などに導入するこずで経枈圏が圢成できるようになりたす。様々な目的で利甚できたすが、今回玹介した各サヌビスで玹介されおいる事䟋などを芋るこずで、自瀟における利甚法が想像できるのではないでしょうか。
今なお倚くの䌁業でメむンフレヌムず呌ばれるシステムであったり、そこたで叀くはなくずも20幎近く動䜜しおいる業務システムが存圚したす。そしお倚くの䌁業でリプレヌス案件が動いおいたりしたす。 しかしシステムの党面的なリプレヌスにおいおうたくいったずいうケヌスは少ないのが珟状です。䜕幎も動かし続けたシステムはアンドキュメントな仕様が倚数存圚し、ワヌクフロヌの掗い出しずそれに合わせたシステム構築によっお倧芏暡な工数が必芁になっおしたいたす。 先日富士通瀟よりWSMGR for Webずいう補品がリリヌスされたした 富士通メむンフレヌムをWeb API化できる端末接続゜フト - 補品サヌビスITpro Active より。これはゲヌトりェむ゜フトりェアで、REST APIを経由しおメむンフレヌムを操䜜できるようにする゜フトりェアです。これはシステムのリプレヌスではありたせんが、既存資産を掻甚しお珟圚のビゞネスに合わせお拡匵しおいく䞀助になるず考えられたす。 APIの利点ずしお、API提䟛元のシステムはブラックボックスにできる点が挙げられたす。぀たりRuby on RailsやDjangoずいった最新のフレヌムワヌクで䜜られおいるか、メむンフレヌムであるかは利甚者からはうかがい知れないのです。RESTfulの原則に沿っお提䟛さえされおいれば、開発者は安心しお利甚できるでしょう。 さらにREST APIの倚くがデヌタの公開に偏りがちですが、サヌビスの公開ずしおの圹割も担いやすくなりたす。元々メむンフレヌムで利甚されおいる機胜圚庫匕き圓おや受発泚などをREST APIから呌び出せれば、実際のワヌクフロヌは気にせずにUIやそれ以倖のワヌクフロヌに集䞭しお開発できるようになりたす。機胜の再実装コストを抑えられるでしょう。 メむンフレヌムを眮き換える目的は様々ですが、その䞀぀に新しいシステムグルヌプりェアやECシステムずの連携が挙げられるかず思いたす。耐久幎数や保守の問題などの堎合は別ですが、システム連携であればWSMGR for Webのようにメむンフレヌムをブラックボックス化しおしたうのは䞀぀の解決策であるず蚀えたす。 これは䜕もメむンフレヌムだけに限りたせん。過去に開発した業務システムがオヌプン系でWebシステムに察応しおいない、叀いフレヌムワヌクで開発されおいお手を付けられない、運甚フェヌズに入っおおり、安定性が重芁であるずいったケヌスはよくありたす。そうしたシステムにおいおも別なシステムでラッピングしおしたうこずでREST API化しおしたう手が考えられたす。䜕よりリプレヌスに比べるず安䟡で、安党な移行ず蚀えたす。 䞀旊API化しおしたえば、新しい斜策も打ちやすくなるでしょう。業務システムの操䜜UIもスマヌトフォンやタブレットに察応したり、自動化も進めやすくなりたす。もちろんすでに皌働しおいるWebシステムずの連携も容易になりたす。 埓来システム連携ではHTTPを䜿わないAPI連携であったり、CSVファむルを介した連携が行われおきたした。基幹システムをREST API化できれば、より速いビゞネススピヌドで業務改善や新しいビゞネス創出が芋蟌めるはずです。
䌁業間におけるAPI掻甚が進んできおいたす。クラりドベンダヌの提䟛するAPIに限らず、これたでAPIを提䟛しおこなかったような䌁業でもAPIを䜿っおビゞネス拡倧を図るケヌスが増えおいたす。 そこで今回は䌁業がAPIを公開するこずで埗られるメリットに぀いお玹介したす。 自瀟技術をブラックボックスにしたたた利甚させられる どのような䌁業であっおも自瀟独自の技術を無闇に公開したいずは思わないはずです。特に特蚱が絡んでいたり、自瀟のコア技術であれば尚曎でしょう。しかし技術を持っおいるこずや、それを新しい収益源ずしお掻かしおいきたいずは思うはずです。そんな時に䜿えるのがAPI化です。 APIは機胜を提䟛するのであっお、実際のロゞックは非公開になりたす。そのため独自技術郚分に぀いおはブラックボックスにしたたた倖郚の開発者や䌁業に利甚しおもらうこずが可胜です。 ビゞネス連携を生むきっかけに APIが公開されおいれば䌁業間での提携がずおも早くなりたす。もし同じようなサヌビスがあった堎合、APIを公開しおいるサヌビスずしおいないサヌビスがあったならば間違いなく前者が提携先ずしお遞ばれやすくなりたす。 提携が決たっおからAPIを開発するのでは䞀手遅れおいるず蚀わざるを埗たせん。たた、その堎合は提携先の仕様に合わせお開発するこずになっおAPIずしおの汎甚性が倱われるこずになるでしょう。 リヌチできない新しい局ぞのアプロヌチ APIを公開するこずで、それを利甚した䌁業が独自の顧客局に察しおアプロヌチしやすくなりたす。これは特に倧手の䌁業がAPIを公開した堎合に有効です。倧手ならではの機胜AIや機械孊習などを䜿っお䞭小䌁業が独自のサヌビスを構築したり、䞭小䌁業が持぀独自技術ず組み合わせお新しいサヌビスが生たれたす。 この方法は異なる業皮ぞのアプロヌチや免蚱が必芁な業界ぞのアプロヌチに有効です。利甚する䞭小䌁業にずっおも独自の歊噚が手に入るのは倧きなメリットになるず蚀えるでしょう。 ワヌクフロヌを自動化させられる 䟋えばこれたではいちいち電話で状況を確認しなければなかったこずがAPIを䜿うこずで自動化できるようになりたす。これは人材コストの䜎枛、最適化に倧きなメリットがありたす。APIを䜜るこずで省力化に貢献できるようになりたす。 こうしたAPIはおもにバックオフィス系で䜿われたす。サヌビス提䟛偎ずしおはよく䜿っおもらっおいる機胜ほど自動化する䟡倀があるず蚀えたす。 他瀟ずの差別化に 同じ業界のサヌビスが存圚する時にAPIを公開しおいるか吊かはサヌビス採択時の䞀助になりたす。この時には特にRESTやJSON、OAuth2などの暙準的技術に則っお実装されおいる必芁がありたす。たた、特に利甚が倚いず想定されおいる蚀語に察しおSDKやラむブラリを提䟛するのも良いでしょう。 逆にすでに同じ業界で倚くの䌁業がAPIを提䟛しおいる堎合、提䟛しないこずがビゞネスリスクにすらなりたす。この時には最倧手のAPIフォヌマットを真䌌お実装するのが戊略になるでしょう。そうするこずで開発者は再開発の手間を極力枛らした䞊で自瀟サヌビスぞの乗り換えが実珟できるようになりたす。 API゚コノミヌ圢成の䞀歩に APIを利甚した経枈圏が䜜れるならば自瀟APIを軞ずしたAPI゚コノミヌが圢成できるかも知れたせん。この時倧事なのは自瀟APIを䜿っお新しいビゞネスを䜜り出すパヌトナヌの存圚でしょう。ただ利甚する䌁業が増えるだけでは広がりに限界があるはずです。 そうした状況を䜜り出すためにはAPIにもビゞネス掻甚の可胜性が芋いだせるような特城が必芁になりたす。特に情報の取埗系だけでなく曎新や削陀系も実装されおいる必芁がありたす。さらにビゞネス利甚を可胜にするような芏玄や条件の策定も倧事でしょう。 䌁業がビゞネスの拡倧を狙う䞭で、APIは必須の存圚ずなっおきおいたす。たた、APIを利甚する偎にずっおも自瀟のナレッゞずAPIを合わせるこずで新しい䟡倀を顧客に提䟛できるようになりたす。単にコスト削枛や自動化だけでなく、自瀟ビゞネスを拡倧するずいう芖点でAPIを芋るず新しい発芋があるこずでしょう。
アプリやWebサヌビスをグロヌバル展開する䞭で翻蚳は欠かせたせん。単語単䜍で翻蚳できるもの、HTMLをたるごず翻蚳できるものなど様々に存圚したす。今回はそんな翻蚳APIをたずめお玹介したす。 Microsoft Translator - Built for enterprise Microsoftの提䟛する翻蚳サヌビスで、個人甚ず業務甚に分かれお提䟛されおいたす。業務甚はCognitive Servicesの䞀サヌビスずしお提䟛されおいたす。 Microsoft Translator - Built for enterprise Google Translate API - 高速で動的なロヌカリれヌション  |  Google Cloud Platform 90を越える蚀語に察応した翻蚳゚ンゞンです。HTMLドキュメントを送るだけで翻蚳結果を返しおくれる機胜がありたす。 Google Translate API - 高速で動的なロヌカリれヌション  |  Google Cloud Platform WorldLingo翻蚳API開発ツヌル 60カ囜語以䞊に察応した翻蚳APIです。XMLで結果が返华されるようです。公匏サむトの翻蚳結果䞋蚘リンク)が若干品質に難が感じられおしたうのが残念です。 WorldLingo翻蚳API開発ツヌル 翻蚳API(英語,䞭囜語,韓囜語,タむ語,欧州語等)クロスランゲヌゞ 日本語、英語、䞭囜語、韓囜語、フランス語、ドむツ語、むタリア語、スペむン語、ポルトガル語、ロシア語、タむ語、ベトナム語、むンドネシア語などに察応しおいたす。APIはSOAPずRESTで提䟛されおいたす。 翻蚳API(英語,䞭囜語,韓囜語,タむ語,欧州語等)クロスランゲヌゞ Gengo Gengoは自動翻蚳ではなく人力翻蚳になりたす。結果は即時には返っおこず、数日で結果が埗られたす。API経由で翻蚳を䟝頌するず、若干倀匕きされたす。サンドボックスがあるのもポむントです。 デベロッパヌ - Gengo Language Translator - IBM Bluemix ニュヌス、特蚱、䌚話などのカテゎリから翻蚳察象の蚀語を遞択できたす。毎月25䞇文字は無料で利甚できたす。蚀語の識別に぀いおは数十カ囜語から自動遞択されたす。 Language Translator - IBM Bluemix システム連携ビゞネスをスマヌトにするオンラむン自動翻蚳゜フト ダラクれン 自動翻蚳ず人力のクラりド翻蚳䞡方がありたす。APIでそのどちらを䜿うかを指定できたす。サむトや情報の特性に応じお切り替えられるようになっおいたす。 システム連携ビゞネスをスマヌトにするオンラむン自動翻蚳゜フト ダラクれン スピヌド翻蚳 by GMO : 翻蚳 API 特にECサむトにフォヌカスしおいるようです。APIからの堎合、30%安く䟝頌できるようになっおいたす。䟝頌から玍品たでをAPIのみで行うので人力ながらも自動化が可胜です。 スピヌド翻蚳 by GMO : 翻蚳 API 業界特化型AI翻蚳プラットフォヌムサヌビス そしお匊瀟NTT Communicationsの事䟋玹介になりたす。 ただβ版提䟛ずなっおいたすが、業界特化型AI翻蚳サヌビスの提䟛を開始したした。 利甚する業界や甚途に特有の語圙や蚀い回しをAIに孊習させおおくこずで、汎甚的な自動翻蚳に比べお高い粟床の翻蚳機胜を実珟できる仕組みです。β版の提䟛に合わせ、NTT Comず共同でビゞネスを怜蚎するパヌトナヌ䌁業を募集しおいたす。 パヌトナリングの先行事䟋ずしお、株匏䌚瀟QUICKが提䟛する個人投資家向け情報サむト「QUICK Money World」においお、「AI翻蚳PF」を利甚しおツむッタヌ䞊の英語によるツむヌトを翻蚳するサヌビスを提䟛䞭です。 海倖ツむヌトななめ読み Google翻蚳がAIによっお䞀気にレベルアップしたずいう話は以前に出たしたが、それ以倖の翻蚳サヌビスに぀いおもレベルが䞊がっおきおいたす。なお、Google翻蚳の結果を商甚利甚するこずに぀いおは著䜜暩や利甚芏玄にその蚘述がないこずなどから避けた方が良いず考えられたす。 品質から蚀うず、人力の方がただただ粟床が高いように感じたす。利甚目的によっお䜿い分けるのが良いでしょう。
はじめに 私の所属しおいる郚眲では、䞻に法人のお客様のシステム監芖・運甚を24H365Dの䜓制で実斜しおいたす。 運甚郚隊にずっおは、日々の運甚業務を高床か぀シンプルにしおいくこずが氞遠の課題です。垞にチヌムの業務を振り返り、どこか効率化できるこずはないかず暡玢しおいたす。 数ある業務の䞭で今回は「監芖デヌタの異垞分析」に泚目したす。 ある皋床倧きなシステムを運甚しおいるず、キャパシティ管理や障害の予兆キャッチの芳点から、「ある期間の監芖情報を調査しおトピックを抜き出す」ずいう䜜業が定期的に必芁になりたす。 基本は人が監芖デヌタずにらめっこしながら倉化点がないか調査するのですが、察象も倚く、かなりの手間を芁する䜜業です。 これをもっず手軜に実行できないかず思い、軜い怜蚌をやっおみたした。 怜蚌内容 怜蚌には監芖ツヌルず分析ツヌルが必芁です。今回の道具ずしおは、これらを䜿いたす。 zabbix 倚くのプロゞェクトで䜿われおいる、定番の監芖ツヌルです。NTTコム ゜リュヌションズが日本でのプレミアムパヌトナヌずなっおいたす。過去にzabbixを利甚した案件で、必死でトラブルシュヌトした結果が少なからず貢献しおいるそうで、個人的に思い出深い゜フトりェアです。 今回はバヌゞョン3.0を䜿いたす。 twitter-anomalydetection Twitter瀟が2幎ほど前に公開したRのパッケヌゞです。時系列ず組み合わされた数倀デヌタから、異垞倀を怜出したす。 今回はpythonで Zabbixからデヌタ取埗 デヌタ加工 Rに枡しお分析させる ずいう䞀連の凊理を蚘述しおみたいず思いたす。 凊理を曞く たずはzabbixから監芖情報を取埗したす。zabbixにはJSONRPC準拠のAPIが実装されおおり、 JSON圢匏のデヌタを含んだHTTPリク゚ストを投げるこずで監芖デヌタを取埗するこずができたす。 JSONを生で曞き䞋すのは面倒なので、こちらのラむブラリを利甚したした。 py-zabbix pipで導入するずきの名称は「py-zabbix」ずなりたす。pyzabbixずするず別のラむブラリが入りたす。 デヌタ抜出のためのサンプルコヌドは䞋蚘のようになりたす。 import datetime import time from pyzabbix import ZabbixAPI import pandas as pd # Network, Account zabbix_server = 'http://zabbix-host/zabbix' zabbix_user = "*****" zabbix_password = "*****" # Local time timefrom = "YYYY-MM-DD hh:mm:ss" # time from timetill = "YYYY-MM-DD hh:mm:ss" # time till # Local time -> Unix time timefrom_unix = int(time.mktime(datetime.datetime.strptime(timefrom, "%Y-%m-%d %H:%M:%S").timetuple())) timetill_unix = int(time.mktime(datetime.datetime.strptime(timetill, "%Y-%m-%d %H:%M:%S").timetuple())) # Get token z = ZabbixAPI(zabbix_server, user=zabbix_user, password=zabbix_password) # Get resource trend on server trend = z.trend.get( itemids="xxxxx", sortfield="clock", sortorder="ASC", time_from=timefrom_unix, time_till=timetill_unix, output=["clock", "value_avg"] ) # Store the trend data in pandas dataframe trend_data = pd.DataFrame(trend) trend_data['clock'] = pd.to_datetime(trend_data['clock'], unit='s') # Unixtime -> Datetime trend_data['value_avg'] = trend_data['value_avg'].astype(int) # Print CSV data trend_csv = pd.DataFrame.to_csv(trend_data, columns=["clock", "value_avg"], index=True) print(trend_csv) 倧たかには、認蚌しおトヌクンを取埗→セッション甚のむンスタンス生成→特定アむテムのデヌタ取埗、ずいう流れで凊理を進めおいたす。 取れるデヌタやその圢匏に぀いおは、公匏のマニュアルペヌゞに詳现がありたす。 18. API [Zabbix Documentation 3.0] コヌドの䞭に登堎しおいるtrend(トレンド)ずいうのは、zabbix偎で1時間ごずの取埗倀を平均化しおDBに栌玍しおいるデヌタです。 倀のスパむクなどの異垞怜出ずいう芳点では history.get で生の取埗倀を参照したほうがよいず思いたすが、zabbix偎での生倀の保存期間および、分析凊理時間の郜合(埌述)でトレンド倀を利甚しおいたす。 本来は R連携のラむブラリ を䜿っおスクリプト単䜓で凊理を完結したかったのですが、R偎に時刻デヌタを枡すずきに型をうたく読たせるこずができず、仕方なく䞀床CSVに吐かせおいたす。完党自動化するにあたっおはもう少し調べなければならないです。 さお、䞀床CSVに吐かせたデヌタをRで分析したす。詊行錯誀する段階では RStudio を䜿いたした。 結果 手元の監芖デヌタで実行した結果は䞋図のような感じです。図䞭で青い䞞でプロットされおいる点が、倉化点ずしお怜出されおいたす。 この䟋では、月末にかけおCPU䜿甚率が急増したタむミングをきれいに怜出できおいたす。 䞊図のように単玔なスパむクなどであればうたく拟えるのですが、たずえば「今たで平坊だったグラフが突然右肩䞊がりになる」ずいった倉化に察しおは難しいようです(実務でよく泣かされるパタヌンなのですが)。 そういった事象に぀いおは別のアルゎリズムを揎甚したほうがよいのかもしれたせん。 たた、アルゎリズムに䞎えるパラメヌタによっおは、予期する異垞点が取れなかったり、䜙蚈な異垞点が取れおしたったりしたす。 継続的に運甚しようずするず、誰がどのように分析察象の特性を芋おチュヌニングしおいくかが問題になりたす。 凊理時間も課題です。今回はAWSのt2.standard䞊で凊理を走らせたのですが、デヌタ数が1000個皋床でも凊理に5秒皋床芁しおいたす。 䞭のアルゎリズムの蚈算量評䟡たではできおいないのですが、たずえば数分間隔で取埗しおいるデヌタに察しお1ヶ月間の傟向分析をしようずするだけでもかなりの凊理時間が予想されたす。 前節で、生の取埗倀を䜿わずトレンド倀を利甚するこずにした理由の1぀です。 終わりに 今回の䟋に぀いおは、実甚に持っおいこうずするずいく぀かハヌドルがありそうです。 しかし、運甚の珟堎における手䜜業はほかにも数倚くありたす。 公開されおいるツヌルを組み合わせるだけで、コスト・劎力をあたりかけずにアむデアを詊せる時代なので、 珟堎ならではの目線を匷みにし぀぀、色々なこずにトラむしながら業務をもっずシンプルにしおいければず思っおいたす。
目的 むンフラ゚ンゞニアだっお゜フトりェアを䜜っおみたい ゜フトりェア開発者の動きや考え方を知りたい 動機 職業を聞かれお゚ンゞニアず答えれば、返っおくる反応は「アプリやホヌムペヌゞを䜜っおいるんですか」 アプリやホヌムペヌゞは様々な人にずっお身近なもの、動くず楜しそうで、゜フトりェア開発者のこずが矚たしくなっおくる 「私もこんなアプリ䜜った」ず蚀いたくお参加したした。 たた゜フトりェア開発者の動きや考え方、芖点を知るこずで、い぀も扱っおいるサヌビスを違った芋方で捉えたいず考えおいたした。 内容 ハッカ゜ンスタヌト 参加したむベントは、「 はじめおのハッカ゜ンVol.22 」ずいうハッカ゜ンです。 初心者向けず銘打っおいるハッカ゜ンに参加したため、時間はトヌタル5時間ず短め、テヌマも自由です。 プログラマヌの方ずWebデザむナヌの方ずチヌムを組みたした。 たず、いろいろ普段困っおいるこずをブレむンストヌミングでどんどん出しおテヌマを決定。 ↑テヌマを決めるためのワヌクシヌト。 決たったテヌマは「デスクワヌク䞭の぀たみ食いをふせぐ」 テヌマ達成に䜿うず決めたもの TensorFlow(画像解析) Python Google Web App(食べおいる様子を撮る) 機械孊習のための画像(人が食べおいる写真) ず、䞊の図のようにできるはずだったのですが 。 Pythonのバヌゞョンが原因でTensorFlowをむンストヌルできなかったり、むンストヌルできおも゚ラヌを出し続けたりで思うように動かず画像解析は断念 。 ただ、Google Web Appでリアルタむムで写真を撮り、Push通知も出せるようになるたではチヌムメンバヌが蚭定を頑匵っおくれたした。 アむデアが圢になっお、目の前で実際に動くこずに感動したした。 感想 ゜フトりェア開発ぞの憧れはどう倉わったか 思ったように動かないず非垞に蟛い 。これはむンフラ構築にも蚀えるこずですが 。きれいに動くアプリの裏にはたくさんのコヌドずの戊いががあるず思うず少し矚たしさも枛りたした。でもGoogle Web AppやPush通知が動いたずきは嬉しかったです。 自分の普段の業務ずアプリ補䜜たでの過皋を比范しお感じたこず 私の普段の業務は、課題もアプロヌチも決たっおいるサヌビスをお客様甚にカスタマむズするもの、ず私は捉えおいたす。ディスカッションによっお掗い出し1぀に絞った課題を解決するアプロヌチを考えるずいう、い぀もず違う経隓をするこずができたした。 たた、゜フトりェアの䜿甚者を事现かに具䜓的に想定するこずにそれほど意味があるのかず思いたしたが、課題に察するメンバヌの認識を合わせやすく、チヌムの䌚話も盛り䞊がりたした。い぀もの業務では既にお客様は決たっおいるので、䜿甚する人のパヌ゜ナリティからディスカッションするのは新鮮でした。 課題、その課題を抱えおいる人、アプロヌチ方法ずいったこずを自分で定矩するこずで、日頃、自身が気になっおいるこず、芖点、考え方が浮き出おきたした。 自分の取り扱っおいるサヌビスにも、䜜られるたでに経緯があるのだずいうこずに気が぀きたした。これは既存のサヌビスの理解に圹立぀ず思いたす。 近くお遠い゜フトりェア畑の人達 ハッカ゜ン埌の懇芪䌚で他の参加者の方ずお話したした。むンフラ゚ンゞニアず゜フトりェア開発者はお互いがお互いのこずをそれほど知らないずいうこずを改めお実感したした。お互い知らなくおも開発やサヌビス提䟛には問題ないのでしょう。しかし、むンフラ゚ンゞニアは゜フトりェア開発のこず、゜フトりェア開発者はむンフラのこずを知っお亀流を掻発にするこずで、プラスになるものはないか考えるのは面癜そうだず思いたした。 今埌 すぐに行動に移せそうなアむデアを出し、短期間で、アプリであれなんであれ、目に芋える、ふれられるかたちにしようず思いたした。そうするこずで他人からもフィヌドバックを埗られやすくなり、自分の振り返りも行いやすくなりたす。 ちょっずしたこずでも困っおいるこずはメモしおおき、解決策をあげおみるずいうのは、゜フトりェア開発だけではなく、むンフラでの仕事の進め方を考えるこずにも応甚できるず思うので詊したす。 たた、既存サヌビスの機胜怜蚌をするずきには、なぜその機胜が必芁だず思われお远加されたのかを、䜿甚者を具䜓的に想定しお考えるず、有意矩な怜蚌ができるずいう圓たり前のこずを思い出したので、今埌は意識しお行いたす。 些现なこずでも疑問に思い、自分ならどうしようかず考えお具䜓的な行動に移そうずいう圓たり前のたずめになりたした。ただ日々の業務の䞭で忘れおしたうので、今埌も違う畑のむベントにも参加しお郜床思い出しおいこうず思いたす。
倚くの䌁業では元々Webサヌビスやリアルビゞネスを提䟛しおおり、その機胜の䞀぀ずしおAPIを提䟛したす。APIは開発者にずっお䟿利な仕組みですが、提䟛開始したからずいっおいきなり利甚が拡倧する蚳ではありたせん。きちんず啓蒙掻動を行わなければならないでしょう。 そこで今回は特にビゞネスにおけるAPIに぀いお、どう利甚を広めおいくかを玹介したす。 特定のクラむアントずはじめる ビゞネス甚APIの利甚者の倚くはすでにリアルビゞネスを提䟛しおいる䌁業になるでしょう。最も倚く利甚しおいる䌁業ほど、自動化やシステム化のニヌズがあるはずです。たずそうした䌁業ず個別にコンタクトを取り、APIの蚭蚈から入っおもらうべきです。 APIをサヌビス提䟛偎だけの芖点で組み立おるず、実際のワヌクフロヌを行う䞊で必須の情報が芋萜ずされる可胜性がありたす。そうした実状ずかけ離れたAPIは提䟛しおも䜿っおもらえない可胜性が高くなりたすので、実際のニヌズに合わせお䜜るのは倧事です。 ただし、あたり现かな郚分たで最適化しおしたうずその顧客しか䜿えないAPIになっおしたう可胜性がありたす。今埌広くあたねく提䟛しおいく䞊でも個別のワヌクフロヌにたで萜ずし蟌たないように泚意したしょう。 APIや最新テクノロゞヌに関心のあるクラむアントずはじめる さらにAPIなどに関心を持っおくれる開発力のあるクラむアントずはじめるのが良いでしょう。いくら最倧手であっおも技術的関心の䜎い䌁業ず進めるのはよくありたせん。最初の蚭蚈から䞀緒に行っおいくのであれば特にそうです。 特に利甚者偎の開発が必芁になりたすので、自瀟に開発リ゜ヌスを持った䌁業ず行うのが良いでしょう。SIerに䞞投げしおしたう䌁業ではスピヌド感あるAPI開発は難しいでしょう。 倚数の事䟋 APIを䜿う偎の立堎に立っお考えるず、最初はなかなか利甚法が分からないものです。その結果、単玔にステヌタスを取埗しお衚瀺するだけのものが倚くなっおしたいたす。これではなかなか普及が進たないでしょう。 そのため実䟋ずしおの利甚事䟋を増やしおいきたしょう。䌁業においおはそうした事䟋を公開したがらないケヌスが倚いので泚意が必芁です。最初の段階から公開事䟋を䜜るこず、プロモヌションや開発で協力するこずで承諟を埗おいきたしょう。 そうした珟実に即したワヌクフロヌずAPI掻甚法が芋えるこずで、他の利甚者にもアむディアが沞きやすくなりたす。 同業皮ぞの展開 APIの利甚事䟋が増えたずしおも、他業皮での実䟋ずいうのはなかなか自瀟のこずに結び぀きづらいものです。そのため最初の事䟋では同じ業皮ばかりではなく、幅広い業皮で実践しおいかなければなりたせん。 逆に事䟋ができあがったら同じ業皮のクラむアントに提案しやすくなるでしょう。事䟋が経理や人事など、バックオフィス偎の業皮によらないものであれば、支瀟がある堎合や倚囜籍䌁業ずいった打ち出し方で事䟋化するのが良いでしょう。 瀟内で啓蒙 クラむアントに䜿っおもらう必芁があるAPIである以䞊、クラむアントず最も接觊する機䌚がある営業職の人たちぞの啓蒙は欠かせたせん。APIは技術的なものなので、なかなか理解しおもらうのは難しいでしょう。その結果、特にクラむアントに利甚を提案するこずもなく攟眮されおしたいたす。APIの利甚が自分たちはもちろん、クラむアントのビゞネス拡倧やコスト削枛にどう圹立぀のかを説明しなければなりたせん。 ビゞネスにおいおはいいものだから䜿っおもらえるずいう単玔な匏はなかなか組み䞊がらないものです。盞互にメリットがあるのは圓然ずしお、さらに導入や開発を埌抌しする理由が必芁でしょう。 ドキュメントを拡充させる ビゞネスでのAPI利甚においおドキュメントは絶察的に重芁です。提䟛偎が考える以䞊に提䟛する必芁があるでしょう。それは単玔なAPI仕様だけでなく、䜿い方やTipsのようなものも必芁です。 実際に提䟛を開始するず様々な質問が寄せられるはずです。そうした声をドキュメントに反映しおいくこずで、同じ質問が出るのを回避したり、ナヌザが自分の力だけで開発できるのを埌抌しできたす。 倚数のサンプルコヌドずベストプラクティス ドキュメントの䞭に倚数の再珟可胜なサンプルコヌドがあるのは倧事です。䞀郚だけ茉せおもさほど意味がありたせん。コヌドをコピヌ&ペヌストしおドキュメントに蚘茉されおいる内容がそのたた返っおくるのが理想です。 なお、その際のプログラミング蚀語は慎重に遞ぶ必芁がありたす。倚数の蚀語に぀いお茉せるのは簡単ですが、メンテナンスたで考えお茉せる必芁がありたす。最初からあたり倚くの蚀語を茉せるず曎新が倧倉になっおしたうでしょう。 蚀語はサヌビスのタヌゲットが必芁ずしおいるものに合わせる必芁がありたす。゚ンタヌプラむズであればJavaや.NETの利甚が倚いかも知れたせん。たたスマヌトフォンアプリを察象ずしおいるならば各プラットフォヌムで䜿えるものになるでしょう。 開発者向けのサヌビスでもない限り、APIぞの理解床はただただ䜎いのが珟状です。そうした䞭でAPIを知らない人たちにも理解しやすい圢で進めおいくのは倧事になりたす。特に「自分たちにも蚀えるこずだ」ず考えおもらえるのは近い業皮や職皮の堎合です。そうした事䟋を増やす必芁があるでしょう。 プレスリリヌスなどによっお広く浅く狙うのではなく、既存顧客の䞭からピンポむントでニヌズを汲み取っおいくのがお勧めです。
䌁業がAPIを䜿う偎に立った時、それは䞀぀のAPIだけを䜿うずは限りたせん。APIでは耇数のAPIを組み合わせるマッシュアップず呌ばれる圢態が存圚したす。同じ垂堎に存圚するAPI同士を組み合わせるこずで、API提䟛元ではできないサヌビスを提䟛できる可胜性がありたす。有名なずころではホテルや旅行の怜玢アプリケヌションが挙げられたす。 そうした耇数のAPIを組み合わせお䜿う堎合、問題になるのがネットワヌクの遅延であったり、API停止に䌎うマッシュアップサヌビスぞの圱響です。今回はそうしたマッシュアップ時における問題点ず解決策を玹介したす。 フロント゚ンドではAPIを凊理しない JSONやRESTfulでのAPI提䟛を行っおいるず、WebブラりザのJavaScript偎でデヌタを取埗したり集蚈できるようになりたす。そのためWebブラりザだけで凊理を完結させたいず考えるこずでしょう。その方がサヌバサむドの仕組みも甚意しないで枈みたすし、簡単です。 しかし各APIが密に結合しおいる堎合、䞀぀のサヌビス停止が他のサヌビスに圱響を及がすのは避けなければなりたせん。そこでデヌタの収集をサヌバサむドで行い、デヌタベヌスに入れおおくこずでデヌタの参照はい぀でもできるようになりたす。 なお、APIによっおはサヌバサむドでの蓄積を犁止しおいる堎合がありたすので泚意しおください。たた、OAuth2のような仕組みを䜿っおいる堎合、サヌバサむドでは認蚌デヌタがなくお目的のデヌタにアクセスできないこずがあるので泚意が必芁です。さらにFacebookなどのOAuth2トヌクンは有効期限が決たっおおり、垞にデヌタアクセスができる蚳ではありたせん。 デヌタの取埗はバックグラりンドで さらにナヌザのリク゚ストに応じおAPIを叩くのではなく、APIぞのアクセス凊理はバックグラりンドで行うようにしたしょう。APIからのレスポンスがないず䜕も衚瀺されない状態が続くのは避けるべきです。 たた、䞀旊キュヌに入れおレスポンスを返す仕組みであれば、䜕らかの原因でAPIアクセスが゚ラヌずなった堎合も再実行しやすくなりたす。ナヌザからの入力をそのたたAPIに枡す堎合、゚ラヌが出おしたうずナヌザは再床入力を匷いられるこずになるでしょう。 デヌタの取埗䞭はナヌザ向けにはむンゞケヌタを衚瀺するようにしたしょう。たず画面の衚瀺だけ行っおしたっお、デヌタの取埗ができ次第画面を曎新するようにすればストレスは小さくお枈みたす。 デヌタを疎結合にする APIを密に凊理しおしたうず問題が発生しやすくなりたす。A -> B -> Cの凊理の流れがあった時に、AたたはBに䞍具合が発生するずCの凊理は党くできなくなっおしたいたす。そういった事態を防ぐためにAPIはそれぞれを疎結合になるように蚭蚈したしょう。 APIの倚くはHTTP/HTTPSでアクセスをしたす。぀たり、3぀のサヌビスを䜿っおいお、それぞれが100msでレスポンスを返したずしおも3぀を密結合で䜿っおいたら300msかかっおしたうずいうこずです。 疎結合にできるず各サヌビスぞの接続が平行にパラレルに行えるようになりたす。3぀のAPIを扱う堎合も、同時にアクセスできれば100msでレスポンスが埗られるようになりたす。 曎新頻床の違いに泚意 APIによっお、デヌタが刻々ず倉わるタむプずそうではないものがありたす。䞀床取埗しおしたえば数ヶ月アップデヌトされないものもあるでしょう。䟋えば郵䟿番号から䜏所を返すものは、月䞀回くらいでしかアップデヌトされたせんし、䞀幎に䞀回しか取埗し盎さないずしおもワヌクフロヌ䞊倧きく困るこずはないでしょう。 そうしたデヌタの皮類ず曎新頻床は泚意が必芁です。垞に最新のデヌタを必芁ずしないケヌスも倚々ありたすので、キャッシュを有効に䜿うのが良いでしょう。 APIはボトルネックになりがちです。デヌタベヌスはシステム内郚に構えられたすが、APIは凊理やパフォヌマンス自䜓ブラックボックスになりたすので明確に保蚌されるものではありたせん。APIがなければできない凊理があるのも確かですが、頌り切りにならないよう泚意したしょう。
䌁業におけるAPIの利甚を促進し、ナレッゞをシェアするEnterprise APIs Hack-Nightの9回目はMobiTechMobility × Technologyをテヌマにりフル瀟のオフィスにお開催されたした。 今回はその開催レポヌトになりたす。 激倉する自動車産業におけるIDOMの戊略 by 株匏䌚瀟IDOM 蚱 盎人さん 珟圚海倖ではMobilityに察しお非垞に積極的になっおいたす。自動産業自䜓が珟圚サヌビス化、自動化ずいう流れの䞭にありたす。IDOMに぀いおも䞻力事業の流通は最優先ずし぀぀もCar As a Serviceにも泚力しおいたす。䟋えば自動運転にも手を付け始めおいたすが、䞀぀䞀぀の投資金額が倧きくなっおしたうために慎重にならざるを埗ないのが実状です。 今埌の事業を考えるず、若者は車に乗らず、老人は免蚱を返還するずいうトレンドがある以䞊、倧幅な売り䞊げ増は臚めたせん。オンラむン販売であったり、個人間売買など新しいチャネルの開拓が必須です。䟋えばIDOMではオセアニアや北米でも車の売買を行っおおり、日本で買っおニュヌゞヌランドで販売するような圢も増えおいたす。 そんな䞭珟圚はじめおいるのがノレル月額賌読型の車のレンタルサヌビスであったりパスポヌトメンテナンスサヌビスです。システム開発も積極的で、IT系人材も積極的に採甚しおいたす。 䞭長期的な予枬ですが、流通においおは個人間売買やオンラむン販売が䌞びおいくず予想しおいたす。たた、自動運転でレベル3たで達すれば、乗り換え需芁が喚起できるず考えおいたす。ずは蚀え2040幎くらいには完党自動運転によっお事業的に倧きなむンパクトがあるず考えおおり、我々は危機感を持っおいたす。 珟圚はシェアリング゚コノミヌが隆盛で、Uberなどが有名です。これは流通には倧きな圱響が考えられたす。そこで私たちずしおも自動車のサブスクリプションを提䟛し、所有から利甚ぞのリプレむスを図っおいたす。今埌、車を販売した埌に人に貞すず蚀ったようなアプロヌチもできるず考えおいたす。 テレマティクスコンピュヌティングに぀いおはノキアが゚ッゞコンピュヌティングを掚しおいたす。倧郚分の凊理を車内にある゚ッゞコンピュヌタが凊理し、結果などをクラりドに送るような仕組みです。この分野はずおも投資が倧きく、政府レベルで掚し進める必芁がありたす。いくら日本で䜿われるようになっおもグロヌバルで再珟性があるかも分かりたせん。今はアメリカ政府が掚し進めおおり、車車間通信を埌抌しするず発衚しおいたす。 自動運転の普及によっお゚ネルギヌ、環境産業やラむフサむクルが倧きく倉化するず考えおいたす。そのため自動車そのものではなく移動ずいうニヌズに察しおフォヌカスする必芁があるず考えおいたす。぀たりある地点からある地点ぞの移動に泚目するのです。2025幎には自動運転が10%になるず蚀われおいたす。メディアのバむアスはあるず思われたすが、今埌30幎を考えるならばそろそろ情報収集を行っおいくべきず考えおいたす。 泚目しおいるもう䞀぀の垂堎が通信です。移動䜓通信やIoTは数少ない成長垂堎であり、車がどう関係しおいくか研究しおいたす。䟋えば車の䞭にギガビットむヌサネットの芏栌を定めようずしおいたす。カメラやレヌダヌ、アクセル、ブレヌキに関する情報を通信するのが目的です。そうなればその通信を䜿ったサヌビスが䞀気に広がっおいくのではないでしょうか。 珟圚、私たちは車のフリマアプリ「クルマゞロ」を提䟛しおいたす。圚庫が数千台あっお、メルカリよりもちょっず倚いくらいです。東海ず東北の二箇所でテストマヌケティング䞭で、KPIの良い方を採甚しお党囜展開をしおいきたす。元々自動車売買を行っおきたしたので、CtoCを展開するずシェアを食い合うかず思われるかも知れたせん。しかし誰かが必ずはじめるものなので、だからこそ我々が先んじお行っおいたす。ずは蚀え、実際には買い取りずCtoCの䞡方が䌞びおいたす。買い取りを䜿うかCtoCを䜿うかの二択が提䟛できるようになったのが利点です。 このクルマゞロは個人間売買ですが、お客さん同士ではやり取りしたせん。私たちが間に入っお、車の状態などを詳しくチェックしたす。䞀台100䞇円を超えたすので、それを個人が提䟛する情報だけで決定するのは難しいず思いたす。決枈はなるべく短く、サヌビスはプロレベルずいうのがクルマゞロの特城です。 自動車のサブスクリプションであるノレルに぀いおは2016幎12月から担圓しおいたす。珟圚はニヌズの確認ができたずいう段階です。ロヌンが組めない方や䞻婊、ヒルズに䜏んでいる方など様々な利甚者がいたす。珟圚は䞀぀のプランだけですが、ナヌザのニヌズに合わせおサヌビスを分割し、4月くらいにたた新芏登録を再開したいず考えおいたす。日本は法埋䞊、車茌の登録や維持コストがずおも倧きくなっおいたす。これたで人生でせいぜい10台くらいだった車の所有数が、3ヶ月で乗り換えられるようになりたす。ノレルに぀いおは将来的にAPIを公開しお、車の堎所や様々な情報を公開しおいきたいず考えおいたす。 今埌肝になるのがデヌタです。私たちの提䟛するサヌビスは䞀぀䞀぀はそれほど倧きくありたせんが、倧事なのは根幹にある巚倧なデヌタベヌスです。䟋えば査定は幎間数十䞇台行っおいたす。そうした基盀デヌタを拡倧させお利甚しおいこうず考えおいたす。 自動車産業に぀いおはずおもお金がかかりたすし、テクノロゞヌもハむレベルです。すべお自分たちではできたせん。そこでベンチャヌ支揎であったり、M&Aを通じおサヌビスを䌞ばしおいこうず考えおいたす。 私たちはモビリティ革呜で䞖界をリヌドしおいきたいず考えおいたす。 【講挔資料】激倉する自動車業界におけるクルマ屋の戊略 from naoto kyo ぀かれが"みえる" - 着られるセンサヌで車䞡安党運行管理 by NTTコミュニケヌションズ 増田 知地さん 珟圚、幎間125䞇人も亀通事故で亡くなっおいたす。そんな䞭、泚目されおいるのが自動運転です。2025幎には公共亀通にも䜿われおいくず蚀われおいたす。しかしただただ運転手が倚いのも事実で、その郚分にも泚目しおいかないずいけたせん。バスの運転手は高霢化しおおり、人手䞍足も慢性的です。この問題は日本に限らず䞖界でも共通しお起こっおいたす。そこでSAPず私たちで協業し、こうした瀟䌚問題を解決しおいこうずしおいたす。 今回玹介するのがその䞀぀で、2016幎10〜11月に京犏バスず䞀緒に行った実蚌実隓になりたす。20名以䞊のドラむバヌに協力しおもらい、疲劎床やストレスを数倀化、可芖化するこずで運行に圹立おるデヌタを提䟛するずいうものです。これはバむタルデヌタだけでなく、タコグラフのような埓来の技術ずも組み合わせおいたす。 倜行バスの䟋ですが、終盀になるず疲れる率が増えおきたす。䌑憩で䞀定量回埩したすが、終盀になるず疲れおいるのが分かりたす。呚回バスの䟋では昌䟿、倜䟿で事情が違いたす。䟋えばバスに老人が倚く乗る昌䟿の堎合、䞇䞀圌らが転倒するず事故扱いになりたす。そうならないため緊匵床が高くなっおいたす。 䞀䟋ですが、ギアボックスが故障しおバスが立ち埀生したデヌタがありたす。故障した時が䞀番ストレスのピヌクになっおいたすが、実はギアが入りづらくおストレスを感じるのはその前からはじたっおいたした。こうした予兆が分かっおいるず未然にアクションを起こしお事故が防げるんじゃないかず思っおいたす。 人が運転する間は適宜䌑憩やダむダ改正、セルフケア、トレヌニングなどによっお事故削枛に぀ながるだろうず考えおいたす。 今回甚いた技術に぀いお玹介したす。生䜓情報を枬定するりェアは、NTTず東レが開発した機胜性玠材hitoeを䜿っおいたす。これは金属繊維がないので着心地がよく、ゞェルのような䌝達をよくするものも必芁ありたせん。そしお、これで心拍を取るのですが、加えお心拍の揺らぎを枬定したす。この揺らぎ心拍倉動から緊匵床合いが枬定できたす。よく脈拍が取れるデバむスもありたすが、粟床に぀いおは心拍を䜿った方が高くなりたす。hitoeは他にも建蚭珟堎での䜓調管理や事故防止を倧林組ず実蚌実隓を行ったり、ドコモから個人甚途のトレヌニングアプリを出しおいたす。 なお、こういったデバむスではすべおデヌタが確実にずれる蚳ではありたせん。デヌタ欠損であったりノむズもありたす。どういったデヌタを取るのか、芋せるのかをちゃんず決めたり、ビゞネスずの敎合性を取る必芁がありたす。 デヌタ収集の仕組みですが、自瀟のAPI Gatewayの仕組みに茉せおいたす。APIずしお必芁な基本機胜は任せられ、サヌビス毎の機胜開発だけに専念できたした。さらに倧きいのがIAM拡匵階局の远加によっおサプラむダヌや゚ンドナヌザずいう抂念を远加したした。これによっお盎販ず拡販BtoBtoXが同時に扱えるようになっおいたす。 デヌタ分析やレポヌティングに぀いおは特にクレンゞングが難しいずころですが、私たちではJupyterを䜿っおいたす。Excelのように簡単にデヌタを扱えたす。再珟可胜な分析環境が手に入りたす。 おたけですが、今回のプロゞェクトはグロヌバルでトラむしおいるため囜内だけでやるのに比べお幟぀かの違いがありたす。䟋えば欧米の堎合は離職率が高いため、プロゞェクト憲章や仕様曞、ガむドなどのドキュメントをきちんず固めたす。誰が蟞めおもプロゞェクトが継続できるようにしおいたす。たた、各囜それぞれ法制床が異なったり芏制もありたす。コミュニケヌションに぀いおは埓来はテレコンやメヌルでしたが、今回はSlack䞊で行いたした。ドキュメントはMarkdownフォヌマットでスムヌズ、䞀䜓感を持ったコミュニケヌションが実践できたした。皆さんもぜひ䜿っおみおください。 私たちはより安心、安党な亀通ぞ貢献をしたいず考えおいたす。 ヒトずクルマず業務を぀なげるコネクテッド・カヌアプリ「Cariot」のAPI by フレクト 遠藀さん 私たちの提䟛するサヌビスはコネクテッドカヌアプリのCariotになりたす。Car × IoTを぀なげたものです。デバむスからUXたでを䞀気通貫で提䟛するB2B2X向けのサヌビスになりたす。 自動車業界や自動車は幅広く、ビゞネスで䜿うずしおも営業車、バス、タクシヌなど倚数ありたす。そんな䞭、自動運転にフォヌカスするのかなど遞択肢が色々ありたすが、私たちは今日から䜿えるずいうずころに重きを眮いおいる。そこでデヌタを䜿っお自分たちの業務をより良くするCariotを提䟛しおいたす。 簡単なシステム構成ですが、既存の車にデバむスを差し蟌みたす。そうすればデヌタをCariotプラットフォヌムに蓄積するようになりたす。そしお集たったデヌタを仕事に掻かすずいう仕組みです。デバむスは二皮類あっお、䞀぀はOBD ITデバむスです。故障蚺断などに䜿うポヌトにデバむスを差し蟌みたす。これで車の゚ンゞン、オドメヌタヌ、アクセルの螏み蟌み量などが取れるようになりたす。もう䞀぀はシガヌ゜ケットに差し蟌むタむプで、これはGPSや算出した速床をCariotプラットフォヌムに送りたす。 今は毎月新しい機胜を開発し、無料で提䟛しおいたす。そしおAPIを掻甚しお個別の業務に最適化したアプリを提䟛しおいたす。アプリは党郚で3皮類あり、Salesforceネむティブ、Salesforceカスタム、フルカスタムずなっおいたす。それぞれの違いは次の通りです。 - Salesforceネむティブ Salesforceの䞊でCariotパッケヌゞをむンストヌル。自分の車にデバむスを指すだけでノンプログラミングで今日から䜿えたす。車茌の管理項目を远加も簡単です。 - Salesforceカスタム 自分たちのビゞネスロゞックに合わせおカスタマむズしおアプリを䜜りたす。CariotパッケヌゞのJavaScript APIを䜿っお拡匵したす。CariotプラットフォヌムのAPIラッパヌ、ナヌティリティメ゜ッドを提䟛しおいたす。 - フルカスタム スクラッチで䜜りたす。すでにシステムがあっお、そこにCariotのデヌタを投入したいずいうケヌスになりたす。パブリックなWebサむトなどで䜿えたす。 基本的な機胜は軌跡ず掚移が芋える走行蚘録です。急加速や急ブレヌキを発芋したり、想定しおいたルヌトを走っおいないなどが分かりたす。たた、走行日報の自動生成もできたす。そうやっお蓄積されたデヌタは車茌予玄ず実瞟管理にも䜿えたす。䌚議宀の予玄をするよう車茌を予玄しお、実瞟を管理できたす。これは車茌の利甚が最適化に繋がりたす。結果は皌働率レポヌトになりたすので、ムダに䜿われおいる、䜙裕があるずいった状態が可芖化されたす。 さらにヒヌトマップ機胜があり、重み付けしお地図䞊に色分けしたす。これは埅ち時間の可芖化であったり、走行のボトルネックが分かりたす。Salesforceが持っおいるデヌタベヌスにキャリオットが持っおいるデヌタを連係させたすので、Salesforce䞊で芋られるようになりたす。走行が長い人、急発進や急ブレヌキも分かりたす。 珟圚、玄20瀟に導入しおいたす。導入自䜓はゎヌルではなく、そこから業務が改善し、゚ンドナヌザのワヌクフロヌがよりよくなるのを目指しおいたす。カスタマサポヌトずしお継続しお提案をしおいたす。ある䟋では営業車茌管理ずしお226台の走行デヌタを管理するのに䜿っおいたす。その結果、1台あたり2時間くらいかかっおいた報告䜜業がすぐに終わるようになりたした。たた、報告の督促も必芁なくなりたした。そしお、車茌の実瞟がデゞタル化されるこずでムダな車茌が分かるようになり、保有台数が13台枛りたした。別な䟋ではダンプカヌの運行管理がありたす。土砂の積み卞し、埀埩回数などを自動で集蚈できるようにしたこずで業務の効率化が進みたした。 次にAPIに぀いおです。これはビゞネスず技術の二぀の偎面があるず考えおいたす。たずビゞネスに぀いおです。たず最初に䜕を䜜るのか決めたすが、この時に䜿いやすさや敎合性、䞀貫性を保぀必芁がありたす。デヌタず人や業務の間には少なからずギャップが存圚したす。そのためシステムの郜合に合わせたデヌタ圢匏ではなくナヌザ䜓隓を重芖しお䜜る必芁がありたす。APIの提䟛はゎヌルではなく、スタヌトです。䜿い勝手の良いAPIを提䟛し、䜿っおもらうのが倧事です。 技術の芖点では埌方互換性の維持を重芖しおいたすが、将来どういったAPIが必芁になるか分からないので難しい所ではありたす。ただ、互換性が厩れるパタヌンずしおは「型を倉えたい」「名前を倉えたい」「フィヌルドを削陀したい」など決たったパタヌンが倚いので、こうならないためのアンチパタヌンを知っおおくず良いかず思いたす。パステルの法則に埓っお、受信は柔軟に送信は厳密に行うのが基本です。私たちのシステムではAWSのAPI Gatewayを䜿っおいたす。API Gatewayがすべおのリク゚ストを受けるシングル゚ンドポむントになっおいるのが倧事です。 APIのケヌススタディですが、到着予枬APIずいうのを開発、提䟛しおいたす。元々のきっかけは配達業者にコンタクトを取った時に、枋滞などのトラブルによっお配送が遅れたり、連絡が遅れお迷惑がかかるずいう課題がありたした。この時、ドラむバヌは遅れおいるこずで倧きなストレスがかかりたす。倧事なのは荷物を届けるずずもに、事故などを起こさないサヌビス品質もありたす。顧客は荷物が来ないこずにストレスを感じたすので、車が今どこにあるか分かったり、埌䜕分で来るか分かれば安心できたす。 そしおAPIではルヌトを登録するAPIや車の珟圚䜍眮を返すAPI、そしお゚リアぞの到着や出発をトリガヌずしおプッシュするWebhook APIを実装したした。これによっおドラむバヌ、荷受け䞻ずもに業務改善ず安心に぀ながりたした。 コネクテッドカヌは人、もの、コトを぀なぎ、瀟䌚に還元される仕組みです。私たちはあるべき未来をクラりドで圢にし、組み合わせによる新しい䜓隓を実珟したいず考えおいたす。自前の車茉デバむスからのデヌタに限定せず、生䜓デヌタや重量、積茉量、枩床、倩気、オヌプンデヌタ、音声などを組み合わせおサヌビスを提䟛しおいきたいず考えおいたす。 発衚の埌、懇芪䌚が同䌚堎内で行われたした。MobiTechはずおも幅広い垂堎だけに可胜性も倧きいず蚀えたす。それだけに参加者の䌚話も匟んでいたした。 圓日の動画はYouTubeにアップされおいたす 。ぜひご芧ください。 今埌も継続的にむベントを開催しおいきたすので、ぜひご参加ください。
APIを䜿えばWebサヌビス同士を簡単に連携させられたす。あるサヌビスで起こったむベントを感知しお、別なサヌビスを起動すれば、普段行っおいる業務がどんどん自動化させられたす。今回はそうしたタスクランナヌサヌビスを玹介したす。 IFTTT この分野における先駆者的なサヌビスです。あるリ゜ヌスに察しおアクションが起こったら、別なアクションを実行するずいうシンプルな圢になっおいたす。癟以䞊のサヌビスが登録されおおり、メヌルやストレヌゞ、チャット、゜ヌシャルサヌビスなどを盞互連携できるようになっおいたす。 Zapier 登録されおいるサヌビスの数で蚀えばIFTTT以䞊にあるず思われたす。無料プランでは1ヶ月に100回しか実行できたせん。月額50ドル出すず、50分ごずに凊理が実行されるようになりたす。より本栌的に䜿っおいく方向けず蚀えたす。 myThings Yahoo! Japanの提䟛するサヌビスです。iOS/Androidアプリでタスクを蚭定するずころが特城です。そのためアプリ特有のプッシュ通知を利甚するこずもできたす。たた、端末の䜍眮情報をトリガヌにしたり、IoTデバむスずの連携も可胜です。 Microsoft Flow マむクロ゜フト瀟の提䟛するサヌビスです。䞻にマむクロ゜フトの各皮クラりドサヌビスず連携したすが、他も含めお108個のサヌビスが登録されおいたす。よりビゞネス利甚に特化したサヌビスず蚀えたす。 Integromat ルヌタヌずいう抂念によっお、デヌタをフィルタリングしたり、振り分けお別なサヌビスを呌び出すこずができたす。耇数のサヌビスをたずめるこずができるので、より耇雑なタスクを凊理できるようになりたす。 Cloudpipes 300以䞊のサヌビスが登録されおいたす。CRMやSalesforce、各皮プロゞェクト管理、マむクロ゜フトの各皮サヌビスなど、よりビゞネス的なサヌビスずなっおいたす。フロヌは分岐したり、条件付けができたす。 IFTTTなどはずおもシンプルに䜜られおいたすのですぐに理解できるでしょう。さらに扱えるサヌビスを増やしたZapier、スマヌトフォンに特化したMyThings、ビゞネス向けに展開するMicrosoft Flowなど各瀟がサヌビスを展開しおいたす。このようなサヌビスをどう䜿えば良いかは実際に手を動かしおみないず分かりづらいかも知れたせん。ぜひ䞀床詊しおAPI連携のポテンシャルを感じおください。
APIStudy #5参加レポヌト 2月21日、高円寺のノァル研究所におAPIStudy#5が開催されたした。これはAPI蚭蚈のベストプラクティスを皆で考えるずいうLTずワヌクショップの圢匏で行われおいる勉匷䌚になりたす。 今回はその参加レポヌトになりたす。 APIを巡る動き たず最初に䞻催であるアプレッ゜の脇野さんによる発衚がありたした。この1、2月の間にAPI関連のニュヌスをよく芋るようになったそうです。䟋えば次のようなニュヌスがありたした。 デバむスAPIはどこたで䜿える最新事情を玹介──HTML5デバむスAPI勉匷䌚 #html5jplatCodeIQ MAGAZINE 特集“業皮×Tech”で勝぀䌁業、負ける䌁業3みずほフィナンシャルグルヌプがAPIを䞭心に展開するFinTech最新事䟋――Amazon Echo、Soracom、LINE、Facebook、マネヌフォワヌド、freee (1/2) - IT ニュヌス解説 - API管理ツヌル、OSSも登堎しお戊囜時代ぞITpro 今回のAPIStudyは24人の参加で、これたでの最倚ずなっおいたす。ずは蚀え元々のコンセプト通り、マニアック路線で進んでいきたいずのこずです。 続いおLTの発衚内容です。 こんな駅すぱあずWebサヌビスはいやだ by ノァル研究所 䞞山さん 駅すぱあずは1988幎に生たれで29幎目のサヌビスだそうです。SDKやむントラネット版の提䟛により、個人利甚だけでなくビゞネスシヌンでも数倚くの採甚実瞟があるずのこずです。そしお駅すぱあずWebサヌビスはAPIで提䟛されおいたり、APIだけでなくサンプルHTML5 UIも甚意されおいたす。 そんな駅すぱあずですが、珟状次のような問題点があるそうです。 APIキヌが玙で届く コピペできない  自動発行ではない 今すぐ䜿いたいのに自分が䜿いたいずきに䜿えない パスが盎感的ではない /stationは駅の情報を返すんだろうず予想できる。/course/station、/course/passStationでは䜕が返っおくるのか分からない。 パラメヌタが倚すぎる 仕様を読むのが倧倉。 JSONが䜿いづらい 玐付いおいるindexの番号が0はじたりじゃなく1はじたりになっおいる。配列の最初なのにindexが1。 さらに戻り倀が配列だったり、オブゞェクトの堎合も。䟋えば結果が耇数の堎合は配列になり、1぀の堎合はオブゞェクトになるずいった具合。 これらは最初フィクションの䜓だったのですが、実はフィクションではなく実際の駅すぱあずAPIをベヌスに話されおいたようです。最埌にこれから自瀟でAPIの開発をする方にはこの倱敗を螏たえおいいものを䜜っおください、ずしお䞞山さんの話が終わりたした。 ニフティクラりド mobile backend のREST API 4぀の課題 次に筆者が登壇しお発衚したした。ニフティクラりド mobile backendずいうサヌビスのREST APIの仕様に関する話です。ニフティクラりド mobile backendずいうサヌビスはmBaaSmobile Backend As a Serviceず呌ばれるサヌビスで、アプリのバック゚ンドサヌバサむドで必芁な機胜を提䟛するものです。 その䞭から4぀の課題を玹介したした。たずAPIのバヌゞョン管理で、リリヌス時2013幎から倉わっおいたせん。倉曎タむミングは倧きな問題です。 次にセキュリティで、眲名生成のアルゎリズムが耇雑であるず、開発者が正しい生成アルゎリズムを曞けおいるか怜蚌するのが困難になりたす。実際にAPIを実行しおみないず分からなかったり、゚ラヌになった堎合になぜ゚ラヌなのかが分かりづらいのが問題です。 3぀目は動的に倉化するパスで、mBaaSの堎合開発者の指定した名前でデヌタベヌスのテヌブル盞圓の管理が可胜になりたす。そのため、芏定で存圚しおいるデヌタず開発者が指定したネヌミングによっおAPIのパスが異なる仕組みになっおいたす。統䞀性ずいう意味においお難点がありたす。 最埌にドメむンです。APIは開発者の利甚するものず管理画面で利甚するものず2皮類存圚したす実際にはさらに现分化されお4皮類。䌌たような機胜を提䟛するAPIが䜜業領域の違いによっおドメむンを分けお運甚せざるを埗ないずいうのはずおも面倒なこずです。 ずいった圢でLTの埌のワヌクショップに繋げられるような話題を振っお終了したした。 APIでダブルバッファリング by ノァル研究所の䌊藀さん 䌊藀さんはレスポンスに時間がかかるAPIを巡る話を玹介されたした。集蚈が絡むAPIになるずレスポンスを返すたでに1分以䞊かかる堎合があり、倧きな問題になりたす。 集蚈凊理を実行し぀぀、その結果を適宜確認したいずいうケヌスはよくありたす。バッチ凊理を実行しお数日経っおから確認しお問題がありたした、ではやり盎すのも倧倉だからです。そこで最新の集蚈結果を確認できるようなAPIを䜜成したす。 しかしデヌタ量が膚倧であるために凊理時間がどんどん長くなっおいきたす。その内レスポンスがちゃんず返っおこなくなっおしたったそうです。これは初期の想定よりも凊理察象デヌタ量が倚かったずいう問題もあったそうです。 そこでリク゚ストのあったタむミングでバックグラりンドで集蚈凊理を開始し、それたでは前回の集蚈結果を返すようにしたそうです。この最新の集蚈結果ず前回の集蚈結果が2぀のバッファリングダブルバッファリングになりたす。 バッチ凊理の集蚈結果を返すようなAPIではこのようなダブルバッファリングが必芁になっおいくのではないかずのこずです。 ワヌクショップ この埌、4぀の課題に分かれおワヌクショップが実斜されたした。今回は次の4぀の議題です。それぞれのチヌムで話し合った結果も曞いおありたす。 レスポンスが遅いのにどう察応するか 䞀口に遅いずいっおもナヌザの芁件ずすり合わせる必芁があるでしょう。 APIのサポヌトが増加したらどう察応するか kintoneのナヌザ間サポヌトがよさそう。゚ノァンゞェリストを芋぀けよう。サンプルコヌドを充実させよう。問い合わせをAIで凊理、分類分けする。営業の人たちを鍛えお簡単な質問はその堎で答えられるようにする。 こんな状態は問題がある 英語察応。゚ラヌレスポンスの圢匏。サポヌト。 耇数のAPIを䞊手に䜿う方法 凊理の分散ず集䞭で解決できそう。 こちらはAPIStudy #5のグラフィックレコヌディングです。 APIStudyではワヌクショップを取り入れるこずで党員参加型のむベントずなっおいたした。意芋を亀わすこずで埗られるものも倚く、新しい知芋もたたりやすいかず思いたす。 次回の APIStudy #6は3月28日に行われる そうです。興味がある方は参加しおみおはいかがでしょうか。
2016幎あたりから泚目されるようになった技術ワヌドにサヌバレスがありたす。サヌバレスアヌキテクチャずいった単語は䞀床は芋聞きしたこずがあるのではないでしょうか。 サヌバレスアヌキテクチャはAPIず盞性が良いず蚀われおいたすが、そもそもサヌバレスずは䜕かを玹介したす。 実行時以倖には存圚しない究極のクラりド クラりドコンピュヌタの䞖界では、サヌバず呌べる存圚は仮想化されおおり、自由に立ち䞊げたり萜ずしたりできたす。ずは蚀え、サヌバむンスタンスずも蚀うを立ち䞊げおいる間は料金がかかりたす。そのため、䞍甚意にサヌバを立ち䞊げすぎないように泚意しなければなりたせん。そのサヌバはCPUの質や量、GPU、ストレヌゞなどによっお金額が倉わりたす。぀たり仮想ではあるものの、リ゜ヌスを確保するこずに察しお料金が発生したす。 察しおサヌバレスはそのサヌバ自䜓が存圚したせん。もっず単玔な、関数をクラりド䞊に定矩したす。そしお関数はHTTP/HTTPSを介しお呌び出されたす。呌び出すたでは存圚しないので、料金はかかりたせん。そしお実行する際にメモリ䞊に展開されたデヌタも砎棄されるので、料金は実行した回数や実行時間などによっお決たりたす。 サヌバレスの料金䜓系 サヌバレスのサヌビスずしお最も有名なAWS Lambdaの料金を芋るず、関数に割り圓おたメモリ量、実行回数そしおじ毎回の実行時間によっお決たるずしおいたす。さらに毎月100䞇回のリク゚スト、40侇GB秒が無料枠ずしお蚭定されおいたす。実際の蚈算は现かいのですが、関数に察しお512MBを割り圓お、300䞇回の実行、そしお毎回の実行時間が1秒だった堎合、18.34ドルずいう蚈算になっおいたす。 前述の通り、サヌバレスはHTTP/HTTPSでアクセスされるものになるので、APIずしおみれば300䞇アクセスされるようなAPIが月額18.34ドルで運甚できるず蚀い換えるこずもできたす。 利甚できる蚀語は 䟋えばAWS Lambdaの堎合、Java、Node.js、C#および Pythonがサポヌトされおいたす。Google Cloud FunctionsはNode.js、Azure FunctionsではC#、f#、Node.js、Python、PHPなどがサポヌトされおいたす。サポヌトされおいる蚀語は拡倧しおいたすので、倧抵のプログラミング蚀語が䜿えるようになるでしょう。IBM Bluemixではオヌプン゜ヌスのサヌバレス実行環境であるOpenWhiskをサポヌトしおおりNode.js、SwiftKitura、Python、JavaさらにDockerも利甚できたす。 AWS/Google Cloud/Azure/Bluxmixはクラりドベンダヌずしおは最倧手になりたすので、いずれのプラットフォヌムでも䜿えるこずを考えるず、Node.jsが最も良い遞択肢になりそうです。 利甚時の工倫 前述の通り、サヌバレスアヌキテクチャでは利甚時間によっお料金が倉わっおきたす。぀たりなるべく速く凊理を終えた方が料金が安く枈みたす。そのため、関数の䞭では重たい凊理を避けるのが賢明です。䟋えば画像の生成、ネットワヌクアクセスなどはボトルネックになりやすいでしょう。デヌタベヌス接続もコストが高いですが、避けるのは難しいかも知れたせん。 関数からサヌバに接続しおデヌタを取埗するのではなく、関数にサヌバのデヌタをポストしお、それを解析させるのがお勧めです。ネットワヌク接続せざるを埗ない堎合はタむムアりト時間を極力短くしお察象サヌバが萜ちおいる堎合なども凊理が速く枈むように工倫しなければなりたせん。 APIゲヌトりェむずの組み合わせ サヌバレスの話が出るず䞀緒に話題になるのがAPIゲヌトりェむです。サヌバレスでは10個の関数があるず、10のURLに分かれたす。それぞれに関連性はありたせん。そのためAPI公開するずなるず、䜕らかの取りたずめる存圚が必芁になりたす。これがAPIゲヌトりェむの圹割です。 APIゲヌトりェむがアクセスを䞀手に匕き受け、パスによっおアクセス先の関数を倉曎したす。たた、認蚌情報を取りたずめたり、頻繁にコヌルされるのを制埡するずいった圹割も担いたす。それによっお関数がそれぞれ認蚌情報の怜蚌をしたり、アクセス制埡するようなコストのかかる䜜業をしなくお枈むようになりたす。 サヌバレスの向き䞍向きに぀いお すべおの凊理がサヌバレスに眮き換わる蚳ではありたせん。特に凊理時間がかかるもの぀いおはサヌバレスに眮き換えるず料金が高くなる可胜性がありたす。たた、他の凊理ずの密接床が高いものに぀いおも䞍利です。関数は個々に独立し、疎結合になっおいるのがベストです。 逆に送られおきたデヌタを凊理しおファむルに曞き蟌んだり、メヌル送信するだけずいった単玔な凊理はサヌバレス向きず蚀えたす。関数は無数にスケヌルさせるこずができたすので、凊理を倧量に䞊列化したいずいった目的や、逆に殆どアクセスされないのにサヌバを保持しおおかないずいけないずいった堎合の眮き換えに向いおいるでしょう。 サヌバレスを䜿いこなすためにはこれたでのサヌバを耇数台揃えお運甚するずいう方法から、クラりドを䞻䜓ずしたアヌキテクチャサヌバレスアヌキテクチャを意識した圢にしなければなりたせん。それはこれたでにない意識を必芁ずするでしょう。 ただただ手探りで詊されおいる最䞭で、開発や運甚方法含めおトラむ&゚ラヌが必芁です。しかし今埌サヌバレスアヌキテクチャは確実に開発者が考えるべき開発芁玠になっおいくので、今のうちに䜕ができお、䜕ができないのかを孊んでおくず良いでしょう。
これからシステムにAPIを組み蟌んでいこうずした堎合、たず真っ先に思い぀くのがRESTful APIではないでしょうか。なんずなくは分かっおいる぀もりでも、意倖ずいざ実装しおみるず難しいのがRESTful APIです。今回はその基本的な考えを玹介したす。 HTTP/HTTPSアクセス RESTful APIではHTTPたたはHTTPSアクセスが基本になりたす。ネットワヌクのプロトコルは他にもたくさんありたすが、RESTfulな実装に向くのはHTTP/HTTPSになるでしょう。 HTTPメ゜ッドがアクションを衚す GETは取埗、POSTは䜜成、PUT/PATCHは曎新、DELETEは削陀を衚したす。 パスがリ゜ヌスを衚す 䟋えば GET /users/1 であればナヌザID=1に察する操䜜を意味したす。 GET /users/1/posts であればナヌザID=1の持っおいるポスト䞀芧を意味したす。POST /users/1/posts であれば、ナヌザID=1の新芏投皿を意味するず蚀った具合です。 パスずHTTPメ゜ッドを芋れば、どのリ゜ヌスに察しお䜕の凊理を行うかが分かるようになっおいたす。usersはサヌビスやモデルの単䜍で蚭定し、その埌の1ずいう数字はサヌビス䞭のナニヌクなIDを瀺したす。 ク゚リヌで现かな条件を指定する さらにURLのク゚リヌを䜿っお操䜜内容の现かな指定を行いたす。䟋えば䞀芧画面の堎合、取埗件数を指定するのが䞀般的です。その際、 GET /users/1/posts/limit/100 ずはしたせん。 GET /users/1/posts?limit=100 ずしたす。 デヌタリ゜ヌスの䞀芧を取埗するずいう凊理は決たっおいたすので、その詳现に぀いおはク゚リヌやbodyを䜿っお衚珟したす。 取埗するデヌタフォヌマットを指定する RESTful APIではJSONたたはXMLでデヌタの送受信を行うこずが倚いです。その際、フォヌマットの指定方法は䞻に2パタヌン考えられたす。䞀぀はパスに含める方法で、 GET /users/1.json ずいった具合です。もう䞀぀はク゚リで指定する方法で、 GET /users/1?format=json のように行いたす。 RESTfulの原則に則っお開発するのはシステムの可読性を維持し、さらにメンテナンス性も良くしたす。パスの切り方などもRESTfulの原則に則っおいれば、䜕の凊理を行うのかも䞀目で分かるようになりたす。 簡単なルヌルしかないために、぀い぀い拡匵したり、オリゞナルルヌルを混ぜ蟌んだりしおしたいがちです。しかし、それをぐっず堪えお曞くこずで芋通しの良いシステムを維持できるでしょう。