Blackberry 10: modernizándose pero manteniendo a los fieles!!!

Quizás sea más noticia que ahora RIM se llame Blackberry, o que el nuevo Blackberry Messenger soportará videoconferencias, o que para su lanzamiento en el AppWorld habrá ya 70.000 aplicaciones….yo sin duda me quedo con que con el nuevo BB10 salen 2 teléfonos y uno de ellos, el Q10 con teclado!!!

He de reconocer que durante todo este tiempo me temía que BB se había dejado arrastrar y no iba a continuar con su línea de móviles con teclado, por suerte ha reculado y aquí tenemos los primeros 2 móviles:

El Z10 y el Q10:

El BlackBerry Z10 es un equipo 100% táctil que cuenta con una pantalla de 4,2 pulgadas con resolución de 1280 x 768 píxeles y una densidad de 356 ppp.

Incorpora un procesador Snapdragon S4 Plus Dual-core de 1,5 GHz, el cual se encuentra acompañado de 2 GB de RAM, además integra una cámara de 8 megapíxeles con grabación de video en Full HD.

También cuenta con conectividad Wi-Fi, Bluetooth 4.0, NFC, puertos MicroUSB y HDMI.

Soporta tarjetas MicroSD de hasta 32 GB, utiliza MicroSIM e integra una batería removible de 1.800 mAh.

El Q10 que cuenta con una pantalla de 3,1 pulgadas y el tradicional teclado QWERTY.

Incluye una pantalla táctil en formato 4:3 Super AMOLED con resolución de 720×720 y 328ppi, además del teclado.

Integra un procesador de 1,5 GHz acompañado de 2 GB de RAM y 16GB de memoria interna.

Espero (por mi propio bien) que este BB triunfe!!!

Un poco de MongoDB: ¿Qué es? ¿qué ofrece?

Seguro que a estas alturas todos sabéis ya a que se refiere el término NoSQL (https://unpocodejava.wordpress.com/?s=noSQL) .

Las crecientes necesidades en cuanto a rendimiento, escalabilidad, velocidad, rendimiento han hecho que este término esté ya en nuestras vidas.

Las bases de datos NoSQL vencen a las BD relacionales tradicionales al no requerir un modelo estáticos y estructura de datos para almacenar la información.

MongoDB es una de estas base de datos. En este post veremos algunas de sus características principales (en su momento ya comparamos varias bases de datos NoSQL aquí), y decíamos:

¿Que es MongoDB?

· Es una base de datos NoSQL, orientada a documentos.

· Pensada para ser rápida, escalable y fácil de usar.

¿Dónde aplica?

· Aplicaciones que almacenan grandes cantidades de datos o datos complejos.

· Por ejemplo para aplicaciones con estructuras complejas como blogs (post, comentarios, rollbacks,etc) o aplicaciones de analítica (Google analytics).

Algunas características importantes de MongoDB:

Ausencia de transacciones

· (Aunque parezca un inconveniente)esto le permite a MongoDB ser más rápida y escalable a nivel horizontal.

Escalabilidad horizontal

· En sistemas tradicionales RDBMS, para mejorar el rendimiento de la base de datos se adquiría una máquina más potente (escalado vertical)

· En MongoDB funciona mejor el escalado horizontal (incrementar número de máquinas)

Almacenamiento Orientado a documentos (BSON)

· JSON es más que una gran forma de intercambiar información, es también una excelente forma de almacenarla

· MongoDB almacena todo un registro en un mismo documento.

· No hay necesidad de especificar estructura alguna y sus documentos pueden cambiarse individualmente.

· MongoDB usa BSON (Binary-JSON),un formato abierto basado en JSON que permite manejar datos binarios,

· Con el uso de BSON MongoDB es muy rápida en la búsqueda, indexación, almacenamiento y recuperación de la información

· BSON es fácil y rápidamente transformable en cualquier tipo de dato nativo de cualquier lenguaje de programación.

Soporte a Querys dinámicas

· Como en las bases de datos tradicionales, MongoDB también acepta la ejecución de queries dinámicas (a diferencia de otras como CouchDB)

Indexación de Documentos

· Todos los documentos son automáticamente indexados con una clave llamada _id.

· Esta clave nos asegura que cada documento es único,

· MongoDB permite indexar documentos embebidos (se puede crear un índice en un código postal)

Indices Geoespaciales

· Permite la indexación de la información basado en la localización.

· Permite crear consultas del tipo: “cuantos artículos se encuentran a cierta distancia de un determinado conjunto de coordenadas”,

Analisis de Rendimiento de Queries

· MongoDB provee una herramienta para el análisis de consultas que permite determinar el rendimiento de nuestras consultas o conocer posibles defectos en su estructura o simplemente mejorar el tiempo de respuesta de las mismas.

GridFS

· BSON puede almacenar hasta 4Mb de datos binarios en un documento

· Si necesitamos espacio adicional (imágenes, audio, vídeo) MongoDB provee de un sistema llamado GridFS.

· GridFS permite almacenar la información del archivo (metadata) en una colección de archivos: los datos se divide en pequeñas partes llamadas “chunks”

Replicación de Datos

· MongoDB provee mecanismo llamado replicación maestro-esclavo, con lo que solo una base de datos está activa para escritura en un momento dado.

· Todas las peticiones de escritura se realizan en la base de datos maestra y esta las pasa a la réplica (esclavo)

· Si la bd principal falla la esclava ocupa su lugar.

· MongoDB implementa el concepto de réplica a pares de modo que cuando falla se determina cuál de las 2 bases de datos (maestro-esclavo) es la que tomará el control para continuar prestando el servicio.

Implementación de Auto Sharding

· El AutoSharding es muy interesante en despliegues a gran escala, delega en MongoDB la separación y recombinación de los datos y el aseguramiento de que vaya al servidor correcto y que las queries se ejecuten y combinen de la forma más eficiente posible.

SNMP y Java

Java tiene un API para monitorizar aplicaciones Java, JMX.

Java Management Extensions (JMX) es una tecnología Java que permite administrar y/o supervisar aplicaciones, objetos del sistema, dispositivos y redes orientadas al servicio.

La entidad administrada/supervisada se representa mediante objetos llamados MBean (del inglés "Managed Bean", bean administrado).

Con el tiempo JMX se ha establecido como estándar de monitorización de aplicaciones Java, sin embargo aún hoy se sigue usando más SNMP, y como decíamos en este post:

“Hay más herramientas SNMP que JMX y los profesionales de sistemas se sienten más cómodos con SNMP.”

SNMP (Protocolo simple de administración de red) es un protocolo que les permite a los administradores de red administrar dispositivos de red y diagnosticar problemas en la red. Nacido en 1990, actualmente va por la versión 3 y es el estándar de monitorización.

Por suerte Java (aunque sea una característica casi desconocida) tiene soporte nativo SNMP en la propia JVM: http://www.badllama.com/content/monitor-java-snmp

Si necesitamos funcionalidad más avanzada podemos usar librerías como netsnmpj que permite al código Java realizar operaciones SNMP y por tanto monitorizar otros parámetros.

O SNMP4J que entre otras cosas permite mapear MBeans JMX con SNMP.

Si lo que necesitáis es una consola SNMP en Java podemos usar por ejemplo Cacti.