Sie sind auf Seite 1von 11

ELEMENTO 1

Programacin Web II

OCTUBRE 2015 - MARZO 2016


GERMAN SAILEMA

PROGRAMACIN POR CAPAS


La programacin por capas es un estilo de programacin en la que el objetivo
primordial es la separacin de la lgica de negocios de la lgica de diseo, un ejemplo
bsico de esto es separar la capa de datos de la capa de presentacin al usuario.

La ventaja principal de este estilo, es que el desarrollo se puede llevar a cabo en varios
niveles y en caso de algn cambio slo se ataca al nivel requerido sin tener que revisar
entre cdigo mezclado. Un buen ejemplo de este mtodo de programacin seria:
Modelo de interconexin de sistemas abiertos
Adems permite distribuir el trabajo de creacin de una aplicacin por niveles, de este

es necesario conocer la API que existe entre niveles.


En el diseo de sistemas informticos actual se suele usar las arquitecturas multinivel o
Programacin por capas. En dichas arquitecturas a cada nivel se le confa una misin
simple, lo que permite el diseo de arquitecturas escalables (que pueden ampliarse con
facilidad en caso de que las necesidades aumenten). (synergy-esolutions.com, s.f.)
El diseo ms en boga actualmente es el diseo en tres niveles (o en tres capas).
Capas o niveles
UNIVERSIDAD TECNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

modo, cada grupo de trabajo est totalmente abstrado del resto de niveles, simplemente

1.- Capa de presentacin: es la que ve el usuario, presenta el sistema al usuario, le


