miércoles, 21 de noviembre de 2012

JAVA SCRIPT VALIDAR ENTRADAS DEL TECLADO


OBJETIVO:  Validar campo de texto sólo para escribir letras, números con javascript

<script> function soloLetras(e){
 key = e.keyCode || e.which;

Obtenemos el caracter presionado por el usuario con toLowerCase() convertiríamos la letra a minúscula. Con esto guardamos la letra presionada por el usuario en la variable tecla.
tecla = String.fromCharCode(key).toLowerCase();

Se Crear una lista con todas las letras permitidas .
letras = " áéíóúabcdefghijklmnñopqrstuvwxyz";

Crear una lista de teclas especiales tales 8,37,39,46
especiales = [8,37,39,46];
tecla_especial = false

se busca si está la tecla presionada por el usuario en el array de teclas especiales "especiales"
 for(var i in especiales){
         if(key == especiales[i]){
                                                     tecla_especial = true;
                                                   break;
                                             }
          }

Verificamos si un caracter está dentro de otra cadena con indexOf . devolviendo como valor la posición de la cadena encontrada o el valor de -1 si es que no la encuentra , que para este caso queremos
                               if(letras.indexOf(tecla)==-1 && !tecla_especial)

falso si la tecla presionada no está en la lista de letras permitidas hecha por nosotros                               
return false;
                          }
 </script>

Usamos el evento onkeypress del campo de texto para hacer la llamada a la función
<input type="text" onkeypress="return soloLetras(event)">

INVESTIGACION:
Fuente:

Si hay algo que no podemos evitar es que la persona que visita tu página copie y pegue un texto no deseado al "input text" . Para eso podemos agregarle el atributo "onblur" a la etiqueta input llamando a una función que limpie el "input text" si es que encuentra un caracter no deseado.
Código :

<script>
function soloLetras(e){
    key = e.keyCode || e.which;
    tecla = String.fromCharCode(key).toLowerCase();
    letras = " áéíóúabcdefghijklmnñopqrstuvwxyz";
    especiales = [8,37,39,46];
    tecla_especial = false
    for(var i in especiales){
 if(key == especiales[i]){
     tecla_especial = true;
     break;
        }
    }
    if(letras.indexOf(tecla)==-1 && !tecla_especial)
        return false;
}
function limpia(){
    var val = document.getElementById("miInput").value;
    var tam = val.length;
    for(i=0;i<tam;i++){
 if(!isNaN(val[i]))
 document.getElementById("miInput").value='';
    }
}
</script>

<input type="text" onkeypress="return soloLetras(event)" onblur="limpia()" id="miInput">

EJEMPLO DETALLADO JAVASCRIPT


Esta es una tarea dejada por la ingeniera donde se detalla lo que hace cada codigo :


<HTML>                           Abre el código html.
<HEAD>                          Abre la cabecera del documento.
 <title>Ejemplo de JavaScript</title>  Se coloca el titulo Ejemplo de JavaScript.
