PROGRAMACION II


Arquitectura cliente servidor

la arquitectura cliente servidor consiste en un cliente que ralizapeticiones a un servidor el cual le devuelve una respuesta pero tambien multiples clientes pueden enviar peticiones a un rervidor para que este les envie las respuestar correspondientes lo cual es mas probechoso

El lenguaje HTML

HTML es un lenguaje de marcado que se utiliza para el desarrollo de páginas de Internet. Se trata de la sigla que corresponde a HyperText Markup Language, es decir, Lenguaje de Marcas de Hipertexto, que podría ser traducido como Lenguaje de Formato de Documentos para Hipertexto. Este se caracteriza tambien por el uso de etiquetas, atributois y elementos

ETIQUETAS

La estructura básica de un documento HTML incluye etiquetas, que rodean el contenido y significado se aplican a él. Para cerrar la etiqueta solo es el mismo nombre de la etiqueta anticipado por / aun que no todas las etiquetas tienen etiqueta de cierre. Ejemplo

<html>
<body>
This is my first web page
</body>
<html>

aqui se muestra una lista de las etiquetas basicas de HTML5

Elementos de raiz
Etiqueta Descripcion
HTML engloba todo el documento
HEAD delimita el encabezado del documento
TITLE título del documento (se muestra en la pestaña del navegador)
BASE URI base para direcciones relativas
Link enlace a otros archivos (hoja de estilo, etc.)
META metainformación sobre el documento
STYLE hoja de estilo incluida en el documento
BODY delimita el cuerpo del documento
H1 a H6 encabezado (de nivel 1 a 6)
P parrafo
HR separador
DIV divicion
BR salto de linea
A hiperenlace
STRONG importante
EM enfacis
SUB subindice
SUP superindice
Q cita
IMG imagen
OL ista rdenada
UL lista no ordenada
LI elemento de lista (ordenada o no ordenada)
TABLE tabla
TR fila
TD celda
TH celda de cabecera
COL columna

ATRIBUTOS

Etiquetas también pueden tener atributos, que son bits adicionales de información. Los atributos aparecen dentro de la etiqueta de apertura y sus valores de sentarse dentro de las comillas. Se ven algo parecido. Llegamos a través de etiquetas con atributos más adelante.

<tag attribute="value"> Margarine</tag>.

ELEMENTOS

Etiquetas no suelen marcar mucho más que el principio y el final de un elemento. Los elementos son los bits que componen las páginas web. Dirías, por ejemplo, que todo lo que está en el medio (e incluye) el y etiquetas del elemento body. Como otro ejemplo, mientras que "" y "" son etiquetas, "" es un elementodel título.

<body></body>
<title></title>
<title>Rumple Stiltskin</title>

Los Dominios

Los dominios son los nombres que identifica a los sitios web, estosse componen normalmente de tres partes:

  • www (World Wide Web)
  • Nombre de la organizcion
  • Tipo de organizacion los cuales pueden ser .com .edu .org .net entre otros

Servidor Apache en Centos 6

Servidor Apache

El servidor Apache HTTP , también llamado Apache, es un servidor web HTTP de código abierto para la creación de páginas y servicios web. Es un servidor multiplataforma, gratuito, muy robusto y que destaca por su seguridad y rendimiento.

centos 6

Cuando contratamos un servidor a nuestro proveedor de servicios, podemos elegir el sistema operativo, la distribución y la configuración inicial. En nuestro caso optaremos por un servidor Linux con una distribución de CentOS 6.

Los sistemas operativos para empresas deben cumplir con ciertos requisitos. Para algunos, por ejemplo, es esencial que el software vinculado a la administración del sistema cuente con una oferta de soporte por parte del equipo de desarrollo o del proveedor. Solo de esta forma es posible garantizar permanentemente que el software sea optimizado regularmente, se corrijan errores, esté protegido contra malware y se detecten nuevas vulnerabilidades. De la misma forma, la compatibilidad regresiva, es decir, asegurar la estabilidad de las interfaces entre el sistema operativo y los programas, es fundamental para el funcionamiento constante de las aplicaciones utilizadas en el entorno corporativo. Una de las soluciones empresariales de código abierto más populares en el sector web es la distribución Linux CentOS.

