Universidad Latina
Ingeniería en Telemática
BIT-28 Sistemas Operativos II
Laboratorio #3
Programación Scala y Akka
Instrucciones
Trabaje individualmente. Siga los siguientes puntos paso a paso. Debe trabajar en Linux (Ubuntu o Fedora).
Debe entregar un reporte antes de la próxima clase en el Moodle.
1. Obtener ejemplos de GitHub
En este laboratorio vamos a ejecutar algunos ejemplos que se subieron en GitHub. Proceda a descargar todos
los ejemplos, en algún directorio de su máquina virtual, con el siguiente comando:
git clone https://github.com/carlosandres-mendez/operativos.git
Si ya cuenta con el directorio, entonces solo actualice y descargue las últimas versiones (debemos
posicionarnos dentro de la carpeta operativos). Se obtendrá la siguiente salida.
git pull
Estos programas deben comprenderse por el estudiante (y no solo ejecutarlos). El código fuente de estos
programas deben ser estudiados conforme se realice el laboratorio, y en caso de tener consultas con el
código fuente, se debe investigar o preguntar al profesor.
1. Actualizar máquina virtual
Primero que todo, actualizamos nuestra máquina virtual:
sudo apt update
sudo apt upgrade
sudo apt update -y && sudo apt upgrade -y
2. Maven
Maven es una herramienta de automatización de compilación que se utiliza principalmente para proyectos
Java.
sudo apt install maven
Si desea, puede verificar la versión de maven instalada:
mvn -version
3. Zip
En linux se utiliza normalmente tar. Sin embargo, a veces, se utiliza zip. Instalemos el programa Zip en linux.
sudo apt install unzip
4. Akka
Akka es un conjunto de herramientas para crear aplicaciones controladas por eventos altamente
concurrentes, distribuidas y tolerantes a fallas en JVM. Akka se puede utilizar tanto con Java como con Scala.
A continuación, descargue en Windows el siguiente ejemplo del sitio oficial:
https://developer.lightbend.com/guides/akka-quickstart-java/
Ahora, suba el archivo a la máquina virtual con algún programa utilizando protocolo FTP. Si no cuenta con
algún programa, puede instalar y utilizar Filezilla (https://filezilla-project.org/download.php?type=client).
Si desea, puede crear un directorio en Linux /home/<su usuario>/operativos/akka para agregar este ejemplo y
otros ejemplos más adelante.
Descomprima el proyecto de ejemplo Akka:
unzip akka-quickstart-java.zip
Ingrese al directorio unzip akka-quickstart-java y ejecute el siguiente comando (Nota: se requiere Java 8, se
puede cambiar con el comando sudo update-alternatives --config java):
mvn compile exec:exec
Observará lo siguiente:
Presione Enter
Revise el código de ejemplo del directorio:
akka-quickstart-java/src/main/java/com/example
5. Scala
Scala es un lenguaje de programación moderno de múltiples paradigmas diseñado para expresar patrones de
programación comunes de una manera concisa, elegante y segura. Integra a la perfección características de
lenguajes funcionales y orientados a objetos.
sudo apt install scala
Ahora, vamos a ejecutar scala en modo interactivo. Digite scala:
scala
Ingrese las siguientes dos instrucciones:
val addOne = (x: Int) => x + 1
println(addOne(1))
Ahora, ejecute algún otro ejemplo de:
https://docs.scala-lang.org/tour/basics.html
Puede salir del modo interactivo con:
:quit
Ahora, vamos a ejecutar un ejemplo en modo script. Ingresamos al directorio /operativos/scala y compilamos
de la siguiente manera:
scalac Smartphone.scala
Y, ejecutamos nuestro programa con el siguiente comando:
scala Main
Observe los archivos .class que se generaron, entre ellos Main.class. Esto debido a que Smartphone.scala
contiene una clase singleton llamada Main, la cual tiene el método def main(args: Array[String]). Muy similar a
Java.
6. Akka y Scala
Akka está disponible para Java y Scala.
Fuente y lecturas recomendadas
[1] Silberschatz, A. y otros. Operating System Concepts Essentials (10a ed). Espana: McGraw-Hill.
[2] Ajay, D. (2008). Distributed Computing, Principles, Algorithms, and Systems.