jueves, 14 de octubre de 2010

Redes tolerantes a fallos

Una red de comunicaciones tolerante a fallos es aquella red que esta diseñada estrategicamente para superar los fallos que pudiera tener la red y continuar funcionando
.
Las redes tolerantes a fallos implican mayor inversion, la cual es justificada con el retorno obtenido al ininterrumpir el servicio de la red, por lo tanto debemos diseñar e implementar una red tolerante a fallos a medida que se identifiquen los puntos y servicios criticos para hacer mas rentable la inversion
.
El TCO (total cost of ownership) de una red tolerante a fallos no solo se ve aumentado con gastos de implementacion al tener que comprar e instalar mas hardware sino tambien en costos de operacion al tener que administrar y dar mantenimiento a los mismos.

El  EVA (economic value added) debe ser mayor al TCO para que la inversion sera rentable, esto se ve reflejado en el ratio ROI
.
El ROI (return over invest) de una red tolerante a fallos se calcula tomando en cuenta el TCO y el beneficio economico que vamos a obtener en el futuro al prestar un servicio muy cercano al 100% de disponibilidad, para algunas empresas en sus servicios criticos esto es muy importante y muy valioso por lo que estan dispuestas a invertir sea cual sea el TCO (Saben que su ROI es grande).

Los aspectos que debemos tomar en cuenta para una red tolerante a fallos es:
Aspectos de red:
  • Switch con el doble de puertos de los requeridos para poder prestar conmutacion en caso falle otro switch.
  • Redundancia en rutas de comunicacion o switch capa 3 para poder gestionar las rutas (VLAN).
  • Redundancia en el cableado estructurado, en las NIC de los equipos criticos.
Aspectos de Servidores:
  • Redundancia en las NIC.
  • Sistema de failover, alta disponibilidad (high availability) y balanceadores de carga.
Aspectos Generales
  • Redundancia en las fuentes de energia tanto para servidores como para los conmutadores.
  • Gestion de las vulnerabilidades de la red.

lunes, 27 de septiembre de 2010

Sistemas de Informacion y su impacto en la Productividad


Cuando queremos generar mas ganancias en un negocio, debemos pensar en reducir costos y en aumentar la productividad lo que tiene como consecuencia un incremento en las ganancias, definitivamente la unica forma de lograr tal proposito es implementando tecnologia.

La tecnologia acorta los tiempos de procesos claves del sistema, reduce costos de operacion, reduce errores y aumenta las capacidades humanas para realizar el trabajo.

Las tecnologias de la informacion juegan un papel fundamental para que las empresas aumenten sus ganancias, esto es debido a que las tic toman datos sobre el estado actual de los sistemas de la empresa los procesa transformando los datos recolectados en informacion util para la toma de desiciones, esta informacion reduce la incertidumbre del estado actual de la empresa.

El aumento de la productividad ayuda a que los retornos de inversion  sean mas grandes, volviendo rentable la inversion en tecnologias de la informacion.

Sin embargo no es necesario unicamente la implementacion de la tecnologia para aumentar las ganancias, hace falta la adaptacion de los procesos de negocio con la tecnologia que se esta utilizando, esto es alinear los procesos de negocio con la logica del software a travez de el rediseño de los procesos.

Para que en una empresa se puedan cambiar los procesos de negocio es fundamental la flexibilidad de la misma empresas, a mas flexibilidad de empresa mejor se adaptaran los procesos de negocio al software y mayor impacto positivo tendra el software.

Cuando hablamos de adaptar los procesos de negocio al software, no nos referimos a software desarrollado en casa porque este definitivamente se hace pensando en el estado actual de los procesos de la empresa; Hablamos del software como un servicio o de software desarrollado en casa pero con mejoras a los procesos actuales.

Los software que mas se proveen como un servicio son los gestores de procesos ERP y los manejadores de relaciones con clientes CRM aunque no son los unicos, saas no es una clasificacion de software es un modelo de negocio bajo el cual se solucionan las nececidades personales y empresariales. 

Los CRM son uitilizados para prestar un mejor servicio a los clientes partiendo de la informacion que este sistema guarda sobre todas las transacciones, consultas, asesorias, compras que el cliente haya realizado a lo largo del tiempo.

Los ERP son utilizados principalmente por integrar todos los procesos de negocio en un mismo sistema y que este sistema de informacion proporcione informacion actualizada.

SAAS se alinea con uno de los objetivos de la  empresa al ayudar a aumentar las ganancias debidio que saas disminuye costos de TI y a prestar un mejor servicio debido a que se cuenta con informacion actualizada tanto de procesos, productos, clientes, finanzas, materia prima etc.

Entonces saas nos presta el servicio de software, almacenamiento de datos y toda la logistica necesaria para que se gestione la infomracion dentro de nuestra empresa, todo esto por un pago consignado mensual o anualmente.

Pero el negocio de las empresas dedicadas a saas ya tienen el software con el cual soportan su negocio, este software puede ser un codigo abierto o un software bajo licnecia, lo importante en esta situacion es que la logica del software ya existe y en ese caso debemos adaptar nuestros procesos de negocio a la logica de este software.

Naturalmente este saas fue elaborado empleando a profesionales no solo de informatica sino de negocios, de economia, administracion por lo cual garantiza que la logica de negocio es la mas adecuada y que optimiza los recursos.

Por esta razon es necesario que al momento de emplear saas debemos evaluar la flexibilidad de nuestra empresa para que la misma facilmente pueda adaptar sus procesos de negocio a la logica del software que esta contratando.

Cuando se contrata saas esto incluye que el software sea on-demand, esto significa que todas las actualizaciones, mantenimiento, implementacion de nuevos modulos, desarrollo de nuevas funcionalidades o inclusive correccion de errores es soportado por la empresa que presta el servicio.

Cuando las empresas que prestan saas utilizan software bajo una licencia comercial estan concientes que es poca la configuracion para adaptar el software a las nececidades y ademas de ello deben esperar a que la empresa proveedora de la licencia de software solucione los problemas del mismo inclusive los problemas de seguridad y rendimiento; es por ello que este tipo de empresas comunmente utilizan software de codigo libre bajo licencia GPL. El cual les permite realizar mas configuraciones.

El open source es un modelo de negocio el cual genera ganancias para sus creadores de una manera no tradicional, mas bien el enfoque economico de este tipo de software cambia de comprar un producto a comprar servicios por este producto.

Para generar ganancias utilizando open source existen diferentes modelos entre los cuales podemos mencionar:

1) Pago por servicios de asesoria, personalizacion de software, soporte tecnico y capacitacion.

2) Licencia dual, la version de software sencilla bajo licencia GPL y la version completa es vendida bajo licnecia comercial GPL(con mayor funcionalidad y rendimiento).

3) El software es de codigo aberito pero se ofrece como un saas, por lo cual el pago no es por concepto de software sino por todo el servicio completo (alojamiento, mantenimiento, seguridad, continuidad).

4) Pago por mantenimiento de la aplicacion el cual consta de actualizaciones, upgrade y correccion de bugs(errores) .


Propuestas para que una empresa dedicada a software bajo licnecia comercial utilice el modelo open source

1) Las empresas que venden software con licencia comercial nececitan estar actualizando su producto de software constantemente y sus actualizaciones se ven reflejadas en nuevas entregas de software (nuevas versiones). Estas versiones salen al mercado sin mayor certeza de exito o fracazo por lo cual las empresas vendedoras de software invierten en el desarrollo de las nuevas versiones sin saber si va a resultar exitosa o no.

Basados en esta teoria podemos liberar una version con licencia GPL para que nuestros clientes comiencen a utilizar nuestro software de forma gratuita y se adapten a el, la misma version debe ser BETA para que los problemas que vayan surgiendo sean arreglados antes de la entrega final la cual va a ser vendida bajo licnecia comercial.

