1 |
[en] CONCURRENCY AND SANDBOXES MODELS APPLIED TO LUA HTTP SERVERS / [pt] MODELOS DE CONCORRÊNCIA E SANDBOXES APLICADOS A SERVIDORES HTTP EM LUALEONARDO GODINHO DA CUNHA 09 April 2007 (has links)
[pt] Os desenvolvedores de sistemas cliente-servidor
constantemente se deparam
com questões de desempenho e escalabilidade, muitas vezes
o número de
clientes simultâneos de um servidor pode crescer de forma
significativa.
Além disso, se esses sistemas podem executar códigos de
terceiros, passa
a existir a preocupação com a questão de segurança da
execução destes
trechos de códigos.
O objetivo desse trabalho é testar o desempenho de
diversas combinações
de modelos de concorrência e sandboxes. Como exemplo de
sistema sujeito
a solicitações concorrentes que precisa permitir a
execução de programas de
terceiros, temos os servidores web.
O Xavante é um servidor web desenvolvido na linguagem de
programação
Lua que originalmente utiliza um modelo de programação
concorrente
baseado em co-rotinas. Esse servidor já possuía a
flexibilidade de mapear
tipos de requisição a tratadores diferentes. Alguns desses
tratadores de requisi
ção permitem a utilização de código de terceiros em tempo
de execução
e, por isso, já fazem uso de sandboxes a fim de oferecer
um ambiente de
execução protegido. Nesse trabalho testamos o uso dessas
sandboxes nativas
ao Xavante além de outros tipos de sandboxes. Também
aumentamos
as possibilidades de extensão do servidor, flexibilizando
a arquitetura de
modo a permitir diferentes estratégias de concorrência.
Utilizando a nova
arquitetura testamos o desempenho das diversas combinações
de sandboxes
e modelos de programação concorrente, permitindo a
comparação dos modelos
não só do ponto de vista qualitativo mas também medindo o
impacto
de desempenho do seu uso. / [en] Client-server developers constantly have to deal with
questions concerning
performance and scalability, since the number of
simultaneous clients can
grow significantly. Moreover, if these systems can execute
third-party code,
there is also the concern of secure execution of these
pieces of code. This
work goal is to benchmark several combinations of
concurrency and sandboxes
models. As an example of a system exposed to several
concurrent
requests that must be able to execute third-party code, we
have the web
servers. Xavante is a web server developed in the Lua
programming language
that originally uses an concurrency programming model
based on
coroutines. This server offers the flexibility to map
request types to different
handlers. Some of these request handlers dynamically allow
the use of
third-party code, therefore they make use of sandboxes in
order to offer a
protected running environment. In this work we test the
use of Xavante´s
native sandboxes and other types of sandboxes.We also
improve the extensibility
of the server, using a different architecture in order to
allow different
concurrency strategies. Using the new architecture we
tested the performance
of several combinations of sandboxes and concurrency
programming
models, allowing the model comparison not only in a
qualitative point of
view but also measuring the related performance impacts.
|
Page generated in 0.0447 seconds