Está en la página 1de 5

Arquitectura software en capas

Tema 6:
Arquitectura Web
Multicapa

 genera

pantallas,
 crea cdigo formato.



1

(Dibujo de arquitectura de Ebay)

Arquitectura sistema en capas


Capa Cliente:
 Cliente:

genera pantallas:
cdigo HTML.
 Servidor: crea cdigo HTML.


Capa aplicacin:
 Servidores

que ejecutan
aplicaciones: accede a datos,
crea campos para HTML.

Capa Lgica negocio:


objetos aplicacin que
generan, manipulan y
organizan infomacin.
Capa Datos: almacenes de
datos: ficheros o bbdd. 2

Arquitecturas Web Multicapa




Capa Presentacin:

Arquitectura 2 capas (Web + aplicacin):


 Apache

+ TOMCAT.

Arquitecturas 3 capas(Web + aplicacin +datos):


 Datos

en ficheros (Bookstore).
 Datos en DDBB (BookStore con BBDD, LAMP).


Arquitecturas 4 capas (Web + Servlets + Beans


+ datos):
 J2EE

(Ebay,.)

Capa Datos:
 Servidores

(Dibujo de architectura de Ebay)

que almacenan
3
datos y ficheros.

Apache vs. servidor Java (rep)


Apache

Incovenientes

Ventajas

Acceso

Acceso

a
aplicaciones no
eficiente (CGI) o
no robusto (API)

2 capas: Apache + TOMCAT (I)


Capa Web:
Capa Aplicacin:
Sirve contenido esttico
Sirve contenido dinmico Control de Acceso y HTTPS

a ficheros

Capa Aplicacin

eficiente.
protocolo seguro
HTTPS eficiente.

<Connector className=
"org.apache.jk.server.JkCoyoteHandler"
port="8009" minProcessors="5
maxProcessors="75 protocol=AJP/1.3>

Context
Aplic

Tomcat
JK

Worker1

Web Client:
Iexplorer,
FireFox

Linux

GET /index.html HTTP1.0


Read(file)

Servlet Interface

Output
MSPservlet.doGet()

Content of index.html

GET /MSPservlet

GET /MSPservlet

Conexin AJP
Output of Servlet
Output of Servlet

Capa de Datos, sin BBDD

Configuracin Apache
Fichero httpd.conf:

LoadModule jk_module libexec/mod_jk.so