Esta forma de utilizar un licenciamiento mixto involucra implementar una plataforma para que los usuarios de la version GPL puedan comunicarse con los desarrolladores y hacerles saber cuales son las debilidades para que sean corregidas.

De esta forma se gestiona el conocimiento del usuario y llega a manos de los desarrolladores para ser utilizado positivamente, a esto se le llama feedback(retroalimentacion) positivo.

jueves, 16 de septiembre de 2010

BackUp y Sus Tipos

Un BackUP es tambien llamado Copia de Seguridad y juega un papel fundamental cuando se habla de seguridad de la informacion, es utilizado a nivel personal como a nivel corporativo.

Consiste en realizar una copia exactamente igual de la informacion existente en la computadora o servidor y esta copia obligatoriamente debe ser almacenada en un dispositivo de almacenamiento externo a donde se encuentra la informacion.

En caso que la informacion principal sufra un daño, perdida o alguna alteracion la cual no cumple con nuestras espectativas podemos optar a restaurar los datos del backup obteniendo como resutado  un retroceso hacia el punto de restauracion, el cual es exactamente cuando se realizo el back up.

Los backup pueden ser de tamaño pequeño o grande y es en este momento donde toman importancia los sistemas de backup, estos no son mas que una copia de seguridad pero tienen diferentes politicas para gestionar los tiempos de transferencia.

Debemos ser concientes que un backup puede ser de unos pequeños KB hasta miles de GB y por ello existen los backup COMPLETOS, INCREMENTALES O DIFERENCIALES.

BackUP Completo
Es el backup donde copiamos exactamente todo el grupo de infomracion y precisamente si son muchos GB de almacenamiento tardaremos mucho tiempo en su creacion ademas si el backup es realizado mediante la red tendremos saturada la red el tiempo que dure la creacion del backup.
Restauracion=Backup Completo

BackUp Incremental:
Este backup se crea cuando el grupo de archivos es grande (muchos GB), inicialmente debemos tener un backup completo y a partir de este se van haciendo backup  partiendo de el ultimo backup incremental o completo. por ejemplo si creamos un backup completo el domingo el dia lunes el backup incremental copia unicamente los archivos modificados el dia lunes, el dia martes crea un backup incremental unicamente con los archivos modifivados o creados el dia martes. La desventaja es cuando nececitamos restaurar los backup que precisamos del backup completo y de todos los backup incrementales que hayamos creado lo cual toma mucho tiempo de restauracion.
Restauracion = Backup Completo + Backup Incremental1 + Backup Incremental2 + Backup IncrementalN

BackUp Diferencial:
El backup diferencial tambien es utilizado para cuando el grupo de informacion es grande (muchos GB), en ese caso debemos tener un backup completo inicialmente y a partir de este se va creando un backup con las modificaciones a partir del backup completo, notese que para la restauracion unicamente nececitamos del backup completo y del ultimo backup diferencial por lo que la restauracion no es lental.
Restauracion = Backup Completo + Backup Diferencial

BackUp vs Replicacion
El backup ya sea completo, incremental o diferencial tiene como politica su ejecucion en  una programacion definida. por ejemplo: todos los dias a las 6:00pm. a diferencia, la replicacion se realiza automaticamente y en tiempo real cuando se realiza la modificacion del archivo, por ejemplo si a las 3:11pm modifique un archivo a esa hora es guardada la modificacion en ambos servidores porque estan replicados.

Tanto los BackUP como las replicaciones son metodologias para mantener resguardada la informacion, las empresas se han dado cuenta que uno de los activos mas valiosos es la informacion y por ello no deben descuidar la seguridad de la misma.

Resumen
  • Backup completo: copia completa, contiene toda la informacion, tardado, congestiona la red.
  • Backup incremental: copia parcial, contiene los incrementos de informacion a partir del ultimo backup incremental o del bakcup completo, es el mas veloz que existe, requiere un backup completo inicial, para su restauracion requiere el backup completo inicial y todos los backup incrementales creados.
  • Backup diferencial: copia parcial, contiene los incrementos de informacion a partir del ultimo backup completo, es de mas rapido quel backup completo pero mas lento que el backup incremental, requiere de un backup completo al inicio, para su restauracion unicamente requiere el backup completo inicial y el ultimo backup diferencial.
  • Replicacion: copia parcial, contiene la informacion recientemente creada o modificada, es veloz, se realiza en tiempo real.

jueves, 9 de septiembre de 2010

Sistemas => Sistemas de Informacion => Sistemas de Informacion Automatizada

Sistema:
Comunmente escuchamos la palabra sistema y seguramente tenemos la idea de lo que es un sistema, entonces para trabajar bajo el mismo concepto y por fines practicos vamos a definir un sistema como el conjunto de elementos interrelacionados y trabajando para lograr un objetivo comun. Los elementos de un sistema pueden ser conceptos, sujetos u objetos.

De esta manera se puede nomenclar a los sistemas partiendo de sus elementos que lo integran, por ejemplo si los elementos del sistema son conceptos se llama sistema conceptual; si los elementos del sistema son objetos se dice que es un sistema maquina (mecanico); si el sistema es integrado por sujetos se dice que es un equipo y si los elementos del sistema son objetos, sujetos y conceptos se dice que es un sistema hombre-maquina.

Sistemas de Informacion:
Los sistemas de infrmacion son un conjunto de entidades o procedimientos ordenados que al ser ejecutados transforman los datos en informacion. La informacion es la relacion y contextualizacion de los datos eliminando o reduciendo la incertidumbre sobre el estado de los procesos de tal manera que sean utiles en la toma de deciciones. 

Lo mas importante de un sistema de informacion son los usuarios que interpretan la informacion, los usuarios son la razon de ser de los sistemas de informacion.

Sistemas de Informacion Automatizados:
Los sistemas de informacion automatizados frecuentemente son ejemplificados con las computadoras aunque las computadoras no es la unica forma de automatizar un sistema.

Los sistemas de informacion automatizados son aquellos sistemas que requieren minima o nula intervencion del ser humano para que los procesos almacenados en computadoras se lleve a cabo, esto se logra a travez de la medicion tanto de los flujos de entrada como de los flujos de salida y en base  a ellos retroalimentar (feedback) el sistema el cual debe tener la capacidad de ajustarse para lograr optimos resultados.

Las bases son: Medicion, Evaluacion y Control.
Medicion:
La medicion consiste en identificar de la informacion resultante del sistema(salida) la informacion que retroalimenta al sistema (feedback), esta informacion es utilizada para ajustar el procesamiento  del sistema y lograr optimizacion.
Las mediciones dependen del tipo de sistema, si es una maquina las mediciones se pueden hacer con sensores. si es un equipo las medidas se pueden tomar con encuestas, tiempos.

Evaluacion:
La evaluacion es cuando ya tenemos las mediciones y nececitamos identificar la forma de mejorar los resultados para que las proximas mediciones sean mejores. La evaluacion prescisa de acciones las cuales impulsen a una mejora continua.

Control:
El control nace de la nececidad de tener el dominio de la situacion, en un sistema tenemos las mediciones que nos dan informacion acerca de las entradas y salidas del sistema ademas tenemos las evaluaciones que son acciones a tomar para optimizar el sistema y el control es precisamente tener claro el objetivo del sistema y organizar las medidas y tomar las acciones correctas para cumplir los objetivos trasados. 

lunes, 6 de septiembre de 2010

Ingenieria en Sistemas

Ingeniería en sistemas
Según diferentes definiciones dadas a travez del tiempo, la ingeniería en sistemas y su objetivo es:

Para Wymore: "Ingeniería en sistemas es un conjunto de metodologías para la resolución de problemas mediante el análisis, diseño y gestión de subsistemas".
"El objeto de la ingeniería en sistemas es el análisis y diseño de sistemas hombre-maquina, complejos y de gran tamaño".

