viernes, 26 de agosto de 2022

Qué significa que Java esté orientada a objetos

 Esta característica se relaciona con los métodos de programación orientados a objetos ("OO"). Las interpretaciones de OO varían, pero la primera idea es diseñar el software para que los diferentes tipos de datos estén asociados con el trabajo. Por ejemplo, los datos y el código (funciones o métodos) combinan objetos. Los objetos se pueden considerar como paquetes que tienen "comportamiento" (código) y "estado" (datos). Este principio distingue entre lo que cambia y lo que no. A menudo, cuando se cambia una estructura de datos, cambia el código que se ejecuta en esa estructura y viceversa. Esta división en objetos coherentes e independientes proporciona una base más estable para diseñar sistemas de software. El objetivo es administrar fácilmente grandes proyectos, mejorar la calidad y reducir la cantidad de proyectos fallidos. 

Usabilidad de los objetos. 

Otra gran promesa de la programación de este tipo es la creación de objetos más generales que permiten reutilizar el software en todos los proyectos. Por ejemplo, una entidad de "cliente" típica debería, en teoría, exhibir el mismo comportamiento en varios proyectos. Esto es especialmente cierto con el grado de superposición que es común en las grandes organizaciones. En este sentido, los objetos pueden verse como partes reutilizables que pueden usarse en muchos proyectos diferentes. Esto permite que la industria del software construya proyectos a gran escala utilizando componentes de calidad comprobada, lo que finalmente reduce significativamente el tiempo de desarrollo. 

La reutilización de software ha producido resultados mixtos, abordando dos problemas principales. En otras palabras, el diseño de objetos verdaderamente genéricos no se comprende bien y no existe una metodología extensa para comunicar oportunidades de reutilización. Algunas comunidades de código abierto quieren ayudar a resolver este problema proporcionando a los desarrolladores un medio para difundir información sobre la utilidad y diversidad de objetos reutilizables y bibliotecas de objetos.

Finalmente, programar en Java es una excelente idea porque permite que otros programadores puedan usar un mismo código aunque sea otro lenguaje de programación. 

jueves, 25 de agosto de 2022

Cambios en los estándares de seguridad de IBM sobre aplicaciones Java

Dado que el acceso implícito solo es útil cuando se realizan operaciones en objetos y registros de bases de datos de IBM cuando se accede a métodos nativos, los ejemplos de esta nota se centran en estas áreas. Para obtener una descripción básica de los permisos fijos, consulta la documentación pertinente.

De forma predeterminada se permiten que obtenga los permisos del propietario del archivo ejecutable, en lugar de los permisos de la persona que ejecuta el programa para realizar una acción. 

Uso de contraseñas en Java para IBM.

Conceptualmente, esto es muy similar a UNIX, cuando en caso de uso canónico es cambiar una contraseña generada. No es apropiado que todos los usuarios tengan permiso para cambiar el archivo de contraseñas, pero se recomienda que se confíe en el programa y se permita que los usuarios cambien sus contraseñas.

Debido a que la JVM formaba parte del Código interno con licencia (SLIC) de Trusted Computing Base del sistema, el sistema podía proporcionar una autenticación segura para los programas de Java. Debido a que la JVM ha pasado a utilizar una implementación de Java que es un programa a nivel de usuario, Java ya no puede proporcionar esta capacidad.

El enfoque más común para lograr la misma funcionalidad es agregar métodos ILE nativos al programa Jque usen privilegios de perfil de usuario equivalentes y realicen la acción deseada. También se puede lograr el mismo resultado que una concesión implícita sin agregar un método ejecutando la función en un proceso separado con una concesión separada y enviando una solicitud a ese programa cuando sea necesario.

En futuras notas se proporcionarán ejemplos de cómo se usa la autorización aprobada de Java y algunas alternativas sugeridas. Si estas en un curso de Java online seguramente estos datos te serán muy útiles, especialmente si el entorno que usarás en tus desarrollos es IBM. 

miércoles, 24 de agosto de 2022

Cambios de autorización de Java introducidos en IBM i 7.5

