Você está na página 1de 2

AP 1 – SD – 2021.

2 – UFC Russas
Nome:

Matrícula:

1. Considere o cenário onde você empreendeu em uma solução que provê, via rede,
sugestões de investimentos. Cada cliente requisita uma sugestão passando o próprio
perfil (conservador, moderado ou agressivo), o quanto investirá e a taxa de retorno
desejada. O seu sistema retornará uma carteira de possibilidades de investimento,
indicando a mais adequada ao perfil informado, para que se alcance a taxa de retorno
em um tempo informado na resposta. Além disso, algumas outras possibilidades são
disponibilizadas na resposta. Com esse cenário acima fornecido, responda às questões
abaixo:
a. Com o teorema CAP em mente, quais características você escolhe para o seu
sistema? Justifique a sua escolha dizendo como ela impacta no funcionamento
da aplicação.
b. Dadas características do CAP que você escolheu anteriormente, escolha um
modelo de comportamento para: rede, nós e tempo. Justifique as escolhas
para a interação interna dos componentes do sistema e para a interação com
os clientes.

2. Considerando o cenário a seguir, escolha uma arquitetura e modele o sistema nesse


nível arquitetural: componentes e interação. Apresente o diagrama seguindo os
exemplos apresentados em aula.

Cenário: Vivemos uma situação de pandemia onde o mundo esperou pela criação de
vacinas, que nos permitiu caminhar novamente em direção à normalidade. Durante
esse processo aprendemos que:
a. Vacinas devem ser armazenadas em contêineres que as mantém em uma
temperatura adequada.
b. As vacinas passam por diversos lugares, antes de serem aplicadas em uma
pessoa: fábrica, centrais de distribuição, centrais de armazenamento, postos
de vacinação.
c. Vacinas são falsificadas por bandidos.
d. Há uma necessidade imensa de doses, que devem ser produzidas em várias
fábricas, em vários lugares do mundo, por várias empresas diferentes.
Portanto, o desafio foi organizar sistematicamente a interação dos fabricantes com
seus parceiros comerciais, afim de entregar doses de vacinas autênticas e dentro dos
padrões de qualidade para os governos clientes. Assim, projete um sistema que
permita monitorar o processo de compra e distribuição das vacinas, considerando as
restrições apresentadas acima. Importante lembrar de colocar nos diagramas as
entidades que interagem com o sistema, os componentes e a interação entre eles.
3. Modifique o código abaixo para que ele deixe de ser sequencial e converta-se em
concorrente. Use co-rotinas e canais.
Sequencial Concorrente
suspend fun getMessages(): List<Msg> {
val msgs = mutableListOf<Msg>()
val firstMsg = api.getMsg()
val secondMsg = api.getMsg()
val thirdMsg = api.getMsg()
msgs.add(firstMsg)
msgs.add(secondMsg)
msgs.add(thirdMsg)
return msgs
}

fun main() = runBlocking {


val msgs = getMessages()
for (msg in msgs) {
msg.show()
}
}

suspend fun Msg.show() {


// Show message
}

4. Um cliente faz chamadas à procedimentos remotos para um servidor. O cliente leva 5


milissegundos para processar os argumentos de cada requisição e o servidor leva 10
milissegundos para processar cada requisição. O tempo de processamento do sistema
operacional local para cada operação de envio ou recebimento é de 0,5 milissegundos
e o tempo da rede para transmitir cada requisição ou mensagem de resposta é de 3
milissegundos. O empacotamento ou desempacotamento leva 0,5 milissegundos por
mensagem. Calcule o tempo que o cliente leva para gerar e retornar de duas
solicitações:
a. Se for de uma única thread;
b. Se tiver duas threads que podem fazer solicitações simultaneamente em um
único processador.

Você pode ignorar os tempos de mudança de contexto. Há necessidade de invocação


assíncrona se os processos do cliente e do servidor forem encadeados?

5. Do seu entendimento de virtualização, discuta as características da conteinerização


disponibilizada pelo Docker que permite uma grande sinergia (ação coesa e
cooperativa) com uma nuvem computacional.

Você também pode gostar