Analisis de Sistemas
Es un proceso necesario para determinar los objetivos, los limites y alcances del sistema. Caracterizar su funcionamiento y a definir las directrices que llevaran al cumplimiento de los objetivos para lo cual existen pasos:
  • Conceptualizacion: Visión de muy alto nivel del sistema.
  • Análisis Funcional: Acciones o transformaciones que dan valor agregado al sistema, son las funciones que transforman las entradas en salidas.
  • Análisis de Condiciones: Limitaciones del sistema que pueden ser de tipo humano, económico, temporal, metodológico o de materiales.
  • Construcción de Modelo: Prototipo que ilustre el funcionamiento.
  • Validación del Análisis: Comprobación para verificar que el análisis este correcto, este puede ser realizado por los usuarios.

Diseño de Sistemas
El diseño de sistemas se ocupa de desarrollar las directrices propuestas en el analisis y que segun prioridades den lugar al cumplimiento de los objetivos previstos tanto desde el punto de vista funcional como no funcional.
para un analisis se siguen los siguientes pasos:
  • diseño de alto nivel
  • diseño e implementacion de cada sub-sistema.
  • integracion de sub-sistemas
  • validación de diseño.

Gestion de Sistemas
integrar, planificar y controlar los aspectos tecnicos, humanos, sociales y organizacionales y comerciales del proceso completo.

los objetivos son:
planificar y controlar el proceso completo de analisis, diseño y operacio del sistema dentro del presupuesto, plazo y calidad establecidas.
controlar la validez de los criterios de diseño.
controlar que coincidan los requisitos identificados en el analisis con los expresados en el diseño.
Planificar y desarrollar las necesidades de mantenimiento.
Planificar y desarrollar las capacitaciones de formacion del personal.
Planificar la supervisión del funcionamiento del sistema.

jueves, 19 de agosto de 2010

Criptografia

Desde antes que existieran los equipos informaticos la humanidad ha experimentado la nececidad de ocultar informacion y hacer esta informacion utilizable solo para ciertas personas que esten autorizadas para poder saber la informacion.

En la actualidad con la llegada de los equipos informaticos (computadoras, celulares) se ha incrementado la nececidad de seguridad para la informacion, la criptografia es la ciencia que estudia las formas para hacer de un texto legible un texto ilegible, tambien le compete la forma en que este texto ilegible vuelve a ser legible nuevamente.

Para ello se han creado diferentes mecanismos, unos mas complejos que otros, pero la encripcion de datos se puede dividir en dos grandes categorias basados en la forma de ocultar y recuperar la informacion, esta son:
  • Claves Privadas (simetrico)
  • Claves Publicas (asimetrico).

Claves Privadas (simetrico): Este sistema de encripcion es sencillo y basico, consiste en tomar el texto a encriptar y a travez de una serie de reglas previamente establecidas se inicia la transformacion del texto por ejemplo un sistema simetrico (clave privada) es cambiar las vocales del texto por numeros donde A=1, E=2, I=3, O=4, U=5, entonces la palabra MURCIELAGO encriptada seria M5UC32L1G4, para desencriptar esta palabra es necesario saber la clave utilizada.

Como podemos ver este es un sistema bastante sencillo el cual surgio como origen a la criptografia, naturalmente con el tiempo se fueron estableciendo nuevas convenciones de llave privada la cual hacia mas compleja la encripcion, finalmente y despues de seguir agragando complejidad a los sistemas de clave privada se origino el sistema asimetrico tambien llamado de clave publica.



Claves Publicas (asimetrico): El sistema de clave publica es mas complejo que el sistema por clave privada, este es utilizado en la actualidad (2010) en el campo de la informatica para cifrar correos electronicos, conexiones remotas, mensajes entre celulares, video conferencias, certificados de autenticidad de sitios web, transferencia de archivos, comunicacion de usuarios y contraseñas entre otros.

Este sistema trabaja en base a dos llaves de encripcion, una de ellas llamada llave publica y la otra llave primaria.

Inicialmente tenemos el texto que requerimos encriptar, posteriormente especificamos una palabra de encripcion la cual es nuestra llave privada y en funcion de esta palabra de encripcion (llave privada) y haciendo uso de un algoritmo especifico de encripcion se genera una llave publica la cual se envia por otro canal que no es el mensaje (servidor de llave).

Finalmente el receptor accede al servidor de clave y solicita la clave publica, por otro lado recibe el texto encriptado y solo con la combinacion de ambos paquetes (llave publica y texto encriptado) puede lograr la desencripcion.


Los algoritmos de encripcion utilizados frecuentemente en las comunicaciones son: DSA, PGP, SSH, SSL, TLS entre otros.

martes, 17 de agosto de 2010

Protocolos UDP vs TCP

TCP/IP
Es la base tecnologica sobre la cual trabaja internet, es una tecnologia combinada de el direccionamiento logico trabajado en la capa de red del modelo OSI(capa3) y el protocolo de transferencia de datos que trabaja en la capa de transporte del modelo OSI(capa4).
Con IP tenemos la fomra en que se identifican logicamente nuestros NIC en una red, por otro lado tenemos TCP que es el protocolo de transporte que tiene control sobre los errores y colisiones que pueden experimentar los paquetes cuando viajan por la red.
Sobre este estandar podemos conectar un cliente a un servidor y tambien podemos conectarnos a una red con estructura de multiples capas, por ejemplo bajo este estandar podemos utilizar servicios de correo electronico SMTP, Web, FTP entre muchos otros.

TCP (Transmission Control Protocol)
Es un protocolo que trabaja en la capa 4, capa de transporte en el modelo de referencia en comunicaciones OSI, este protocolo es utilizado por paginas de internet (web pages), correo electronico, servidores de bases de datos debido a que el protocolo es especializado en control de errores, cuando enviamos informacion por la red pueden ocurrid perdidas de datos originadas por coliciones en la red entonces con el protocolo TCP en la capa de trasporte el servidor es notificado por el receptor si ha recibido todos los paquetes y si estos son integros, en caso de no serlo el receptor notifica al servidor y el servidor los reenvia nuevamente.
Es un protocolo muy usado debido a que garantiza que el mensaje llegue completo e integro aunque para ello lo tenga que enviar multiples veces.


UDP (User Datagram Protocol)
Es un protocolo que trabaja en la capa 4, capa de transporte del modelo de referencia en comunicaciones OSI, este protocolo a diferencia del protocolo TCP, el UDP no verifica que el mensaje haya llegado integramente a su lugar de origen, es decir, este protocolo unicamente envia la informacion solicitada y se desatiende si la informacion enviada es recibida integramente lo cual hace que este protocolo sea mas rapido que el TCP (debido a que no tiene control de errores ni acuse de recibido). Este protocolo es utilizado frecuentemente en la transmision de video, audio en donde se demanda velocidad y no es de importancia elevada el control de errores.


Tipos de Redes

PAN (Personal Area Network):
Son redes pequeñas conformadas por no mas de 8 nodos los cuales se encuentran fisicamente cerca, por ejemplo una red domestica para compartir internet e impresoras.

CAN (Campus Area Network):
Son redes tipo LAN con la unica caracteristica que se encuentran en un campus especifico, los usuarios pueden ser muchos, la caracteristica primordial de las CAN es que no deben exceder de 4km y que su trafico de red es administrado por un departamento para optimizar el uso de la red especificamente de internet. por ejemplo en la Universidad de San Carlos de Guatemala se cuenta con una CAN, la cual provee internet a travez de los puntos de red instalados en cada aula de cada edificio o a travez de la red wireles, el servicio es delimitado al campus universitario y se distribuye de forma gratuita, el trafico es regulado en cuanto a sitios de acceso y a descargas de contenido audio/video entre otros, a pesar que en esa misma red existen las impresoras de la administracion los usuarios (alumnos) no pueden hacer uso de ellas.

LAN (Local Area Network):
Son redes locales, donde el numero de usuarios pueden ser muchos, son redes rapidas y no exceden de un perimetro de 1km, por lo general conectan diferentes servidores los cuales prestan sus servicios a los usuarios de la red (dhcp, web, impresion, archivos, ftp, dns) son recomendables para edificios, oficinas, laboratorios entre otros.

