ISD examenes
![]() |
![]() |
![]() |
Título del Test:![]() ISD examenes Descripción: examenes de otros años isd |




Comentarios |
---|
NO HAY REGISTROS |
Indique qué desventaja tiene una arquitectura con 2 capas con clientes de escritorio (capa 1: Interfaz gráfica de escritorio y capa Modelo; capa 2: servidor de Base de Datos) frente a una arquitectura con 3 capas, también con clientes de escritorio (capa 1: Interfaz gráfica de escritorio y capa Acceso al Servicio; capa 2: capa Servicios y capa Modelo; capa 3: servidor de Base de Datos): Es menos eficiente porque hay invocaciones remotas. No permite cambiar la Base de Datos utilizada sin modificar la capa Interfaz gráfica de escritorio. No permite hacer cambios en la capa Modelo sin necesidad de reinstalar nada en las máquinas cliente, mientras que la arquitectura en 3 capas sí lo permite. No permite hacer cambios en la capa Interfaz gráfica de escritorio sin necesidad de reinstalar nada en las máquinas cliente, mientras que la arquitectura en 3 capas sí lo permite. Indique en qué capas ha utilizado el API JDBC durante el desarrollo de su práctica. En la capa Lógica de Negocio. En la capa Acceso a Datos. En la capa Servicios. Logica de Negocio y Acceso a Datos son correctas. Indique la afirmación correcta. Cuando la conexión a la base de datos se obtiene a partir de un DataSource, la implementación de un caso de uso en la capa Modelo no necesita invocar a Connection.close, ni implícitamente (try-with-resources) ni explícitamente. Cuando se invoca a close sobre una conexión que se obtuvo de un pool de conexiones, la conexión contra la base de datos no se cierra. Una vez obtenida una conexión a la base de datos (desprecie este tiempo), si se lanza una consulta, es más rápida su ejecución si la conexión se obtuvo de una invocación a DriverManager.getConnection que si se obtuvo mediante la invocación del método getConnection de un DataSource. Todas las implementaciones de DataSource tienen la obligación de usar la estrategia de pool de conexiones. En base al enfoque aconsejado en la asignatura para la realización de pruebas de integración, suponiendo que un caso de prueba necesite insertar datos en la Base de Datos antes de invocar al caso de uso a probar (e.g. para probar un caso de uso que haga una búsqueda es necesario que en la Base de Datos haya datos sobre los que poder hacer la búsqueda), indique cómo debe crearlos. Siempre debe utilizar los DAOs que ofrezcan las operaciones pertinentes. Si existen servicios de la capa Modelo que ofrezcan métodos adecuados para crear esos datos, debe utilizarlos. Debe ejecutar un script SQL que tenga las sentencias necesarias para insertar los datos. Debe ejecutar directamente las sentencias SQL necesarias, haciendo uso del API JDBC. Dado el siguiente documento JSON: [{ "title": "Learning Java", "formats": ["PDF", "EPUB"], "price": 1 }]. Se trata de un array que tiene un único elemento de tipo objeto, y ese objeto tiene a su vez tres campos cuyos valores son de tipo string, array y número. Se trata de un array que tiene un único elemento de tipo objeto, y ese objeto tiene dos campos cuyos valores son de tipo string y un campo cuyo valor es de tipo número. Se trata de un objeto que tiene tres campos cuyos valores son de tipo string, array y número. Se trata de un objeto que tiene dos campos cuyos valores son de tipo string y un campo cuyo valor es de tipo número. Suponga que está diseñando un Servicio Web según el enfoque REST y que desea modelar una funcionalidad que permite a un usuario inscribirse en una carrera de running. Como datos de entrada, es necesario proporcionar el identificador de usuario, el identificador de la carrera y la tarjeta bancaria con la que se realizará el pago de la inscripción. Ya existe un recurso colección con el URL /carreras que representa a las carreras a las que se puede inscribir un usuario. ¿Qué opción de diseño escogería de acuerdo al enfoque estudiado en la asignatura?. El servicio permitirá inscribirse en una carrera con el identificador 5 haciendo una petición POST al URL /carreras/5 pasando los datos de entrada como parámetros de la petición. El servicio permitirá inscribirse en una carrera con el identificador 5 haciendo una petición PUT al URL /carreras/5/inscribir, pasando el resto de datos de entrada como parámetros de la petición. Las dos anteriores son válidas. El servicio permitirá inscribirse en una carrera haciendo una petición POST al URL /inscripciones pasando los datos de entrada como parámetros de la petición. En el contexto de Servicios Web REST, suponga un intermediario genérico de cache. Asumiendo que ninguna respuesta enviada por el servicio indica explícitamente que no se puede cachear, diga que afirmación es correcta teniendo en cuenta las convenciones seguidas en la asignatura. Sería correcto que el intermediario cachease la respuesta a una petición GET /books/1234 que ha devuelto un código de respuesta 500 Internal Error. Sería correcto que el intermediario cachease la respuesta a una petición POST /books/ que ha devuelto un código de respuesta 500 Internal Error. Todas las anteriores. Ninguna de las anteriores. Dado el siguiente fragmento de un fichero de definición de la interfaz de un servicio Apache Thrift: struct Instance { 1: i64 instanceId 2: string description } Indique qué afirmación NO es correcta. Se corresponde con la declaración de un tipo definido por el usuario, que podrá utilizarse como tipo de los argumentos que recibe una función. Se corresponde con la declaración de un tipo definido por el usuario, llamado Instance, que tiene un campo de tipo entero de 64 bits y otro de tipo cadena. Se corresponde con la declaración de un tipo definido por el usuario, que podrá utilizarse como tipo de las excepciones que puede lanzar una función. Si se utiliza el compilador del IDL de Apache Thrift a Java, para este tipo definido por el usuario se generará una clase cuyo nombre será "Instance". Dado el siguiente documento JSON:[{ "title": "Learning Java","formats": ["PDF", "EPUB"],"price": 1}]. Se trata de un array que tiene un único elemento de tipo objeto, y ese objeto tienedos campos cuyos valores son de tipo string y un campo cuyo valor es de tiponúmero. Se trata de un array que tiene un único elemento de tipo objeto, y ese objeto tiene a su vez tres campos cuyos valores son de tipo string, array y número. Se trata de un objeto que tiene tres campos cuyos valores son de tipo string, array ynúmero. Se trata de un objeto que tiene dos campos cuyos valores son de tipo string y uncampo cuyo valor es de tipo número. Supongo que está desarrollando una clase de pruebas para uno de los servicios de lacapa Modelo de su práctica y que para eliminar datos de la Base de Datos necesita emplearun DAO. En base al enfoque aconsejado en la asignatura, indique cómo instanciaría desdela clase de prueba el DAO, teniendo en cuenta que el DAO se desea usar desde variosmétodos anotados con @Test. Creando con “new” una instancia de la clase de implementación del DAO en unmétodo de la clase de pruebas anotado con @BeforeAll. A través de una factoría en un método de la clase de pruebas anotado con@BeforeAll. Creando con “new” una instancia de la clase de implementación del DAO en cadauno de los métodos de la clase de pruebas anotado con @Test dede los que senecesite utilizar el DAO. A través de una factoría en los métodos de la clase de pruebas anotados con @Testdesde los que se necesite utilizar el DAO. Suponga que está diseñando un Servicio Web según el enfoque REST, ¿Qué opción leparece más adecuada para la respuesta a una petición que falle al validar los parámetros deentrada?. En la respuesta HTTP se indicará el código de respuesta 400 Bad Request. En elcuerpo de la respuesta se puede incluir en JSON información detallada sobre el error. En la respuesta HTTP se indicará el código de respuesta 500 internal Error paraindicar que la petición falló y que el cliente puede reintentarla. En la respuesta HTTP se indicará el código de respuesta 200 OK para indicar que elservidor entendió correctamente la petición. En el cuerpo de la respuesta se incluiráen JSON información sobre el error. En la respuesta HTTP se indicará el código de respuesta 400 Bad Request. En el cuerpo de la respuesta no se incluirá nada, para no violar la interfaz uniforme. Suponga que está diseñando un Servicio Web REST y que desea modelar una funcionalidad que permite reemplazar la representación de un recurso individual (e.g. un libro) en un repositorio ¿Que opción escogería?. El servicio permitirá modificar el libro invocando el URL http://www.servicename.com/updateBook con el método POST e incluyendo como parámetro el identificador del libro, y los nuevos datos en el cuerpo de la petición. El servicio expondrá una operación llamada updateBook que podrá ser invocada remotamente, que recibirá como parámetro el identificador del libro y los nuevos datos. El servicio asignará un URL único a cada libro y permitirá reemplazar su representación invocando su URL con el método GET y pasando en el cuerpo la nueva representación. El servicio asignará un URL único a cada libro y permitirá reemplazar su representación invocando su URL con el método PUT y pasando en el cuerpo la nueva representación. Indique cual de las siguientes afirmaciones referidas a xml es correcta: XML impone un conjunto de elementos, que son los unicos que se pueden utilizar en cualquier documento XML. Los documentos XML no pueden tener comentarios. Un elemento vacio no puede tener comentarios. Para un elemento dado, cada atributo solamente puede tener un valor. Con el enfoque estudiado en la asignatura para el diseño de la capa modelo: La interfaz de un DAO oculta la tecnologia de acceso a la base de datos (e. g. JDBC, JPA, etc.) que se utiliza. Las operaciones de la interfaz de un DAO no deben declarar InputValidationException como una de las excepciones devueltas. La implementación de una operación de un DAO invoca al metodo rollback sobre la conexion si se produce la excepcion java.sql.SQLException. La interfaz de un DAO oculta el tipo de base de datos (e.g. relacional, documental, etc.) que se utiliza. Indique que desventaja tiene una arquitectura con 2 capas con clientes de excritorio (capa 1:Interfaz grafica de escritorio y capa Modelo; capa 2:servido de base de datos) frente a una arquitectura de 3 capas tambien con clientes de escritorio (capa 1: Interfaz grafica y acceso al servicio; capa 2: capa Servicio y capa modelo; capa 3:servidor de Base de datos)). Es menos eficiente porque hay invocaciones remotas. No permite cambiar la base de datos utilizada sin modificar la capa interfaz grafica de escritorio. No permite hacer cambios en la capa modelo sin necesidad de reinstalar nada en las maquinas cliente (mientras que la arquitectura en 3 capas si lo permite). No permite hacer cambios en la capa interfaz grafica de escritotio sin necesidad de reinstalar nada en las maquinas cliente (mientras que la de 3 si permite). Indique la afirmación correcta cuando se desea insertar una fila cuya clave numérica tiene que ser generada dinámicamente (suponga JDBC 3.0 o superior): Si la base de datos dispone de “columnas contador” (e.g. MySQL), primero hay que generar un identificador lanzando una consulta especial y posteriomente hay que insertar la fila con el identificador generado. Si la base de datos dispone de “columnas contador” (e.g. MySQL), primero hay que generar un identificador usando la API de JDBC y posteriormente hay que insertar la fila con el identificador generado. Si la base de datos dispone de “generadores de identificadores numéricos /secuencias” (e.g. Oracle), primero hay que generar un identificador usando la API de JDBC y posteriormente hay que insertar la fila con el identificador generado. Si la base de datos dispone de “generadores de identificadores numéricos /secuencias” (e.g. Oracle), primero hay que generar un identificador lanzando una consulta especial y posteriomente hay que insertar la fila con el identificador generado. En el contexto de Servicios Web REST, suponga un intermediario genérico de cache.Asumiendo que ninguna respuesta enviada por el servicio indica explícitamente que no sepuede cachear, diga que afirmación es correcta teniendo en cuenta las convencionesseguidas en la asignatura: Sería correcto que el intermediario cachease la respuesta a una petición de la formaGET /books/1234 que ha devuelto un código de respuesta 500 Internal Error. Sería correcto que el intermediario cachease la respuesta a una petición de la formaPUT /books/1234 que ha devuelto un código de respuesta 500 Internal Error. Sería correcto que el intermediario cachease la respuesta a una petición de la formaPUT /books/1234 que ha devuelto un código de respuesta 404 Not Found. Sería correcto que el intermediario cachease la respuesta a una petición de la formaGET /books/1234 que ha devuelto un código de respuesta 400 Bad Request. Considere la interfaz PreparedStatement de la API de JDBC. Indique la afirmación correcta. El método executeQuery sólo permite lanzar consultas de lectura (e.g. SELECT) y siempre devuelve una instancia de ResultSet. El método executeUpdate permite lanzar todo tipo de consultas de actualización(UPDATE, INSERT, DELETE, etc.) y no devuelve nada. El método executeQuery permite lanzar cualquier tipo de consulta (e.g. SELECT,DELETE, etc). Si la consulta no es de lectura, devuelve null. El método executeQuery sólo permite lanzar consultas de lectura (e.g. SELECT) y devuelve null si no hay filas que concuerden con la consulta. Indique cuáles de las siguientes APIs se han utilizado en la asignatura. Apache Thrift en la capa Servicios REST y HTTPClient en la capa Acceso al ServicioREST. Servlets en la capa Servicios REST y Apache Thrift en la capa Acceso al ServicioREST. Servlets en la capa Servicios REST y JDBC en la capa Modelo. JDBC en la capa Servicios REst y HTTPClient en la capa Acceso al Servicio REST. En el modelo de programación RPC (Remote Procedure Call), indicar cuál de las siguientes afirmaciones es correcta. Las aplicaciones cliente y servidor tienen que escribirse en el mismo lenguaje de programación. Todos los servicios soportan el mismo conjunto de operaciones (interfaz uniforme). Para el programador, la invocación de una operación remota es similar a la invocación de un método de una librería local. Cambios en la implementación del servidor obligan a regenerar el stub, incluso si no cambia nada en la interfaz del servicio. Indique cual de las siguientes afirmaciones referidas a Apache Thrift es correcta: La capa o libreria de protocolos es la encargada de enviar peticiones y respuestas por red. Los tipos basicos que se pueden utilizar en el fichero de definicion de la interfaz de un servicio dependen del lenguaje en el que se vaya a desarrollar el servicio. La capa o libreria de transporte es generada por el compilador IDL al lenguaje en el que se este desarrollando el cliente o servicio. Cuando se utiliza java como lenguaje para desarrollar un servicio, permite que el servicio se ejecute dentro de un servidor de aplicaciones. Indique la afirmacion correcta. Todas las implementaciones de DriveManager tienen la obligacion de usar la estrategia de pool de conexiones. Una vez obtenida una conexion a la base de datos (desprecie este tiempo), si se lanza una consulta, es mas rapida su ejecucion si la conexion se obtuvo de una invocacion a driveManager.getConnection que si se obtuvo de una invocacion del metodo getConnection de un DataSource. Una conexion JDBC (Connection) se puede declarar e inicializar dentro de los parentesis que siguen a la palabra reservada try en la sentencia try(...){...}catch(...){...}finally{...}. Cuando se invoca a close sobre una conexion obtenida a traves de DriverManager.getConnection, la conexion contra la base de datos no se cierra. Dado el siguiente fragmento de un fichero de definición de la interfaz de un servicioApache Thrift:struct Instance{1: i64 instanceId2: string description}Indique qué afirmación NO es correcta: Se corresponde con la declaración de un tipo definido por el usuario, que podrá utilizarse como tipo de los argumentos que recibe una función. Si se utiliza el compilador del IDL de Apache Thrift a Java, para este tipo definido por el usuario se generará una clase cuyo nombre será “Instance”. Se corresponde con la declaración de un tipo definido por el usuario, que podrá utilizarse como tipo de las excepciones que puede lanzar una función. Se corresponde con la declaración de un tipo definido por el usuario, llamado “Instance”, que tiene un campo de tipo entero de 64 bits y otro de tipo cadena. En base al enfoque aconsejado en la asignatura para la realización de pruebas de integración de la capa Modelo, indique qué afirmación es INCORRECTA. Un caso de prueba debe crear los datos que precise antes de invocar al caso de uso a probar, y eliminarlos al finalizar. Un caso de prueba puede asumir que en la Base de Datos no habrá datos creados por otros casos de prueba. Para un mismo caso de uso se pueden diseñar varios casos de prueba (por ejemplo, para probar la ejecución correcta del caso de uso y cada uno de los casos de error). Con el fin de validar un caso de prueba puede ser necesario añadir nuevos casos de uso al modelo. Una aplicación que parsee un documento JSON. Siempre comprueba que esté bien formado y que sea válido. Siempre comprueba que sea válido pero no es obligatorio que compruebe que esté bien formado. Siempre comprueba que esté bien formado pero no es obligatorio que compruebe que sea válido. No es obligatorio que compruebe que esté bien formado ni que sea válido18. Considere un servicio REST diseñado según el enfoque estudiado en la asignatura. Actualmente, su capa Modelo utiliza MySQL (proporciona “columnas contador” para la generación de claves numéricas) como base de datos. Se desea que el servicio contemple adicionalmente la posibilidad de que su capa Modelo use Oracle (proporciona “generadores de identificadores / secuencias” para la generacion de claves numéricas), para poder instalarlo tanto en empresas que usen MySQL como Oracle. Los nombres de las tablas y columnas en MySQL y Oracle son los mismos. Indique la afirmación correcta. Es necesario añadir DAOs y sus factorías para Oracle. No es necesario modificar la capa Acceso a Datos, pero sí la capa Lógica de Negocio. Es necesario añadir factorías de DAOs para Oracle. Es necesario añadir DAOs para Oracle. Considere un caso de uso que tiene que lanzar varias consultas (de lectura y/o modificación). Indique la afirmación correcta en base al enfoque estudiado en la asignatura. Se usa el nivel de aislamiento por defecto en la conexión a la base de datos. Si al lanzar una consulta a la base de datos se produce excepción java.sql.SQLException, se debe invocar el método commit sobre la conexión a la base de datos. Se usa el modo auto-commit en la base de datos. Si se comprueba que se viola alguna regla de negocio en base a los datos presentes en la base de datos (antes de hacer alguna modificación), se invoca al método commit sobre la conexión a la base de datos. Pregunta 20... a. b. c. d. 20 + 1. a. b. c. d. Asuma el enfoque aconsejado en la asignatura , y que se utiliza la clase ConfigurationParametersManager para leer el valor de las propiedades del fichero de configuración. Para que se ejecuten correctamente las pruebas de integración de la capa Modelo , indique en qué fichero es necesario tener correctamente configurado el valor de la propiedad utilizada por una factoría para instanciar un servicio de la capa Modelo. En src/main/webapp/WEB-INF/web.xml. En src/test/resources/ConfigurationParameters.properties. En src/main/resources/ConfigurationParameters.properties. En pom.xml. |