</HEAD>                      Cierra Cabecera del documento.
<BODY>                       Abre el cuerpo del documento.
<script LANGUAGE="JavaScript">  Se inicia javascript para ponerlo en memoria.
<!--                                                       Apartir de aca vine la programación javascript.
var cad = "Hello World",i;   Creamos una cadena asignando  la palabra Hello Word a la variable CAD .
var ja = new Array();                   Creamos un objeto le asignamos a la variable ja un array.
ja = cad.split("o");                        Lo que va a separar la cadena es la variable o.
with(document) {                          Se empieza a dar las opciones.
write("La cadena es: "+cad+"<BR>");  Se imprime el resultado de cada sin modificaciones.
write("Longitud de la cadena: "+cad.length+"<BR>"); Muestra la longitud de la cadena será 11   .                                                                                                             espacios
write("En grande: "+cad.big()+"<BR>"); Se cambia el tamaño de la letra por una grande.
write("Caracter 3 es: "+cad.charAt(3)+"<BR>"); Buscamos un caracter especifico el de la posición 3 dentro de la cadena que almacena la variable.

write("Fuente FIXED: "+cad.fixed()+"<BR>");  Muestra la cadena cambiada a la fuente Fixed.
write("De color: "+cad.fontcolor("#FF0000")+"<BR>"); Cambiamos el color de la cadena por el color correspondiente al numero hexadecimal.
write("De color: "+cad.fontcolor("salmon")+"<BR>"); Cambiamos el color de la cadena expresado por su nombre.
write("Tamaño 7: "+cad.fontsize(7)+"<BR>");  Especificamos el tamaño de la letra correspondiente al numero 7.
write("<I>orl</I> esta en la posicion: "+cad.indexOf("orl")); Cadena q da la poscicion dodne se encuentra en la cadena cad.
write("<BR>En cursiva: "+cad.italics()+"<BR>"); Cambia la letra y la muestra en cursiva.
write("La primera <I>l</I> esta, empezando a contar por detras,"); Escribe en pantalla lo expresado entre comillas.
write(" en la posicion: "+cad.lastIndexOf("l")+"<BR>") ; Empieza a buscar empezando desde atrás el parámetro I en la cadena y muestra la posición en la que se encuentra como indexOf.
write("Haciendola enlace: "+cad.link("doc.htm")+"<BR>"); Hace enlace con el valor de cad.
write("En pequeño: "+cad.small()+"<BR>"); Cambia el valor de cad a letra pequeña.
write("Tachada: "+cad.strike()+"<BR>"); Cambia el valor de cad a letra tachada.
write("Subindice: "+cad.sub()+"<BR>"); Cambia el valor de cad a letra subíndice.
write("Superindice: "+cad.sup()+"<BR>"); Cambia el valor de cad a letra superindice.
write("Minusculas: "+cad.toLowerCase()+"<BR>"); Cambia el valor de cad a letra minuscula.
write("Mayusculas: "+cad.toUpperCase()+"<BR>"); Cambia el valor de cad a letra mayuscula.
write("Subcadena entre los caracteres 3 y 10: "); Muestra lo escrito entre comillas.
write(cad.substring(2,10)+"<BR>"); Busca los valores entre los índices 2 y 10 y los devuelve.
write("Entre los caracteres 10 y 3: "+cad.substring(10,2)+"<BR>");  Busca los valores entre los índices 10 al 2 y los devuelve.
write("Subcadenas resultantes de separar por las <B>o:</B><BR>"); Muestra lo escrito entre comillas.
for(i=0;i<ja.length;i++) write(ja[i]+"<BR>"); Devolverá el resultado de separar la cadena del  indicador "o".

} //--> Cierra código script.
</script> 

</BODY> Cierra cuerpo del documento.
</HTML Cierra documento.


RESULTADO DEL CODIGO:

La cadena es: Hello World
Longitud de la cadena: 11
Haciendola ancla: Hello World
En grande: Hello World
Parpadea: Hello World
Caracter 3 es: l
Fuente FIXED: 
Hello World
De color: 
Hello World
De color: 
Hello World
Tamaño 7: 
Hello World
orl esta en la posicion: 7
En cursiva: Hello World
La primera l esta, empezando a contar por detras, en la posicion: 9
Haciendola enlace: 
Hello World
En pequeño: 
Hello World
Tachada: Hello World
Subindice: 
Hello World
Superindice: 
Hello World
Minusculas: hello world
Mayusculas: HELLO WORLD
Subcadena entre los caracteres 3 y 10: ello Worl
Entre los caracteres 10 y 3: llo Worl
Subcadenas resultantes de separar por las o:
Hell
W
rld

lunes, 19 de noviembre de 2012

INVESTIGACION DE AJAX


INVESTIGACION DE AJAX
REFERENCIAS:

Sirve para crear aplicaciones interactivas las cuales se ejecutan en el cliente se puden realizar cambios en las paginas sin que estas deban recargarse
Las funciones de llamada del AJAX se realizan en el JavaScript
El acceso a los datos se realiza mediante : XMLHttpRequest.
Los motores no entienden javascript por lo que no son almacenadas en los historiales
No puede volver a la pagina anterior.
CODIGO PARA MANDAR DATOS con GET :
conexion1.open('GET','pagina1.php?puntaje='+voto+'&nombre='+nom, true);
PASAR DATOS CON POST:
Hay varios puntos a tener en cuenta para cuando codificamos los datos para el envío por el método POST:
  1. Cuando llamamos al método open del objeto XMLHttpRequest como primer parámetro indicamos el string 'POST'
  conexion1.open('POST','pagina1.php', true);
 
  1. Llamamos al método setRequestHeader indicando que los datos a enviarse están codificados como un formulario.
  conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  1. Llamamos al método send del objeto XMLHttpRequest pasando los datos:
conexion1.send("nombre=juan&clave=z80");
Podemos concatenar datos extraidos de un formulario y enviarlos a través del método send.

JAVASCRIPT