MAN (Metropolitan Area Network):
Son redes de tamaño mediano las cuales pueden extenderse a una ciudad, estas redes se comunican a travez de fibra optica y en cada punto de acceso se utilizan conversores a cable UTP lo cual aumenta la velocidad de transferencia de informacion, por lo general prestan servicios de internet para que cada LAN lo distribuya a sus usuarios, no tienen restricciones sobre el acceso a la web, tambien son utilizadas como enlaces entro des puntos a travez de VPN(virtual private network), esto en caso que una empresa quiera comunicarse con sus sucursales en la misma cuidad.

WAN (Wide Area Network):
Son redes de gran tamaño, conectan a multiples LAN, son conectadas a travez de fibra optica y medios satelitales aunque para que un usuario haga uso de ella debe haber un conversor a cableado UTP. Un ejemplo claro es internet, internet2 las cuales conectan multiples granjas de servidores LAN y multimples comunidades de usuarios a travez del mundo.

jueves, 12 de agosto de 2010

Internet - Extranet - Intranet

Todos estos tipos de redes son tecnologicamente iguales, es decir, funcionan bajo el mismo concepto tecnologico el cual es INTERNET PROTOCOL, protocolo de internet o tambien llamado IP, la diferencia radica en el nivel de disponibilidad en cuanto a acceso se refiere y en cuanto a hubicacion fisica. Por ejemplo:
Internet es para todos desde cualquier lugar del mundo.
Intranet es para usuarios privilegiados en un lugar delimitado fisicamente.
Extranet es para usuarios privilegiados desde cualquier lugar del mundo.


Internet:
Es una red de tamaño mundial que nonecta computadores personales, servidores y otro tipo de hardware como por ejemplo telefonos celulares, PDA, sistemas GPS entre otros. Esta red proporciona servicios e informacion a las pesonas que tengan conexion a la red sin nececidad de que obtengan permisos para ello, lo cual significa que es una red publica.

Intranet:
Es una red de comunicaciones a nivel institucional, es decir que solo personas con un usuario y con una contraseña pueden acceder a este entorno de trabajo el cual se encuentra delimitado fisicamente por el perimetro de la empresa u intitucion (solo en sus instalaciones), es utilizado ocacionalmente para compartir informacion, impresoras entre miembros de una empresa u institucion con lo cual se logra integrar la informacion institucional, centralizar los recursos y optimizar el rendimiento del empleado.

Extranet: Es una red de comunicaciones con privilegios de acceso pero a nivel mundial, es decir, la plataforma esta disponible en todo el mundo (internet) pero pueden acceder a ella unicamente las personas que cuenten con un usuario y una contraseña.
Un claro ejemplo cuando un vendedor de productos con su autenticacion correspondiente puede conectarse a internet y hacer pedidos directamente a la empresa, facturar e incluso cancelar pedidos de los clientes.

lunes, 9 de agosto de 2010

e-marketing

e-marketing es la evolucion del marketing tradicional, este nuevo enfoque nace con el internet y se hace una estrategia fundamental para los negocios al momento que las TIC toman un rol fundamental en los negocios.


todo negocio lo que busca es conseguir ganancias, la naturaleza de negociar es conseguir beneficios mutuos tanto el comprador como el vendedor, el e-marketing es el conjunto de herramientas y metodologias para maximizar la relacion cliente/empresa.

El marketing busca las formas de llegar al consumidor y presentarle el producto desde el punto de vista en que nuestro producto ofertado soluciona una problematica de nuestro cliente, creando la nececidad de compra.

El e-marketing esta basado en las tecnologias de la informacion y comunicacion TIC, es ofertar productos a los clientes haciendo uso de las TIC. por ejemplo:
  • SEO / Ratio-Buscadores: metodologias SEO (Serch Engine Optimization) optimizacion de los resultados en buscadores para pocicionar en las primeras filas de resultados en los buscadores.
  • Pulicidad por click: colocar banner y cuadros publicitarios en sitios web los cuales debemos pagar por cada click que el usuario hace sobre ellos, AdWord y AdSense por excelencia.
  • Redes sociales y Blogging: publicidad en las redes sociales con banners y creando grupos a los cuales se puede comunicar el cliente con la empresa.
  • Correo Electronico: enviando informacion directa y personalizada al correo de los clientes y clientes potenciales.
Las principales desventajas del e-marketing son la seguridad la cual debe ser trabajada con ciframiento de datos, autenticacion de usuarios y contratos que hagan explicitas las politicas bajo las cuales se esta trabajando.

En una pagina web no se puede mostrar al 100% un producto, mas en estos casos que son productos Look&Feel, para ello debemos desarrollar las paginas co sonido, imagenes, videos, animaciones 3D, Comentarios de otros usuarios para que se ilustre mejor el producto.

Y las paginas web lentas son otro aspecto negativo lo cual se contraresta con una buena velocidad de nuestro ISP ademas de un diseño optimizado que permita una carga de la pagina veloz.

El e-marketing se establece cuando hay 2 interesados, uno es el consumidor y otro es el ofertante o vendedor.
  • B2B: transacciones entre dos empresas.
  • B2C: transacciones entre un consumidor y una empresa.
  • B2E: transacciones entre una empresa y los empleados.
  • A2A: transacciones entre gobiernos o administraciones.
  • A2B: transacciones entre gobierno o administradores y empresas privadas.
  • A2C: transacciones entre gobierno o administradores y consumidores finales.
  • C2C: transacciones entre consumidores.

martes, 3 de agosto de 2010

Modelo Mental


Es un hecho que cada persona en este mundo piensa, opina y actua de diferente forma ante situaciones similares e inclusive ante situaciones exactamente iguales, esto se debe a que todos tenemos diferentes modelos mentales.

Los modelos mentales son la forma en que cada individuo ve la realidad que lo rodea, es analogico a un cristal que nos permite ver, una ventana que nos permite observar la realidad.

Cada individuo construye sus modelos mentales los cuales son influenciados en gran medida por la cultura, la religion, la familia e inclusive los estudios que esta persona haya realizado.

Las acciones que un individuo toma son el reflejo del modelo mental y de los supuestos que este tenga los cuales justifican su actuar.

Por ejemplo en la cuidad de Guatemala se vive congestionamiento vehicular, los que vivimos en la cuidad tenemos el modelo en nuestra mente (modelo mental) de una cuidad en la que hay que preveer teimpo extra para no llegar retardado, sin embargo, los supuestos se activan cuando uno esta en un determinado sitio y nececita trasladarse, con solo escuchar el sumbir de los motores, saber la hora que es se sabe si hay mucho o poco congestionamiento.

vamos a citar un ejemplo empresarial, esta Audie exponiendo una charla sobre el nuevo sistema de informacion que sera implementado en la empresa, Audie seguro del exito de su producto ofrece las mejores soluciones.

Por otro lado tenemos a Rene que es el gerente general de esta empresa la cual ha tenido una gran cantidad de empresas informaticas como la de Audie que ofrecen soluciones rapidas y viables sin embargo nunca cubren todas las nececidades institucionales por eso el gerente Rene mira la expocicion de Audie como una solucion fracazada mas. Este es el modelo mental de Rene el gerente debido a que su experiencia y lo que ha vivido le ha hecho experimentar que las empresas informaticas rara vez funcionan bien y cubren las nececidades.
Sin mucha confianza el gerente Rene autoriza la adquisicion del producto de Audie y sin mas ni menos resulta ser un ERP completamente funcional el cual no solo cubre las nececidades sino que vino a integrar toda la empresa.
Entonces, en analisis los supuestos del gerente Rene eran que Audie es un informatico mas, ofrece con una charla un producto igual que los demas entonces en base a su modelo mental el gerente Rene pudo inferir que era otro producto informatico fracazado, lo cual no era cierto porque el gerente Rene aunque asocio mentalmente todos los actos de Audie, en la realidad es decir lo que estaba pasando realmente no era lo que el gerente estaba viendo, podemos decir que el gerente acomodo, asocio todos los acontecimientos.

