ãã®èšäºã¯ãErlang / Erlangããã°ã©ãã³ã°èšèªãš
Risovaskaãããžã§ã¯ãã§ã®äœ¿çšã«é¢ããäžé£ã®èšäºã®ç¶ãã§ãã ãŸãã
æåã®èšäºã®ã³ã¡ã³ãã§å°ãããã質åã«çããããšæããŸãããå€ãã®è³ªåããããŸããã ç¶ããŸãããïŒ
Windowsã«Erlangãã€ã³ã¹ããŒã«ãã
Erlangã®ã€ã³ã¹ããŒã«ã¯éåžžã«ç°¡åã§ãã æåã«ã
å
¬åŒãµã€ããããã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãã
ãŸã ã R12B-5ã®ææ°ããŒãžã§ã³ã§ããWindowsãã€ããªåïŒããã¥ã¡ã³ããå«ãïŒãå¿
èŠã§ãã ãã¹ã¿ãŒãã-ããã¹ãŠã®ããã°ã©ã ããã€ã³ã¹ããŒã«ãããšãErlang OTP R12Bã¢ã€ãã ã衚瀺ããããã®äžã«Erlangãµãã¢ã€ãã ã衚瀺ãããŸãã ãããéžæãããšãååã®ãªãããŒããã·ã§ã«ãšãšãã«èµ·åããŸãããã®ã·ã§ã«ã§ã¯ãç§ã®äŸããã®ããã«ããã§ã«Erlangianã³ãŒããå®è¡ã§ããŸãã ãããŒãããšããèšèã¯ãããŒãããšèš³ãããŠããŸããããã·ã¢èªã®æ£åŒåç§°ã¯ãŸã 確ç«ãããŠããªãããããããŒãããšããååãå®ããŸãã
Mac OS Xããã³
Linuxçšã®Erlangãã€ã³ã¹ããŒã«ããããã®ãªã³ã¯ã以äžã«ç€ºããŸãã
ã€ã³ã¹ããŒã«ãå®äºããã«ã¯ãWindowsç°å¢å€æ°ã«æ¬¡ã®å€æ°ãç»é²ããå¿
èŠããããŸãã
1. Erlangãã€ã³ã¹ããŒã«ããããã£ã¬ã¯ããªãžã®ãã¹ïŒ
ERL_TOP = CïŒ\ Program Files \ erl5.6.5
åããã¹ã§ããã
\ binã远å ãããŠããŸãã
CïŒ\ Program Files \ erl5.6.5 \ binãPATH倿°ã«æžã蟌ãå¿
èŠããããŸãïŒãŸã ãªãå ŽåïŒ
2.次ã®äŸã®ããã«ãHOME倿°ããŸã ç»é²ãããŠããªãå ŽåïŒ
HOME = CïŒ\ Documents and Settings \ tolik
3.ãµãŒãããŒãã£ã®Erlangã©ã€ãã©ãªãžã®ãã¹ãããã«ç»é²ããããšããå§ãããŸãã
ERL_LIBS = CïŒ\ Work \ erl_libs
å°æ¥çã«ã¯ãErlang / OTPãã£ã¹ããªãã¥ãŒã·ã§ã³ã«å«ãŸããŠããªããã¹ãŠã®ãµãŒãããŒãã£ã©ã€ãã©ãªããã®ãã£ã¬ã¯ããªã«é
眮ããŠãã ããã ããã«ãããæ°ããããŒãžã§ã³ã®Erlang / OTPãç°¡åã«ã€ã³ã¹ããŒã«ãããµãŒãããŒãã£ã®ã©ã€ãã©ãªãåé
眮ããã«å€ãããŒãžã§ã³ãåé€ã§ããŸãã ãšããã§ãErlang / OTPã®æ°ããããŒãžã§ã³ã¯å¹Žã«2åãªãªãŒã¹ãããŸãã
æåŸã«ãHOMEãã£ã¬ã¯ããªã«ãã¡ã€ã«ã.erlang.cookieããäœæããŸãã ããã¯ãããšãã°ãAMMVFJKDTENSFHDJDGDERSWãã®ããã«ãããã¹ãCookieã1è¡ã§ä¿åããéåžžã®ããã¹ããã¡ã€ã«ã§ãã ãã®Cookieã¯ãããŒããçžäºäœçšãããšãã«äœ¿çšãããŸãã å®éã«ã¯ã2ã€ã®ããŒãã¯ãåãCookieãæã£ãŠããå Žåã«ã®ã¿çžäºã«å¯Ÿè©±ã§ããŸãã ããã€ãã®ããŒãã®çžäºäœçšã«ãŸã é¢å¿ããªãå Žåã¯ããã®æé ãã¹ãããããŠãã ããã
åãHOMEãã£ã¬ã¯ããªã§ãErlangã«ã³ãŒããèšè¿°ã§ãã ".erlang"ãã¡ã€ã«ãäœæãããšäŸ¿å©ã§ãããã®ãã¡ã€ã«ã¯ããã®ã³ã³ãã¥ãŒã¿ãŒã§ããŒããèµ·åãããšãã«èªåçã«å®è¡ãããŸãã éåžžãã³ãŒãã¯ãã®ãã¡ã€ã«ã«æžã蟌ãŸããã¢ããªã±ãŒã·ã§ã³ã®å®è¡å¯èœãã¡ã€ã«ãžã®ãã¹ãæ€çŽ¢ãªã¹ãã«è¿œå ããŸãã
code:add_pathz(" ebin ").
ããã§ããerlããšå
¥åããã ãã§ãã³ãã³ãã©ã€ã³ããçŽæ¥ããŒããèµ·åã§ããŸãã ã·ã§ã«ãªãã§ããŸãã¯ããŒã¢ã³ãšããŠããŒããå®è¡ã§ããŸãã ã·ã§ã«ãªãã§ããŒããèµ·åããå Žåã2çªç®ã®ããŒãïŒå¥ã®ã³ã³ãã¥ãŒã¿ãŒäžã§å®è¡å¯èœïŒãå®è¡ããããšã§æ¥ç¶ã§ããŸãïŒ
erl -name test@192.168.0.11 -remsh main@192.168.0.11
ããã§ã
main @ 192.168.0.11ã¯æ¥ç¶å
ã®ããŒãã®ååã§ããã
test @ 192.168.0.11ã¯æ°ããããŒãã®ååã§ãã æ¥ç¶åŸãæåã®ããŒãã«ãããã®ããã«ãã¹ãŠã®ã³ãã³ããå®è¡ã§ããŸãã
èµ·åãã©ã¡ãŒã¿ãŒã®è©³çްã«ã€ããŠã¯ã
erlã¢ãžã¥ãŒã«ãåç
§ããŠãã ããã
éçºç°å¢ãšããŠã®Emacs
æè¿ãŸã§ãErlangããã°ã©ã ãèšè¿°ããã³ãããã°ããããã®ã»ãŒå¯äžã®äŸ¿å©ãªæ¹æ³ã¯ã
Distelãšçµã¿åããã
Emacs ïŒéåžžã®ããã¹ããšãã£ã¿ãŒãšééããããïŒã§ããã ãã·ã¢èªã§äž¡æ¹ã®ããã±ãŒãžãã»ããã¢ããããŠæäœããããã®ããªãè¯ãæç€ºã
ããã«ãããŸã ã çŸåšã®éçºç°å¢ãšæ¯èŒãããšãå€ä»£ã®æç«ã®ããã«èŠããŸãããç§ãã¡ã®ä»äºã§ã¯ãŸã 䜿çšããŠããŸãã
æ°ããéçºç°å¢ïŒerlIDE
Emacsã眮ãæããããã«ãæ°ããerlIDEéçºç°å¢ãéçºãããŠããŸãã çŸåšã®ããŒãžã§ã³0.4.3ã¯æ¢ã«ååã«å®å®ããŠããã以åã®ããŒãžã§ã³ã®ããã«èœã¡ãŸããã ãããã¬ãã³ã³ããã¹ããã«ããã·ã³ãã«ãªã³ãŒãããã²ãŒã·ã§ã³ãæ§æã®åŒ·èª¿è¡šç€ºãªã©ãææ°ã®IDEã®ã»ãšãã©ãã¹ãŠã®éåžžã®ããŒã«ãå«ãŸããŠããŸãã
ã€ã³ã¹ããŒã«æé ã¯ååã«è©³çŽ°ã«æžãããŠãããéåžžã¯è³ªåãããŸããã erlIDEã¯
Eclipseã®ãã©ã°ã€ã³ãšããŠæ©èœããããããŸãã³ã³ãã¥ãŒã¿ãŒã«Javaãã€ã³ã¹ããŒã«ãïŒããŒãžã§ã³6以äžãæãŸããïŒã次ã«
Eclipseãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã Javaéçºè
åãã®Eclipse IDEïŒ85 MBïŒã§ååã§ãã Windowsã§ã¯ãEmacsã«æ
£ããªãããã«ãããã«erlIDEããå§ããããšããå§ãããŸãã
ããŠãèšèªãã®ãã®ã«æ»ããŸãããã
æåã®ã¢ããªã±ãŒã·ã§ã³ãäœæãã
æåã«ããããžã§ã¯ãããããã©ã«ããŒãäœæããŸãã ãã®äžã«ã次ã®ãµããã©ã«ããŒãäœæããå¿
èŠããããŸãã
- ebin-ã³ã³ãã€ã«ãããã³ãŒãïŒ.beamïŒã¯ããã«çœ®ãããŸã
- src-ã¢ããªã±ãŒã·ã§ã³ãœãŒã¹ïŒ.erlïŒ
- include-ããããŒãã¡ã€ã«ïŒ.hrlïŒ
- doc-ããã¥ã¡ã³ã
- priv-ã¢ããªã±ãŒã·ã§ã³ãåäœããå¿
èŠãããããä»ã®ãã©ã«ããŒã«ã¯å«ãŸããŠããªããã®ä»ãã¹ãŠ
ããã¯ãOTPãæšå¥šããæšæºã¢ããªã±ãŒã·ã§ã³æ§é ã§ãã ã¢ããªã±ãŒã·ã§ã³ã®ã«ãŒããã©ã«ããŒã§ã次ã®å
容ã®emakefileãäœæããŸãã
{"src/*", [debug_info, {i, "include"}, {outdir, "ebin"}]}.
次ã«ãã¢ããªã±ãŒã·ã§ã³ã®ã«ãŒããã©ã«ããŒã«ããããŒãã·ã§ã«ã§ãã³ãã³ãmakeïŒallïŒïŒãå®è¡ããã ãã§ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã¢ãžã¥ãŒã«ãåã³ã³ãã€ã«ã§ããŸãã
ãebinããµããã©ã«ããŒã§ãããããæ¬¡ã®å
容ã®your_application.appãã¡ã€ã«ãäœæããå¿
èŠããããŸãã
{application, your_application.app,
[{description, "Test application"},
{vsn, "1"},
{modules, [you_application, you_application_sup]},
{registered, []},
{applications, [kernel, stdlib, sasl]},
{mod, {your_application,[]}}
]}.
æåŸã«ããsrcããã©ã«ããŒã«ãæå°éã®ã³ã³ãã³ããå«ãã¡ã€ã³ãããžã§ã¯ããã¡ã€ã«you_application.erlãäœæããå¿
èŠããããŸãã
-module(you_application).
-behaviour(application).
-export([start/2, stop/1]).
start(_Type, _Args) ->
your_application_sup:start_link().
stop(_State) ->
ok.
ãããã£ãŠãErlangã§æå°éã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãããããããŸã§ã®ãšããäœãããŠããŸããã ãŸããã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ã¹ãŒããŒãã€ã¶ãŒã¯ãŸã å®è£
ãããŠããŸããïŒããã«ã€ããŠã¯åŸã§èª¬æããŸãïŒã ã¢ããªã±ãŒã·ã§ã³ã®äœæã®
詳现ã«ã€ããŠã¯ãOTPã®ããã¥ã¡ã³ããåç
§ããŠãã ããããããã¹ã¯ããã³ãŒã
Erlang / OTPã®éåžžã«äŸ¿å©ãªæ©èœã¯ãã·ã¹ãã ã忢ããã«ã³ãŒãããããã¹ã¯ããã³ã°ããããšã§ãã ããã¯ã1ã€ã®ã¢ãžã¥ãŒã«ã®äŸã§ã©ã®ããã«æ©èœããŸããïŒ ããšãã°ãã¢ããªã±ãŒã·ã§ã³ã¢ãžã¥ãŒã«ã®1ã€ã§ã³ãŒãã倿Žããå®è¡äžã®ã·ã¹ãã ã§ãã®å Žã§ã³ãŒãã眮ãæããããšããŸãã Erlangã®ãã®ç¶æ³ã§ã¯ãã¢ããªã±ãŒã·ã§ã³å
šäœã忢ããå¿
èŠã¯ãããŸããã ããŒãã·ã§ã«ã«å
¥åããã ãã§ååã§ãïŒ
l(your_module).
ãã®ã³ãã³ããå®è¡ãããšãæ°ããã³ãŒããæ©èœããŸãã ãã詳现ã«ã¯ãErlangä»®æ³ãã·ã³ã¯ãåã¢ãžã¥ãŒã«ã®2ã€ã®ã³ããŒïŒçŸåšã®ã¢ãžã¥ãŒã«ãšä»¥åã®ã¢ãžã¥ãŒã«ïŒãã¡ã¢ãªã«ä¿åããŸãã 以åã®ããŒãžã§ã³ãä¿æããçç± ã¢ããªã±ãŒã·ã§ã³ã忢ããã«æ°ããã³ãŒããæ£ããåäœããªãå Žåã«ã以åã®ããŒãžã§ã³ã«ãã°ããããŒã«ããã¯ããããã
ãã¡ãããåå¥ã®ã¢ãžã¥ãŒã«ã ãã§ãªããã¢ããªã±ãŒã·ã§ã³å
šäœããªã³ã¶ãã©ã€ã§çœ®ãæããããšãã§ããŸãã ãããè¡ãã«ã¯ïŒ
- ã¢ããªã±ãŒã·ã§ã³ã¢ããã°ã¬ãŒããã¡ã€ã«ãäœæããŸãããã®ãã¡ã€ã«ã§ã¯ãå€ãããŒãžã§ã³ãæ°ããããŒãžã§ã³ã«çœ®ãæããããã®ã«ãŒã«ãšãããŒãžã§ã³ã®çœ®ãæãäžã®ã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ãèŠå®ããŠããŸãã
- ãªãªãŒã¹ã¢ããã°ã¬ãŒããã¡ã€ã«ãäœæãã
- å€ãããŒãžã§ã³ã®äžã«æ°ããããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããŸã
èšäºã®ãµã€ãºãå°ããããããã«ããããã®æé ã詳现ã«èª¬æããŠãã
ããã¥ã¡ã³ãã«éä¿¡ããŠè©³çްã確èªããŸãã
ããããè€æ°ã®ãµãŒããŒã§æ§æããã忣ã·ã¹ãã å
šäœããããã·ã¹ãã å
šäœã忢ããã«ããããã¹ãŠãåæã«äº€æããå¿
èŠãããå Žåã®å¯ŸåŠæ¹æ³ã æ®å¿µãªãããErlang / OTPã¯æ¢è£œã®äŸ¿å©ãªãœãªã¥ãŒã·ã§ã³ãããã§æäŸããŠããŸããã ããã§ããOTPã¢ãžã¥ãŒã«ã«ã¯
erl_boot_serverãå«ãŸããŠããŸããããã«ãããããŒãã®éå§æã«ãå¥ã®ããŒãããæ§æãã¡ã€ã«ãå«ãã¢ããªã±ãŒã·ã§ã³ã³ãŒããããŒãã§ããŸãã æ¬¡ã«ãã·ã¹ãã å
šäœã®ãªãŒããŒããŒããæ¬¡ã®ããã«å®è£
ã§ããŸããæåã«ãerl_boot_serverã¢ãžã¥ãŒã«ã䜿çšããŠãèµ·åæã«ä»ã®ããŒããããŒããããã³ãŒãã§ããã¡ã€ã³ãµãŒããŒã§ã³ãŒãããããã¹ã¯ãããããŸãã ãããŠãã¡ãã»ãŒãžããã¹ãŠã®ããŒãã«éä¿¡ããŠãããŒããéè² è·ã«ããŸãã ãã®ãããªã¡ãã»ãŒãžãåä¿¡ãããšãããŒãã§initã³ãã³ããå®è¡ãããŸãïŒrestart / 0ã¯ãããŒããå®å
šã«åæ¢ããã«ãªãŒããŒããŒãããŸãã éè² è·ã®åŸããã¹ãŠã®ããŒãã¯ã¡ã€ã³ãµãŒããŒããæ¢ã«æŽæ°ãããã³ãŒããååŸããŸãã ãã®ã¢ãããŒãã«ã€ããŠã¯
ãAmazon EC2ã§ã®Erlangã®ã»ããã¢ãã ïŒèšäºã®2çªç®ã®éšåïŒãš
Amazon EC2ã§ã®Erlangã¯ã©ã¹ã¿ãŒã®ã¢ããã°ã¬ãŒãã® 2ã€ã®èšäºã§èª¬æãããŠã
ãŸã ã
è¡å
ãã®èšèªã®ãã1ã€ã®è峿·±ãæ©èœã¯ãåŸæ¥ã®èšèªã®ã€ã³ã¿ãŒãã§ã€ã¹ã«é¡äŒŒããåäœã§ãããããæ£ç¢ºã«ã¯æœè±¡ã¯ã©ã¹ã§ãã ããšãã°ãã¢ãžã¥ãŒã«ã®å
é ã«
-behaviour(application).
ãèšè¿°ãããŠããå Žå
-behaviour(application).
-ããã¯2ã€ã®ããšãæå³ããŸããããžãã¯ã®äžéšã¯æ¢ã«OTPã§å®è£
ããã2çªç®ã¯ç¹å®ã®ã³ãŒã«ããã¯é¢æ°ã®ã»ãããã¢ãžã¥ãŒã«ã«å®è£
ããå¿
èŠããããŸãã ãã®å Žåãéå§æ©èœãšåæ¢æ©èœãå®è£
ããå¿
èŠããããŸãã 詳现ã«ã€ããŠã¯ã
åäœã«é¢ããããã¥ã¡ã³ããéä¿¡ããŠãã ããã
ããã»ã¹ãæ»ãªãã
æåã®èšäºã§ãã§ã«è¿°ã¹ãããã«ãErlangã§æ§ç¯ãããã·ã¹ãã
ã®é«ãä¿¡é Œæ§ã¯ããã¹ãŠã®ã³ãŒããã¯ã©ãã·ã¥ããªãããã«æžãããŠãããšããäºå®ã«åºã¥ããŠããŸããããã¯ãŒã¯ãããŒã«ãšã©ãŒããã£ãå Žåãåžžã«ãããç£èŠããŠãã人ãããŸãç¶æ³ãä¿®æ£ããŠã·ã¹ãã ã埩å
ããããã»ã¹ã å®éãã»ãšãã©ã®å Žåãã¯ãŒã¯ãããŒã¯éåžžããšã©ãŒãçºçããå Žåã®å¯ŸåŠæ¹æ³ãæ£ç¢ºã«ææ¡ããŠããªããããåçŽã«æ»ãã§èгå¯ããã»ã¹ã«ç¶æ³ãçè§£ãããæ¹ãããæ£ç¢ºã§ãã ããã¯æ¬¡ã®ããã«è¡ãããŸãã
- ãŸãã芳å¯ããã»ã¹ã¯ã¢ãŒã©ã³ã§æåãªã³ãã³ããå®è¡ããŸãã
process_flag(trap_exit, true).
ããã¯ããã®ããã»ã¹ãé¢é£ããã»ã¹ã®èœäžã«é¢ããã¡ãã»ãŒãžããã£ããããããšãæå³ããŸãã ãã®ã³ãã³ããå®è¡ããåŸãã¯ãŒã¯ãããŒãã¯ã©ãã·ã¥ãããšã次ã®åœ¢åŒã®ã¡ãã»ãŒãžã衚瀺ãããŸãïŒ {'EXIT', From, Reason}
ã¯èгå¯ããã»ã¹ã«å°çããŸãã process_flagïŒtrap_exitãtrueïŒãå®è¡ããããã»ã¹ãéäžã§èŠã€ãããŸã§åŠçããŸãã - 次ã«ãç£èŠããã»ã¹ã¯é¢é£ããã¯ãŒã¯ãããŒãäœæããŸãã
spawn_link(?MODULE, worked_function, [Arguments]).
- 3çªç®ã«ãç£èŠããã»ã¹ã¯ã¡ãã»ãŒãžã®ãªãã¹ã³ãéå§ããŸãã
receive
{'EXIT', From, Reason} ->
supervising_function() % (. )
end
åèšãããšãç£èŠããã»ã¹ã®æå°ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
supervising_function() ->
process_flag(trap_exit, true).
spawn_link(?MODULE, worked_function, [Arguments]).
receive
{'EXIT', From, Reason} ->
supervising_function()
end
end.
建ç¯çšã¬ã³ã¬Erlang / OTP
ãã ããç£èŠããã»ã¹ãæåããèšè¿°ããããå
±æãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããã»ã¹ãªã©ãèšè¿°ããå¿
èŠã¯ãŸã£ãããããŸããã Erlang / OTPã§ã®20å¹Žæªæºã®èšèªéçºã§ã¯ãErlangã§æžãããã¢ããªã±ãŒã·ã§ã³ãéåžžæ§ç¯ããããä¿¡é Œæ§ã®é«ããããã°ãããåºæ¬ã³ã³ããŒãã³ãã®ã»ãããéçºãããŸããã ããã«ãããŸãïŒ
- gen_server-ã·ã¹ãã ã§ã®ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®çžäºäœçšããµããŒãããåºæ¬çãªãµãŒããŒå®è£
ã ããã§ãããµãŒããŒãã®æŠå¿µã¯äžè¬çã«åãå
¥ããããŠããæŠå¿µãšäžèŽãããã®ã§ã¯ãªããç¹å®ã®Erlang / OTPãµãŒããŒãæå³ããããšã«æ³šæããŠãã ããã éåžžãã·ã¹ãã ã§ã¯ã圌ã¯ã·ã¹ãã ã®å
±æãªãœãŒã¹ã«ã¢ã¯ã»ã¹ãã責任ããããŸãã
- gen_fsm-ã¹ããŒããã·ã³ãå®è£
ããããŒã¹ã¢ãžã¥ãŒã«
- gen_event-ã€ãã³ãåŠçæ©èœãå®è£
ããåºæ¬ã¢ãžã¥ãŒã«
- ãããŠãã¡ããã ã¹ãŒããŒãã€ã¶ãŒ -ã¢ãžã¥ãŒã«ã¯ããã®åããã»ã¹ãéå§ã忢ãããã³ç£èŠããããã«èšèšãããŠããŸãã å€ãã®çè«ãæžããªãããã«ãã¹ãŒããŒãã€ã¶ãŒåæå颿°ã®ç°¡åãªäŸã瀺ããŸãã
init() ->
RestartStrategy = one_for_one
MaxRestarts = 10,
MaxTimeBetRestarts = 3600,
SupFlags = {RestartStrategy, MaxRestarts, MaxTimeBetRestarts},
ChildSpecs = [{Some_Module, {Some_Module, Function, []}, permanent, TimeOut,
worker, %
[Some_Module]}],
{ok, {SupFlags, ChildSpecs}}.
ãã®ã³ãŒãã¯1ã€ã®åããã»ã¹ãéå§ããŸããåããã»ã¹ã®åèµ·åã®æå€§æ°ã¯10ã§ãé »åºŠã¯3600ããªç§ä»¥äžã§ãã
äžèšã®ãã¹ãŠã®åºæ¬ã³ã³ããŒãã³ãïŒã¹ãŒããŒãã€ã¶ãŒãé€ãïŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãããããªããŒãããããšãã«èªåçã«å®è¡ãããcode_change颿°ããããŸãã ãã®é¢æ°ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããããŒãžã§ã³ããå¥ã®ããŒãžã§ã³ãžã®ã¹ã ãŒãºãªç§»è¡ãæäŸããã³ãŒããäœæã§ããŸãã
æ®å¿µãªãããåã¢ãžã¥ãŒã«ã®è©³çްãªèª¬æãšãããã®éã®é¢ä¿ã«ã€ããŠã¯ãããã€ãã®èšäºãå¿
èŠã«ãªããŸããããã«ããããã¯ã
èšèšã®ååãã§è©³ãã説æãããŠããŸãã ãŸãã䜿çšäŸã«ç®ãåããå¿
èŠã¯ãããŸãããErlangã§äœæããããããç¥ãããŠããã¢ããªã±ãŒã·ã§ã³ãã©ã€ãã©ãªã䜿çšããŠç¢ºèªããŠãã ããã ãããã®ã»ãšãã©ãã¹ãŠã¯ããããã®åºæ¬çãªã³ã³ããŒãã³ãã䜿çšããŠæžãããŠããŸãã
èšäºã®æåŸã«ã
ã¢ãŒã©ã³ã«é¢ããåªãããŠã£ãããã£ã¢ã®èšäºãžã®ãªã³ã¯ãšãDima Smolinã«ãã£ãŠåéãããErlagã«é¢ãã
2ã€ã®åªãããªãœãŒã¹ã³ã¬ã¯ã·ã§ã³ïŒ
1ã2 ïŒãæäŸããŸãã Erlangèšèªã«èå³ã®ãã人ã«ãšã£ãŠã¯ããããã®ãªã³ã¯ã¯èšèªãæ·±ãæãäžããã®ã«ååã§ãã
ç¶ç¶ããã«ã¯...
æåã®èšäºã®ããã«ãèæ
®ãã¹ããããã¯ã®ãªã¹ãã¯åããŸãŸã§ãã忣MnesiaããŒã¿ããŒã¹ïŒErlang / OTPã®äžéšïŒã䜿çšããAmazon S3ãšAmazon EC2ã䜿çšããŠ
RisovaskaãµãŒããŒã§ãããã®ãã¯ãããžãŒã䜿çšããäŸã䜿çšããŸãã