comunica la informacin y captura la informacin del usuario dando un mnimo de
proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Esta
capa se comunica nicamente con la capa de negocio.
2.- Capa de negocio: es donde residen los programas que se ejecutan, recibiendo las
peticiones del usuario y enviando las respuestas tras el proceso. Se denomina capa de
negocio (e incluso de lgica del negocio) pues es aqu donde se establecen todas las
reglas que deben cumplirse. Esta capa se comunica con la capa de presentacin, para
recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al
gestor de base de datos para almacenar o recuperar datos de l.
3.- Capa de datos: es donde residen los datos. Est formada por uno o ms gestor de
bases de datos que realiza todo el almacenamiento de datos, reciben solicitudes de
almacenamiento o recuperacin de informacin desde la capa de negocio.
Todas estas capas pueden residir en un nico ordenador (no sera lo normal), si bien lo
ms usual es que haya una multitud de ordenadores donde reside la capa de presentacin
(son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos
pueden residir en el mismo ordenador, y si el crecimiento de las necesidades lo aconseja
se pueden separar en dos o mas ordenadores. As, si el tamao o complejidad de la base
de datos aumenta, se puede separar en varios ordenadores los cuales recibirn las
peticiones del ordenador en que resida la capa de negocio.
Si por el contrario fuese la complejidad en la capa de negocio lo que obligase a la

realizaran solicitudes a una nica base de datos. En sistemas muy complejos se llega a
tener una serie de ordenadores sobre los cuales corre la capa de datos, y otra serie de
ordenadores sobre los cuales corre la base de datos. (Ruiz, s.f.)

En una arquitectura de tres niveles, los trminos "capas" y "niveles" no significan lo


mismo ni son similares.
El trmino "capa" hace referencia a la forma como una solucin es segmentada desde el
punto de vista lgico:
UNIVERSIDAD TECNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

separacin, esta capa de negocio podra residir en uno o mas ordenadores que

Presentacin/ Lgica de Negocio/ Datos.


En cambio, el trmino "nivel", corresponde a la forma en que las capas lgicas se
encuentran distribuidas de forma fsica. Por ejemplo:

Una solucin de tres capas (presentacin, lgica, datos) que residen en un


solo ordenador (Presentacin+lgica+datos). Se dice, que la arquitectura
de la solucin es de tres capas y un nivel.

Una solucin de tres capas (presentacin, lgica, datos) que residen en


dos ordenadores (presentacin+lgica, lgica+datos). Se dice que la
arquitectura de la solucin es de tres capas y dos niveles.

Una solucin de tres capas (presentacin, lgica, datos) que residen en


tres ordenadores (presentacin, lgica, datos). La arquitectura que la
define es: solucin de tres capas y tres niveles.

Arquitectura software
En Los inicios de la informtica, la programacin se consideraba un arte, debido a la

desarrollando metodologas y frmulas o trucos para conseguir nuestros propsitos. Y a


todas estas tcnicas se les ha dado en llamar Arquitectura Software.
Una Arquitectura Software, tambin denominada Arquitectura lgica, consiste en un
conjunto de patrones y abstracciones coherentes que proporcionan el marco de
referencia necesario para guiar la construccin del software para un sistema de
informacin.

UNIVERSIDAD TECNICA DE AMBATO


FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

dificultad que entraaba para la mayora de los mortales, pero con el tiempo se han ido

La arquitectura software establece los fundamentos para que analistas, diseadores,


programadores, etc. trabajen en una lnea comn que permita alcanzar los objetivos y
necesidades del sistema de informacin.
Una arquitectura software se selecciona y disea con base en unos objetivos y
restricciones. Los objetivos son aquellos prefijados para el sistema de informacin, pero
no solamente los de tipo funcional, tambin otros objetivos como la mantenibilidad,
auditabilidad, flexibilidad e interaccin con otros sistemas de informacin. Las
restricciones son aquellas limitaciones derivadas de las tecnologas disponibles para
implementar sistemas de informacin. Unas arquitecturas son ms recomendables de
implementar con ciertas tecnologas mientras que otras tecnologas no son aptas para
determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura software
de tres capas para implementar sistemas en tiempo real.
La arquitectura software define, de manera abstracta, los componentes que llevan a cabo
alguna tarea de computacin, sus interfaces y la comunicacin ente ellos. Toda
arquitectura software debe ser implementable en una arquitectura fsica, que consiste
simplemente en determinar qu computadora tendr asignada cada tarea de
computacin.
La arquitectura de software, tiene que ver con el diseo y la implementacin de
estructuras de software de alto nivel. Es el resultado de ensamblar un cierto nmero de
elementos arquitectnicos de forma adecuada para satisfacer la mayor funcionalidad y
requerimientos de desempeo de un sistema, as como requerimientos no funcionales,
como la confiabilidad, escalabilidad, portabilidad, y disponibilidad. Kruchten,

Tabla de contenidos

1 Breve resea histrica

2 Modelos o vistas

3 Arquitecturas ms comunes
o

3.1 Bibliografa

4 Vase tambin

UNIVERSIDAD TECNICA DE AMBATO


FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

Philippe

Breve resea histrica


En los aos 1960 ya se acariciaba el concepto de arquitectura software en los crculos de
investigacin (por ejemplo, por Edsger Dijkstra). No obstante, toma popularidad en los
aos 1990 tras reconocerse la denominada crisis del software y como tema de inters de
la incipiente disciplina de la ingeniera del software.
Modelos o vistas
Toda arquitectura software debe describir diversos aspectos del software. Generalmente,
cada uno de estos aspectos se describe de una manera ms comprensible si se utilizan
distintos modelos o vistas. Es importante destacar que cada uno de ellos constituye una
descripcin parcial de una misma arquitectura y es deseable que exista cierto
solapamiento entre ellos. Esto es as porque todas las vistas deben ser coherentes entre
s, evidente dado que describen la misma cosa.
Cada paradigma de desarrollo exige diferente nmero y tipo de vistas o modelos para
describir una arquitectura. No obstante, existen al menos tres vistas absolutamente
fundamentales en cualquier arquitectura:

La visin esttica: describe qu componentes tiene la arquitectura.

La visin funcional: describe qu hace cada componente.

La visin dinmica: describe cmo se comportan los componentes a lo largo del


tiempo y como interactan entre s.

Las vistas o modelos de una arquitectura pueden expresarse mediante uno o varios

los diagramas de estado, los diagramas de flujo de datos, etc. Estos lenguajes son
apropiados nicamente para un modelo o vista. Afortunadamente existe cierto consenso
en adpotar UML (Unified Modeling Language, lenguaje unificado de modelado) como
lenguaje nico para todos los modelos o vistas. Sin embargo, un lenguaje generalista
corre el peligro de no ser capaz de describir determinadas restricciones de un sistema de
informacin (o expresarlas de manera incomprensible).
Arquitecturas ms comunes

UNIVERSIDAD TECNICA DE AMBATO


FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

lenguajes. El ms obvio es el lenguaje natural, pero existen otros lenguajes tales como

Generalmente, no es necesario inventar una nueva arquitectura software para cada


sistema de informacin. Lo habitual es adoptar una arquitectura conocida en funcin de
sus ventajas e inconvenientes para cada caso en concreto. As, las arquitecturas ms
universales sn:

Monoltica. Donde el software se estructura en grupos funcionales muy


acoplados.

Cliente-servidor. Donde el software reparte su carga de cmputo en dos partes


independientes pero sin reparto claro de funciones.

Arquitectura de tres niveles. Especializacin de la arquitectura cliente-servidor


donde la carga se divide en tres partes con un reparto claro de funciones: una
capa para la presentacin, otra para el clculo y otra para el almacenamiento.
Una capa solamente tiene relacin con la siguiente.

Otras arquitecturas menos conocidas son:

En pipeline.

Entre pares.

En pizarra.

Orientada a servicios.

Mquinas virtuales

Cliente-servidor
Esta arquitectura consiste bsicamente en que un programa, el Cliente informtico

Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola
computadora es ms ventajosa en un sistema multiusuario distribuido a travs de una
red de computadoras.
En esta arquitectura la capacidad de proceso est repartida entre los clientes y los
servidores, aunque son ms importantes las ventajas de tipo organizativo debidas a la
centralizacin de la gestin de la informacin y la separacin de responsabilidades, lo
que facilita y clarifica el diseo del sistema.

UNIVERSIDAD TECNICA DE AMBATO


FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

realiza peticiones a otro programa, el servidor, que les da respuesta.

La separacin entre cliente y servidor es una separacin de tipo lgico, donde el


servidor no se ejecuta necesariamente sobre una sola mquina ni es necesariamente un
slo programa.
Una disposicin muy comn son los sistemas multicapa en los que el servidor se
descompone en diferentes programas que pueden ser ejecutados por diferentes
computadoras aumentando as el grado de distribucin del sistema.
La arquitectura cliente-servidor sustituye a la arquitectura monoltica en la que no
hay distribucin, tanto a nivel fsico como a nivel lgico.
Ventajas de la arquitectura cliente-servidor

Centralizacin del control: los accesos, recursos y la integridad de los datos son
controlados por el servidor de forma que un programa cliente defectuoso o no
autorizado no pueda daar el sistema.

Escalabilidad: se puede aumentar la capacidad de clientes y servidores por


separado.

Se reduce el trfico de red considerablemente. Idealmente, el cliente se


comunica con el servidor utilizando un protocolo de alto nivel de abstraccin
como por ejemplo SQL

(Wikipedia.com, 2016)

Nocin bsica de programacin de Sockets


Definicin Socket:
Socket designa un concepto abstracto por el cual dos programas (posiblemente situados
en computadoras distintas) pueden intercambiarse cualquier flujo de datos, usando
descriptores de fichero, existente en la mquina cliente y en la mquina servidora, que
sirve en ltima instancia para que el programa servidor y el cliente lean y escriban la
informacin.
Un socket queda definido por una direccin IP, un protocolo de transporte y un nmero
de puerto.
UNIVERSIDAD TECNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

Diagrama de flujo Servidor:

Arquitectura Cliente/Servidor:
A la hora de comunicar dos programas, existen varias posibilidades para establecer la
conexin inicialmente. Una de ellas es la utilizada aqu. Uno de los programas debe
estar arrancado y en espera de que otro quiera conectarse a l. Nunca da "el primer
paso" en la conexin. Al programa que acta de esta forma se le conoce como servidor.
Su nombre se debe a que normalmente es el que tiene la informacin que sea disponible
y la "sirve" al que se la pida. Por ejemplo, el servidor de pginas web tiene las pginas
web y se las enva al navegador que se lo solcite.
El otro programa es el que da el primer paso. En el momento de arrancarlo o cuando lo
necesite, intenta conectarse al servidor. Este programa se denomina cliente. Su nombre
se debe a que es el que solicita informacin al servidor. El navegador de Internet pide la
pgina web al servidor de Internet.

Tipos de Sockets:
El primer tipo de sockets lo definen los sockets de flujo [Stream sockets]; El otro, los
sockets de datagramas [Datagram sockets]. En ocasiones, a los sockets de datagramas se
les llama tambin "sockets sin conexin". Los sockets de flujo definen flujos de
comunicacin en dos direcciones, fiables y con conexin. Si envas dos tems a travs
del socket en el orden "1, 2" llegarn al otro extremo en el orden "1, 2", y llegarn sin
errores (ej. Telnet, http).

Creacin de Sockets:

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) : este comando crea el socket.