En la vida real esto funciona asi, el mundo nosotros lo construimos mentalmente y en ocaciones inventamos cosas que en realidad no existen o acomodamos la realidad para que parezca lo que nosotros queremos que sea.
En este sentido hay muchas frases celebres por ejemplo:
"Lo que nosotros pensamos tener, es lo que al final conseguimos tener"


En en ltrabajo del informatico debemos tener conciencia de los modelos mentales, de los supuestos de las personas y de los paradigmas bajo los cuales actuan.

Recordemos que la informatica es un campo muy cambiante a razon de la tecnologia y por ello mismo tenemos que estar preparados para mostrar a los futuros usuarios de nuestros sitemas la funcionalidad y el ahorro de teimpo que obtendran conla implementacion sin hacer enfasis en el costo que les tomara aprender a utilizar el nuevo sistema y los problemas que puedan tener al estar en la etapa de adaptacion. De esta manera podemos reducir la Resistencia al Cambio.

jueves, 29 de julio de 2010

ROI (Return Over Investment)

Vamos a introducir uno de los terminos frecuentemente utilizados al momento de emprender un proyecto o un negocio el cual precisa de medidas que me ayuden a cuantificar la inversion y las ganancias obtenidas por haber realizado la iversion, de esta menera estas medidas son una herramienta util para la toma de desciciones.

EL ROI o tambien llamado Retorno Sobre una Inversion es una medida porcentual aplicable a proyectos de software, proyectos web y en general a cualquier tipo de proyecto el cual requiera de una inversion la cual promete generarme beneficios, los beneficios pueden ser de diferente tipo por ejemplo imagen de la empresa, beneficio monetario, ventas, etc..

El ROI mide el ratio de costo/beneficio, es decir que para un mismo proyecto calculamos el ROI utilizando diferentes costos obteniendo diferentes beneficios y de esta forma podemos saber como es mas rentable nuestro proyecto, como obtenemos mas beneficio variando el costo.

En el ambiente de programacion web calcular el ROI es una actividad clasica, apoyandonos en las herramientas para medir la cantidad de visitar y medir el tiempo promedio de cada visita es sencillo saber el beneficio ahora bien el costo es el valor monetario pagado por la pagina web, de esta forma podemos probar con diferentes plantillas de diseño, diferentes colores y diferentes formas de hacer la misma actividad en la pagina para saber de que forma obtenemos mas beneficio del cliente.

Monetariamente el ROI tambien se puede calcular, es decir no solo cuando aumentan las visitas o cuanto mas tiempo se esta un visitante en nuestra pagina. tambien podemos medir cuanto mas compra en nuestro sitio de comercio electronico.
La ecuacion es:
ROI = (Beneficio - Costo) / Costo

El costo es muy sencillo de medir, pues con una pequeña contabilidad podemos saber cuanto hemos gastado para hechar andar un sitio (pago hosting + pago dominio + pago software + pago webmaster). El beneficio es indudablemente complicado de medir para lo cual tenemos que establecer metricas muy claras de lo contrario habria subjetividad en esta medida, por ejemplo podemos establecer como metrica de beneficio (el tiempo del usuario en el sitio, en numero de visitas en el sitio, cantidad de productos vendidos en el sitio de comercio electronico)

Podemos enfocar el ROI a cuanto obtenemos de beneficio por la publicidad de nuestro sitio asi saber si invertir mas o dejar de invertir en publicidad, basandonos en el beneficio que estamos obteniendo de ello.

Por ejemplo, supongamos que desea atraer usuarios a su sitio web para generar ventas de sus artículos, lo que le supondría unos beneficios de 10 dólares por artículo vendido. Invirtió 1.000 dólares en su campaña publicitaria de la semana pasada y, como resultado, ha vendido 130 artículos. Los ingresos obtenidos de las ventas, o beneficio total, son 1.300 dólares (10 dólares de beneficios multiplicados por 130 unidades). Por consiguiente, resta los 1.000 dólares del costo de su campaña publicitaria de los 1.300 dólares de beneficios, con lo que obtiene 300 dólares. Esta cantidad son los beneficios que recupera como resultado de su inversión publicitaria inicial de 1.000 dólares. Su ROI, expresado como porcentaje de su inversión inicial, sería del 30% (300/1.000 multiplicado por 100)

Otro ejemplo es: si invertimos en un proyecto 1000 quetzales y gracias a esa inversion obtenemos 3000 quetzales podemos utilizar la ecuacion que indica
ROI = (3000-1000)/1000 = 2000/1000 = 2
Como el roy es una medida porcentual decimos que 2 * 10 = 200% es el ROI de este ejemplo.

El ROI es un valor muy facil de calcular una vez teniendo el valor y el beneficio que en ocaciones es el dificil de cuantificar, entre mas alto sea el % de ROI mas rentable es mi inversion, si tengo un ROI cerca de 0 (cero) no es aconsejable realizar la inversion pues no voy a tener ganacias y en el peor de los casos si tengo un ROI negativo, significa que por la inversion realizada voy a tener perdidas. por eso entre mas alto sea el ROI mucho mejor.

Ahora bien, si vemos el ROI desde una perspectiva detallista sabemos que es una medida complicada de identificar. Por ejemplo si tengo una pagina web de comercio electronico en la cual invierto 500 quetzales en publicidad y gracias a esa publicidad incrementan mis ventas y el incremento es de 3000 quetzales. El ROI seria:
ROI = (3000-500)/500 = 2500/500 = 5
En porcentaje seria un 500% esta campaña publicitaria suena muy bien pero aqui no hemos incluido el costo extra que tenemos en personal, empaque, gastos generales de venta, envio, impuesto por lo cual ese 500% de ROI es relativo y no absoluto.


Puntos a tener en cuenta para medir incrementar el beneficio en un sitio web:
  • Estancia de usuarios: cuántas páginas y cuanto tiempo permanecen en nuestro sitio
  • Carritos de la compra abandonados, porcentaje de usuarios que abandonan el sitio sin finalizar transacciones.
  • Rutas inadecuadas de navegación: callejones sin salida
  • Enlaces rotos en el sitio
Consejos:
  • Evitar intros en flash o vídeos pesados que se interponen entre el usuario y la información sin aportar valor.
  • Diseñar varias formas de encontrar una misma información
  • Calcular el número de clics necesario para realizar los procesos claves
  • Mantener actualizada la información clave.
  • Información clara acerca de privacidad, condiciones

lunes, 26 de julio de 2010

Back Office y Front Office

El backoffice y frontoffice son dos terminos muy utilizados para dividir las areas de una empresa segun el rol que lleven a cabo en la misma.


El BackOffice hace referencia a las actividades que pasan atras de la oficina, sean estas las que el cliente o usuario no puede ver, entre estas estan los departamentos de tencologia, estrategia, produccion, desarrollo entre otros. dicho en otras palabras el backoffice son todas las personas, departamentos que trabajan en la empresa y son fundamentales pero que a ojos de nuestros clientes no son evidentes.
Ejemplos de BackOffice es el departamento de desarrollo de software, el cual crea el software necesario para que todos los empleados trabajen sin embargo el cliente de la empresa solo sabe que hay un registro de sus transacciones con la empresa (compras, envios, devoluciones) sin embargo ignora como es que se lleva a cabo.
Otro ejemplo es el departamento de Produccion el cual es el encargrado de crear multiples productos para la venta, sin embargo el cliente lo que ve es el producto terminado, el mismo cliente ignora los detalles de como fue creado su producto.