INVESTIGACION de JAVA SCRIPT:
Javascript es diferente a  java tienen semánticas y propósitos diferentes tiene sintaxis parecida al C. La utilización este mejora la interfaz con el usuario y paginas web dinámicas. Surge para extender las capacidades del html. Sus comandos los analiza el HTML cuando deben ser ejecutados los comandos por eso es un lenguaje embebe.
Ejemplo:
<html>
<head>
</head>
<body>
<script language="javascript">
document.write('Hola Mundo');
</script>

</body>
</html>
Este código es el que inicializa el javascript:
<script language="javascript">
</script>

Para imprimir datos es el comando write
document.write('Hola Mundo'); son olvidar que la información debe ir entre comillas simples
EL JAVASCRIPT es sensible a MAYUSCULAS y minúsculas.
OTROS EJEMPLOS:
Acceder al elemento HTML con el id especificado y cambiar su contenido:
<html>
<html>
<body>

<h1>My First Web Page</h1>

<p 
id="demo">My First Paragraph</p>

<script>
document.getElementById("demo").innerHTML="My First JavaScript";
</script>


</body>
</html>
2.- El siguiente ejemplo escribe un elemento <p> directamente en la salida de documentos HTML:
<html>
<html>
<body>

<h1>My First Web Page</h1>

<script>
document.write("<p>My First JavaScript</p>");
</script>

</body>
</html>
3.- MOSTRAR ADVERTENCIA

<html>
<body>

<h1>My First Web Page</h1>

<p>My First Paragraph.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
document.write("Oops!
The document disappeared!");
}
</script>


</body>
</html>

CODIGO PHP PARA VER FECHA ACTUAL PC


CODIGO:

<html>
<head>
<body>
<titlle>
<h1>
<La Fecha Actual de la Pc es :>
<h2>
</tittle>
</head>
<?
Print DATE ( “ d/m/y ”);
?>
<body>
</html>

miércoles, 14 de noviembre de 2012

ORQUESTACION DE SERVICIOS WEB y EL MODELO LINDA


ORQUESTACION DE SERVICIOS WEB
MODELO LINDA
SERVICIOS WEB:
Un servicio web es un sitio en la web que nos ofrece la posibilidad de realizar una o múltiples tareas a través de él. Mientras que con un programa común, todas las tareas se realizan en nuestro equipo, cuando utilizamos un servicio web lo que hacemos es dar las instrucciones a realizar y recibir el resultado. Y esa tarea se realiza en otra pc.
Para usar un servicio web, todo lo que tenemos que hacer es entrar a su dirección por medio de nuestro navegador. Sin embargo, existen programas que nos permiten usar servicios concretos sin necesidad del navegador, sólo con ellos y una conexión a Internet. Un programa así, recibe el nombre de cliente.
Servicios web hay muchos, y cada vez se están apareciendo más. Hoy día, podemos hacer casi cualquier cosa empleando tan sólo un navegador para acceder a un servicio: retocar imágenes, editar vídeos, crear hojas de cálculo, etc.
Para la utilización de servicios web es necesario estandarizar la programación con xml. El propósito de un servicio web es dar apoyo a la programación de software grandes como detallados (pequeños).


grafico de interoperación de los servicios web


ORQUESTACION DE UN SERVICIO WEB:
La orquestación de servicios web se basa mas en enfocarse en la actividad de un solo usuario teniendo en cuenta como un director no hay q confundir con coreografía de servicio web que mas se basa en la interacción de los usuarios. Gracias a la orquestación se puede saber  que servicio web se puede utilizar en que momento determinado teniendo en cuenta entradas y salidas