Protocolo HTTP

HTTP es el acrónimo de Hypertext Transfer Protocol (en español protocolo de transferencia de hiper texto). HTTPS es igual pero añadiéndole "Seguro". Estos dos protocolos se usan para lo mismo, la transferencia de datos. La diferencia básica entre ambos es la forma en la que viajan los datos. Si los datos son transferidos mediante HTTP, estos viajan en claro y son accesibles para cualquiera que intercepte la comunicación. En cambio, el protocolo HTTPS usa una conexión segura mediante un cifrado SSL y por tanto los datos viajan de un modo seguro de un lugar a otro

Dicho de otro modo SSL funciona así:

  • El navegador intenta conectarse a un sitio protegido con SSL.
  • El navegador solicita que el servidor web se identifique.
  • El servidor envía una copia de su certificado SSL al navegador.
  • El navegador comprueba si el certificado SSL es de confianza. Si es así, envía un mensaje al servidor.
  • El navegador comprueba si el certificado SSL es de confianza. Si es así, envía un mensaje al servidor.
  • El servidor devuelve un acuse de recibo firmado digitalmente para comenzar una sesión SSL cifrada.
  • Los datos cifrados se comparten entre el navegador y el servidor

Antes de configurar los rervidores ejcutar los siguiete comandos:

  • $su esto para entrar como superusuario por
    lo cual aparecera con el caracter #
  • #yum install -y update
  • # yum -y groupinstall "Development Tools"
  • # yum -y install httpd mysql mysql-server
  • # rpm -qa | grep httpd
  • # rpm -qa | grep mysql
  • # rpm -qa | grep perl

Iniciar servidor apache

Apache es el Servidor Web más utilizado, líder con el mayor número de instalaciones a nivel mundial es un proyecto de código abierto y uso gratuito, multiplataforma (hay versiones para todos los sistemas operativos más importantes), muy robusto y que destaca por su seguridad y rendimiento.

para iniciar apache usamos el siguiente comando:
# service httpd start
y para parar el servicio usamos este comando:
# service https stop

CGI

CGI significa Common Gateway Interface ("Interfaz de Entrada Común"), o lo que es lo mismo, Application Programming Interface. CGI no es ningún lenguaje de programación, sino una API de servidor web. Se trata de un sistema de comunicación que le dice al servidor web cómo enviar y recibir datos de una aplicación de servidor a un cliente. Esto permite a los servidores usar aplicaciones de servidor para realizar funciones concretas que añaden mayor interactividad a los sitios web, como formularios, acceso a bases de datos, login de usuarios, chats, etc. Fue una de las primeras formas realizar sitios web dinámicos en Internet (actualmente se utiliza una variante mucho más rápida, Fast-CGI).

La mayoría (o todos) los servidores web se pueden configurar para ejecutar una aplicación o programa CGI (utilizo programa o aplicación CGI indistintamente). Esto significa que al recibir una petición, el servidor reenviará los datos a un programa CGI específico, configurando algunas variables de entorno y ordenando los parámetros para que el programa pueda saber dónde y qué buscar. Los programas CGI se ejecutan en el servidor web en cualquier lenguaje que pueda procesar variables de entorno y standard input (stdin) y escribir en standard output (stdout).

PHP

PHP está enfocado principalmente a la programación de scripts del lado del servidor, por lo que se puede hacer cualquier cosa que pueda hacer otro programa CGI, como recopilar datos de formularios, generar páginas con contenidos dinámicos, o enviar y recibir cookies. Aunque PHP puede hacer mucho más.