Por otro lado tenemos el Front Office que es toda actividad, departamento, persona que trabaja directamente con el cliente, entre los departamentos de FrontOffice de una empresa tenemos el Call Center, Recepcion, Sala de ventas, Atencion al cliente, Sala de conferencias y presentaciones entre otros.
El FrontOffice debe ser cuidadosamente estudiado debido a que es la imagen de mi empresa, pudiera darse el caso de tener un buen BackOffice, pero sin un buen FrontOffice todo esfuerzo de la empresa por superarse es envano.
Un ejemplo de Front Office es la sala de ventas, en donde se encuentra el producto en expocicion, con un atril de lujo, luz estrategica para resaltar los detalles, perfecto perfil para causar atractivo y sin dejar por un lado los colores del empaque, las y los edecanes que promocionan el producto.
Otro FrontOffice es el Call Center en donde no se cuenta con la ventaja de la comunicacion visual pero estos centros de llamadas son especializados en atender y resolver los requerimientos de los clientes que los llaman unicamente con la comunicacion auditiva, en estos centros se desataca la claridad de comunicacion, la sencilles del lenguaje, la cortesia y las buenas expreciones verbales.


En el estudio de la informatica es importante conocer el backoffice, porque indudablemente los manejos tecnicos y de tecnologia en un alto porcentaje corresponden al BackOffice no obstante es importante mencionar que el BackOffice impacta directamente sobre el FrontOffice, porque si bien es cierto el FrontOffice es el que el cliente tiene contacto el valor entregado no existiera sin el BackOffice.

Software On Demand Vrs On-Site

El software On-Demand tambien conocido como Software as a Service (SaaS) es una modalidad evolucionada de Aplication Service Provider (ASP). Consiste en contratar a una empresa ajena a mi empresa (outsourcing) para que sea esta otra empresa la encargada y la responsable de mis Tecnologias de Informacion (Software), en otras palabras podemos mencionar que existe la modalidad On-Site y la metodologia On-Demand.
On-Site:
Es la forma tradicional que hemos visto que las empresas manejan el software, este consiste en que la empresa contrata personal y crea un departamento de tecnologia, compra equipo hardware para soportar las aplicaciones, desarrolla el software o compra licencias de software ya existente y lo instala en los servidores locales.

On-Demand:
Esta forma de gestionar el software es la contraparte de On-Site, consiste en contratar una empresa externa que sea la encargada de tener el software actualizado, tener los servidores funcionando y monitorear el buen funcionamiento de tecnologia,
Comparativas On-Site vrs On-Demand
  • Con On-Site nuestros datos siempre van a estar dentro del perimetro de mi empres, eso es una falsa sensacion de tener la informacion segura, por otro lado en la cuando utilizamos On-Demand mi empresa y la empresa que prestara el servicio firmamos un contrato por el servicio en donde quedan pactados temas de confidencialidad de mi informacion, % de tiempo de inactividad medido anualmente, actualizaciones al software, soporte tecnico entre otos.
  • On-Site el tiempo de recuperacion de errores mas rapida, en los centros donde prestan servicio On-Demand hay personal encargado de velar por el buen funcionamiento pero nunca va a ser igual de rapido que tener al tecnico exclusivamente para mi servidor empresarial y siempre a un costado de este.
  •  On-Site es una forma cara de mantener software en una empresa porque debemos incurrir en un departamento el cual esta conformado por personal, ademas hay que invertir en hardware (servidores) para soportar la aplicacion, hay que comprar licencias perpetuas para el uso del software y cuando se le solicita al equipo de informatica un nuevo desarrollo no es inmediato porque hay que pasar por las etapas de desarrollo de software lo cual toma determinado tiempo, mientras que en la metodologia On-Demand se paga mensual/anualmente y este pago incluye uso de servidores, personal de soporte, pago por uso de software, actualizaciones del software y mi enpresa unicamente consume el software (hace uso de el) como un servicio externo.
  • En tiempos de respuesta definitivamente On-Site es mas rapido que On-Denand debido a que la primer forma de software que menciono esta de forma local, es decir el servidor esta colocado en la misma LAN mientras que en la segunda forma el servidor esta lejos, podriamos pensar que esta en otra ciudad, otro pais o inclusive otro continente por lo cual se demora en viajar la informacion, no obstante el retardo es de unas pocas milesimas de segundo por lo cual ese retardo no es percibido por el usuario fianl.
  • En cuanto a continuidad de servicio es un tema que depende, la empresa que presta el software como servicio garantiza un % de tiempo de servicio debido a que estos centros tienen una infraestructura preparada para este tema por ejemplo fuentes alternas de corriente (generadores), fuentes diferentes y redundantes de conexion a internet. Sin embargo no solo de ellos depende que el servicio llegue a mi oficina debido a que si en mi oficina no hay luz entonces no hay continuidad por parte de mi oficina, o si mi proveedor de internet ISP falla, entonces mi negocio queda parado sin software debido a que no hay comunicaciones.
  • Los costos de operacion con SaaS, On-Demand o ASP son  predictibles porque se pacta todas las condiciones del servicio en  un contrato escrito el cual es firmado de aceptacion por ambas partes, sin embargo los costos de operacion bajo On-Site son variables porque mi departamento ocacionalmente va a tener que incurrir en gastos no previstos.
Podemos pensar, donde quedan los informaticos en este caso si todo lo que nececito del software me lo da la empresa que presta el servicio ??
En este caso los informaticos pasan a ser una unidad de estrategia y canalizar sus actividades a mejorar la tecnologia interna de la empresa para reducir tiempos y maximizar ganancias, es decir toman un rol de productividad estrategica optimizada basada en TI y no un rol tencino de desarrollo.


Sitios:
http://www.smartsales.com.ar

jueves, 22 de julio de 2010

Diarama Causa-Efecto

El diagrama Causa/Efecto es un diagrama utilizado para el analisis de probelmas, teniendo en cuenta que el problema fundamental es el efecto y sucesivamente se van identificando las causas. Dicho en otras palabras este diagrama nos es util para identificar los aspectos fundamentales que de una manera directa o indiracta impactan en el resultado de lo que se este analizando, con este diagrama podemos ahondar en las causas auxiliandonos del diagrama de lluvia de ideas.

El diagrama tambien llamado diagrama de Ishikawa por su creador tiene forma de espina de pescado, debido a que su forma consta de una cabeza que es el efecto principal y de alli se van identificando todas las causas que en este caso son las espinas del pescado.

Los pasos para crear el diagrama son:
1) Identificar el efecto principal, es decir el problema mayor y para ello vamos a ejemplificarlo con el tipico caso de (¿Porque los estudiantes son tan malos en la materia de matematica?)

2) Identificar los aspectos fundamentales que impactan, podrian ser personas, entidades o cosas para nuestro ejemplo vamos a destacar (Estudiantes, Maestros, Centro educativo, Recursos, Contenido de estudio)

3) Identificar las causas que dan lugar total o parcialmente y como resultado tienen el efecto identificado en la cabeza del pescado, por ejemplo (los estudiantes no ponen de su parte, los maestros estan mal preparados, el centro educativo no tiene recursos economicos, los recursos educativos son inapropiados, el pensum de estudio esta desactualizado).

Notese que en este diagrama podemos tener causas que dan origen a otras causas, esto es permitido y no hay numero limete de causas a listarse.

Resumen de pasos:

martes, 20 de julio de 2010

Sistemas de Seguridad Informatica

Que es un sistema
Un sistema es un conjunto de objetos que interactuan entre si para generar un resultado, los sistemas cuentan con unidades de entrada que es la alimentacion del sistema, unidad de procesamiento que es donde se transforma y se emplea la funcionalidad del sistema, unidades de salida que son el resultado del procesamiento de las unidades de entrada, recursos que son los utilizados para transformar las entradas en salidas y retroalimentacion que son medidas que tomamos de la salida y nos indican que tan bien estubo el funcionamiento del sistema y en que podriamos mejorarlo.
Los sistemas tienen la capacidad de ser parte de sistemas mayores, llamandose a los sistemas pequeños subsistemas y a los sistemas generales suprasistemas.

