brenda




martes, 13 de septiembre de 2011

CARACTERÍSTICAS DE LA ARQUITECRURA CLIENTE/SERVIDOR

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.

En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema.

La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico.

La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red mixta.
CARACTERISTICAS DEL MODELO CLIENTE/SERVIDOR
En el modelo CLIENTE/SERVIDOR podemos encontrar las siguientes características:
1. El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes.
2. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma.
Para ver el gráfico seleccione la opción "Descargar" del menú superior
3. Un servidor da servicio a múltiples clientes en forma concurrente.
4. Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final.
5. La interrelación entre el hardware y el software están basados en una infraestructura poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de los diferentes tipos de formatos de datos y de los protocolos.
6. Un sistema de servidores realiza múltiples funciones al mismo tiempo que presenta una imagen de un solo sistema a las estaciones Clientes. Esto se logra combinando los recursos de cómputo que se encuentran físicamente separados en un solo sistema lógico, proporcionando de esta manera el servicio más efectivo para el usuario final.
También es importante hacer notar que las funciones Cliente/Servidor pueden ser dinámicas. Ejemplo, un servidor puede convertirse en cliente cuando realiza la solicitud de servicios a otras plataformas dentro de la red.
Su capacidad para permitir integrar los equipos ya existentes en una organización, dentro de una arquitectura informática descentralizada y heterogénea.
7. Además se constituye como el nexo de unión más adecuado para reconciliar los sistemas de información basados en mainframes o minicomputadores, con aquellos otros sustentados en entornos informáticos pequeños y estaciones de trabajo.
8. Designa un modelo de construcción de sistemas informáticos de carácter distribuido.
1.    Su representación típica es un centro de trabajo (PC), en donde el usuario dispone de sus propias aplicaciones de oficina y sus propias bases de datos, sin dependencia directa del sistema central de información de la organización, al tiempo que puede acceder a los
2.    recursos de este host central y otros sistemas de la organización ponen a su servicio.
En conclusión, Cliente/Servidor puede incluir múltiples plataformas, bases de datos, redes y sistemas operativos. Estos pueden ser de distintos proveedores, en arquitecturas propietarias y no propietarias y funcionando todos al mismo tiempo. Por lo tanto, su implantación involucra diferentes tipos de estándares: APPC, TCP/IP, OSI, NFS, DRDA corriendo sobre DOS, OS/2, Windows o PC UNIX, en TokenRing, Ethernet, FDDI o medio coaxial, sólo por mencionar algunas de las posibilidades.

COMPONENTES DE UN GESTOR DE BD
Los componentes principales usados en MySQL
El servidor MySQL opera en un ambiente de red donde interoperan clientes con servidores. Los clientes y servidores funcionan o son hospedados en ordenadores a los cuales se los llama anfitriones. El anfitrión, entonces, es el conjunto de componentes electrónicos que conforman el ordenador lo cuales son controlados por un sistema operativo. Los componentes clientes y servidores son los programas que operan en los anfitriones para darnos un servicio. En este caso, los servidores y clientes nos proporcionan el servicio de una base de datos.
La base de datos MySQL contiene los siguientes componentes:
  • mysqld: es el corazón de MYSQL. Es el programa servidor el cual proporciona las bases de datos que se encuentran en memoria o en el disco duro. En los sistemas operativos Windows NT, 2000 o XP el servidor MySQL son los programas mysqld-nt o mysql-max-nt. Este último provee soporte para tablas BDB las cuales veremos más adelante.
Entre los clientes tenemos:
  • MySQLCC: Ésta interfáz gráfica permite controlar todos los aspectos del servidor MySQL. Permite crear bases de datos, tablas, usuarios, cambiar permisos, acceder y cambiar la información almacenada, etc., de una forma muy intuitiva y muy fácil. Tiene todas las opciones y tiene mejoras de la interfaz de texto mysql. Ésta aplicación debe ser descargada independientemente.
  • mysql: Ésta interfáz de texto permite también controlar todos los aspectos del servidor pero la interfáz es solamente texto. Permite leer instrucciones del usuario por medio del teclado como también puede leer archivos que contienen instrucciones. Ésta es la aplicación más usada por los programadores para controlar la base de datos. Ésta y otras aplicaciones que veremos a continuación son aplicaciones de texto que funcionan en la consola. (comando prompt o cmd en Windows y un Shell sh, bash, etc. en Unix, Linux, MacOS y demás).
  • mysqlimport permite importar datos a través de archivos de texto. Provee una interfaz de texto para los comandos LOAD, DATA, INFILE.
  • mysqldump permite hacer copias o respaldos de la información almacenada para restaurarlos en el mismo servidor o para exportarlo a otros servidores.
  • mysqladmin permite administrar el servidor con una interfaz gráfica y de una forma muy sencilla
