- comportamento no tempo ou desempenho , ou a capacidade do sistemade alcançar a resposta dentro do período de tempo especificado.Aqui, referimo-nos a tempos de resposta, latência, tempode processamento, vazão ( throughput ), etc. Vale observar que, aomedir essa característica, devemos também entender ascondições em que o sistema está operando. Afinal, no [link] , mesmo que o HSearch tenha umtempo de resposta menor que o Google Web Search, o primeiroé capaz de servir a apenas um milésimo da quantidade deusuários servida pelo segundo.
-
uso
de recursos ,
que é a capacidade de o softwareexigir mais ou menos recursos
de acordo com suas condiçõesde uso. Normalmente, essa característica
também é chamada de
escalabilidade e pode também ser vista de
outra maneira: como a adiçãoou remoção de recursos no sistema
vai melhorar ou piorar as condiçõesde uso. Existem dois tipos
mais comuns de escalabilidade,que também servem para facilitar
o entendimento dessa característica:
escalabilidade
vertical e
escalabilidade
horizontal .
Eles podem ser melhor explicadospor meio de um exemplo:
Vamos considerar um sistema servidor de arquivos. Esseservidor de arquivos usa apenas um disco rígidoe é capaz de servir a cinco usuários simultâneos, cadaum usando 10 MB/seg de banda passante (fazendo upload ou download ). Vamos desconsiderar osefeitos da rede que liga os clientes ao servidorou qualquer outro gargalo. Podemos dizer que as condiçõesde uso do software são: 5 usuários simultâneosa 10 MB/seg cada.
(continuação do exemplo anterior)
Vamos substituir o disco rígidodo servidor por um que seja capaz de transferirarquivos no dobro da velocidade do anterior. Desta maneira,se o disco rígido fosse o único fator limitante,conseguiríamos não mais servir 5 usuários a 10MB/seg, mas sim 10 usuários simultâneos a 10 MB/seg,como ilustrado na [link] . Além disso, poderíamosseguir melhorando verticalmente o sistema até encontrarmosum limite, que pode ser tanto o limite na velocidadepossível para um disco rígido quanto o limitefinanceiro de comprarmos um disco mais rápido.
Escalando verticalmente um sistema. (continuação do exemplo anterior)
Ao invés de necessariamente comprar um disco rígidomais rápido, compramos um novo disco (que podeaté ser igual ao anterior) e fazemos com que o softwaredivida a carga de escrita e leitura entre os doisdiscos rígidos. Esta abordagem está ilustrada na [link] .
Escalando horizontalmente um sistema.