2016年05月18日 08時00分 UPDATE
特集/連載

企業のErlang利用を阻むものとは?関数型言語「Erlang」のススメ──なぜCやJavaではダメなのか?

並行処理、分散処理に優れたプログラミング言語であるErlangだが、企業利用例は多くない。Erlangを活用しているbet365は、Erlang普及のための活動を始めた。

[Cliff Saran,Computer Weekly]
Computer Weekly

 オンラインブックメーカー「bet365」は、関数型プログラミング言語「Erlang」(アーラン)の使用を企業開発者に奨励するため、オープンソースプロジェクト向けサービス「GitHub」にコードを公開している。

Computer Weekly日本語版 5月11日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 5月11日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

 同社がErlangを使い始めたのは、増え続けるWebトラフィックに対処できるハイパフォーマンスハードウェアが必要になった2012年のことだ。

 「Erlangは拡張性、同時実行性、耐性を必要とする分散システムの開発にうってつけだ。当社のように大量のトラフィックに対処しなければならない企業にとって最高のテクノロジーといえる」と語るのは、同社のソフトウェアアーキテクチャ部長チャンドラ・ムラパティ氏だ。

 「メリットが明らかなのに敬遠されるのは、WebサービスやODBC(Open Database Connectivity)のサポートが不十分で、ブランドのアイデンティティーが十分に確立されていない点にある」

 同社は、導入しているSQLデータベースの拡張性が限界に近づいていることを認識していた。「.NETやJavaのような従来型テクノロジーは、高度な分散型システムでの拡張性に欠ける」とムラパティ氏は語る。

 同社がErlangと出会ったのは、NoSQLデータベースの調査を始めたときだ。Erlangのおかげで、数週間足らずでかなり複雑なシステムを構築できたと同氏は話す。

 同社はErlangを使用して、2014年に「清算」(cash out)機能を構築した。これは賭けが成立する前なら取り消しを可能にする機能だ。この機能を実現するには、大量のオッズ計算をリアルタイムで実行しなければならない。また、ErlangをNoSQLデータベースへの移行にも使用している。

 同じプログラミング言語でも、「C言語」や「Java」などの手続き型言語とは異なり、Erlangは関数型言語だ。当初Erlangは、電話交換アプリケーションの高い同時実行性に対処するために、Ericssonが社内で使用していた。多数のユーザーがWebサイトで同時に賭けを行うため、ブックメーカーは同時実行性の確保に苦心しているが、これは通信業界が昔から直面してきた問題と似ている。

 高い同時実行性に対処するシステムに手続き型言語を使用する場合、複雑になり信頼性が低下する傾向がある。

 「従来の手続き型言語では構築に長い時間がかかる」(ムラパティ氏)

 また同氏は、Erlangでコーディングする方が、従来よりもシステムの安定性が増すとも話す。

 同社はErlangで培った経験をオープンソースコミュニティーに提供しようとしている。ムラパティ氏は次のように語る。

この記事を読んだ人にお薦めの関連記事

この記事を読んだ人にお薦めのホワイトペーパー

Loading

注目テーマ

ITmedia マーケティング新着記事

news077.jpg

電通が学生と企業の共創プロジェクト「βutterfly」を開発、企業向けにスポンサードプランを提供
電通は、顧客企業と学生の協働型プロジェクト「βutterfly」を開始すると発表した。β版...

news040.jpg

「インバウンド」で注目される浅草、訪日外国人観光客で賑わう理由とは?
口コミ時代のWebとソーシャルメディアは最大の武器。最小限の手間で最大の効果を発揮する...

news103.png

オムニバス、「セゾンDMP」を活用したターゲティング広告を提供
クレディセゾンの100%子会社オムニバスは、クレディセゾンが保有するクレジットカードの...