mysqlcheck permite revisar la salud de la base de datos. Permite también reparar dichas bases si fuera necesario.

jueves, 25 de agosto de 2011

PREGUNTAS ¿?

¿Que aprendi?
Aprendi acerca de algunas definiciones de base de datos asi como tambien aprendi un poco acerca de la historia de bases en como fueron evolucionando, como fueron creandose durante las diferentes decadas que cambios tuvieron durante todo ese tiempo, asi como tambien aprendi acercade de algunas de las diferencias entre bases de datos y sistemas operativos.

¿Para que lo aprendi?
Para entender y conocer mas acerca de la base de datos desde cuando inicio la idea y como fue evolucionando a trves del tiempo en diversos aspectos, tambien que significa o que es una base de datos para poder trabajar con esta.

¿Como puedo usar lo aprendido?
Como base para utilizar la base de datos saviendo ya lo que es, a que se refiere y de que se trata haciendo mas facil su utilidad.

¿Para que me sirve?
Para tener el conocimiento de lo que significa una base de datos y asi poder maejarla sabiendo lo que es y asi mismo saver lo que estoy trabajando.

jueves, 24 de febrero de 2011

UNIDAD 1


1.1 Revison del modelo de Von Newman

Componentes de una computadora
John Von Newman observo que la torpeza de la aritmetica decimal utilizada en la computadora ENIAC podia remplazarse utilizando la arítmetica binaria. Realizo un diseño básico llamado la máquina de Von Newman y se utilizo en la computadora EDVAC, que fue la primera computadora que almacenaba el programa.

 La máquina de Von Newman tenia cinco partes principales las cuales son:
1.- Memoria. Constaba de 4096 palabras cada una de 40 bits, y cada palabra podia contener dos instruccíones de 20 bits cada una o un número entero de 39 bits y su signo que puede ser positivo o negativo.
2.-Unidad de control. Es la que supervisaba la transferencia de información y le indicava a la unidad arítmetica logica cual es la operación que devia ejecutar.
3.-Unidad arítmetica logica. Es aquella que se encarga de realizar las operaciones arítmeticas y logicas necesarias para la ejecución de una instrucción.
4.-Entrada. Es cualquier dispositivo por el que se introduce información a la computadora.    Dispositivos de entrada: Mause, Teclado, Lector de codigo de barras.
5.-Salida. Es cualquier dispositivo que recibe información de la computadora para ser utilizadas por los usuarios en los primeros tiempos de los ordenadores, con sistemas de numeración decímal, una electronica sumamente complicada muy suseptible a fallas y un sistema de programación cableado o medinte fichas, Von Newman propuso dos conseptos básicos que revolucionarian la incipiente informática.Conseptos básicos que revolucionarian la insipiente informática:
a) La utilizacion del sistema de numeración binaria, simplificada enormemente los problemas de la implementación eléctrica de las operaciones y funciones logicas que se planteanban y a la vez proporcinaban una mayor inmunidad a los fallos eléctricos digitales.
b)Almacenamiento de la secuencia de instrucciones de que consta el programa en una mamoria interna facílmente accesible junto con los datos que hacen referencia, de esta forma la velocidad de proceso experimenta un considerable incremento
Memorias internas:
RAM
ROM
Tomando como modelo las computadoras que aparecieron incorporando las anteriores características el ordenador se puede considerar compuesto por las siguientes partes:
1.-UCP (Unidad Central de Proceso) o CPU
2.-Memoria interna (Memoria RAM)
3.-Unidad de entrada y salida  (Dispositivos)
4.-Memoria masiva externa

 
La tarjeta madre esta constituida por diferentes partes que conforman un CPU completo, en la computadora de Von Newman se encuentra estructurada por un Bus principal que es un conjunto de lineas que enlazan los distintos componentes del ordenador, para realizar la transferencia de datos entre todos sus elementos que la integran. Se distinguen tres tipos de Bus: Bus de datos, Bus de dirección y Bus de control.
Bus de Control: Forman parte de el las lineas que seleccionan desde donde y hacia donde va dirigida la información, támbien las que marcan la secuencia de los pasos a seguir para dicha transferencia.
Bus de Datos: Por él, de forma bidireccional, fluyen los datos entre las distintas partes del ordenador.
Bus de Direcciones: Cosnta de un conjunto de lineas que permiten seleccionar de que posición de la memoria se quiere leer su contenido, tambien direccina los puertos de entrada/salida.

