Escolar Documentos
Profissional Documentos
Cultura Documentos
La relacin que existe entre el atributo y sus tplas obedece a un mecanismo de agrupacin lgica de coordenadas. Por ejemplo, en matemticas, para determinar un punto en un plano, se requiere de dos cnones como mnimos, es decir, un valor para la coordenada del eje X (abscisas) y un valor para la coordenada del eje Y (ordenadas). Al obtener ambos valores y ubicarlos en el plano cartesiano, podemos representar un punto en dicho plano. As mismo, en una base de datos, ms precisamente en una tabla, ese punto resultante podra tratarse de un valor, un nombre o cualquier tipo de informacin. Vindolo de otra forma, una tabla puede ser representada por una matriz de dos dimensiones. Ud., podra utilizar los ndices de dicha tabla para recorrer su matriz de forma deseada, incluso, crear un patrn organizativo para gestionar sus datos albergados en dicha tabla. De esta forma, podra organizar sus datos de modo estructurado y cuyo acceso resultara directo hacia esos conceptos. Vase la siguiente figura.
DDL (Data Definition Language) Lenguaje de Definicin de Datos La definicin de datos hace referencia a un modelo de escenario donde se formalizan tablas o consultas. En el caso de las tablas, el DDL propone un modelo basado en ABM (Altas Bajas o Modificaciones), las cuales permiten la creacin, eliminacin o modificacin de tablas en la base de datos. Existe un cuarto factor que es el truncado que resulta en un cuarto tipo de proceso en funcin a los tres recientemente mencionados. En sntesis, este modelo DDL define las estructuras de las tablas en las bases de datos. Podremos utilizar comandos tales como ALTER, CREATE, DROP y TRUNCATE entre otros para operar estos procesos de definiciones de datos. DML (Data Manipulation Languaje) Lenguaje de Manipulacin de Datos La manipulacin de datos hace referencia a los procesos tiles que pueden ser aplicados a las tablas para realizar diversas tareas tales como el ingreso de datos, eliminacin o modificacin de los mismos. El modelo DML tambin propone un modelo basado en ABM para la mayora de los procesos de manipulacin que incluyen como mencione recientemente, altas, bajas y modificaciones. A esto habr que agregarle las copias muy tiles para las copias de respaldo o seguridad, etc. La manipulacin de datos resulta ser un proceso ms sensible operativo de la informacin. Este modelo propone comandos operativos tales como INSERT, UPDATE, DELETE, etc., para el sustento y manipulacin de datos. Una caracterstica interesante resultan ser los llamados Triggers o (Disparadores), muy utilizados en los servidores centrales para automatizar tareas de manipulacin tales como copias de seguridad, procesos de lotes, depuraciones programadas, etc. El Lenguaje SQL Universal
Conociendo el Entorno No Grfico de Web Server MySQL Para poder conocer el entorno de consola, debemos utilizar la seccin del smbolo de sistema para sistemas operativos Windows. Para ello, vaya al smbolo de sistema o, si lo prefiere, escriba enEjecutar la orden cmd /k cd c:\appserv\mysql, Luego, presione la tecla Enter. Esto lo trasladar a la carpeta donde se aloja el servidor
10
En el modo consola, para poder activar comandos o realizar determinadas tareas, habr que conocer los comandos, escribirlos de forma acertada a los efectos de poder ejecutar las aplicaciones de forma correcta. Permaneciendo en esta ventana, si Ud., escribe en el prompt cursor de su pantalla la orden \ h o \ ? luego presiona la tecla Enter, podr acceder al Help ayudas de la consola. Notar que en las ayudas, se especifica ms de un parmetro. Cada uno de ellos cumple una funcin y es probable que puedan combinarse entre s de modo de activar determinadas fases o herramientas. Si Ud., desea salir del modo de consola de MySQL, bastara con que escriba el parmetro \ q y luego presione la tecla Enter. A continuacin, si escribe la orden exit y presiona la tecla Enter, cerrar la ventana de smbolo de sistema en su computadora. Tambin puede poner en prctica los comandos de consola avanzados para acceder a la carpeta del servidor Apache y el gestor de base de datos MySQL. Para ello, escriba la siguiente lnea de comando en la seccin Ejecutar de Windows. A continuacin, presione la tecla Enter.
cmd /k cd c:\appserv\mysql
Esta orden lo llevar inmediatamente al directorio donde se encuentran las herramientas del gestor de bases de datos MySQL. Es importante tambin recordar que, para evitar tener que escribir todas estas rdenes quiz algo complejo o intricado, prefiera en su lugar construir un archivo por lotes. Si este es su caso, abra el men Ejecutar de Windows y escriba la siguiente orden.
11
@echo off cls mysql Luego en la lnea de comandos o del smbolo de sistema, pruebe su archivo por lotes escribiendo la orden en el prompt y luego ejecutndolo mediante la tecla Enter. No es necesario escribir la extensin bat. C:\appserv\mysql\opmysql
Si Ud., no cuenta con el editor de textos del smbolo de sistema, puede utilizar el editor de consola residente llamado copy con. Para ello, dentro del modo consola, debera escribir las siguientes rdenes en forma secuencial.
cmd /k cd c:\appserv\mysql A continuacin y dentro del prompt cursor del servidor escriba la siguiente orden. c:\appserv\mysql\copy con opmysql.bat Luego, presione Enter y escriba las rdenes que siguen. @echo off cls mysql Para terminar y salvar el archivo, deber presionar la combinacin de teclas CTR + Z y una vez que la consola escriba los caracteres ^Z presione la tecla Enter. Esto har que el archivo se almacene con todas las rdenes que ha escrito en l archivo opmysql.bat. @echo off cls mysql ^z Presione la tecla Enter para finalizar. C:\appserv\mysql\type opmysql.bat Con la orden siguiente podr leer el archivo por lotes sin ejecutarlo desde la consola de Windows MS-DOS. 12
Advertencia: Bajo ninguna circunstancia, Ud., debera eliminar el resto de las carpetas que se encuentran alojadas dentro de la carpeta Data, excepto claro est, carpetas de bases de datos creadas por Ud., que no desea utilizar ms. El resto de las carpetas que all se encuentran, no debe tocarlas en absoluto. Recurdese, estas carpetas contienen informacin para la administracin de su gestor de datos. Cualquier destruccin o alteracin de las mismas, podra alterar el funcionamiento de su servidor de bases de datos Web. Esta arquitectura de organizacin de carpetas y archivos para bases de datos y
13
El gestor de bases de datos MySQL requiere de usuarios para que estos puedan operar y explotar los recursos del entorno. Cada uno de los usuarios, tendr un determinado permiso o control de los recursos, segn sea aplicada la poltica de administracin. En este concepto, entran los privilegios. Un privilegio especifica una poltica de comportamiento del usuario que declara que cosas puede o no puede hacer. Por ejemplo, resulta probable que Ud., no desee que ciertos usuarios puedan acceder a determinadas tablas y sus datos o, en todo caso, desea que estos tan solo puedan ver los datos y que no los puedan cambiar. Por tanto, existe un usuario que gestiona estos permisos y otros usuarios que hacen uso del recurso pero que no pueden administrarlo. El usuario que posee el mayor de los privilegios, que le permite operar el gestor de datos con todas sus herramientas, es conocido con el nombre de administrador. Es quien se encarga de gestionar al gestor de datos de forma absoluta y totalitaria. Por tanto, los tipos de usuarios se dividen en dos grandes grupos y ellos son: Administradores Poseen los mximos privilegios y administran el recurso en forma total Usuarios Poseen los recursos mnimos o regulados y solo explotan los recursos permitidos La poltica de privilegios se centra en dos grandes rasgos de acciones y estas son las siguientes: Poltica de Acceso Le permite al usuario acceder al recurso y explotarlo Poltica de Denegacin No le permite al usuario acceder al recurso y no podr explotarlo Dentro de todo el compendio de polticas detalladas, en el modo de Acceso, resulta posible refinar el proceso de control de acceso al medio. Este proceso de control es llamado generalmente como poltica granular dado que se aplican restricciones ms refinadas o especficas. Por ejemplo, Ud., podra permitirles a determinados usuarios acceder a una tabla con sus datos, pero por otro lado, restringir el mecanismo de cambios o actualizaciones. Esta poltica actuaria como solo lectura . Una restriccin semejante, puede justificar varias razones. La ms evidente resulta ser la seguridad, dado que de esta forma, Ud., se asegura que nadie puede alterar o destruir los datos vigentes. Por otro lado, optimiza los recursos del sistema, dado que los recursos en modalidad de s olo lectura, suelen consumir menos recursos.
14
15
16
1 . En el cuadro de texto citado escriba la palabra Stock, luego, verifique que la opcin que est a su lado derecho, diga Cotejamiento. Finalmente, para crear la base de datos, haga clic en el botn Crear. Vase figura de arriba. Si todo va bien, deber crear la base de datos. Aparecer una ventana anuncindole de la incorporacin de dicha base de datos, incluso, un detalle en lenguaje SQL. 2 . A partir de estos instantes, estamos habilitados para empezar a crear las tablas para nuestra base de datos. Aqu tiene dos opciones. O bien, empieza a crearlas directamente, una tras otra; o bien, podr crearlas ms tarde que ser nuestro caso, ya que lo que deseo es que Ud., se habite al entorno del gestor de base de datos de MySQL Server Web. Por tanto, haga clic donde dice Servidor:localhost Servidor:localhost Esto har que el entorno regrese a la pgina inicial del . gestor de datos. 3 . Ahora, vamos a verificar si la base de datos se ha creado correctamente. Para ello, observemos el lado de la barra izquierda y abramos el cuadro combinado. Si se ha creado bien, veremos la palabra Stock(0) en el componente. Felicitaciones, acaba de crear su primera base de datos en el gestor de MySQL Server Web. Creando una Tabla para la Base de Datos Stock En la primera parte de este instructivo hemos aprendido a crear una base de datos con el gestor de MySQL Server Web. Ahora, procederemos a crear nuestra primera tabla para nuestra base de datos llamada Stock. 1 . Dirjase hacia la seccin izquierda de su pantalla dentro del gestor de MySQL y en el cuadro combinado, elija la opcin Stock(0). Esto nos permitir elegir la base de datos para poder empezar a crear sus tablas. A su vez, esto tambin har que en el sector derecho se abra una seccin para crear tablas. En esta rea trabajaremos a continuacin. 2 . Dentro de la seccin derecha del gestor MySQL, en el cuadro de texto, escriba el nombre de la tabla la cual llamaremos como Deposito. En el cuadro de texto de al lado, debemos colocar la cantidad de campos que se requieren para dicha tabla. Por favor, coloque el nmero 4 dado que crearemos cuatro campos para esta tabla. Una vez que haya escrito el nombre de su tabla y la cantidad de campos, a continuacin haga clic en el botn Continuar. Si todo marcha bien, esto har que se cree la estructura de la tabla. El paso siguiente ser el de ajustar los tipos de atributos para dichos campos. Atencin: Tngase cuidado cuando crea tablas con vocales que utilizan acentos o
17
1 . Ahora, iremos colocndole a nuestra tabla los respectivos nombres de campos y sus atributos especficos. Coloque los nombres de arriba hacia abajo en los primeros cuadros combinados ms a la izquierda como sigue en esta seguidilla: I D, ARTICULO, COSTO y CANTIDAD. Obsrvese que los nombres de los campos los he colocado en maysculas. Es como se recomienda y le recomiendo que los coloque en maysculas siempre. La minscula es aceptado por el sistema pero est fuera de norma. 2 . El siguiente paso es ajustar los tipos de atributos para cada uno de los campos. Empezaremos con el campo I D. En la seccin Tipo, busque y seleccione la opcin INT. Esto declara un campo de tipo entero. En Longitud/Valores Longitud/Valores coloque el nmero 4 . Esto le permite limitar la cantidad de nmero enteros, que en este caso es un mximo de 9999. Tanto en Cotejamiento como en Atributos, omitimos sus detalles. En Nulo, seleccionaremos la opcin Not Null. Esto evita que no se coloquen valores en este campo. Los valores resultan ser obligatorios. En Predeterminado no colocamos nada. En Extrano colocaremos nada. Vale la pena aclarar que Extra tiene una opcin llamada auto_increment. Esto es til para los casos donde deseamos que los valores se coloquen automticamente. En nuestro caso, este detalle lo omitimos. Ahora, marcaremos la opcin nico cuyo icono es una ventanita con una letra u en rojo. Esta opcin nos permitir evitar que los valores resulten duplicados en nuestra tabla Deposito. Por ltimo, existe un cuadro de texto llamado Comentario. No resulta obligatorio colocar alguna descripcin all. Sin embargo, se recomienda para los casos donde se debe documentar la base de datos y puede resultar como una excelente gua memoria para el desarrollador. Recurdese que el tiempo es tirano y amnsico. 3 . Para ARTICULO colocaremos en TipoTEXT. Esto representa un campo de tipo de texto. En Longitud/Valores colocaremos 1 0 0. Esto limitar al campo a una cantidad de cien caracteres incluido los espacios vacos. En Nulo, colocaremos la opcin Null. Esto nos permitir dejar en blanco nuestro campo. Es evidente que esto no es normal, pero puede que su artculo no tenga un nombre definido y podra transitoriamente no tener nombre hasta nuevo aviso. El resto de las opciones, las omitiremos directamente. 4 . Para COSTO colocaremos en TipoDECIMAL. Este formato permite utilizar valores numricos para la economa o la contabilidad. Para clculos de ingeniera o donde se requiere de mxima precisin, se recomienda utilizar DOUBLE DOUBLE. Este resulta en un nmero mucho ms grande que DECIMAL. En el Predetermina Predeterminadocolocaremos 0 . Esto har que cuando se cree un registro en nuestra tabla, se coloque automticamente por defecto el valor cero en dicha
18
Este es el resultado final de crear su nueva tabla llamada Deposito para su base de datos Stock.
Para finalizar con esta primera prctica de creacin de base de datos y una tabla ejemplo, haga clic en Servidor:localhost para regresar a la pantalla principal. Ahora, notar que su base de datos Stock acusar la siguiente frase en el sector izquierdo Stock(1) Stock(1), incluso, ver que la tabla Deposito aparece debajo de esta descripcin. Esto le indica que su base de datos posee una tabla.
19
Antes de empezar, vamos hacer revista de algunas de las herramientas ms importantes. En la seccin de arriba, donde se divisan solapas, se pueden ver una serie de herramientas para la gestin de la tabla Deposito. La primera solapa Examinar Examinar, simplemente muestra la estructura de la tabla, incluso, se muestra un resumen de estructura en SQL como consulta de la tabla, que de por cierto, est vaca dado que supone an no hemos colocado datos en ella. Sin embargo, la solapa que se abre por defecto y que es la que se utiliza frecuentemente es Estructura. A continuacin hago una breve descripcin de esta seccin de la herramienta de tablas Estructura. Conociendo la Herramienta Gestin de Tablas - Estructura
20
En el caso de nuestro ejemplo, como ver en la siguiente figura, hemos declarado el campo ID de unicidad para evitar que un operador ingrese dos o ms cdigos iguales. Esto podra representar un potencial peligro por muchas razones. Un artculo podra tener el mismo valor de identificacin, lo que en sntesis, no podra hacerse referencia precisa de cada uno de los artculos. Conociendo la Herramienta Gestin de Tablas SQL y Buscar En la seccin SQL Ud., podr probar filtrando u obteniendo listados de los datos contenidos dentro de la tabla mediante consultas estticas. Un excelente tablero de pruebas para el desarrollador y, por supuesto, una herramienta estratgica para obtener determinados datos en pantalla. Generalmente, podr construir tipos de consultas estticas basadas en el uso del comando clsico SELECT entre otros comandos operativos del lenguaje SQL. Con respecto a la herramienta Buscar, resulta en un rea exclusiva para bsqueda de datos en dicha tabla. Sin embargo, Ud., bien podra utilizar SQL como un elemento de bsqueda y, en sntesis, ambos podra cumplir los mismos objetivos. Por tanto, el uso depende de los objetivos a los que se desee desarrollar incluso sus
21
4 Trapo de Piso 5
8 Brilla Metales 2 1
Operando la Herramienta Gestin de Tablas SQL Resulta interesante saber que Ud., puede insertar ms de un registro a la vez. Para ello tendr que utilizar la seccin SQL. Dentro de esta seccin, debe construir un proceso de consulta dinmica por lotes. En el caso de que desee realizar esta operatoria, deber utilizar el comando de SQL INSERT INTO. Como prctica, todos los registros que acaba de insertar en su tabla, elimnelos y proceda luego a insertarlos nuevamente con esta tcnica de insercin por lotes. Para ello, escriba en la ventanilla del script de SQL en la seccin SQL las siguientes rdenes, como se muestran debajo de este prrafo. Importante: Tngase especial cuidado con la sintaxis del lenguaje SQL. Utilice el acento francs para encerrar el nombre de la base de datos y su tabla respectiva. Ambas, se unen a travs de un punto. Finalice su lote con un carcter punto y coma. Respete los espacios entre las rdenes y caracteres.
22
Operando la Herramienta Gestin de Tablas Vaciar Esta sencilla herramienta le permite vaciar por completo su tabla con todo su contenido y tan solo dejando su estructura como soporte de general de su tabla. Atencin: Por favor, tngase cuidado con el uso de esta herramienta. Si Ud., accidentalmente elimina todos sus datos de su tabla, ms tarde, no podr recuperar sus datos. Le recomiendo hacer una copia de seguridad antes de aventurarse al uso de esta herramienta. Operando la Herramienta Gestin de Tablas Buscar En esta seccin podremos buscar todo tipo de datos en nuestra tabla de la base de datos. En la seccinBuscar, se nos facilita una serie de herramientas previamente confeccionadas que resultan muy tiles. Estas herramientas se fundamente en el lenguaje SQL y, por lo tanto, parte de ellas podran ser utilizadas tambin en la seccin SQL. En breve, veremos estos detalles. Sin embargo, ahora mismo, utilizaremos primeramente la seccinBuscar para aprender algunos conceptos bsicos. Comenzaremos ejecutando una consulta sencilla y luego aplicaremos una consulta algo ms compleja para comparar resultados. Creando Consultas Sencillas Por favor, dirjase a la seccin donde dice O Hacer una consulta (comodn: "%") dentro de la seccin Buscar. A continuacin, sitese dentro del campo ID. Verifique en la seccin Operador se encuentre el carcter = igual. Luego en la ventanilla donde dice Valor escriba el nmero 2 y haga clic en el botn Continuar. Si todo marcha bien, Ud., en pantalla debera observar los datos que referencian a dicho artculo, en este caso se trata de Balde. Pruebe con cada uno de los valores para el campo ID. Para retornar a una nueva consulta, simplemente, haga clic en la solapa de la seccin Buscar para recargar la seccin nuevamente. Creando Consultas Complejas Ahora, vamos a proceder a realizar una consulta algo ms compleja que la anterior. En el caso anterior, tan solo, podamos obtener un registro a la vez. En este caso y mediante el uso del predicado LIKE, podremos obtener todo tipo de datos si aprendemos a combinar estratgicamente los comodines. A continuacin, haremos
23
Le recomiendo que pruebe con todos los valores de la tabla y los que se le ocurran, obviamente siempre valores numricos, para aumentar su experiencia en este experimento. Creando Consultas Complejas En esta oportunidad utilizaremos algunas clusulas ms complejas mediante el uso del predicado LIKE. Para ello, comenzaremos utilizando el ejemplo pasado que hemos experimentado en la seccin Buscar. Entonces, repetiremos esa experiencia pero desarrollando toda la consulta mediante el lenguaje SQL. Por favor, a continuacin escriba en la ventanilla de script la siguiente orden. Si todo marcha bien, deber obtener en forma de lista todos aquellos artculos que comienzan con
24
Pruebe este filtro algo quiz atpico en materia de gestin de un Stock, pero que en este caso, nos da una idea de que tan potente resultan ser estos comandos a travs del uso de predicados.
Resumen Tanto las consultas dinmicas como las estticas son, al menos en teora, casi ilimitadas. La cantidad de combinaciones y disponibilidades de las mismas permiten desarrollar variedades de estructuras de consultas dependiendo de las necesidades ms diligentes que requieren los clientes, usuarios o desarrolladores del entorno de gestin de datos. El lenguaje SQL resulta ser muy vasto. Operando la Herramienta Gestin de Tablas Exportar e Importar Una de las herramientas ms importantes que todo gestor de datos debe tener, es la forma de hacer copia de seguridad de sus datos. Tambin es deseable a su vez, obtener la recuperacin de datos de forma directa, eficaz y sencilla en caso de que se produjeren fatalidades en el sistema. El gestor de base de datos de MySQL, cuenta con un sistema de migracin que permite operar copias de seguridad. Se trata de una herramienta extremadamente sencilla y muy eficaz. En breve conoceremos algunos detalles de las mismas.
25
26
27
28
[1]Capa Competente ~ Esta capa no existe. Debo aclarar que la arquitectura del software tradicional cuenta con tres capas. La capa de datos, la capa de negocio y la capa de usuario o interfaz. En la poca de las bases de datos primitivas, esta arquitectura no estaba bien definida, dado que no haba un estndar adecuado. Es por ello que la definicin especfica de la capa para esto casos resulta compleja de definir puesto que no se encontraba estandarizada. Por una cuestin prctica, le he colocado el nombre de Competente como una forma de poder interpretar el concepto.
29
8. Permisos de usuarios
El acceso y la explotacin de un a base de datos a sus consultas y tablas sin dificultades y de forma eficiente, suele ser el gran objetivo exitoso que todo desarrollador persigue. Sin embargo y por otro lado, la garanta de acceso al medio bajo estas condiciones, pueden poner de manifiesto ciertas debilidades de seguridad del sistema. Cualquier usuario no autorizado podra violar el espacio de datos y generar todo tipo de dao. Para controlar el acceso y explotacin ha dicho recursos, se puede establecer una serie de reglas en particular que controlen eficientemente estos puntos. A continuacin veremos estos detalles. Mecanismo de Identificacin El mecanismo de identificacin se basa en el estndar llamado comnmente Identificacin por Identificacin por Desafo y que consiste en la identificacin de un usuario mediante un nombre y una contrasea. Esta identificacin es nica y exclusiva de un usuario en particular, es decir, aquel que conoce sus datos. No puede existir otro usuario duplicado. Cada usuario tiene su espacio exclusivo. Este espacio de identificacin, generalmente, se lo conoce con el nombre de cuenta o perfil de usuario. Si bien existe una diferencia muy substancial entre una cuenta de usuario y un perfil, quiz sea preferible que utilicemos el trmino de cuenta de usuario, de modo de referirnos a los usuarios de las bases de datos. Un perfil es una cuenta de usuario pero con mayores detalles. Los perfiles no entran en este contexto de estudio. Para mayores lineamientos de seguridad de usuarios, los datos de los mismos, suelen codificarse con algn algoritmo de seguridad. Segn el grado de sensibilidad de los datos y los usuarios de la base de datos, este proceso de seguridad refinada, podra garantizar una poltica ms fuerte y una modalidad de seguridad ms robusta. En sntesis, existe un sinfn de combinaciones posibles para establecer hard roles polticas de seguridad duras. En los manuales especializados de seguridad y segn los estndares de seguridad, la rigidez de la seguridad se organiza en niveles operativos que van desde las polticas bsicas hasta las polticas ms complejas y duras. Mecanismo de Privilegios El mecanismo de privilegio parte en gran medida de dos controles principales que son el acceso y la denegacin de los recursos. Sin embargo, existe un valor intermedio al que podramos llamarlo privilegio parcial. Este valor intermedio resulta ser el ms granular. Para el caso de un control de privilegio parcializado, podra existir la posibilidad de controlar el acceso a una tabla, concediendo acceso de solo lectura. Si Ud., se basara en valores absolutos de controles, el comportamiento de su poltica sera drstico. Si accede, se permite todo y si deniega, no se permite nada. He aqu la gran diferencia. El gestor de base de datos MySQL Server y MySQL Server Web, prev un modelo de polticas de seguridad granular. De esta forma, el administrador de la base de datos tiene el control y gestin de forma segura, lo que a su vez, otorga confiabilidad al resto de los usuarios de la base de datos. Esto facilita la gestin de la base de datos y sus recursos, otorgando as, los privilegios adecuados y garantizando a los usuarios el acceso de forma granular, precisa y libre de todo tipo de discordias o
30
La cuenta de usuario se compone de un nombre de usuario y de una contrasea. Adems de ello, se hace mencin al equipo al que se tiene acceso, que en este caso, se trata del Host. En la lista podr observar que la primera columna enlista a los usuarios, la segunda el Host de acceso y la tercera columna nos indica si dicho usuario posee contrasea en su cuenta o no. Resulta recomendable siempre que el usuario tenga contraseas por una cuestin de seguridad. El resto de las columnas hacen referencia al atributo que a este usuario se le aplica. Ms precisamente, interesa la columna donde se enmarca el tipo de privilegio llamada Privilegios globales. El Host o la columna Servidor, hace referencia al acceso de explotacin del recurso. El valor % porcentual es utilizado para representar cualquier tipo de acceso. Ud., puede utilizar direcciones IP o nombres de Host tal como localhost que hace referencia al equipo local. Se debe tener especial cuidado cuando se asignan accesos al recurso. Si por alguna razn desea utilizar ms de un medio de acceso al recurso, recuerde siempre de colocar los niveles de contrasea adecuadas para cada instancia de acceso. Esto evitar potenciales problemas de inseguridad. Analizando la Granularidad de las Polticas de Control Cuando crea a un nuevo usuario en el gestor de base de datos, se plantea un proceso refinado de controles que normalmente se le suele llamar granular. El comportamiento de la poltica granular consiste en determinar qu recursos deben estar o no disponibles para el usuario. De esta forma, el administrador del gestor de datos, podr determinar con precisin los lmites que son fijados a dicho usuario y su entorno operativo. A continuacin se muestra una captura de imagen para el caso de la creacin de un nuevo usuario para la gestin de datos.
31
32
Administracin Atributo GRANT Descripcin Permite aadir usuarios y privilegios sin conectarse nuevamente a la tabla de privilegios. Permite la conexin, incluso si el nmero mximo de conexiones ha sido alcanzado; Necesario para la mayor parte de operaciones administrativas tales como montar parmetros de variables globales o matar procesos de otros usuarios. Permite ver las consultas completas en la lista de procesos. Permite a volver a cargar los parmetros del servidor y depurar los cach del servidor. Permite desconectar el servidor. Concede acceso a la lista completa de bases de datos. Permite poner candados a las tablas para el proceso actual. No tiene efecto en esta versin de MySQL. Da el derecho de usuario para preguntar donde estn los clientes. Necesario para las copias de salvas de seguridad.
SUPER
PROCESS RELOAD SHUTDOWN SHOW DATABASES LOCK TABLES REFERENCES REPLICATION CLIENT REPLICATION SAVE
33
Si observa al final del pie de esta captura de pantalla imagen, podr observar una serie de campos de textos donde por defecto se ha colocado el valor cero. Aqu podr controlar, por ejemplo, la cantidad mxima de consultas que el usuario puede realizar durante la sesin, la cantidad de actualizaciones, la cantidad de conexiones medidas en cantidad de usuarios y en tiempo. El valor cero implica omitir estas restricciones. Esta poltica resulta ideal para ciertos escenarios, como por ejemplo, cuando se desea preservar el ancho de banda o limitar las operaciones transactivas del usuario que apuntan al recurso de base de datos. Quiz la seguridad y el ancho de banda son los principales motivos para su gestin y cuidado. Acceso a las Bases de Datos de MySQL Mediante Pginas Web Dinmicas El proceso de transferencia de informacin entre la arquitectura cliente-servidor, permite desarrollar todo tipo de mecanismos de comunicacin que resultan til en campo de la industria, el comercio y la mayora de las actividades humanas. Mediante una pgina dinmica, resulta posible establecer un proceso de comunicacin entre la mquina cliente y un servidor Web. Gran parte de los negocios modernos utilizan este principio y entre otros campos como la industria, la educacin, la salud y los recursos gubernamentales han ganado utilidad estos ltimos aos. Citando ejemplos, desde consultar la existencia y el coste de un libro, el acceso a un catlogo comercial, el acceso a la informacin de normalizaciones en la industria, obtener datos de un paciente hasta poder obtener el saldo de una cuenta bancaria, el pago de impuestos y otros tantos modelos comerciales vigentes. En sntesis, las pginas dinmicas nos permiten crear entornos de desarrollo de consultas ilimitadas, as tambin, ilimitadas en funcionalidades y objetivos.
34
35
36
Los datos de solicitud enviados desde la computadora cliente, como dijimos, se almacenan en un archivo temporal en el servidor. La capa de negocio y en conjunto con el gestor del lenguaje PHP, hace uso de este archivo para manipular las variables de datos que contienen la informacin que han sido envidas desde la computadora cliente. De esta forma, el gestor PHP procede a utilizarlas durante la ejecucin del archivo de procesos de destino, que en este caso se trata del archivo resultados.p
37
38
Funciones Especficas para Tratar Acceso a Base de Datos Para poder acceder al a base de datos y poder manipular consultas, ya sean estas estticas o dinmicas, se requiere de un serie de funciones que se encuentran dentro de una librera en el propio proveedor de bases de datos. En sntesis, MySQL posee una serie de libreras y ofrece una serie de funciones especficas para que a travs de los lenguajes de desarrollo, en este caso PHP, se puedan acceder y manipular los recursos de las bases de datos. La capa Legacy se encarga de administrar estos procesos. La capa de Negocio accede a la base de datos a travs de la capa Legacy. La capa Legacy es independiente de la capa de Negocio. Todo lo que ocurre dentro del gestor de MySQL y cmo se proceden a realizar diversos procesos especficos en la base de datos, son totalmente ajenos a la capa de Negocio. Tan solo desde la capa de Negocio se pueden pasar mensajes o directivas, que la capa Legacy, se encargar de ejecutar de forma personal. Por tanto, la capa de Negocio delega y depende de los procesos internos que realice la capa Legacy. A continuacin, analizaremos las funciones ms importantes de este ejemplo de consultas Online. La funcin mysql_pconnect(server, user, password, [flags]) es utilizada para establecer la conexin de datos. Utiliza cuatro parmetros formales. La funcin requiere pasar como parmetros la ubicacin de la base de datos, el nombre de usuario y la contrasea. El cuarto parmetro formal resulta ser opcional y se lo utiliza para casos especiales. A continuacin se muestra un extracto del cdigo para establecer una conexin a una base de datos.
El carcter inicial (@) arroba es utilizado para indicarle al procesador que se espera el resultado de algn tipo de lectura para capturar y manipular errores. La variable $ d b $ d b carga el valor que le pasa la funcin mysql_pconnect(). Dicho valor tiene dos resultados finales. Si existe algn error durante la conexin el valor es nulo y, por lo tanto, la variable $ d b asume el valor nulo. Ahora bien, si la conexin resulta exitosa, el valor ser distinto de nulo. En la siguiente lnea del cdigo se anuncia al usuario del problema en caso de que no sea posible conectarse a la base de datos. Dado que la variable $ d b asume como nulo y la negacin de nulo resulta en un valor verdadero, se muestra en pantalla el mensaje contenido en el cdigo, de lo contrario, los procesos continuarn y este mensaje ser omitido.
39
A partir del resto del cdigo, se utiliza una serie de funciones que tienen el propsito de manipulacin y obtencin de los datos en pantalla, los cuales, pueden ser formateados para su presentacin final en la pantalla. Empecemos describiendo dichas funciones.
La variable $consulta alberga la cadena en formato SQL para construir la consulta esttica. Notar que hemos utilizado el predicado LIKE para poder realizar consultas de rango amplio. Para potenciar los mtodos de bsqueda, la variable llamada $terminbusqued $terminbusqueda es la que inserta las palabras que ha escrito el usuario en el formulario para luego su posterior envo. Si observa bien, se ha encerrado entre signos porcentuales (%). Estos caracteres junto al predicado LIKE se los utiliza para hacer que la bsqueda busque todos los registros posibles cuyas palabras que figuran en la variable $terminbusqueda coincidan con las que se hallan dentro de la tabla de la base de datos. La variable llamada $consulta es asignada al parmetro formal de la funcin llamada mysql_query(). Esta funcin se encarga de ejecutar la consulta. El resultado de la consulta o de la funcin realizada es asignado a la variable llamada $resultado $resultado. El valor de la variable $resultado es utilizado dentro del parmetro formal de la funcin llamada mysql_num_row(). Esta ltima funcin permite determinar la cantidad de registros que posee la tabla en la base de datos. Este valor resultar til luego para poder controlar el recorrido de cada uno de estos registros dados y su posterior proceso de carga en pantalla. El resultado de esta funcin es asignado a la variable$num_resultados. Esta variable ltima es utilizada
40
41
10. Acceso a las Bases de Datos de MySQL Mediante Pginas Web Dinmicas
En la clase pasada vimos el mtodo de acceder a una librera virtual a travs de una pgina que se utilizaba para consultar una base de datos. Este tipo de consultas se realiza de forma esttica por sobre la base de datos debido a que no existen alteraciones en los datos y estos mismos son objetos de exhibicin. Sin embargo, quiz en algunas ocasiones, resulte necesario actualizar o cambiar datos en la base de datos. Este tipo de acciones implica que los datos se alteren de algn modo en la base de dato y, por ende, el proceso pase a calificarse como dinmico. Durante esta clase veremos el cdigo utilizado para realizar actualizaciones, anexado y eliminacin de datos utilizando el lenguaje PHP y el lenguaje embebido SQL. Anexar Datos a una Tabla para una Base de Datos Para anexar datos en una tabla para una base de datos utilizamos algunos comandos especficos del lenguaje SQL ms unas funciones especficas del lenguaje PHP. Estos operan en conjunto y nos permiten manipular los procesos de forma conveniente. A continuacin, dejo un trozo de cdigo para analizar.
// Conectarse a la base de datos... @ $db = mysql_pconnect("localhost", "root", "contrasea"); if (!$db) { echo ""; ... mensaje de errores ... exit; } // Cargar la base de datos... mysql_select_db("libreria"); // Seccin para el anexado de datos $query = "insert into libros values ('".$isbn."', '".$autor."', '".$titulo."', '".$precio."')"; $result = mysql_query($query); // Resumen final del proceso de anexado... if ($result){ echo mysql_affected_rows()." libro introducido en la base de datos."; }
42
function convertFecha($fecha){ ereg( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $fecha, $miFecha); //Porbar si el da es adecuado... if($miFecha[3] > 31 || $miFecha[3] < 0) { $msj="Error de Fecha - Da incorrecto"; return $msj; exit; }
43
// Conectarse a la base de datos... @ $db = mysql_pconnect("localhost", "root", "contrasea"); if (!$db) { echo ""; ... mensaje de errores ... 44
// Conectarse a la base de datos... @ $db = mysql_pconnect("localhost", "root", "contrasea"); if (!$db) { echo ""; ... mensaje de errores ... exit; } // Cargar la base de datos... 45
46
47
48
49
// Esta sesin opera si la cookie es aceptada echo '<br /><a href="page2.php">pgina 2</a>'; // O puede ser que la sesin ID sea necesaria echo '<br /><a href="page2.php?' . SID . '">pgina 2</a>'; ?> <?php // Inicializar la sesin. // Si usa session_name("something"), No se olvide esto ahora! session_start(); // Quita todas las variables de las sesiones ahora. $_SESSION = array(); // Si desea matar la sesin, tambin borre la sesin de la cookie. // Nota: Esto destruir la sesin y no los datos de la sesin! if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } // Finalmente, destruye la sesin. session_destroy(); ?>
50
51
52
La gestin de sesin bsicamente es representada en un DFS. Ver figura derecha. Dado que la carga de una pgina Web es Top-Down, las instrucciones se dan en un solo sentido. Esto caracteriza al sistema como un mtodo esttico. Es por ello que para dinamizarlo se utilizan distintos tipos de lenguajes embebidos. El lenguaje PHP es uno de ellos. Analicemos el siguiente ejemplo de control de sesiones. El usuario completa los datos en el formulario y luego enva una solicitud al servidor para que este lo identifique. A su vez, la pgina carga antes de procesar dicha solicitud un proceso de inicio de sesin, llamado vulgarmente como Log In. Si el usuario no logra ser identificado, se rechaza la solicitud de identificacin en conjunto a la sesin temporal creada al inicio de este proceso. Ahora bien, si el usuario es aceptado el proceso contina preservando el espacio de sesin creada antes de proceder con dicha identificacin. A partir de estos momentos, el usuario se encuentra identificado y con una sesin iniciada exitosa. Esto le permite operar dentro del recurso de forma satisfactoria. Sin embargo, podra suceder un tercer problema. He aqu el por qu de la doble verificacin. El problema podra darse durante el proceso de creacin de sesin. Si la sesin no puede ser creada, por ms que el usuario se haya identificado correctamente, la sesin se encuentra en un estado crtico. Para evitar potenciales problemas, se procede a cerrar la sesin si es posible y quitar la identificacin del usuario. Esto normalmente se lo llama quitar sesin o Log Out. As mismo, si el usuario decide abandonar la sesin, el proceso de quita de sesin utilizar el mismo mecanismo de control. La idea es quitar la identificacin y destruir la sesin creada anteriormente.
53
[1]SCAM Resulta ser un mecanismo de estafa o robo de informacin, acopio de claves, PIN y todo lo concerniente a mecanismo de identificacin. Los piratas informticos toman estos recursos para perpetuar delitos tales como estafas, compras con identidad de otra persona, violacin de cuentas bancarias, distribucin de correos masivos, bloqueos y jaqueo de toda clase, etc. Visite el sitio http://www.vsantivirus.com/scam-aol.htm Aqu encontrar artculos interesantes acerca de robos, timos, etc., informticos.
54
55
La inclusin del mdulo de decisiones mltiples resulta conceptual. El usuario ante la interfaz, puede encontrarse en algunas de las siguientes necesidades: Ser miembro de la membreca Desea iniciar la sesin normalmente No recuerda la contrasea, proceder a recuperarla y cambiarla si es posible Desea cambiar su contrasea por razones de seguridad No ser miembro de la membreca Desea poder Registrarse Por tanto, el mdulo de mltiples decisiones opta por tres opciones. Las primeras dos opciones son las que incluye el mdulo y las que detalle en las vietas. Sin embargo, existe una tercera opcin y es la de no hacer nada. Resulta quiz la ms evidente pero es necesaria enumerarla aqu tambin por una cuestin prctica y funcional. Queda claro entonces que aplicando el sentido en comn, esta tercera opcin, carecera de efecto. En los casos donde el usuario decide recuperar su contrasea perdida u olvidada, incluso, en caso de registrarse, el usuario necesitar estar seguro que los datos que se le notifique sean correctos y que adems sean seguros. En la prctica y por
56
57
58
La tabla auth contiene el nombre de usuario y la contrasea, por otro lado, tenemos la tabla users y sus campos. La tabla auth est relacionada con la tabla users. El campo name de la tabla auth se relaciona con el campo idName de la tabla users en forma de 1 a , es decir, de uno a varios. Esta poltica evita que un determinado usuario de la membreca no pueda duplicarse. La tabla users contiene otros campos ms de informacin, como por ejemplo, el nombre apellido y el correo electrnico. El sistema se vale de esta valiosa informacin para poder comunicarse con el usuario en caso de ser requerirlo. Cuando un nuevo usuario desea registrarse, inicia un proceso de alta. Deber completar los datos sin omisiones para que el registro se complete de forma correcta. Por empezar, el nombre de usuario no podr duplicarse, no podr dejar en blanco la contrasea y no podr dejar sin especificar la casilla de correos. Estos datos resultan ser obligatorios. Ahora bien, suponiendo que los datos son correctos y se han registrado correctamente, los mismos, sern tiles durante el proceso de recuperacin de la contrasea. Analicemos cmo realmente funcionara este sistema automtico de envo de contrasea mediante el correo electrnico. El usuario inicia un proceso de recuperacin de su contrasea puesto que la ha olvidado. Bien, el sistema le pide que ingrese el nombre de usuario. Si el nombre es
59
// Datos que proviene de la consulta de la base de datos $user = "user"; $pass = "123"; // Preparar la carta - Compose $to = "usuario@miserver.com"; $subject = "Asunto - Clave de Envo Nueva"; $headers = "From: Librera Virtual - Nueva Contrasea"; $message = "Nueva Contrasea\r\n"; $message .= "Le recordamos que hemos actualizado su contrasea nueva. A continuacin le dejamos los datos.\r\n"; $message .= "Nombre de usuario: $user\r\n"; $message .= "Contrasea: $pass\r\n"; $message .= "Cualquier inconveniente, por favor, comunquese con el administrador del sistema."; // Enviar el correo electrnico... mail($to, $subject, $message, $headers);
Mayor Seguridad Operativa ~ Activaciones de Cuentas En algunos sitios para garantizar mayor seguridad se utiliza un sistema de reenvo y de activacin. La activacin sencillamente consiste en verificar que el correo que le ha sido enviado al usuario lo responda. Mientras que el usuario no responda al correo, el cambio se mantendr substancialmente hasta que el usuario active el cambio. La activacin permite evitar que los envos de las nuevas contraseas no queden de forma inconsistente, por ejemplo, que el correo enviado falle su recepcin o, lo que es peor an, que el servidor est cado en ese. En pocas palabras, cualquier error podra resultar en fatalidad. El usuario podra perder el acceso a su membreca. Por tanto, la activacin resulta ser un proceso recomendado para asegurarse que la recuperacin de la contrasea se realiza de forma satisfactoria.
60
61
El modelo agrega como ltimo mdulo un proceso de control basado en evento y tiempo. Una vez que es notificado el usuario a travs del correo electrnico, el sistema le pedir su activacin y pondr un conteo de 24hs para su activado. Si el usuario no procede con la activacin sugerida, el servicio inmediatamente, cancela el cambio de la contrasea y restaura la contrasea actual volviendo nuevamente al comienzo antes de que se produjera la transaccin ejecutada.
62
63
El circuito que observamos en el esquema resulta ser bsico y universal. El cliente, solicita un producto y busca a travs de los filtros que ofrece la interfaz. La interfaz, est conectada a la tabla Catlogo de la base de datos de la Librera. Segn el producto que busca el cliente, el mismo, se presenta en su pantalla con detalles especficos o suntuosos. Dentro de este despliegue de detalles, el cliente, puede optar por elegir o no el producto para su compara. En el caso de que elija el producto, procede a accionar un mecanismo de carga. La carga pasa el producto seleccionado a una etapa de reserva temporal en tiempo real. Esta instancia la llamamos carrito virtual. Si observa el diagrama, la seccinCarga en el Carrito los Productos, el producto estar reservado. De mientras, el cliente podra estar buscando otro producto ms si lo desea, incluso, agregar a su lista de pedidos. Dentro de esta posibilidad, cabe la opcin de descartar el producto que ha seleccionado y optar por otro de su conveniencia o descarta todas las operaciones. Ver que existe una opcin en el diagrama representada como Cancelar. La opcin que es representada como Procede, simplemente describe el accionar normal de las operaciones de eleccin que la interfaz brinda. Notar que, si sigue observando, hay una etapa llamada Prepara la Orden para la Venta. En esta instancia, el cliente an puede optar por cancelar todas las operaciones o aceptarlas. Si acepta las opciones, se supone entonces, que encarga y compra el producto. Si encarga el producto, sucedern dos cosas a la vez. Por un lado, se almacenar en la base de datos en la tabla Orden el pedido que el cliente desea, donde adems, se especifica los datos personales del cliente y los que l desea negociar para su entrega. Por otro lado, se verifica el tipo de pago. El cliente podra optar por pagar va electrnica mediante tarjeta de crdito o dbito, con cuenta electrnica, etc., o podra, bien hacer el pago mediante reembolso Cash efectivo ms servicios adicionales si as la empresa le exige. Este ltimo mtodo suele ser menos complejo de controlar que el sistema de dinero virtual. La verificacin de fondo del cliente resulta en todo un tema de seguridad y de desafo. Existen muchos sistemas de verificacin de cuentas y fondos bancarios. El sistema de pago online de tarjeta de crdito o de dbito es en tiempo real dado que la tarjeta est conectada virtualmente al sistema nervioso de base de datos de la financiera. As mismo, las cuentas electrnicas tales como Pay-Pal o similares, cuentan con un sistema similar basado en el saldo de dicha cuenta. A diferencia de
64
Diagramacin de Caso de Uso con UML Estndar del Sistema de Carro de Compras
65
66
67
68
70
71
Esquema del Sistema para el Servicio FTP (Transferencia de Archivos) Cortesa Wikilearning
Sin embargo, la transferencia de los recursos o archivos, no soluciona la reubicacin correcta de cada uno de los recursos en el sitio Web como corresponde. En su lugar, debemos realizarlo de forma manual o a travs de un utilitario complementario que permita crear la distribucin adecuada de nuestros recursos. El servicio de transferencia de archivos FTP solo permite transferir archivos, lo cual y en sntesis, no incluye la transferencia de carpetas y su ruta original ms su estructura estratgica distribuida en nuestro proyecto. En conclusiones, antes de distribuir nuestros recursos y publicarlos al sitio Web, deberemos crear primero la estructura de distribucin estratgica del sitio para poder reubicar todos nuestros recursos del proyecto en el sitio Web. Resulta importante sealar que existen aplicaciones especiales que utilizan los servicios FTP para la transferencia de de datos y, que a su vez, se encargan de crear las carpetas en el sitio de forma automtica sin la intervencin manual del usuario para determinadas reas especficas. Esto supone cierta ventaja operativa de FTP. El uso de las herramientas de FTP es utilizado bajo consola. Por ejemplo, MS-DOS de la firma Microsoft, UNIX o la familia de sistemas operativos como LINUX o SOLARIS de la ex firma Sun Microsystem, actualmente Oracle CorporationTM. El servicio FTP utiliza diversos tipos de comandos y parmetros para su uso. Gran parte de estos comandos son muy utilizados en sistemas operativos como UNIX. Por tanto, la procedencia de dichos comandos en el servicio FTP deriva de UNIX. El uso de dichos comandos ms sus parmetros, requiere de ciertas habilidades por parte del operador y un cierto conocimiento de sistemas operativos bajo consola. A continuacin, muestro una captura bajo consola de los comandos y parmetros del servicio FTP para el sistema operativo Microsoft MS-DOS.
72
-x:bfer_envio Invalida el tamao de SO_SNDBUF predeterminado (8192). -r:bfer_recep Invalida el tamao de SO_RCVBUF predeterminado (8192). -b:cuenta async Invalida la cuenta asncrona de 3 -w:tam_ventana Invalida el tamao del bfer de transferencia
predeterminado (65535). host Especifica el nombre del host o la direccin IP del host remoto al que se conecta. Notas: 73
74
75
76
77
78
79
80
Este mtodo inicia un proceso de transaccin. El inicio de la transaccin implica la activacin en cierta forma de un escenario de supervisacin, gestin de niveles de procesos y profundidad de aislacin, en el caso de que existan transacciones anidadas. MySQL propone un proceso de control de transacciones que pueden operar de forma supervisada o no. Si no se supervisa, AutoCommit las transacciones son directas y no pueden ser supervisadas para ser controladas por procesos exteriores. En cambio, cuando se activan las transacciones, la supervisin es gestionada de modo tal que pueden ser controladas exteriormente a travs de los mtodos Commit y Rollback respectivamente. Ambos mtodos permitirn aceptar o cancelar todos los procesos dentro de escenarios de transacciones. Commit Este mtodo es utilizado para confirmar un proceso de supervisin y aceptar todas las reglas o procesos que sucedieron luego del comienzo de la transaccin. Este mtodo es utilizado para descartar o abortar todo proceso desencadenado a partir de la supervisacin o inicio de un proceso de transaccin.
Rollback
Nivel de Aislacin IsolationLevel Las transacciones pueden ser simples o complejas. Cuando son simples son directas puesto que solo se trata de una supervisin sencilla de los procesos transactivos. Sin embargo, puede que sea necesario realizar ms de un proceso de supervisin y, por tanto, entran en escena las transacciones complejas o anidadas. En el caso de las transacciones complejas, para poder llevar un control y una gestin
81
82
84
85
86
Adobe Flash
El entorno de desarrollo Flash combina dos aspectos interesantes. Por un lado, tenemos un potente entorno que permite construir grficos interactivos muy amplios que abarcan sonido, movimientos, interpolaciones, etc., tpicos para crear elementos con movimientos, pelculas, etc. Por otro lado, se tiene un potente lenguaje de desarrollo propietario llamado AS ActionScript) para dicho entorno que ( permite, no solamente potenciar sus cualidades, sino la posibilidad de proporcionar recursos externos para compartirlos con otros entornos operativos, tal es el caso de PHP entre otros. Dado que Adobe Flash carece absolutamente de un mecanismo de interaccin con diversos tipos de proveedores de bases de datos, excepto la solucin propietaria de Adobe Coldfusion, esta combinacin entre PHP y Adobe Flash se convierte en ms que interesante.
87
Microsoft Silverlight
El entorno Silverlight recientemente creado por la firma Microsoft ofrece una serie de servicios de control de grficos y comandos excepcionales. Si bien Microsoft Silverlight opera satisfactoriamente en lenguajes de comandos tales como ASP.NET, de la misma firma Microsoft, Silverlight ha sido optimizado para poder operar en otros entornos operativos de comandos. Casi muy parecido como ocurre con Adobe Flash, Silverlight tiene ciertas cualidades operativas en materia grfica y de comandos. Con su propio entorno que puede proporcionar muchos recursos operativos quiz ms amplios en materia de acceso a base de datos que Adobe Flash, lo que en cierto modo, lo hacen muy interesantes para determinadas soluciones de sistemas. En efecto, ese es el espritu de Silverlight, aunque se trata de una alternativa ms dado que podr optar por gestionar todo desde Silverlight o parte utilizando a PHP como soporte de comandos. Este ltimo mtodo alternativo suele ser el ms utilizado por los desarrolladores, pero insisto, no es el nico mtodo disponible. El modo en cmo Silverligth interacta con el lenguaje PHP, resulta de forma similar al que describ durante el detalle que hice sobre Adobe Flash. Utilizando parametrizacin se pueden establecer mecanismos de comunicacin entre ambos entornos operativos. Soluciones con JAVA de Oracle Corporation ex Sun Microsystems
Java 88
89
90
... frlv = new LoadVars(); frlv.nombre = nombre_txt.text; frlv.mail = email_txt.text; frlv.mensaje = mensaje_txt.text; frlv.titulo = titulo_txt.text; frlv.sendAndLoad("http://www.misitio.com/send.php", frlv, "POST"); ... 91
92
93
public boolean postResults(int pid, int ver) throws MalformedURLException, IOException { boolean success = false; String parametersAsString = "PID=" + pid + "&VER=" + ver; byte[] parameterAsBytes = parametersAsString.getBytes(); URL url = this.getCodeBase(); url = new URL(url + "updateDD.php"); URLConnection con = url.openConnection(); ((HttpURLConnection) con).setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); OutputStream oStream = con.getOutputStream(); oStream.write(parameterAsBytes); oStream.flush(); BufferedReader iStream = new BufferedReader( new InputStreamReader( con.getInputStream())); String aLine = iStream.readLine(); while(aLine != null) { if(aLine.contains("success")) success = true; 94
96