Resumiendo las facilidades de manejar este lenguaje tenemos:
§  Un mecanismo de correlación de mensajes basado en propiedades.
§  Variables del tipo XML y WSDL.
§  Un modelo de lenguaje extensible de componentes para permitir escribir expresiones y consultas (queries) en múltiples lenguajes: BPEL soporta Xpath 1.0 predeterminadamente.
§  Construcciones de programación estructurada incluyendo "if-then-elseif-else", "while", "sequence" (posibilita la ejecución de comandos en orden) y "flow" (posibilita la ejecución de comandos en paralelo).
§  Un sistema de ámbito (scoping) que permite el encapsulamiento de lógica con variables localesmanejadores de fallo, manejadores de compensación y manejadores de eventos.
§  Ámbitos serializados para controlar los accesos a las variables.
OBJETIVOS DEL USO DE SERVICIOS WEB
Definir procesos de negocio utilizando un lenguaje basado en XML.. Definir una serie de conceptos de orquestación de servicios Web que pretenden ser usados por vistas internas o externas de un proceso de negocio. Proveer sistemas de control jerárquicos Brindar la posibilidad de la creación y terminación implícitas de instancias de procesos, como un mecanismo básico de ciclo de vida. Operaciones avanzadas de ciclo de vida como por ejemplo "suspender" y "continuar" pueden agregarse en futuras versiones para mejorar el manejo del ciclo de vida. Definir un modelo de transacción de largo plazo que se base en técnicas probadas tales como acciones de compensación y ámbito, de tal manera a brindar recuperación a fallos para partes de procesos de negocios de largo plazo.
Todo lo anterior se puede resumir en que se usan los servicios Web como modelo para la descomposición y ensamblaje de procesos usando estándares de servicios Web . para el uso de procesos ya sea diferente su objetivo.
ELEMENTOS:
En un lenguaje BPEL intervienen:
·         Socios.:Son los servicios web invocados por un proceso.
·         Variables. :Son recipientes de los datos de un proceso.
·         Actividades:
Invoke. Invocar una operación en un servicio web.
 Receive. Esperar a la recepción de una invocación sobre una
operación del sitio web.
nReply. Generar la respuesta de una operación
entrada/salida.
Wait. Esperar un tiempo.
Assign. Asignar valores a variables.
Throw. Lanzar excepciones.
Terminate. Terminar la instancia.
Empty. No hacer nada.
·         Manejadores:
De fallos (Fault Handlers). Se ejecutan cuando se lanza una excepción.Similar al manejo de excepciones en lenguajes deprogramación.
 De compensación (Compensationhandlers). Se ejecutan para deshacer una operación.
Relacionados con el tratamiento de transacciones.
De eventos. Se ejecutan cuando se recibe un mensaje particular o se produce una
determinada alerta.

MODELO LINDA:

Es un modelo de comunicación asincrónica entre procesos compartiendo datos (metiendo y sacando datos de un espacio) q recibe el nombre de tuplas las cuales están listadas, separadas por comas y encerradas entre parentesis
 Ejemplo de tuplas
("Nueva York","Los Angeles",2001/12/14,media-mañana)
(veh´ıculo1,42.46583,-2.42716)
("Miguel Cervantes","El Quijote")
(vuelo,Madrid,Londres,10:00,12:00)
Se utiliza para modelos abiertos y cerrados. Se basa en comandos que dicen al servicio web como usar la tupla:

COMUNICACIÓN ASINCRONICA: Es cuando los procesos se comunican enviando o recibiendo mensajes a través de canales ( donde se ejecuta el programa). LINDA lo que hace es que le da la opción al que recibe la información de escoger lo que va a recibir es decir leo solo determinados mensajes ya que solo quiero algunos ya que no me interesan todos.

CARACTERISTICAS DEL MODELO LINDA:
Es un lenguaje de coordinación basado en un espacio lógico de memoria compartida
( TUPLAS).
Los procesos se coordinan introduciendo tuplas en el espacio, retirándolos de manera selectiva y consultado la existencia de tuplas en ese espacio.
TUPLAS Son listas sin anidamientos.

OPERACIONES BASICAS SOBRE TUPLAS:
write(t)   (out)
Š t es una tupla; el proceso deposita la tupla y sigue (no bloqueante)
 take(p)     (in)
Š p es un patrón; el proceso se bloquea hasta que el espacio de tuplas le asigna una que corresponda al patrón. la tupla es quitada del espacio de tuplas
Read(p)     (rd)
Š versión del “take” en que la tupla que le es asignada no se elimina del espacio de tuplas puede haber varios read simultáneos

CONCLUSIONES:
BPEL sigue las ideas básicas de los sistemas de gestión de flujos, y las aplica para la orquestación de Servicios Web.es también bastante próximo a JAVA. Las implementaciones existentes compilan los flujos a JAVA. Está pensado para que los procesos sean  creados gráficamente  ya que crearlos directamente en XML no es factible para procesos complejos EL modelo linda colabora para que el usuario pueda escoger que tupla utilizar de todo un conjunto ya que puede estar compartiendo el mismo espacio de almacenaje de tuplas al que acceden otros procesos.

Bibliografia:
http://iaaa.cps.unizar.es/docencia/SWD/IV.I.3.ModeloCoordinacionLinda.pdf
http://www.tic.udc.es/~fbellas/teaching/adoo-2003-2004/Tema6Apartado6.2.pdf