1.2 Del problema al programa cargado
Al cargar los programas en una computadora, la máquina actuar como si recibiera una educación instantánea que le permite saber, pensar y operar todos los programas.
El proceso de reducción de un problema con una computadora conduce a la escritura de un programa y a su ejecución en l misma, aunque el proceso de diseñar programa es estrictamente un proceso creativo, que se puede considerar una serie de faces a pasos que deben seguir los programadores para el diseño de un programa.
Los programas deben seguir una tabla de contenidos que les sirve para solucionar los planteamientos de problemas que se tengan estos son los siguientes:
1.-Definición del problema
2.-Analisís del problema
3.-Selección de la mejor alternativa
4.-Diagramación
5.-Prueva de escritorio
6.-Codigicación
7.-Transcripción
8.-Compilación
9.-Pruebas de computador
10.-Documentación externa

1.3 Lenguajes formales
En matemáticas, lógica y ciencias de la computación, un lenguaje formal es un lenguaje cuyos símbolos y reglas para unir esos símbolos están formalmente especificados, al conjunto de los símbolos se le llama alfabeto del lenguaje y al conjunto de las reglas se le llama la gramática formal, a una cadena de símbolos formada de acuerdo a la gramática se le llama como una fórmula definida por un lenguaje formal que es idéntico al conjunto de todas sus fórmulas.
1.-Alfanúmericos
2.-Númericos
3.-Funciones

Los lenguajes se encuentran constituidos por medio del medio alfabeto utilizando el símbolo Σ sigma que nos representa todo el conjunto del alfabeto.
Los lenguajes se pueden considerar como un lenguaje finito de lo cual quiere decir que tiene un fin o un límite de de determinados caracteres.
El lenguaje constituido como infinito representa un bucle que no tiene fin, solamente cuando existe un desbordamiento de pila.
Un problema inicial que se nos presenta es como definir con precesión las cadenas que pertenecen a un lenguaje, de aquellas que no pertenecen.

1.4 Editores
Los editores permiten la escritura de una estructura de lenguaje de programación que se desea utilizar y a su vez permitir la traducción de un lenguaje formal. Existe un sin fin de software de propósito general papa efectuar el programa fuente de un lenguaje que se desee utilizar; los editores más conocidos son:
Bloc de Notas, Word pack, Word pack Plus y entre otros software libres.
Dentro de los editores también lo contemplan los mismos lenguajes de programación para escribir el código fuente y poder traducir a un lenguaje que la computadora pueda reconocer y mostrar el resultado ante el usuario.
Los editores que se encuentran integrados en los lenguajes de programación son:
Lenguaje C, Turbo Basic, Iunix, Cobol, C++, Visual Basic entre otros.

1.4.1 Carácter

Estos editores permiten utilizar caracteres de texto, por lo que no se requiere el uso del mouse y se tendrá que teclear cada una de los comandos que se requiera para su ejecución estos editores son los que utilizan el modo consola y podemos mencionar los siguientes:
Cobol, Dibasic, Iunix, Ensamblador y MS DOS.

1.4.2 De línea

Son aquéllos editores que traducen línea por línea y a su vez la ejecución de programa por lo que se muestra el resultado cuando no existen errores de sintaxis; los editores que manejas este tipo de traducción son HTML, Java, Turbo Basic, Dibasic III Plus, RPG y Ensamblador.

