|
47 | 47 | <li><a href="lisphandler.html">Lisp Function Handler</a> for evaluating Lisp expressions on the fly.</li>
|
48 | 48 | <li>Functions can be dynamically added to Excel without restart.</li>
|
49 | 49 | <li>Functions can be registered as Excel functions (with help information).</li>
|
50 |
| - <li>Fast binary protocol with multiple-server fail-over/scaleability.</li> |
| 50 | + <li>Fast binary protocol with multiple-server fail-over/scalability.</li> |
51 | 51 | <li>JSON over HTTP(S) protocol</li>
|
| 52 | + <li><b>NEW: </b>Can be configured to connect to multiple function servers (providers)</li> |
52 | 53 | </ul>
|
53 | 54 | XLLoop consists of two main components:
|
54 | 55 | <ul>
|
|
344 | 345 | <div class="section-title">Multiple Server Support</div>
|
345 | 346 | <div class="section-content">
|
346 | 347 | The binary protocol supports connecting to multiple servers to improve reliability and
|
347 |
| - scaleability. |
| 348 | + scalability. |
348 | 349 |
|
349 | 350 | <br/><br/>
|
350 | 351 | The approach is simple; it connects to a random server, if this fails it reports
|
|
387 | 388 | </div>
|
388 | 389 | </div>
|
389 | 390 |
|
| 391 | + <div class="section"> |
| 392 | + <div class="section-title">Multiple Function Providers</div> |
| 393 | + <div class="section-content"> |
| 394 | + XLLoop can be configured to connect to multiple function servers. The following shows an example of the INI file configuration to achieve this: |
| 395 | +<pre> |
| 396 | +providers=Java,Python,Ruby,PHP |
| 397 | +include.volatile=false |
| 398 | + |
| 399 | +[Java] |
| 400 | +server=localhost |
| 401 | + |
| 402 | +[Python] |
| 403 | +server=localhost:5460 |
| 404 | +function.name=PY |
| 405 | + |
| 406 | +[Ruby] |
| 407 | +server=localhost:5470 |
| 408 | +function.name=RB |
| 409 | + |
| 410 | +[Erlang] |
| 411 | +server=localhost:5480 |
| 412 | +function.name=ERL |
| 413 | + |
| 414 | +[PHP] |
| 415 | +protocol=http |
| 416 | +url=http://xlloop.sourceforge.net/servers/php/TestServer.php |
| 417 | +send.caller.info=true |
| 418 | +function.name=LP |
| 419 | + |
| 420 | +</pre> |
| 421 | + Each provider specified in the <code>providers</code> property (comma-separated list) refers to a section in the INI file. Each section accepts all the INI properties listed in the table above (apart from global properties). |
| 422 | + <br/><br/> |
| 423 | + This will setup connections to multiple servers. The <code>function.name</code> property is used to set the generic function name registered for that server. For example, to invoke a python function from the server at <code>localhost:5460</code> you could write the following formula: |
| 424 | +<pre> |
| 425 | +=PY("ArgsTest", "Hello World!") |
| 426 | +</pre> |
| 427 | + |
| 428 | + Note that difference between configuring multiple servers for one function provider and configuring mutiple function providers. Multiple function server instances serve up the same functions whereas multiple function providers each provide a different set of functions. Also note that no attempt is made to reconcile function name clashes between function providers. |
| 429 | + |
| 430 | + </div> |
| 431 | + </div> |
| 432 | + |
390 | 433 | <div class="section">
|
391 | 434 | <div class="section-title">Change History</div>
|
392 | 435 | <div class="section-content">
|
| 436 | + V0.3.2 |
| 437 | + <ul> |
| 438 | + <li>Added support for multiple servers (providers)</li> |
| 439 | + <li>Moved source code to github and refactored addin source folders</li> |
| 440 | + </ul> |
393 | 441 | V0.3.1
|
394 | 442 | <ul>
|
395 | 443 | <li>Added round-robin connection mode for multiple servers in binary mode</li>
|
|
0 commit comments