Que es la seguridad
Seguridad es tener control sobre las amenazas y sobre el riesgo de algun activo de pendiendo en el contexto que se analize. frecuentemente el estar protegido y contar con un respaldo implica el aumento de la seguridad.

Que es la seguridad informatica
En informatica el termino seguridad es empleado para evaluar el nivel de control que tenemos sobre la informacion, para que un sistema informatico este seguro debe existir:
  • Analisis de riesgo
  • Analisis de impacto
  • Politicas para mitigar el riesgo
  • Resguardo de la informacion.
La seguridad informatica puede tener diferentes enfoques(amenazas naturales, amenazas ciberneticas), pero todos convergen en el hecho de salvaguardar la informacion.

Como estudio la seguridad informatica
Cuando queremos darle seguridad a un sistema de informacion debemos hacerlo de una forma ordenada y sistematica para no olvidar ningun aspecto que de lugar a vulnerabilidades y para ello debemos utilizar la metodologia descrita a continuacion:
Debemos identificar los siguientes aspectos fundamentales.
  • Activo: Son todos los entes(fisicos o logicos) que pueden ser foco de falta de seguridad y los cuales debemos proteger (informacion, equipo computo)(bienes, casa).
  • Amenaza: Son todos los entes (fisicos o logicos) que atentan contra de los activos, estas amenazas son las que dan lugar a que un activo sea seguro o no lo sea(virus)(lluvia extrema)
  • Vulnerabilidad: Es el acontecimiento que se puede dar entre la amenaza y el activo, es decir que la vulnerabilidad es la condicion que nace de la amenaza y va directo al activo. (a los troyanos)(vivir cerca de un rio)
  • Riesgo: Es la probabilidad que se concrete una amenaza dado a que la vulnerabilidad existe y el reisgo es alto(probabilidad que se roben informacion)(alta probabilidad que aumente el caudal e inunde mi casa)
  • Impacto: Es la magnitud en que afecta la amenaza al activo (la competencia puede saber mi estrategia de negocio)(perder mis bienes y no tener donde vivir)
  • Ataque: Es el acto en que un activo es dañado o se intenta dañarlo atravez de una de sus amenazas.

Los activos y las amenazas siempre van a existir, lo que debemos procurar es que la vulnerabilidad no exista y si por alguna razon no se puede eliminar la vulnerabilidad hay que establecer las politicas necesarias para que el riesgo sea minimo.

Analisis de riesgos
El analisis de riesgo tambien llamado RA(Risk Analisis), es un proceso el cual consiste en identificar los activos, posteriormente identificar las amenazas, listar las vulnerabilidades y finalmente analizar la probabilidad que tiene de concretarse la amenaza.


Analisis de impacto
Es necesario medir el impacto de cada activo porque en una situacion de desastre para continuar con las operaciones del sistema se restablecen emergentemente los activos mas criticos, es decir que debemos identificar que procesos y que activos son vitales para que funcione el sistema y a estos darles prioridad para minimizar el impacto a la hora que se concrete la amenaza.

Tecnicas para asegurar sistemas
  • Vigilancia de la red.  Zona Desmilitarizada
  • Encripcion de datos
  • Antivirus, anti-spyware, firewall, actualizaciones criticas de seguridad del SO
  • Sitio de respaldo en un lugar remoto.

viernes, 16 de julio de 2010

Concurrencia vrs Paralelismo

Concurrencia
La concurrencia es cuando EXISTE mas de un proceso para ser atendido por el CPU, sin embargo en un instante de tiempo puede ser atendido unicamente un proceso por lo cual existen mecanismos para ejecutar simultaneamente multiples procesos dando la falsa espectativa que todos los procesos son atendidos en el mismo instante. Para lograr la el procesamiento concurrente es necesario software capaz de organizar los procesos (Sistema Operativo)

Palalelismo
El paralelismo es cuando se EJECUTA mas de un proceso en la misma praccion de tiempo, para esto debe haber un soporte de hardware (multiples procesadores).

Programacion:
En programacion, existe el termino thread que significa en español hilo. Este hilo se refiere a que un proceso (instancia de un programa)(ejecucion del codigo) puede estar compuesto por multiples hilos, en caso que se este ejecutando el proceso concurrentemente, a cada hilo le corresponde un cuantum de tiempo del procesador con la diferencia que cuando muere el proceso padre mueren los hilos.
Sin embargo la programacion por hilos o programacion concurrente es el camino para tener aplicaciones capaces de optimizar el uso de multiples procesadores, debido a que en un sistema que procesa paralelamente, cada hilo es asignado a un procesador maximizando los recursos del sistema.

jueves, 15 de julio de 2010

Administracion de Procesos

Existe el termino CONCURRENCIA, que se refiere en el contexto de los procesos y los procesadores a la capacidad que tiene un procesador de atender uno o muchos procesos simultaneamente.
No debemos confundir la palabra Concurrencia que es atender muchos procesos simultaneamente con el Paralelismo que es atender muchos procesos en el mismo instante, para lo cual se precisa de multiples procesadores.

Entonces para que se atiendan multiples procesos de forma concurrente (simultanea), debe existir un administrador de procesos el cual es encargado de alistar los procesos para ser procesados por el procesador, asignarles un cuantum de tiempo especifico a cada proceso, verificar que se cumpla este cuantum de tiempo, colocar en espera el proceso cuando ha cumplido su cuantum de tiempo y verificar cando se ha concluido un proceso. En resumen el administrador de procesos es el encargado de seleccionar el proceso de turno para que sea ejecutado por el CPU.

Proceso
Ahora que hablamos sobre procesos, se entiende como un proceso a la ejecucion de un programa o aplicacion, estos procesos son alojados en la memoria antes de ser atendidos por el CPU, existen dos tipos de procesos, el primero son los procesos del kernel que se ejecutan en modo privilegiado, y el segundo timpo de procesos que son los de usuario, estos se ejecutan sin privilegios.

Programa o Aplicacion
Un programa es una coleccion de codigos guardada en el disco duro o en una unidad de almacenamiento, este programa se convierte en proceso cuando es ejecutado por el procesador.

Analogia de diferencia entre programa y proceso:
  • Programa: Receta de cocina
  • Proceso: Cocinar esa receta.
  • Programa: Recorrido de un viaje.
  • Proceso: Viajar.
  • Programa: Libro
  • Proceso: Leer el libro.

Para que un procesador sea capaz de ejecutar procesos concurrentemente (rimultaneamente), es necesario que asigne estados a cada uno de los procesos, los estados existentes que pueden tomar los procesos son:
Creado  =  Created
Listo  =  Ready
En Ejecucion  =  Running
Suspendido  =  Waiting
Terminado  =  Terminated


PCB = Process Control Block
El sistema operativo, encargado de la gestion de procesos. Crea una estructura para cada proceso que quiere ser atendido por el CPU, a esta estructura se le llama BLOQUE DE CONTROL DEL PROCESO, en ella se almacena:
  • El identificador del proceso
  • El estado (Creado, Listo, Ejecutando, Esperando o Terminado).
  • El cuantum de tiempo
  • Con tador del proceso.
  • Valor del registro de CPU
  • Ubicacion y espacio utilizado en la memoria
  • Recursos asignados al proceso
  • Estadisticas del proceso.
  • Datos del propietario del proceso
  • Permisos del proceso.
  • Señales pendientes de ser atendidas.
Cuando un proceso quiere hacer presencia y que sea considerado por el administrador de procesos es necesario que cuente con su estructura PCB y cuando el proceso ha terminado la estructura PCB asociada es eliminada para dejar libre el registro y que un nuevo proceso pueda hacer uso de este espacio.