AddModule mod_jk.c
JkWorkersFile .conf/workers.properties
JkMount /examples/* worker1

Datos en ficheros y variables.


Aplicacin lee ficheros a travs de SO.
Server host
Client host
Tomcat

Fichero Workers.properties:

Aplicacin /Examples/

Files

Java Virtual Machine

2 capas: Apache + TOMCAT (II)


fichero server.xml:

Client host

Apache

Servlet

Servidor Lectura ficheros Aplicaciones JAVA.


no eficiente.
JAVA
Aplicaciones multihilo
Protocolo HTTPS e integradas en
servidor-> bastante
no eficiente.
eficiente.
5

Configuracin TOMCAT

Capa Web:

Tomcat

worker.worker1.type=ajp13
worker.worker1.host=host2.unavarra.es
worker.worker1.port=8009

Web Client:
Iexplorer,
FireFox

Servlet
Java Virtual Machine
Sistema Operativo

GET /MSPservlet

Java Virtual Machine

MSPservlet.doGet()

Capa Web

host2.unavarra.es

Aplicacin /Appli2

AJP
Context
Aplic

Tomcat
JK

FileOutputStream(file);
Read();
Output of Servlet

Apache
Worker2

Java Virtual Machine


host1.unavarra.es

AJP

mod_jk.so

Output of Servlet

Linux
www.unavarra.es

Objetos acceso Datos, sin BBDD

Aplicacin Web en Java: ejemplo


http://localhost:8080/bookstore/catalog

public class CatalogServlet extends HttpServlet {


private BookDB bookDB;
public void init() throws ServletException {
bookDB =
(BookDB)getServletContext().getAttribute("examples.bookstore.database");
Ejemplo
if (bookDB == null) {
BookStore
bookDB = BookDB.instance();
getServletContext().setAttribute("examples.bookstore.database", bookDB);
}
public void doGet (HttpServletRequest request,HttpServletResponse response)
{..
out.println("<br> &nbsp;" + "<h3>Please choose from our selections:</h3>" + "<center> <table>");
Collection c = bookDB.getBooks();
Iterator i = c.iterator();
public class BookDB {
while (i.hasNext()) {
private HashMap database;
BookDetails book = (BookDetails)i.next();
bookId = book.getBookId();
public BookDB () {
out.println("<tr>" + .
BookDetails book;
}
database = new HashMap();
}
book = new BookDetails("201", "Duke", "", "My Early Years:
Growing up on *7",(float)10.75, 1995, "What a book.");
database.put(new Integer(201), book);
}
public Collection getBooks() {
ArrayList al = new ArrayList(database.values());
return Collections.sort(al);
}
9

Objetos acceso Datos, con BBDD

Capa de Datos, con BBDD





Datos en BBDD.
Aplicacin hace queries a travs de librera (JDBC, DAO,..)
Server host
MySQL
daemon

Web Client:

Servlet +
JDBC client

Client hostIexplorer,

Tomcat

FireFox

Java Virtual Machine


Sistema Operativo

GET /MSPservlet
MSPservlet.doGet()
JDBCConnection();
rs=executeQuery();
Output of Servlet

10

public class CatalogServlet extends HttpServlet {


private BookDB bookDB;
public void init() throws ServletException {
bookDB =
(BookDB)getServletContext().getAttribute("examples.bookstore.database");
if (bookDB == null) {
bookDB = BookDB.instance();
getServletContext().setAttribute("examples.bookstore.database", bookDB);
}
public void doGet (HttpServletRequest request,HttpServletResponse response)
{..
out.println("<br> &nbsp;" + "<h3>Please choose from our selections:</h3>" + "<center> <table>");
Collection c = bookDB.getBooks();
Iterator i = c.iterator();
while (i.hasNext()) {
BookDetails book = (BookDetails)i.next();
public class BookDB {
bookId = book.getBookId();
private EntityManager em;
out.println("<tr>" + .
}
public BookDB () {
}
JDBCConnection();

CLASE ACCESO DATOS


CON MISMO INTERFACE,
Output of Servlet

Implementacin usa JDBC.


11

Datos en BBDD.

Ejemplo
BookStore
Avanzado

}
public List getBooks() throws BooksNotFoundException {
try {
return rs=executeQuery("SELECT bd FROM Book bd
ORDER BY bd.bookId").getResultList();
}

12

Servidores de Datos: BBDD (I)




Arquitectura 3 capas: Web + aplicacin + Datos.

Server host

DDBB host
MySQL
daemon

Servlet +
JDBC client

Servidores de Datos: BBDD (II)




Server1 host

Web Client:

Client hostIexplorer,

Tomcat

Servlet1 +
JDBC client

FireFox

DDBB host

Java Virtual Machine


Sistema Operativo

BBDD compartida por varias aplicaciones y/o


servidores de aplicacin.

MySQL
daemon

Sistema Operativo

Tomcat

Java Virtual Machine

Client hosts

Sistema Operativo

GET /MSPservlet
MSPservlet.doGet()

Server2 host
Sistema Operativo

JDBCConnection();
rs=executeQuery();

Servlet2 +
JDBC client

Output of Servlet

Output of Servlet

Tomcat

Java Virtual Machine


Sistema Operativo
13

Plataforma LAMP.


14

RMI en Aplicaciones Servidor

Linux + Apache + Perl + MySQL:

 Mod_perl

(API) or perl.exe (CGI).


 MySQL library or client.

Servlets: genera pagina web + cliente RMI.


Servidor RMI: guarda objetos.
Server2

Server1

Server host
MySQL
daemon

Object
Libreria1

Client host
Script

Internet

Servidor RMI

Apache

Client host

ServletComprar
+ RMI Client
Tomcat

Web Client:
Iexplorer,
FireFox

Java Virtual Machine

MySQL + Interpret

GET /ServletComprar(libro1)
Linux

ServletComprar.doPost(libro1)

GET /Wikka.php?HomePage
/Wikka.php?HomePage

libreria1.comprar(libro1)

SQL.connect();
rs=executeQuery();

Output of Wikka.php

Results
Output of Servlet
Output of Wikka.php

15

Output of Servlet
16

Arquitectura de 4 capas (I)

Arquitectura de 4 capas (II)

Datos + Lgica Negocio + Web Dinmico+ Web Esttico

Lgica Negocio, Web dinmica distribuida en


servidores independiente.
DDBB1 host

DDBB host
MySQL
daemon

Server3 host
RMI
Object

Server2 host

RMI Server

Servlet +
RMI Client

Java Virtual Machine


Sistema Operativo

MySQL
daemon

Server1 host

Tomcat

RMI
Object1

RMI Server

Server3 host
Servlet1 +
RMI Client

Files
Sistema Operativo

Server1 host

Tomcat
Files

Apache

Java Virtual Machine

Sistema Operativo

Server5 host

Apache

Java Virtual Machine

Java Virtual Machine

Sistema Operativo

Sistema Operativo

Linux

Server4 host

Server2 host

Linux

Sistema Operativo

GET /index.html
InvocarMetodo()
JDBCConnection();
rs=executeQuery();

MSPservlet.doGet()

Read(file) Content

DDBB2 host

GET
/MSPservlet

MySQL
daemon

RMI
Output of Metodo
Output of Servlet

Sistema Operativo

Server6 host
RMI Server
RMI
Object2

Servlet2 +
RMI Client

Tomcat

Java Virtual Machine

Java Virtual Machine

Sistema Operativo

Sistema Operativo

Files

Apache

Linux

Output
17

Arquitectura J2EE en 4 capas





EJB: Entreprise Java Beans

J2EE: Web + Servlets + Beans + Datos


Los beans pueden ser persistentes en BBDD.
Servidor DDBB

Servidor Beans

MySQL
daemon

J2EE container
Bean

Sistema Operativo

EJB son un componente del J2EE de Sun


(una arquitectura de desarrollo muy usada)
 EJB son objetos remotos:


Servidor Servlets
Servlet +
RMI client

Tomcat

Java Virtual Machine

Sistema Operativo

Sistema Operativo

un interface.
 Internamente se invocan por RMI.

Linux

GET /index.html

JDBCConnection();
rs=executeQuery();

 Tienen

Apache
Files

Java Virtual Machine

Bean1.metodo1()

18

MSPservlet.doGet()

Read(file) Content

GET
/MSPservlet

Output of Bean
Output of Servlet
Output
19

EJB son componentes que se instalan en


contenedores de beans:
 Contenedor

J2EE: SunAppserver, JBoss,


 Se instalan, despliegan, etc como servlets.
20

También podría gustarte