La autorización del perfil de usuario soportado por los programas Java está en desuso en IBM i 7.5. En esta nota se explica cómo verificar si una aplicación está usando un permiso aprobado y cómo cambiarlo en caso de ser necesario. Si no sabes exactamente de que estamos hablando, visita el siguiente curso de Java para obtener los conceptos necesarios.

En IBM i 7.5, las aplicaciones ya no pueden heredar permisos de perfil de usuario a través de programas Java. Veremos algunas descripciones y situaciones comunes en las que se utilizan permisos aprobados por Java y cómo modificar aplicaciones para eliminar la dependencia de los permisos aprobados.

¿Cómo saber si se está usando un permiso aprobado?

Lo más viable es usar las utilidades de IBM i 6.1 y 7.1 para determinar si alguna aplicación Java se ve afectada por el cambio de permiso modificado. Esta herramienta funciona con la JVM para informar sobre los programas que están registrados y usan los permisos establecidos por la máquina virtual de Java. 

La herramienta también escanea su sistema en busca de programas Java creados con soporte de autenticación persistente para ayudar a identificar las que puedan depender de la autenticación persistente. De forma predeterminada, la herramienta muestra el uso de privilegios fijos establecidos por la JVM y escanea todo el sistema. Los resultados te ayudarán a determinar qué aplicaciones utilizan permisos fijos en el sistema. Es posible que necesitemos usar esta información en estos casos:

Si el código comprado tiene un propósito, lo recomendable es que te comuniques con el proveedor para determinar cuál es el plan de acceso aprobado. Si estás usando tu propio código, puedes leer las soluciones en un artículo que posteriormente publicaremos en este sitio. 

martes, 23 de agosto de 2022

Hebras, o subprocesos de Java

 En Java una hebra es un único hilo independiente que se ejecuta dentro de un programa. Debido a que es un lenguaje de programación de subprocesos múltiples, puede ejecutar varios hilos simultáneamente en la máquina virtual. Esto a su vez, permiten que los programas realicen múltiples tareas simultáneamente. 

Los subprocesos son un marco de programación moderno que se utiliza para admitir aplicaciones concurrentes y mejorar su rendimiento y la escalabilidad. Los temas son compatibles con muchos lenguajes de programación a través de bibliotecas de programación de complementos. 

Java admite subprocesos como interfaces de programación de aplicaciones (API) integradas. Los subprocesos brindan soporte para mejorar la interacción al tiempo que reducen la latencia del teclado al realizar tareas adicionales. Sin embargo, dado que el programa utiliza subprocesos, no es necesario que sea interactivo. 

Los hilos o subprocesos de Java.

Un hilo es un mecanismo que espera una interacción larga mientras un programa puede hacer otro trabajo. Un subproceso puede admitir varios hilos o hebras con el mismo flujo de código. De hecho, a veces se les llama procesos ligeros. Cuando está bien diseñado, proporciona un modelo para administrar múltiples transacciones y usuarios. 

Puedes usar subprocesos en Java en muchas situaciones. Algunos programas deben participar en diferentes acciones en respuesta a la entrada adicional del usuario. Por ejemplo, un navegador web debe responder a la entrada del usuario mientras reproduce audio. Además, los subprocesos también pueden utilizar métodos asincrónicos. Cuando el usuario llama al segundo método, no es necesario esperar a que se complete el primer método antes de que el segundo método continúe con su trabajo.

Sin embargo, si el programa usa lógica secuencial, un solo hilo puede ejecutar la secuencia completa. En este caso, el uso de varios subprocesos daría como resultado un programa complejo sin ningún beneficio. Crear e iniciar un hilo requiere mucho trabajo. Si la tarea contiene solo unas pocas instrucciones, procesarla en un solo subproceso es más rápido. Esta operación funciona incluso si es conceptualmente asíncrona. Cuando varios subprocesos comparten un objeto, este debe sincronizarse para coordinar el acceso a los subprocesos y mantener la coherencia. La sincronización agrega complejidad a los programas, es difícil de ajustar para un rendimiento óptimo y puede ser una fuente de errores al programar en Java