AF_INET : Indica que se usar IP y es valido para las versiones 4 y 6.
SOCK_STREAM :Indica que es un socket de flujo [Stream sockets].
IPPROTO_TCP : Indica que usa TCP para la transmisin de datos.

Manejo direccin IP:


UNIVERSIDAD TECNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

Comandos para la descripcin de Sockets

inet_addr(ipserver) : convierte la direccin IP a notacin decimal estndar de IPv4.

Ordenacin de Bytes:
Existen dos tipos de ordenacin de Bytes:

htons() -- "Host to Network Short " (short de mquina a short de la red)

htonl() -- "Host to Network Long" (long de la mquina a long de la red)

ntohs() -- "Network to Host Short " (short de la red a short de mquina)

ntohl() -- "Network to Host Long" (long de la red a long de mquina)

strcpy(a,b) : copia el string b en el string a.

connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) )


Establece conexin al socket establecido

send( ConnectSocket, bufferenvio, (int)strlen(bufferenvio), 0 )


Enva informacin en el socket conectado.

Recibe informacin desde un socket conectado.

shutdown(ConnectSocket, SD_SEND)
Cancela el envo o recibo de datos en el socket.

closesocket(ConnectSocket)
Cierra el socket indicado.

UNIVERSIDAD TECNICA DE AMBATO


FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

recv(ConnectSocket, recvbuf, recvbuflen, 0)

Bibliografa
Ruiz,

S.

(s.f.).

wikia.

Obtenido

de

http://es.sandramarramirez.wikia.com/wiki/Programaci%C3%B3n_por_Capas
synergy-esolutions.com.

(s.f.).

Obtenido

de

http://synergy-

esolutions.com/index.php/programacion-.html
Wikipedia.com.

(17

de

02

de

2016).

Obtenido

de

UNIVERSIDAD TECNICA DE AMBATO


FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION
CARRERA DE DOCENCIA EN INFORMATICA

Programacin Web II: Programacin por capas

https://es.wikipedia.org/wiki/Arquitectura_de_software

1
0

Das könnte Ihnen auch gefallen