Existen principalmente tres campos principales donde se usan scripts de PHP.

  • Scripts del lado del servidor. Este es el campo más tradicional y el foco principal. Son necesarias tres cosas para que esto funcione: el analizador de PHP (módulo CGI o servidor), un servidor web y un navegador web. Es necesario ejecutar el servidor con una instalación de PHP conectada. Se puede acceder al resultado del programa de PHP con un navegador, viendo la página de PHP a través del servidor. Todo esto se puede ejecutar en su máquina si está experimentado con la programación de PHP.
  • Scripts desde la línea de comandos. Se puede crear un script de PHP y ejecutarlo sin necesidad de un servidor o navegador. Solamente es necesario el analizador de PHP para utilizarlo de esta manera. Este tipo de uso es ideal para scripts que se ejecuten con regularidad empleando cron (en *nix o Linux) o el Planificador de tareas (en Windows). Estos scripts también pueden usarse para tareas simples de procesamiento de texto.
  • Escribir aplicaciones de escritorio. Probablemente PHP no sea el lenguaje más apropiado para crear aplicaciones de escritorio con una interfaz gráfica de usuario, pero si se conoce bien PHP, y se quisiera utilizar algunas características avanzadas de PHP en aplicaciones del lado del cliente, se puede utilizar PHP-GTK para escribir dichos programas. También es posible de esta manera escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensión de PHP, no disponible en la distribución principal.

El lenguaje PERL

Perl es un lenguaje que hereda ciertas estructuras de los intérpretes de comandos de UNIX, especialmente el csh, y de otras utilidades estándar, como awk y sed. Aparte de esto, está diseñado para hacer todo lo que hacen cualquiera de ellos y todos ellos juntos, y la mayoría de las veces de forma más simple, comprensible y fácil de depurar (aunque algunas veces no muy fácil de entender). Perl es un lenguaje interpretado, aunque en realidad, el intérprete de Perl, como todos los intérpretes modernos, compila los programas antes de ejecutarlos. Por eso se habla de scripts, y no de programas, concepto referido principalmente a programas compilados al lenguaje máquina nativo del ordenador y sistema operativo en el que se ejecuta.

En general, los programas en Perl se ejecutan en el servidor, como todos los programas CGI, a diferencia de otros programas ejecutados por el cliente (generalmente un navegador como el Internet Explorer de Microchof o el Navigator), como aquellos escritos en JavaScript o Java. Existen además extensiones al Apache (mod_perl) que permiten ejecutar directamente programas en Perl desde el servidor de HTTP.

Base de Datos

la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.
Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.

MYSQL

MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual: Licencia pública general/Licencia comercial por Oracle Corporation y está considerada como la base datos de código abierto más popular del mundo, y una de las más populares en general junto a Oracle y Microsoft SQL Server, sobre todo para entornos de desarrollo web.

Java Script

JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.

Espacio del núcleo y espacio de usuario

La mayoria de los sistemas operativos estan diseñados sobre un modelo de capas, es decir, esta la capa de presentacion, sistema de archivos, kernel, etc. Solo los procesos del nucleo (kernel) tienen el control total sobre el hardware del computador (espacialmente sobre la CPU). Los demas procesos son llamados de usuarios y no tienen privilegios directos sobre el hard y demas recursos del sistema (ej: determinados archivos) , entonces cada vez que un proceso de usuario require una accion que requiere ciertos privilegios tiene que llamar a un proceso del kernel (mejor conocido como llamada al sistema). Esta operacion requiere mas tiempo puesto que el proceso de usuario tiene que llamar al proseso del kernel y este tiene que devolverle algo (ya sea que no se pudo hacer la operacion o lo que sea). Los procesos del nucleo al tener acceso directo hacen su ejecucion mas rapidamente.

¿Qué es un módulo de núcleo?