1.4.3 De pantalla

Los editores que utilizan la forma de compilar o traducir el código fuente lo primero realizan un chequeo de todas las líneas para certificar que no existan errores de síntesis y posteriormente mostrar el resultado en pantalla. Los más conocidos son: Lenguaje C, Visual Basic, C# todo lo relacionado a Visual Estudio.

1.5 Lenguajes de programación

Son aquellos utilizados para escribir programas de computadoras que puedan ser entendidos por un lenguaje de programación. Los lenguajes permiten obtener resultados de manera lógica en base al tiempo del lenguaje que la computadora pueda utilizar; los cuales podemos mencionar los siguientes: C++, Visual Basic, Java escrip, HTML y entre otros.

1.5.1 Niveles
Los lenguajes de programación se clasifican en tres grandes categorías en nivel bajo, intermedio y alto nivel.
El lenguaje de bajo nivel es conocido como lenguaje máquina y son aquellos que utilizan instrucciones directamente a la computadora por lo que es entendido por UCP y utilizan expresiones de memoria más pequeña conocido como bit que representa 0 o 1.
 En la siguiente imagen se mostrara la ejecución de este lenguaje:
Lenguaje intermedio
La programación en lenguaje intermedio es poco complicado en realizar los procesos y a su vez sin instrucciones en código de palabra en ingles; el lenguaje que se encuentra en este nivel se llama lenguaje ensamblador por ejemplo líneas de código es:

ADD-SUMA            MPY-MULTPLICICION
SUB-RESTA            DIV-DIVISION

MOVE   A,B                                                       010100111100
ADD     C,A                                                        001001000110
COMP   C,P                                                        101000010010
MOVE   E,P                                                        010010101111
ADD                                                                    100010000101
.                                                                            .
.                                                                            .
.                                                                            .
etc.                                                                       etc.
     Ensamblador                                                  Máquina

Lenguajes de alto nivel
Lenguajes de alto niveles lenguajes logran la independencia de tiempo del lenguaje máquina y se aproximan al lenguaje natural.
Los lenguajes de alto nivel también denominados lenguajes evolucionados y tienen los siguientes objetivos:
a) Pueden utilizar un mismo programa en diferentes equipos con la única condición de disponer  del programa compilador.
b) El código de programa puede escribirse y leerse de una forma mas cansilla y comprensible
c) Incluye rutinas de entrada/salida ya que contiene funciones especificas incluidas como libreras.
 Se puede decir que el principal problema que presentan los lenguajes es la cantidad que actualmente esta existiendo, y podemos mencionar los siguientes:

*Fortran
*Lisp
*Algol
*Cobol
*ASP
*Prolog
*Modula
*Pascal
*Basic
*Ada
*C++
*Visual Basic
*Java
*Php

Los lenguajes utilizan el siguiente es que de compilación:

1.5.2 Tipos (intérprete y compiladores)
Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: Compilador e intérprete.
Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de máquina). Su acción equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua.
Existen diversas fases de compilación o también llamadas estepas de la compilación que ilustraran en la siguiente imagen:

*El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador tiene los siguientes pasos:
1.-Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento por ejemplo, un disco.
2.-Introducir el programa fuente en memoria.
3.-Compilar el programa con el compilador.
4.-Verificar y corregir errores de compilación (listado de errores).
5.-Obtención del programa objeto.
6.-El enlazador (liker) obtiene el programa ejecutable.
7.-Se ejecuta el programa y si no existen errores, se tendrá la salida del programa.
8.- Y el proceso de ejecución se ilustra en la siguiente imagen:





1.5.3   Comparación de interprete y Compilador


Interpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:
·         un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.).
Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
·         un compilador suele generar programas más rápidos y eficientes ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
·         un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.



Son aquellos utilizados para escribir programas de computadoras que puedan ser entendidos por un lenguaje de programación. Los lenguajes permiten obtener resultados de manera lógica en base al tiempo del lenguaje que la computadora pueda utilizar; los cuales podemos mencionar los siguientes: C++, Visual Basic, Java escrip, HTML y entre otros.