Kitabı oku: «Diseño funcional y de la interactividad de productos multimedia. ARGN0110», sayfa 4
10. Arquitecturas hardware
Al igual que ocurre con cualquier otro producto devenido del diseño industrial, en el desarrollo de los ordenadores —desde los modestos PC domésticos a las supercomputadoras de los centros de cálculo— concurren una serie de filosofías, normas y concepciones que permiten el abordaje de su construcción desde premisas muy distintas.
10.1. Arquitectura abierta y arquitectura cerrada. Características
Una de las primeras variantes que atañen al diseño de un ordenador, sea cual sea su potencia, es si los elementos físicos que lo integran, el hardware, responden a un modelo de arquitectura abierta o cerrada.
Arquitectura abierta
Por arquitectura abierta se entiende un diseño donde dicho hardware se concibe y fabrica permitiendo el cambio o la selección de unos elementos integrantes frente a otros, permitiéndose así distintas configuraciones aplicables a entornos y funciones diferentes, aparte de una constante capacidad de actualización. Un ejemplo de este planteamiento industrial es el PC clónico, un modelo que compartía —en principio— las características de arquitectura del lBM Personal Computer y que terminaría imponiéndose desde la década de los ochenta como estándar hasta la actualidad dentro del mercado doméstico. Su posibilidad de sustituir o añadir distintos elementos (procesadores, tarjetas de sonido, tarjetas de red, módulos de memoria, etc.) provenientes de distintos fabricantes permite una versatilidad y un abanico de costes muy apreciados por numerosos consumidores domésticos y profesionales.
Arquitectura cerrada
La visión opuesta a esta filosofía de diseño sería la arquitectura cerrada, donde el modelo de ordenador está protegido legal y funcionalmente para que no exista posibilidad de cambios o adaptaciones fuera de lo dispuesto por el fabricante casi desde la línea de montaje. Esta idea de diseño fue relativamente popular en los inicios del mercado del ordenador personal y muchas marcas famosas en aquel tiempo (Atari, Commodore, Sinclair, Amstrad, Spectravideo o incluso Apple, entre otras) concebían sus modelos como objetos de consumo cerrado donde el usuario no tenía capacidad de adaptar o elegir configuraciones. Más modernamente, ordenadores dirigidos a ámbitos específicos de la industria o a propósitos muy concretos se siguen fabricando bajo esta condición de arquitectura cerrada.
Frente a esta escasa versatilidad, cuentan con la ventaja de que el software desarrollado para estas máquinas se ajusta perfectamente a las capacidades de los componentes que las integran, dado que los programadores conocen de antemano las características del hardware, y el rendimiento es, por consiguiente, muy alto. Dispositivos como los IPAD de Apple Inc. responden en la actualidad a esta filosofía cerrada de diseño.
Nota
Las arquitecturas cerradas son normalmente protegidas por fuertes sistemas de patentes y se necesitan permisos legales para cualquier desarrollo dirigido a ellas.
10.2. Estándares
Una de las consecuencias del crecimiento de la industria del hardware y de la diversidad de componentes disponibles para los distintos tipos de dispositivos y usuarios, ha sido la necesidad de que la propia industria haya tenido que establecer una serie de normativas tendentes a facilitar la compatibilidad de sus productos entre sí.
Un ordenador suele estar integrado por piezas fabricadas por distintas empresas y, por tanto, esas empresas necesitan unas regulaciones comunes para que las piezas encajen entre sí a la hora de construir el ordenador. Esas regulaciones a las que las empresas se atienen son los llamados estándares de hardware.
Es imposible hablar de un número cerrado de estándares vigentes, ya que su número está en constante cambio debido a la rápida evolución del hardware, pero esta industria contempla en la actualidad cerca de cien estándares directos, esto es, concernientes al ordenador en conjunto y no a sus diferentes piezas por separado. Podría decirse que, tan solo de hardware, un simple ordenador de sobremesa tiene que cumplir más de sesenta o setenta estándares que regulan desde el voltaje al que trabaja el microprocesador hasta el tipo de material del que debe estar hecha la parte metálica de la antena wifi o la anchura que debe tener la ranura donde se inserta una tarjeta de memoria como las que usan las cámaras fotográficas digitales.
Estas normas o estándares han sido, en algunos casos adoptados mediante acuerdo entre los distintos fabricantes de un mismo dispositivo, tal como ocurrió con el popular modelo de conector conocido como USB: a mediados de los años noventa varios “grandes” de la industria informática (IBM, INTEL, Nortel, Microsoft, Compaq y DEC) atisbaron el gran problema para el mercado de los periféricos del PC que representaba la enorme multitud de conectores que se utilizaban por aquel entonces. Conexiones tipo PS/2, DE-9, DIN, Mini-DIN o DA-15 entre otras convivían en la parte trasera de los ordenadores personales dificultando el desarrollo de nuevos dispositivos compatibles y dificultando el abaratamiento de costes para los diferentes mercados, así que la creación de un estándar como el Universal Serial Bus o USB vino a paliar en parte esa situación, considerándose, por tanto, un estándar consensuado o de iure dentro del abanico de conectores disponibles al que la mayoría de los fabricantes se acogen.
Un planteamiento distinto es el de los estándares de facto, esto es, las normativas que no nacen del acuerdo entre distintas compañías, sino que terminan imponiéndose entre los fabricantes porque uno de los modelos posibles termina acaparando el mercado, que fue lo que ha ocurrido en la disputa entre las soluciones de almacenamiento de alta capacidad en disco óptico, donde el estándar Blu-ray de la multinacional Sony se ha impuesto por razones de mercado al HD-DVD propuesto mayormente por la empresa Toshiba, sin que haya ventajas técnicas claras de uno sobre otro.
Actividades
9. Reflexione sobre por qué son necesarios los estándares de hardware para los fabricantes de las diferentes partes de un ordenador.
10.3. Portabilidad
Una de las grandes preocupaciones de la arquitectura de software en la actualidad es el desarrollo de dispositivos susceptibles de ser llevados sin esfuerzo por el usuario. Esta exigencia, que podemos ver materializada en las tablets, las PDA o los smartphones, conlleva un despliegue de ingeniería muy avanzada alrededor para hacerla posible.
Procesadores con una alta capacidad gráfica, modernas pantallas táctiles o memorias estáticas de gran poder de almacenamiento —todo ello combinado en un entorno donde el ahorro y el aprovechamiento de las baterías son esenciales— constituyen los criterios de portabilidad a la hora de diseñar un dispositivo.
Por otra parte, el hecho de la portabilidad lleva casi intrínsecamente asociado que tales dispositivos tengan un espectro muy amplio de posibilidades de conexión ya sea a redes telefónicas, entornos WIFI o de recepción de señales de geolocalización.
Nota
La portabilidad entre dispositivos en esencial en la actualidad para el software multimedia.
10.4. Lenguajes de programación disponibles
El listado de lenguajes de programación es casi inagotable ya que responde a criterios muy dispares. Así pues, es posible encontrar lenguajes muy generales y ampliamente utilizados como Python, distribuido bajo una licencia open source o lenguajes de gran implantación como Java, desarrollado para poder ser integrado en cualquier arquitectura de hardware al basarse en una máquina virtual.
La funcionalidad a la que se dirigen es también un criterio cuando se selecciona un lenguaje de programación u otro. En el caso de que se necesite, por ejemplo, un dispositivo tanto de hardware como de software capaz de generar páginas web dinámicas, la mejor solución sería optar por PHP (PHP Hypertext Pre-processor) bajo un concepto de CMS (Content Management System) y si lo que se buscara fuera un lenguaje orientado a la gestión de bases de datos, el más indicado debiera ser SQL. En el caso de dispositivos móviles es Javascript el lenguaje de referencia junto con diferentes variantes del lenguaje C; el popular sistema operativo Android se basa en C junto con partes en JavaScript.
Una categoría aparte pero también de gran uso serían los llamados “lenguajes de marcas” (Markup Languages) como HTML5 o XML, que no son per se lenguajes de programación pero que se han convertido en los lenguajes de uso de numerosos dispositivos móviles o entornos multimedia.
10.5. Conectividad e integración en redes
Dada la gran diversidad de plataformas de hardware y sistemas operativos, así como la exigencia de conectividad de los usuarios y mercados actuales, la integración en redes comporta un elemento muy a tener en cuenta dentro del desarrollo de arquitecturas para nuevos dispositivos.
Por conectividad se entiende la capacidad de un dispositivo para formar parte operativa de un grupo de dispositivos más o menos extenso que formen una red, indistintamente de la topología de dicha red, así como la posibilidad de transmitir datos a otro dispositivo que no forme parte de una red, tal y como ocurre con dos teléfonos móviles que intercambian fotografías con una conexión tipo Bluetooth.
Esta conectividad se articula en dos planos, uno de hardware y otro de software. En el plano de hardware, la conectividad depende de los elementos físicos que un dispositivo emplee para conectarse a una red, como una tarjeta wifi en el caso de una red inalámbrica o un conector con su correspondiente cable que se inserta en una tarjeta de red Ethernet (las más habituales en las redes por cable) para conectarse a un red cableada. En el plano del software, el dispositivo atenderá a toda una serie de estándares de programación (muy variables según el tipo de red y el cometido) que permitirán que las aplicaciones sean capaces de acceder y usar la red; por ejemplo, para conectarse a Internet, un dispositivo tendrá que usar protocolos como TCP/IP para conectarse a Internet, http para las páginas web, ftp para enviar y recibir ficheros, pop y smtp para el e-mail, etc.
A partir de estos planteamientos de conectividad puede hablarse de integración a redes: cuando un dispositivo cuenta con los elementos de hardware (una tarjeta de red o un módulo wifi) y los protocolos pertinentes (TCP/IP, por ejemplo) se dice que ese dispositivo tiene capacidad de integración a redes, es decir, la posibilidad de enlazarse con otros dispositivos interconectados.
La problemática de la integración a redes es un tópico muy presente desde hace más de una década ya que muchas soluciones —con mayor o menor fortuna— han convertido el uso de la red, ya sea una red local o el propio Internet, en un recurso de su funcionamiento.
Esta interconectividad se produce en un entorno heterogéneo de plataformas que ha necesitado de grandes procesos de normalización en lo referente a protocolos (como el actual IPv6, presente en la mayoría de dispositivos que se conectan a Internet), iniciativas como SAMBA, que permite la integración y la compartición de archivos entre sistemas de Microsoft Windows y sistema tipo UNIX o soluciones de hardware como los más recientes switches y routers, capaces de interactuar con la capa de enlace de datos establecida en el modelo OSI (el marco referencial vigente para la interconexión de sistemas abiertos).
Aplicación práctica
Si deseara crear una página web dinámica para la venta de música online y que además ofreciera vídeos musicales e integrara la información generada en blogs por los fans proveniente de las redes sociales, ¿por qué tipo de lenguaje de programación y estructura se debería optar? ¿Sería adecuado usar un gestor de contenidos (CMS) y una base de datos SQL?
SOLUCIÓN
Bajo una consideración técnica, la web que se pretende crear es una página de contenido dinámico basada en un modelo CMS, ya que habrá que manejar un contenido en constante actualización. Para la generación del entorno web, se utilizará PHP dada la excelente documentación existente y la base de conocimiento que supone que sea uno de los lenguajes de programación más utilizados.
Referente a los contenidos, el código PHP que se emplee tomará los datos de una base de datos, con lo que SQL es el lenguaje más indicado para este cometido.
10.6. Mantenimiento
La necesidad de un mantenimiento sostenible y que no merme la rentabilidad de un producto forma parte integral del desarrollo de cualquier tipo de hardware en la actualidad. Esto se hace especialmente patente en dispositivos que han de trabajar en entornos difíciles (un terminal público de información multimedia en un museo, por ejemplo) o en un simple smartphone, que por definición no ha de necesitar ningún tipo de mantenimiento de hardware fuera de una posible reparación.
Caso aparte dentro del capítulo de mantenimiento son las actualizaciones, que, aunque habitualmente afectan a las aplicaciones, existen algunas de ellas que implican a las librerías que permiten el mejor aprovechamiento del hardware presente en un dispositivo, como ocurre con las conocidas actualizaciones de los chipsets integrados en las placas madre de los ordenadores personales.
Cualquiera de estas actuaciones de mantenimiento pueden ser realizadas desde dos conceptos diferentes pero complementarios: el mantenimiento correctivo, que elimina posibles fallos o errores que se van descubriendo durante la vida útil del dispositivo, y el mantenimiento preventivo, destinado al mantenimiento físico del aparato en aras de que se encuentre siempre en las condiciones más idóneas de funcionamiento.
Nota
El uso y el mantenimiento de un producto deben estar presentes desde el primer momento de su desarrollo.
10.7. Integración de subsistemas de información
Dentro de las estructuras de red y de los datos que se transmiten por ellas, cobran una gran importancia los dispositivos, tanto físicos como lógicos, que permiten el análisis o el uso de esos datos y su interacción con otros dispositivos o con humanos. Estos son los conocidos como subsistemas de información, unos elementos de hardware que permiten dicha operatividad y que pueden englobar desde simples PC hasta mainframes de alto rendimiento.
Dentro de los subsistemas de información cabe contemplar hoy en día tecnologías como el cloud computing, que posibilita el uso de grandes sistemas de cálculo basados en subsistemas de proceso distribuido o los subsistemas de almacenamiento remoto basados en la misma filosofía.
Puesto que estos subsistemas constituyen una parte importante de las modernas arquitecturas de red en uso, la integración de esos subsistemas en sistemas mayores compuestos por plataformas heterogéneas es uno de los desafíos constantes de los organismos de normalización y estandarización tanto de hardware como de procedimientos y protocolos de software.
Importante
Los recursos “en la nube” (cloud computing) son considerados por los expertos como el futuro de muchos sistemas informáticos.
Actividades
10. ¿Es posible que un dispositivo sin conexión wireless utilice recursos de cloud computing? Razonar la respuesta.
11. Arquitecturas de información
En cualquier software se trabaja, básicamente, con información, por lo que organizarla, darle una forma y presentarla adecuadamente es una tarea fundamental cuando se trata de estructurar cómo funciona una aplicación.
La arquitectura de la información ayuda a los desarrolladores a tener una aproximación teórica sobre el modo en que deben analizarse los datos en un software para acometer con efectividad tareas tan importantes como el diseño de la navegación y la interactividad con el usuario, la usabilidad de la aplicación o cómo esos datos se indexan para ser usados por otras aplicaciones.
En muchas aplicaciones, esta organización de los datos cobra una gran importancia, ya que son precisamente esos datos el material de trabajo de la aplicación; en, por ejemplo, el software que gestione las consultas a los fondos de una biblioteca o una posible aplicación que haga inventario de las obras de un museo, será una base de datos la estructura sobre la que pivotará todo el software, al contrario de una aplicación multimedia que tan solo ofreciera al visitante de ese museo un entorno audiovisual de cómo es el edificio del museo.
11.1. Estructura de datos: organización, métodos de acceso, grado de asociatividad y alternativas de procesamiento
Como paso anterior al diseño de cualquier aplicación, es fundamental el análisis de la estructura que más acorde se ajustará al objetivo final que haya sido planteado. En este sentido, la organización de los datos dependerá de criterios tales como el modo en que van a ser utilizados por el programa —por orden alfabético, cronológicamente, por tags, etc.—, o también pueden ser agrupados bajo una estructura de contenido que permita una modularización e indexación tendente a agilizar los procesos posteriores que requiera la aplicación y, por tanto, a mostrar al usuario final los resultados más rápidamente. La modularización es la base de cualquier supraestructura que vaya a implementarse, ya que convierte el sistema global en menos complejo al dividir la información en secuencias categorizadas y favorece, además, que la aplicación pueda procesar al mismo tiempo diferentes cadenas de datos.
Cuando se organizan dichos datos, sea cual sea su volumen y naturaleza, para ser utilizados más tarde es crucial que se establezcan categorías entre ellos que permitan un rápido acceso. El establecimiento de etiquetas que designen estos conjuntos de información —es decir, la asignación de unos metadata o etiquetas a los módulos— facilitará, a su vez, el desarrollo de interfaces simples y mejorará la usabilidad del producto independientemente de cuáles sean los métodos de acceso empleados.
En resumen, podría decirse que el fin de esta organización de datos que se realiza en la arquitectura de la información es disponerlos y clasificarlos de tal manera que su búsqueda y recuperación posterior sea lo más sencilla posible para el usuario.
La recuperación de los datos puede realizarse mediante numerosos métodos de acceso, ya que dependerá en gran medida de la tipología de base de datos que se emplee o de cómo se registren los datos con etiquetas, así como del modo en que se pretenda presentar la información. En la actualidad es el entorno web manejado por un gestor de contenidos (un CMS, content management system) uno de los métodos de acceso más habituales, ya que permite diseñar de una manera muy simple y basada en plantillas prefabricadas interfaces adaptables a cualquier necesidad multimedia. Como norma general para los métodos de acceso, sería posible indicar que cualquier gestor accede a ellos de dos modos básicos: el acceso secuencial y el acceso directo.
Por acceso secuencial se entiende aquel que debe seguir un orden de cómo los datos están catalogados, sin poder saltar de uno a otro. Esto es, para llegar al dato “d”, se debe pasar por el dato “a” primero, luego por el “b”, más tarde por el “c”, para acceder finalmente al “d”. En el acceso directo no es necesario seguir esta secuencia, sino que la aplicación gestora podría llegar al dato d sin pasar por otros.
Por otra parte, el diseño de la estructura de datos tiene una influencia clara en cómo pueden los módulos relacionarse entre sí —el grado de asociatividad— y la capacidad de aplicar distintos métodos de acceso de datos, tal como se hablaba en el párrafo anterior. Al aumentar los vínculos de cada módulo con el resto de ellos se incrementan las posibilidades de éxito en procesos como las búsquedas o la ejecución de procesos paralelos, ya que la vinculación de unos registros con otros permite una mayor rapidez en la gestión de los datos.
Por otra parte, la indexación de los registros asociados a los datos permite diferentes alternativas de proceso, ya que la aplicación que gestiona los contenidos indexados puede acceder a estos datos tomando como referencia diferentes registros —esto es, distintas etiquetas— sobre un mismo dato o conjunto de datos, por lo que se establecen varios caminos para recuperar y operar con esos datos, algo que determinan las distintas alternativas de procesamiento con las que un programa puede trabajar.
Importante
Un correcto etiquetado de los datos presentes en una base de datos posibilita tanto una mejor recuperación como el establecimiento de diferentes alternativas de procesado.