Por lo tanto, desea escribir un módulo de núcleo. Sabes, C, has escrito algunos programas normales para que se ejecuten como procesos, y ahora quieres llegar a donde está la acción real, a donde un solo puntero puede borrar tu sistema de archivos y un volcado de núcleo significa un reinicio. ¿Qué es exactamente un módulo kernel? Los módulos son piezas de código que pueden cargarse y descargarse en el kernel a pedido. Extienden la funcionalidad del kernel sin la necesidad de reiniciar el sistema. Por ejemplo, un tipo de módulo es el controlador de dispositivo, que permite al núcleo acceder al hardware conectado al sistema. Sin los módulos, tendríamos que construir núcleos monolíticos y agregar una nueva funcionalidad directamente en la imagen del núcleo. Además de tener núcleos más grandes, esto tiene la desventaja de requerirnos reconstruir y reiniciar el núcleo cada vez que queremos una nueva funcionalidad.

¿Cómo se introducen los módulos en el núcleo?

Puede ver qué módulos ya están cargados en el kernel ejecutando lsmod , que obtiene su información leyendo el archivo / proc / modules .
¿Cómo estos módulos encuentran su camino hacia el kernel? Cuando el kernel necesita una característica que no reside en el kernel, el demonio del módulo del kernel kmod execs modprobe para cargar el módulo. Modprobe pasa una cadena en una de dos formas:

  • Un nombre de módulo como softdog o ppp .
  • Un identificador más genérico como char-major-10-30 .
Si modprobe recibe un identificador genérico, primero busca esa cadena en el archivo /etc/modprobe.conf .Si encuentra una línea de alias como:

alias char-major-10-30 softdog

sabe que el identificador genérico se refiere al módulo softdog.ko .

A continuación, modprobe examina el archivo /lib/modules/version/modules.dep para ver si se deben cargar otros módulos antes de que se cargue el módulo solicitado. Este archivo es creado por depmod -a y contiene dependencias de módulo. Por ejemplo, msdos.ko requiere que el módulo fat.ko ya esté cargado en el kernel. El módulo solicitado depende de otro módulo si el otro módulo define los símbolos (variables o funciones) que utiliza el módulo solicitado.

Por último, modprobe utiliza insmod para cargar primero los módulos de requisitos previos en el kernel, y luego el módulo solicitado. modprobe dirige insmod a / lib / modules / version / , el directorio estándar para módulos. La intención de insmod es ser bastante tonta acerca de la ubicación de los módulos, mientras que modprobe es consciente de la ubicación predeterminada de los módulos, sabe cómo averiguar las dependencias y cargar los módulos en el orden correcto. Entonces, por ejemplo, si quisieras cargar el módulo msdos, tendrías que ejecutar:

insmod /lib/modules/2.6.11/kernel/fs/fat/fat.ko
insmod /lib/modules/2.6.11/kernel/fs/msdos/msdos.ko

o:
modprobe msdos

Lo que hemos visto aquí es: insmod requiere que le pases la ruta de acceso completa e inserte los módulos en el orden correcto, mientras que modprobe solo toma el nombre, sin ninguna extensión, y descubre todo lo que necesita saber al analizar / lib /modules/version/modules.dep . Las distribuciones de Linux proporcionan modprobe, insmod y depmod como un paquete llamado module-init-tools. En versiones anteriores ese paquete se llamaba modutils. Algunas distribuciones también configuran algunos envoltorios que permiten que ambos paquetes se instalen en paralelo y hacen lo correcto para poder manejar los kernels 2.4 y 2.6. Los usuarios no deberían tener que preocuparse por los detalles, siempre y cuando estén ejecutando versiones recientes de esas herramientas. Ahora ya sabes cómo entran los módulos en el kernel. Hay un poco más en la historia si desea escribir sus propios módulos que dependen de otros módulos (los llamamos "módulos de apilamiento"). Pero esto tendrá que esperar un futuro capítulo. Tenemos mucho que cubrir antes de abordar este problema de nivel relativamente alto.