Listas existentes dentro del Administrador de Procesos:
  • Lista de Procesos, es una estructura circular donde estan todos los procesos listados, con su apuntador a su descriptor.
  • Lista de Procesos Listos, es la estructura que contiene los descriptores de los procesos que estan listos para ser ejecutados, estos son procesos candidatos para ser atendidos por el CPU.
  • Listado de Procesos en Espera, es la estructura que contiene los descriptores de procesos que han sido interrumpidos o que estan en espera de una señal.

miércoles, 14 de julio de 2010

Sistemas Operativos

El sistema operativo es una interface entre el usuario y el hardware, es decir, el sistema operativo es el encargado de gestionar los recursos de hardware basandonos en las peticiones de los usuarios.
Este sistema se encuentra en todo aparato que cuente con un microporocesador por ejemplo computadora, celulares, microhondas, refrigeradores, etc..

 Las funciones principales de un sistema operativo son:
  • Administrar la memoria
  • Conocer donde inicia y termina cada segmento de memoria, decidir que informacion se traslada a memoria y cual se recupera de la memoria, organizar y distribuir el espacio de la memoria.
  • Administrar el CPU
  • Crear, distribuir, parar y reanudar tareas de los procesos (programas en ejecucion)
  • Administrar dispositivos de E/S 
  • Guarda temporalmente informacion en la memoria cache.
  • Administrar Archivos
  •  Crear, modificar y eliminar archivos y carpetas, encargado de la forma de administracion de los archivos por ejemplo FAT32, NTFS, EXT2, EXT3, ReiserFS entre otros.
  • Administrar Almacenamiento Secundario
  • Es la administracion del desco o de los discos duros, el espacio disponible, la forma en que se almacena y se busca la informacion.

Las llamadas del sistema operativo son funcionalidades que este mismo presta, por ejemplo si una aplicacion de software nececita el uso de el cd-rom, existe en el SO una llamada la cual permite el uso de este periferico, de esta manera cada SO tiene sus llamada especificas. Cuando se cambia de SO a una version mas nueva hay que tener cuidado debido a que estas llamadas pueden cambiar y con ello deje de funcionar correctamente nuestro software. Entonces para concretar una llamada es cuando el software de aplicacion nececita utilizar algun hardware del sistema.

Caso contrario cuando el hardware del sistema nececita llamar a un software especifico, a esto se le conoce como una interrupcion del sistema, son utilizadas frecuentemente cuando el hardware esta ejecutando una accion y al concluir hace una interrupcion avisando que se el hardware esta libre y que puede ser utilizado nuevamente. Tambien cuando ha ocurrido un error en el hardware es necesario notificarlo al sistema operativo y a esto se le llama excepcion.

  • Llamada: Software nececita comunicarse con el hardware
  • Interrupcion: Hardware nececita comunicarse con el software.
  • Excepcion: Hardware nececita notificar un error al SO.


Administrador de Tareas:
  • Monotarea: se puede ejecutar una aplicacion simultaneamente aparte de los procesos utilizados por el SO, este proceso deja de utilizar los recursos hasta qaue termina todas sus tareas.
  • Multitarea: se pueden ejecutar diferentes aplicaciones simultaneamente, esto quiere decir que podemos estasr escuchando musica, escribiendo, utilizando un navegador y una sesion de chat abierta porque la multitarea asigna tiempos pequeños al procesador para atender la tarea en cuestion, la memoria, los perifericos son compartidos.

Administracion de Usuario:
  • Monousuario: permite ejecutar programas de un usuario al mismo tiempo.
  • Multiusuario: muchos usuarios pueden ejecutar programas al mismo tiempo, por lo general estos sistemas operativos tienen proteccion para sincronizar los datos que estan siendo alterados.

Manejo de Recursos:
  • Centralizado: se permite utilizar recursos de una sola computadora.
  • Distribuido: permite utilizar recursos de muchas computadoras simultaneamente (CPU, Memoria, Disco Duro).

martes, 13 de julio de 2010

Alta Disponibilidad

La alta disponibilidad es cuando un sistema resuelve las nececidades de los usuarios en un porcentaje de tiempo elevado, las nececidades del usuario pueden ser escribir un dato en el sistema, leer un dato en el sistema, procesar un dato en el sistema.
Existen dos tipos de inactividades que son las causas de que el usuario no pueda trabajar con el sistema y por consiguiente no hay alta disponibilidad, estas son:
Inactividad Programada
Inactividad No Programada

La inactividad programada son todas aquellas interrupciones del sistema que se llevan a cabo con hecho pensado, entre las cuales destacamos el mantenimiento, actualizacion de sistema operativo, antivirus u otro software. En algunas ocaciones no se toman en cuenta para medir la disponibilidad del sistema pero lo correcto es incluir este tiempo de inactividad para obtener el porcentaje de dispoinibilidad de servicio.

Las inactividades no programadas son aquellas que ocurren accidentalmente y sin acto de meditacion o de voluntad por ejemplo cuando se corta la corriente, algun ataque de virus, denegaciones de servicio por stress del sistema, fallas en el cableado de red, errores internos en el software entre otros, estas inactividades son las que frecuentemente se toman en cuenta para proporcionar un dato porcentual de funcionamiento del sistema.

Es prudente hablar del tiempo de recuperacion, es importante medir el tiempo de recuperacion ante diferentes tipos de inactividades debido a que este dato es fundamental para poder proporcionar a nuestros clientes un porcentaje real del tiempo de disponibilidad. Existen ocaciones en que el tiempo de recuperacion es demaciado grande o incluso infinito por ejemplo el caso de un incendio o una inundacion, para lo cual es prudente estar preparado con un plan de continuidad el cual nos garantice recuperarnos en un tiempo prudente.

La inactividad del sistema es tolerable por parte del usuario, por ejemplo imaginemos que queremos entrar a la banca electronica de nuestro banco y esta se encuentra deshabilitada por mantenimiento, como usuarios intentamos mas tarde y no hay mayor inconveniente incluso cuando sera muy preciso saber el dato, nosotros como usuarios vamos a esperar. Lo que definitivamente el usuario no puede permitir es la perdida de datos o la inconsistencia de los mismos, imaginemos el mismo caso del banco, de nada nos sirve que este disponible en un 99.999999% del tiempo si cada vez que consulto mi saldo es diferente y sin una justificacion aceptable, o que cuando quiera entrar a mi cuenta me aparezcan menos de los depositos que yo he realizado.

El calculo del porcentaje de disponibilidad se lleva a cabo de la siguiente forma:
porcentaje_disponibilidad =1- tiempo_inactividad / tiempo_año

Por ejemplo:
1 - 11dias / 365dias = 0.9698, en porcentaje seria 96.98% de disponibilidad anual.



Índice de disponibilidadDuración del tiempo de inactividad
97%11 días
98%7 días
99%3 días y 15 horas
99,9%8 horas y 48 minutos
99,99%53 minutos
99,999%5 minutos
99,9999%32 segundos

Solucion
Para proporcionar un sistema de alta disponibilidad es sencillo, debemos instalar un cluster de equipos que tengan el mismo nivel de servicio y un balanceador de disponibilidad.

La logica consiste en dos o mas servidores que tengan la misma informacion replicada entre ellos, el balanceador de disponibilidad verifica si el servidor esta funcionando y en caso deje de funcionar el balanceador redirecciona el trafico de los usuarios hacia el servidor de respaldo, el cual es bueno mencionar que tiene la misma informacion replicada del servidor principal y que resuelve las peticiones de forma similar. Finalmente cuando se ha restablecido el servidor principal, este se pone en linea, se actualizan los datos que han sido modificados en el cluster respaldo.

Nota: no debemos confundir el cluster de alta disonibilidad que garantiza funcionamiento continuo con el cluster de alto rendimiento que su funcionalidad es balancear las cargas en multiples servidores para que se procesen mas rapido los datos.


Software:
Existen multiples sistemas operativos que incluyen software para configurar la alta disponibilidad, entre ellos:
  • HearBeat
  • Idirectord y LVS (Linux Virtual Server)
  • Pirahna
  • UltraMonkey
  • Kimberlite