Programacon orientada a objetos

  • clases: Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables -el estado, y métodos apropiados para operar con dichos datos -el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase.
  • ambito(Public, private,protevted): En programación de computadoras, el ámbito es el contexto que pertenece a un nombre dentro de un programa. El ámbito determina en qué partes del programa una entidad puede ser usada.
  • interfaces: Una interfaz es un conjunto de métodos abstractos y de constantes cuya funcionalidad es la de determinar el funcionamiento de una clase, es decir, funciona como un molde o como una plantilla. Al ser sus métodos abstractos estos no tiene funcionalidad alguna, sólo se definen su tipo, argumento y tipo de retorno.
  • objetos: un objeto es una unidad dentro de un programa de computadores que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución.
  • instancias: En el momentoque el objeto adquiere valores definidos se vuelve una instancia
  • atributos Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables.
  • polimorfismo: En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación.
  • herencia simple: La herencia simple consiste en cuando una clase, hereda a una clase hijo, y a solo una le hereda sus atributos, es igual al concepto general de herencia, con la limitante de solo poder heredar de una clase padre a una clase hijo, y solo a una clase hijo
  • herencia multiple: Consiste en la utilización de las propiedades de una clase a varias clases mas, lo que significa que en esta propiedad una sola clase padre puede heredarle atributos, u objetos de esta a varias clases hijo sin ninguna limitación entre ellas.

Bases de datos MySQL

Instalar MySQL

#yum install httpd mysql mysql-server

Iniciar servicio

service mysqld start

Entrar

#mysql -u root -p

lista de comandos

#\h

mostrar bases de datos

->show databases

usar base de datos

->use DataBaseName

mostrar y describir tablas

->show tables ->describe TableName

Crear base de datos

create DataBaseName

Crear tabla ejemplo agenda

CREATE TABLE NOMBRE_TABLA(
CONTACTO_ID INT(10),
NOMBRE VARCHAR(20),
APELLIDOS VARCHAR(50),
EMAIL VARCHAR(50),
FECHA_NACIMIENTO DATE,
CONSTRAINT PK_CONTACTO PRIMARY KEY (CONTACTO_ID)
)ENGINE=InnoDB;

Java SE Development Kit

Java Development Kit (JDK) es un software que provee herramientas de desarrollo para la creación de programas en Java. Puede instalarse en una computadora local o en una unidad de red. En la unidad de red se pueden tener las herramientas distribuidas en varias computadoras y trabajar como una sola aplicación.

Configurar Java Development Kit jdk1.8.0_211

  1. descargar jdk1.8.0_211 de la pagina oficial de oracle en extencion tar.gz
  2. descomprimir el archivo en la carpeta de raiz /opt luego escribir los comandos...
  3. alternatives --install /usr/bin/java java /opt/jdk1.8.0_211/bin/java 2

    alternatives --config java

  4. aparecera la siguiente opcion y en esta seleccionar 1 osea el jdk version 1.8.0_211
  5. There is 1 program that provides 'java'.

    -----------------------------------------------

    *+ 1 /opt/jdk1.8.0_211/bin/java

    alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_211/bin/jar 2

    alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_211/bin/javac 2

    alternatives --set jar /opt/jdk1.8.0_211/bin/jar

    alternatives --set javac /opt/jdk1.8.0_211/bin/javac

  6. Compruebe la versión instalada de Java en su sistema usando el comando java -version que en la consola se veria asi.
  7. [root@localhost opt]# java -version

    java version "1.8.0_211"

    Java(TM) SE Runtime Environment (build 1.8.0_211-b11)

    Java HotSpot(TM) 64-Bit Server VM (build 25.211-b11, mixed mode)

    [root@localhost opt]# javac -version

    javac 1.8.0_211

  8. Revisar version de javac asi
  9. [root@localhost opt]# javac -version

      Apache Tomcat

      Apache Tomcat (también llamado Jakarta Tomcat o simplemente Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Oracle Corporation (aunque creado por Sun Microsystems).

      Configurar Apache Tomcat

      Antes de comenzar deves tener instalado y configurado Java SE jdk, luego descargar Tomcat v8.5.41.tar.gz y descomprimirlo en la carpeta de raiz /opt

      1. # java -version
      2. # javac -version
      3. #cd apache-tomcat-8.5.41/
      4. # cd bin/
      5. ./startup.sh
      6. y listo ir al navegador e ingresar a la direccion localhost:8080