Sistemas Operativos II

Download Report

Transcript Sistemas Operativos II

Tecnologías Web del Lado del
Servidor
M.C. Juan Carlos Olivares Rojas
Proyecto
• Adaptación de nuestro sitio Web (proyecto
anterior) para que se pueda dar de alta, baja,
consulta y modificaciones los clientes.
• Se utilizará AJAX para acceder a la base de
datos, las respuestas deberán estructurarse en
XML utilizando Servicios Web.
Agenda
Introducción
Servicios Web
Base de Datos
JSP/PHP
Introducción
• El comercio electrónico basa su funcionamiento
en una arquitectura cliente servidor como es la
Web.
• El procesamiento en el lado del servidor le da
acceso a mayor capacidad de recursos por lo
que las aplicaciones pueden ser mejoradas.
• Las últimas tendencias en comercio electrónico
implementan SOA.
Software Hoy en Día
• Mito:
programadores
ahora
ya
programan como
de antes.
los
de
no
los
• Herramientas
más
fáciles y productivas
• El software es cada
día más complejo
Solución
SOA
Servicio
Servicio
Servicio
Bus
Servicio
Servicio
Servicio
Arquitectura del Sistema
Desde el Punto de Vista del Usuario
Arquitectura de una Casa
Planta Baja
Planta Alta
Desde el Punto de Vista del Constructor
Arquitectura de Hardware
Arquitectura Windows NT 5.0
Procesos del Sistema
Servicios
Servicio de
Control de
Gestión
LSASS
Windows
SvcHost.Exe
Admon- de Tareas
WinMgt.Exe
WinLogon
User
Mode
Explorer
SpoolSv.Exe
Manejador de
Sesiones
Subistema de
Entornos
Aplicaciones
OS/2
Aplicaciones de los
Usuarios
Services.Exe
POSIX
Subsistema de DLLs
Windows DLLs
NTDLL.DLL
Hilos de
Sistemas
Kernel
Mode
Sistema de Despachador de Sistemas
Windows
USER,
GDI
(interfaces invocables en el modo kernel)
Kernel
Hardware Abstraction Layer (HAL)
Interfaces de Hardware(buses, Dispositivos de E/S , interrupcciones,
intervalos de temporizadores, DMA, control de memoria cache , etc.)
Llamada a
Procesos
Locales
Administrador
De Configuración
(Registro)
Procesos e
Hilos
Memoria
Virtual
Monitor de
Referencias
De Seguridad
Administrador
De Energía
Manejador de
Objetos
Caché del
Sistema de
Archivos
Manejador del
Sistema de
Archivos y
Dispositivos
Administrador
De Plug and Play
Manejador E/S
Manejador
de Gráficos
Arquitectura de un Sistema
Arquitectura de Datos
Almacén de Datos en Copo de Nieve
Arquitectura de Software
Antes 1950’s
hasta 1960’s
Arquitecturas
Monolíticas
1970’s
mediados
1980’s
1980’s
mediados
1990’s
Subrutinas
/Llamadas a
Procedimient
os Remotos
Invocación de
Objetos
Remotos
Mediados1990’s
Comienzo
2000’s
Procesamient
o de
Mensajes
Finales
1990’s
Web
Hoy
Servicios
(SOA)
Mayor Flexibilidad
Línea del Tiempo del Desarrollo de Arquitecturas
Motivación
Casas
Proyecto de PyMES
ARQUITECTURAS SIMPLES
Rentable $
“Casas de Perros”
Proyectos Escolares
SIN ARQUITECTURA
Poco $
Edificios
Grandes Corporativos
ARQUITECTURAS COMPLEJAS
Mucho $$$$
Desarrollo de Software en la Academia
Arquitecturas Empresariales Hoy
Accounting
Product Development
Marketing
Support
Integración Años más Tarde
Accounting
Marketing
•Agilidad
•SOA
Enterprise Service Bus
Product Development
Support
•Servicios
Web
•Middleware
ESB
Servicios
Servicio: Nivel de abstracción
Ejemplo de Servicios en SOA
Cliente
Divisiones
Servicios
Compartidos
Proveedor
Contabilidad
Proceso de Negocio de una Aplicación
¿Qué es SOA?
•
“Conjunto de componentes que pueden ser
invocados, cuyas descripciones de interfaces
se pueden publicar y descubrir”
•
“SOA es un estilo de arquitectura que
promueve descomponer la lógica funcional de
una aplicación en unidades autónomas
denominadas servicios”
De acuerdo al W3C
Características de SOA
Sin SOA
Con SOA
Orientado a Función
Orientado a Procesos
Construido para Durar
Construido para
Cambiar
Ciclos de Desarrollo
Incrementales
Ciclo de Desarrollos
Largos
Aplicaciones Aisladas
Fuerte Acoplamiento
Aplicaciones
Orquestadas
Bajo Acoplamiento
Orientada a Objetos
Orientado a Mensajes
¿Qué es SOA?
CLIENTES
GRUPO EJECUTIVO
PORTAL
BAM
Proceso: Gestión
solicitud crédito
BPM
Crear
cliente
Dashboard,
KPI (Key Performance Indicator)
Realizar
Análisis
crediticio
CRM
SERVICIOS
Crear
Crédito
Validar
Riesgo
Crédito
Riesgo
Desembolsar
crédito
Core Bancario
EIS
EMPLEADOS
¿Qué es SOA?
Adeudos Historial
Crédito
Componetes
de Negocio
Reutilizables
Servicios
Servicio
Clientes
Detección
de Fraudes
Checa
Crédito
Fondo
Cheques Retiro
Acceso
Multiplataforma
Servicio
de Acceso
Inversiones
Reutilizables
Cálculo de
Intereses
Checa
Inversiones
Internet
Servicio
Historial
Servicio
Datos
Fuentes de
Información
CRM
Bancos
Finanzas
DWH
Auditoria
Servicios de Negocio
Servicios de Negocio
Seguridad
Servicios de Negocio
Cliente
Servicios de Negocio
Orquestación
Servicios de Negocio
Transacción
Servicios de Negocio
Servicios de Negocio
Ruteo
Servicios de Negocio
Servicios de Negocio
Middleware de Servicios
Otros
ESB
Administración de
servicios
Composición de Aplicaciones
Servicio A (Verificación de Crédito)
Portlet A
Servicio B (Balance de Cuenta)
Portlet B
Portlet C
Portlet D
Servicio C (Verificación de Inventario)
Servicio D
(Colocar una Orden)
Arquitectura SOA de Oracle
Process Integration Packs
AIA Foundation Pack
SOA Reference
Architecture
SOA Programming
Model
BPA Suite
BAM
Analyst
Tools
JDeveloper
BI
Monitoring
BPEL Process Manager
Business
Rules
Multi
Protocol
Apps
DB
XSLT
Transform
ODI
Bulk ELT
System
Monitoring
Web Services
Manager
Policies
Enterprise Service Bus
Adapters
Messaging
Human
Workflow
SOA Governance
EM
ROUTING
& Business
ORCHESTRATION
Events
Analytics
Native
BPEL
App Dev
Framework
&
Web Center
Enterprise Business
Service & Object Library
B2B
Partners
J2EE Application Server
Security
Routing
SES
RFID
Registry
UDDI
La Pila de Protocolos WS-*
De acuerdo al W3C
JAVA Integration Server
J2EE + JBI
Arquitectura SOA de IBM
Business Innovation & Optimization Services
Integrated
environment
for design
and creation
of solution
assets
Interaction Services
Process Services
Information Services
Enables collaboration
between people,
processes & information
Orchestrate and
automate business
processes
Manages diverse
data and content in a
unified manner
Enterprise Service Bus:
Facilitates communication between services
Partner Services
Business App Services
Access Services
Connect with trading
partners
Build on a robust,
scaleable, and secure
services environment
Facilitates interactions
with existing information
and application assets
Infrastructure Services
Optimizes throughput,
availability and performance
IT Service
Management
Development
Services
Facilitates better decision-making
with real-time business information
Manage
and secure
services,
applications
&
resources
Caso de Uso
Fallecimiento de una Persona
Identificar Servicios
• Alta fallecimiento
• Cerrar Vínculos
• Fin de Trámites
• Fin de Relaciones Laborales
Orquestación del Proceso de
Negocio
Diagrama de Flujo de Trabajo
BPMN
• Las últimas tendencias respecto a la
implementación de SOA (WOA, Clound
Computing, Software as a Service) basan su
funcionamiento en la utilización de un
modelado de procesos de negocio.
Proceso de negocios
• Un proceso de negocios es un conjunto de
pasos o actividades relacionadas en las que
intervienen gente, información y otros recursos
para crear valor.
• Los procesos de negocios se integran de pasos
que se pueden identificar en el tiempo y el
espacio
• Tiene un principio y un fin
Procesos de Negocios
• Tienen entradas y salidas
• Tiene un grado de formalización pero no
necesitan ser totalmente estructurados
Procesos de negocios
• Los procesos de negocios son la manera más
común de mejorar el desempeño de los
sistemas de trabajos ya que podemos cambiar
el
procesos
de
negocios
cambiando,
eliminando o agregando pasos al proceso o
también cambiando los métodos de cómo se
usan estos pasos
Modelado de procesos
• El modelado de procesos es en si
mismo el proceso de negocios.
• Es la subdivisión del proceso de
negocios en sus elementos básicos
con el propósito de poderlos estudiar y
mejorarlos
Modelado de Procesos de Negocios
• El modelado de procesos es esencial en
el desarrollo de los sistemas de
información ya que nos ayuda a
identificar el problema que el sistema de
información deberá resolver y la manera
en como deberá resolverlo
Modelo en las Organizaciones
• Modelo es un conjunto de conceptos que
permiten
construir
una
representación
organizacional de la empresa.
• Dos enfoques:
– Funcional (Tradicional)
– Proceso
ORGANIZACIONES
TRADICIONALES
ORGANIZACIONES POR
PROCESOS
PROCESOS
41
Enfoque Funcional
VERTICAL
Enfoque de Procesos
HORIZONTAL
Función vs. Proceso
• Función: identificada por un verbo. Es continua.
–
–
–
–
–
Comercializar
Fabricar
Vender
Expedir
Comprar
• Proceso:
identificado por verbo+sustantivo. Tiene
un inicio y un fin. No es continuo.
–
–
–
–
Tomar un pedido
Ensamblar un pieza
Facturar a un cliente
Solicitar materiales
Qué es el Modelado del Negocio?
• Es una técnica para modelar procesos del negocio.
• El Modelo de negocio provee una manera de expresar los
procesos del negocios en términos de actividades del
negocio y comportamiento colaborativo.
INPUT
OUTPUT
EMPRESA
Introducción
• Desarrollado por
Initiative (BPMI).
Business
Process
Management
• Es un estándar: BPMN Business Process Modeling
Notation.
• La especificación BPMN 1.0 fue publicada en Mayo del
2004.
Introducción
• El objetivo principal de desarrollar BPMN es proveer
una notación que sea fácilmente entendible por todos
los usuarios de negocio.
• Desde los analistas que crean los borradores iniciales
de procesos hasta los desarrolladores técnicos que son
responsables de implementar la tecnología que
ejecutará dichos procesos. Y por supuesto, la gente de
negocio que manejará y monitoreará estos procesos.
Introducción
• BPMN define un Diagrama de Procesos de Negocio
(BPD), basado en la técnica de “flowcharting”
(diagramado de flujos) que ajusta modelos gráficos de
operación de procesos de negocio.
• Un modelo de procesos de negocio es una red de objetos
gráficos, correspondientes a actividades y controles de
flujo que definen el orden de ejecución de éstas.
Elementos
Un BPD (diagrama de procesos de negocio) se estructura
con un grupo de elementos gráficos.
Las cuatro categorías básicas de elementos son:
•
Flow Objects (objetos de flujo)
• Connecting Objects (objetos de conexión)
• Swimlanes (Carriles)
• Artifacts (artefáctos)
Elementos: Flow Objects
Un BPD tiene un pequeño grupo de elementos centrales
(tres), los cuales son los Flow Objects:
-
Event (Evento)
-
Activity (Actividad)
- Gateway (Decisión)
Flow Objects: Event
•
Un evento se representa por un circulo y es algo que
“sucede” durante el curso de un proceso de negocio.
•
Los eventos afectan el flujo del proceso y
usualmente tienen un causa (trigger - gatillo) o un impacto
(result – resultado).
•
Los eventos se representan con círculos con el
centro abierto para permitir anotar diferentes gatillos o
resultados.
Flow Objects: Event
• Hay tres tipos de eventos basado en cuándo ellos
afectan el flujo:
- Start (comienzo)
- Intermediate (intermedio)
- End (final)
Flow Objects: Activity
• Una actividad (Activity) se representa por un
rectángulo con sus bordes redondeados y es un
término genérico para el trabajo que un organización
realiza.
• Un actividad puede ser atómica o no atómica
(compuesta).
Flow Objects: Activity
• Los tipos de actividades son:
- Task (tareas)
- Sub-process (subproceso)
+
Los subprocesos se distinguen por un pequeño + al centro y
abajo en la figura.
Flow Objects: Gateway
• Un Gateway es representado por la figura de un
diamante y se usa para controlar la divergencia de la
secuencia de un flujo.
• Determina las “tradicionales” decisiones, tanto de
bifurcaciones, como uniones y acoplamientos de
flujos.
• Las anotaciones al interior indican el tipo de
comportamiento de control.
Elementos: Connecting Objects
• Los objetos de flujo se conectan entre ellos en un
diagrama para crear el esqueleto básico de la
estructura de un proceso de negocio.
• Existen tres Connecting Objects que proveen esta
función de conexión.
- Sequence Flow
- Message Flow
- Association
Connecting Objects: Sequence Flow
Un Sequence Flow se representa por una línea sólida
con el extremo sólido
Es usada para mostrar el orden (secuencia) de la
actividad dentro del proceso.
Note que el término “control flow” generalmente no es
usado en BPMN.
Connecting Objects: Message Flow
Un Message Flow se representa por una línea
segmentada con el extremo sin relleno.
Es usada para mostrar el flujo de mensajes entre dos
participantes de procesos separados (business entities o
business roles).
En BPMN, dos “Pools” en el diagrama representan a
dos participantes.
Connecting Objects: Association
Una Association se representa por una
segmentada finamente con el extremo en punta.
línea
Se usa para asociar datos, textos u otros artefactos con
flujos de objetos.
Las asociaciones son usadas para mostrar las entradas
y salidas de las actividades.
Ejemplo con formas básicas
Ejemplo de Proceso de Negocio Simple
Ejemplo con formas básicas y marcas internas en las
formas
Segmento de un Proceso con más detalles
Elementos: Swimlanes
Muchas técnicas de modelados utilizan el concepto de
swimlanes como mecanismo de organización de
actividades en categorías visuales separadas para
ilustrar las diferentes capacidades funcionales o
responsabilidades.
BPMN soporta swimlanes con dos constructores
principales:
- Pool
- Lane
Swimlanes : Pool
Un Pool representa un Participante en un Proceso.
Nombre
El Pool también actúa como contenedor gráfico para
separar al grupo de actividades realizadas por un
participante de otros Pools. Los Pools se usan
generalmente en el contexto de situaciones B2B.
Swimlanes : Lane
Un Lane es una partición dentro de un pool y se
extiende a lo largo de todo el pool, tanto vertical como
horizontalmente.
Nombre
Nombre
Nombre
Los Lanes son usados para organizar y categorizar
actividades.
Swimlanes : Pool & Lane
Los Pools se usan cuando los diagramas involucran a
dos entidades de negocios o participantes separados.
Están físicamente separados en el diagrama.
Las actividades dentro de Pools separados son
consideradas auto contenidas en el proceso. De esta
forma, la secuencia del flujo podría no atravesar el límite
del Pool.
Swimlanes : Pool & Lane
Los flujos de mensajes son los mecanismos que
muestran la comunicación entre dos participantes,
conectando de esta manera a dos Pools (u objetos
dentro de los Pools).
Swimlanes : Pool & Lane
Ejemplo de BPD con Pools
Swimlanes : Pool & Lane
Los Lanes son más cercanos a los swimlanes que
tradicionalmente se utilizan para modelar procesos de
negocio.
Los Lanes son usados para separar actividades
asociadas con una función específica de la organización.
La secuencia de flujos podría atravesar los límites del
Lane dentro de un Pool, pero podrían no usarse flujos de
mensajes entre Flow Objects en Lanes del mismo Pool.
Swimlanes : Pool & Lane
Segmento de un Proceso con Lanes
Elementos : Artifacts
BPMN fue diseñado para permitir a los modeladores y
herramientas de modelado algunas flexibilidades para
extender la notación básica y proveer la habilidad poder
modelar diferentes contextos apropiadamente.
No está limitado el número de Artefactos que se pueden
agregar a un diagrama para que éste represente más
apropiadamente al contexto del negocio.
La versión actual de BPMN predefine sólo tres tipos de
artefactos.
Elementos : Artifacts
Data object
Nombre
[Estado]
Group
Annotation
Anotaciones de Texto
permiten al Modelador agregar
información adicional
Artifact : Data Object
Los Data Objects son un mecanismo para
mostrar como las actividades requieren o
producen objetos.
Se conectan a las actividades a través de
asociaciones.
Nombre
[Estado]
Artifact : Group
Un Group es representado por un
rectángulo redondeado dibujado con
línea segmentada
El agrupamiento puede ser usado para
propósitos de documentación o análisis,
y no afecta la secuencia del flujo.
Artifact : Annotation
Las Annotations son mecanismos
para que un modelador pueda
agregar información textual adicional
para el lector del diagrama BPMN.
Anotaciones de Texto
permiten al Modelador agregar
información adicional
Artifact
Los modeladores puede crear sus propios tipos de
artefactos que agreguen más detalle al proceso.
Con bastante frecuencia se muestran entradas y salidas
de actividades en los procesos. Sin embargo, la
estructura básica del procesos, es especificada con
actividades, gateways, y flujos de secuencia.
Artifact
Segmento de un Proceso con
Lanes. Sin artefactos.
Segmento de un Proceso con Lanes.
Con artefactos.
Elementos centrales de los diagramas
Lista completa de elementos
Ejemplo
Elementos del Proceso
Usos Generales de BPMN
Dentro de la variedad de objetivos de modelado de
procesos, hay dos tipos básicos que pueden ser creados
con un BPD:
• Collaborative (Public) B2B Processes
• Internal (Private) Business Processes
Collaborative (Public) B2B Processes
Ejemplo proceso colaborativo
Ejemplo Proceso de Alto Nivel
Ejemplo de proceso de alto nivel el cual es
básicamente una serie de subprocesos con tres puntos
de decisión.
Ejemplo Proceso de Alto Nivel
Ejemplo Proceso de Alto Nivel
Ej. Proceso Interno: Más bajo Nivel
MercadoLibre C2C
Modelado de Negocios con el UML
• Modelo de Casos de Uso de Negocios
– Actores del Negocio
– Casos de Uso del Negocio
– Diagramas de Casos de Uso del Negocio
– Diagramas de Actividades
• Modelo de Objetos del Negocio
– Trabajadores del Negocio
– Entidades del Negocio
– Diagramas de Actividades (Detallado)
– Diagramas de Colaboración
– Diagramas de Secuencia
Modelo de casos de uso del
negocio
Actor del Negocio
Actor
Negocio
Alguien o algo externo a la empresa que
interactúa con ella.
Ejemplos: Clientes, Proveedores, etc.
Modelo de casos de uso del
negocio
Caso de uso del
Negocio
Caso de Uso del negocio
Secuencia de acciones (actividades) que
una organización realiza para obtener un
resultado observable y de valor para un
actor de negocio particular. Un caso de uso
del negocio es lo mismo que un proceso de
negocio
90
Modelo de casos de uso del
negocio
Diagrama de
<<initiator>>
Casos de Uso del
Registrar Pedido
Negocio
Cliente
Es la representación de un grupo de casos
de uso del negocio relacionados dentro de
la empresa. Nos dicen que procesos de la
organización proporcionan valor agregado y
los individuos que interactúan con la
Gestionar Almacen misma.
Describen completamente la
organización en términos de casos de uso
del negocio.
Fabricar Producto
Generar pedidos a los
proveedores
Proveedor
91
Modelo de casos de uso del
negocio
Rellenar
Pedido
Inicio
Analizar
Viabilidad
Tramitar
Pedido
[No]
Notificar
rechazo
Diagrama de
Actividades
Viable
[Si]
Fin NoOK
Notificar
Aceptacion
Ordenar
fabricacion
Es la representación de una secuencia
de actividades dentro de un caso de
uso del negocio. Provee una manera
gráfica de documentar un caso de
uso del negocio.
Planificar
Produccion
Fin OK
92
Caso Empresa de Fabricación
<<initiator>>
Registrar Pedido
Cliente
Fabricar Producto
Gestionar Almacen
Generar pe didos a los
prove edores
Prov eedor
93
94
D. A. Registrar Pedido
Rellenar
Pedido
Inicio
Tramitar
Pedido
Analizar
Viabilidad
[No]
Notificar
rechazo
Viable
[Si]
Fin NoOK
Notificar
Aceptacion
Ordenar
fabricacion
Planificar
Produccion
Fin OK
Modelo de objetos del negocio
Trabajador del
Negocio
Trabajador del negocio
Un Trabajador del Negocio (Obrero, Empleado o funcionario)
realiza actividades dentro de un caso de uso del negocio,
interactua con otros trabajadores del negocio y manipula
entidades del negocio .
Modelo de objetos del negocio
Entidades del
Negocio
Entidad del Negocio
Una "cosa" manipulada o usada por los trabajadores del
negocio. Son ejemplos de entidades del negocio: factura,
pedido, plan de producción, etc
Cliente
:Cliente
JefeTécnico
Jefe tecnico
Comercial
:Comercial
JefeProducción
Jefe Producción
Inicio
Rellenar
Pedido
Cursar pedido
Analizar
Viabilidad
Viable
Notificar
rechazo
[ No ]
[Si]
FinKO
Notificar
Aceptación
Diagrama de
Actividades
Detallado
Ordenar
fabricación
Planificar
producción
FinOK
98
Diagrama de Clases
1
Pedido
Empleado
Jefe Tecnico
1..*
Producto
Orden de Trabajo
Jefe Producción
Catalogo
Plantilla de Fabricación
Diagrama de Secuencia
: Cliente
: Empleado
: Jefe Tecnico
: Jefe Producción
1. Tramitar a Pedido
2. Estudiar Pedido
3. * Analizar Fabricación
4. Planificar Fabricación
5. Informar
6. Aceptar Pedido
Diagrama de Colaboración
1. Tramitar a Pedido
6. Aceptar Pedido
: Cliente
5. Informar
: Empleado
3. * Analizar Fabricación
2. Estudiar Pedido
4. Planificar Fabricación
: Jefe Tecnico
: Jefe Producción
101
Procesos de Negocio
Arquitectura 4+1 Vistas
• En esta arquitectura de desarrollo de software
un producto a ser desarrollado tiene 4 puntos
de vistas dependiendo del tipo de personal
involucrado en el proyecto.
• Las 4 vistas se concentran en el desarrollo de
escenarios que describen el análisis y los
requerimientos del sistema.
Arquitectura 4+1 Vistas
Arquitectos
Desarrolladores
Vista Lógica
Vista de Desarrollo
Escenarios
Vista del Proceso
Integradores
Analistas
Del
Negocio
Vista Física
Ingenieros de
Infraestructura
Vista Lógica
• Se maneja el estilo arquitectónico de la
aplicación:
– Orientado a objeto
– Basado en Componentes
– Basado en servicios
• La implementación de esta vista utiliza
generalmente patrones arquitectónicos como el
MVC (Modelo-Vista-Controlador)
Modelo MVC
Vista de Desarrollo
• Define los módulos de software ha ser
construidos.
• Se deben definir con claridad las interfaces de
E/S de los módulos.
• La modularización de componentes depende
del estilo arquitectónico seleccionado en la
vista lógica
Vista Física
• Mapea los componentes de software con el
hardware (fase de despliegue)
• Un buen diseño promueve la flexibilidad de
mapear componentes de software con
diferentes confiuraciones físicas dentro de las
diferentes fases del ciclo de vida del software.
• La vista de proceso está relacionada en la
forma de darle seguimiento, control y dirección
a las etapas del desarrollo del producto.
Escenarios
• Son abstracciones de los requerimientos más
importantes.
• Están estrechamente relacionados con el uso
de casos de uso
• La vista del escenario es redundante entre las
otras vistas.
109
La nueva arquitectura 4+1 SOA
Empaquetado/Implementación
Estructural
Clases y Componentes
que representan el servicio
Interfaz del Servicio
Requerimientos, Pruebas/
Criterios de Validación
Contratos de Servicios
Comportamiento
Infraestructura/
Entorno
Flujos de trabajo que muestran
la forma de trabajo de una unidad
organizativa guiada por procesos
de negocios
110
Despliegue en .NET o J2EE
considerando aspectos como la
seguridad y el rendimiento
Modelo de servicios Web
Clientes
ricos
XML
Browsers
estándar
Dispositivos
móviles
Servicios Web
Formularios Web
Lógica aplicación
Servicios SO
Otros
servicios
Servicios Web
• Los servicios Web van de la mano de las
tecnologías XML.
• XML nos sirve para estandarizar el marshalling
de los datos.
• Utilizar la Web nos permite tener un puerto no
bloqueando por Firewall
Servicios Web
• Son la invocación de código remoto
utilizando protocolos estandarizados.
• En conclusión, realizan la misma función que
los sockets, RPC, RMI, Corba y demás
tecnologías distribuidas.
• Se puede ver a los servicios Web como una
analogía de un procedimiento almacenado
en una base de datos.
¿Qué son los Servicios Web?
• "A Web service is a software system designed to
support interoperable machine-to-machine interaction
over a network. It has an interface described in a
machine-processable format (specifically WSDL).
Other systems interact with the Web service in a
manner prescribed by its description using SOAPmessages, typically conveyed using HTTP with an
XML serialization in conjunction with other Webrelated standards."
Definición de SW
• La aplicación que actúa como cliente debe
conocer:
– La URL del servidor remoto que ofrece el
servicio,
– El nombre del servicio que se solicita, y
– Los parámetros que se deben enviar junto
con la llamada al servicio.
• Estos datos se enviarán mediante HTTP
Definición de SW
• El servidor que ofrece el servicio web leerá los
parámetros que se le han enviado, llamará a un
componente o programa encargado de
implementar el servicio, y los resultados que se
obtengan de su ejecución serán devueltos al
servidor que solicitó la ejecución del servicio.
Servicios Web
• Un servicio Web no es un XML RPC como tal,
se diferencia en la forma en que trabajan.
• Los servicios Web forman la base de la
arquitectura orientada a servicios (SOA)
• Los servicio Web utilizan generalmente el
método POST de HTTP para enviar los datos
de la invocación del servicio.
SOA (Arquitectura Orientada a
Servicios)
Proveedor de Servicios
Publicar
Registro de Servicios
Descripción
Servicio
Encontrar
Conectar
Solicitante de Servicio
Cliente
Arquitectura de Servicios Web
1
Publicación
del Servicio
Proveedor del
Servicio
WSDL
Directorio de
Servicios UDDI
3
Definición
del Servicio
4
Invocación y
respuesta
SOAP
2
Descubrimiento
del Servicio
Consumidor el
Servicio
Servicios Web
• Los datos viajan envueltos en un protocolo llamado
SOAP (Simple Object Access Protcol) que hace el
marshalling de los datos.
• Una de las principales características que tienen los
servicios Web radica en su ubicuidad, ya que pueden
ser accedidos desde cualquier sitio, utilizando
inclusive cualquier otro protocolo de transporte SMTP,
FTP, etc.
SOAP
• Indica cómo se deben codificar los mensajes
que circularán entre las dos aplicaciones.
• SOAP define dos modelos de mensajes:
– Un mensaje de solicitud.
– Un mensaje de respuesta.
Mensaje de solicitud
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope
xmlns:SOAPENV=”http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<catalogo:buscaIsbn xmlns:catalogo="http://catalogo.org/cat">
<catalogo:isbn>
84-4553-3334-2X
</catalogo:isbn>
</catalogo:buscaIsbn>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Mensaje de respuesta
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope
xmlns:SOAPENV=”http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<catalogo:buscaIsbnResponse xmlns:catalogo="http://catalogo.org/cat">
<catalogo:titulo>
Catalogar materiales especiales
</catalogo:titulo>
<catalogo:autor>Marta de Juanes</catalogo:autor>
</catalogo:buscaIsbnResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Servicios Web
• Los servicios Web necesitan ser descritos (saber que
parámetros reciben, devuelven) para poderlos utilizar
en diversos clientes. Esta descripción se realiza a
través de WSDL (Web Service Definition Language).
• Generalmente esas descripciones los clientes las
conocen o bien, puede descubrirlas haciendo uso de
UDDI (Universal Description, Discovery and
Integration).
Servicios Web
• La UDDI no es otra cosa que un repositorio en
donde se almacenan servicios Web que
pueden ser invocados por diversos clientes.
• Muchas empresas ofrecen servicios Web como
amazon, google, http://www.xmethods.com
¿Por qué utilizar Servicios Web?
• Múltiples tecnologías para hacer lo
mismo:
– No interoperables entre sí.
– Ligados a una plataforma.
DCOM
CORBA
Java RMI
Protocolo
RPC
IIOP
IIOP or JRMP
Formato del mensaje
NDR
CDR
Java Ser. Format
Descripción
IDL
OMG IDL
Java
Descubrimiento
Windows Registry
Naming Service
RMI Registry or JNDI
Pila de protocolos de SW
• Redefinición de
comunicaciones
toda
la
pila
– Basado en tecnologías estándares
Servicio web
Protocolo
HTTP
Formato del mensaje
SOAP
Descripción
WSDL
Descubrimiento
UDDI
de
Ventajas de los Servicios Web
• Basados en estándares.
– Fácil integración.
• Desarrollo de actividades modularizadas.
• Independencia de plataforma.
• Puede ser usado tanto en clientes ligeros como
pesados (clientes heterogéneos).
Desventajas de los Servicios Web
• Es que no son seguros...
• Es que no tienen estado...
• Es que no son transaccionales...
• “Los servicios Web no hacen más que
reinventar la rueda, pero esta vez usando
XML”.
Protocolos Servicios Web
Publicar, buscar servicios:
UDDI
Descripción de servicios: WSDL
Interacción de servicios:
SOAP
Formato de datos universal: XML
Comunicaciones ubicuas:
Internet
Creando Servicios Web
• Los servicios Web XML se exponen en el
Framework .NET como archivos con una
extensión .asmx.
• Los servicios se pueden consumir a través de
páginas Web, clientes ligeros en una PC o
clientes inteligentes en dispositivos móviles.
Hola mundo!!!
<%@ WebService Language="C#“ class="Helloweb" %>
using System.Web.Services;
[WebService
(Namespace="http://sybex.com/webservices")]
public class Helloweb: WebService{
[WebMethod]
public string HelloWebService() {
return "Holla Mundo!";
}
Otro servicio Web
<%@ WebService Language="C#" class="Fibonacci" %>
using System.Web.Services;
public class Fibonacci : WebService{
[WebMethod]
public int GetSeqNumber(int fibIndex){
if (fibIndex < 2)
return fibIndex;
int[] FibArray = {0,1};
for (int i = 1; i< fibIndex; i++){
FibArray[1] = FibArray[0] + FibArray[1];
FibArray[0] = FibArray[1] - FibArray[0];
}
return FibArray[1];
}
}
Cliente del servicio
using System;
class ClienteFecha
{
public static void Main()
{
ServicioFecha s = new ServicioFecha();
Console.WriteLine(“Fecha actual: {0}”, s.Fecha(false));
Console.WriteLine(“Fecha actual detallada: {0}”, s.Fecha(true));
}
}
Cliente de servicio Web Windows C#
.NET
Agregar referencia Web
Cliente de servicio Web en una Pocket
PC
Página Web del Servicio HelloWorld
Respuesta del servicio Web par
Página Web del Servicio 1
WSDL del servicio Web 1
Ejecución del servicio Web suma
Ejecución del servicio Web par
Crear proxy del servicio Web
Servicios Web
• Ejemplo de archivo WSDL de amazon
• <operation name=“AuthorSearchRequest”/>
• <input
message=“typens:AuthorSearchRequest”/>
• <output
message=“typens:AuthorSearchResponse”>
• </operation> ….
Servicios Web
Los tipos de datos se definen en otra parte
<xsd:complexType name=“AuthorRequest”>
<xsd:all>
<xsd:element name=“autor” type=“xsd:string”/>
<xsd:element
name=“sort”
type=“xsd:string”
minOccurs=“0”/>
</xsd:all>
</xsd:complexType>
Servicios Web
• Cuando se traduce a Java queda:
public class AuthorRequest {
public AuthorRequest(String author, String page,
String mode, String tag, String sort, String
locale, String word, String price) {…}
public String getAuthor() {…}
public String getPage() {…} ….
}
Servicios Web
Para ejecutar el servicio se utiliza:
AmazonSearchPort puerto = (AmazonSearchPort) (new
AmazonSearchService_Impl().getAmazonSearchPort(
));
AuthorRequest solicitud = new AuthorRequest(name,
“1”, books, “”, “lite”, “”, token, “”, “”, “”);
ProductInfo res= puerto.autorSearchRequest(solicitud);
Servicios Web
• Se ocupa en las versiones viejas el JWSDP
(Java Web Service Developer Pack)
• Se necesita un archivo config.xml
<?xml version=“1.0” encoding=“UTF-8”?>
<configuration
xmlns=http://java.sun.com/xml/ns/jaxrpc/ri/config>
Servicios Web
•
<wsdl
location=“http://soap.amazon.com/schemas3/A
mazonWebServices.wsdl”
packageName=“com.amazon” />
• </configuration>
• wscompile –import config.xml
• wscompile –gen –keep config.xml
PHP/JSP/ASP/Base de Datos
• Metodología “Bambi” de aprendizaje
• Embarrada de conocimiento
• La escuela es un lugar de entrenamiento:
concepto de Freídora.
• Material disponible en los libros
• Proyectos proporcionados
• Monografía de Programación Web
ASP (Active Server Page)
M.C. Juan Carlos Olivares Rojas
ASP.Net
• Apareció en el 2002 de la mano de Visual
Studio.
• La versión más actual es la 2.0 (.Net
Framework 2.0)
• ASP.Net se basa en un archivo WebForms y en
un archivo con código ejecutable.
ASP.Net
• Los WebForms son páginas con HTML y
algunos controles especiales.
• Los WebForms son similares a los WinForms
de Visual Basic.
• Tanto los WebForms como el código pueden
guardarse en un archivo .aspx, aunque es
recomendable guardar el código en un archivo
aspx.vb
ASP.Net
• Una de las ventajas que tiene ASP.Net es que
se puede programar en cualquiera de los
lenguajes disponibles en .Net: C#, VB .NET, J#,
C++ .Net, entre otros.
• Se necesita un servidor IIS, el cual puede
soportar cualquier recurso Web, como el
archivo de configuración (Web.config) y el de
aplicaciones globales (Global.asax).
ASP.Net
• ¿Cuál es la diferencia entre usar páginas Web
en HTML y WebForms?
• Los WebForms tienen controles más ricos y
más propiedades.
• Existen controles que se ejecutan en el servidor
(tienen un ícono verde en la esquina superior
izquierda).
ASP.Net
• Se tienen objetos como FileUpload, LoginView,
RequieredFieldValidator (Visual Studio 2005).
• Se sugiere tener las extensiones del servidor
de FrontPage.
• Todos los proyectos en ASP están dentro de un
sitio Web.
ASP.NET
• Es una arquitectura de 3 capas:
– Capa 1 cliente
– Capa 2 Servidor, ASP y componentes
– Capa 3 Base de datos
• A diferencia de ASP los scripts en ASP.NET se
compilan una sóla vez, siendo más rápidos.
ASP.NET
• En ASP los componentes COM/DCOM (ActiveX
es un subconjunto de estos) son difíciles de
registrar. ASP.NET hace uso de los
componentes de .NET Framework.
• La arquitectura de tres capas también puede
verse así: Presentación (cliente), lógica del
negocio (servicio Web) y la capa de datos.
ASP.NET
• Los WebForms ayudan al desarrollo RAD
(Rapid Development).
• Ayudan a la creación de interfaces de usuario
ricas.
• No requiere instalación en el lado cliente.
Además de que solo requieren un navegador.
MobileWebForm
• Es la versión móvil de los formularios Web de
ASP.
• La característica principal de que poseen es
que pueden adaptarse a prácticamente
cualquier dispositivo inteligente.
• En el archivo machine.conf se tienen los datos
de “renderización”, por ejemplo para un Nokia
3100 la salida será XHTML.
MobileWebForm
• La salida de un archivo .aspx se puede
convertir a WML, cHTML, XHTML, y a
diferentes versiones de HTML.
• Existen varios controles WebForms que no
están implementados o tienen funcionalidad
limitada
en
MobileWebForms
como:
Button/Command, HyperLink/Link, Table
MobileWebForm
• No se deben hacer formularios muy grandes ya
que cada el ingreso de texto no se hace sobre
el formulario.
• Se pueden crear nuestros propios controles o
bien descargarlos de otras fuentes.
• Se recomienda realizar
dispositivos móviles.
páginación
en
Apoyo para la toma de
decisiones
M.C. Juan Carlos Olivares Rojas
Apoyo para la toma de decisiones
• Entre más información se tiene mayor es la
ventaja obtenida.
• Se necesitan de diseño especiales para
almacenar grandes cantidades de datos. Estos
diseños son los Datawarehouse y los
Datamarts.
Datawarehouse
• Los almacenes de datos son del mismo tipo, no
volátiles y variantes en el tiempo.
• Es una base de datos limpia ya que no están
todas las transacciones.
• Un almacén de datos debe tener más de
500GB y una tasa de crecimiento del 50%
anual.
Datamarts
• Son almacenes de datos más pequeños
utilizados generalmente para reportes o usos
más genéricos.
• La carácterística principal es que es volátil; es
decir, los valores de los datos pueden ser
modificados para realizar simulaciones de
escenarios del tipo: ¿que pasaría si…?
Datamarts
• Para el análisis de almacenes de datos se
utilizan técnicas OLAP.
• Los almacenes de datos necesitan de un
diseño óptimo para su correcto funcionamiento.
• Existen diversos métodos de diseño, siendo los
más populares: estrella y copo de nieve.
Esquema de estrella
• También llamado dimensional, contiene una
tabla de hechos que es aquella que contiene
toda la información y tiene varias tablas de
dimensiones que contienen el catálogo de la
información.
• Se asemeja mucho a un base de datos
normalizada, entonces ¿Cuál es la diferencia?
Esquema de estrella
• Los almacenes de datos son base de datos
históricas (más de consulta que de
transacción).
• Las bases de datos se normalizan sobretodo
para no tener tanta información redundante.
• El esquema de estrella sólo tiene un nivel.
Esquema de estrella
• El tener todos los hechos juntos y las
dimensiones separadas permite que las
“juntas” sean mínimas ocupando menos tiempo
las consultas.
• La tabla de hechos es más grande en atributos
y tuplas que las de dimensiones.
• El diseño es ad hoc y es difícil de cambiar.
Esquema de copo de nieve
• Es una variante del esquema de estrella, el
cual normaliza toda las tablas de dimensiones.
• Tiene algunas mejoras de espacio pero en
ocasiones las consultas son más lentas.
OLAP
• Procesamiento analítico en línea.
• Proceso interactivo de crear, mantener, analizar
y elaborar informes sobre datos.
• En muchas ocasiones se hacen consultas
similares con valores diferentes, lo que trae
como
consecuencia
muchas
consultas
independientes y más retraso.
OLAP
• SQL3 define tres operadores para GROUP BY:
GROUPING SETS, ROLLUP y CUBE.
• Las tablas en un almacén de datos se
consideran hipercubos dependiendo de sus
dimensiones.
• Existen dos tipos de OLAP: ROLAP
(Relacional) y MOLAP (multidimensional).
Minería de datos
• Se define como
exploratorio.
un
análisis
de
datos
• El propósito es buscar patrones interesantes en
los datos. Se aplican muchas técnicas
estadísticas para buscar estos patrones.
• Se pretende buscar reglas de asociación entre
las dimensiones de una tabla.
Minería de datos
• Al conjunto de todas las transacciones se le
llama población.
• Cualquier regla de asociación tiene un nivel de
soporte y uno de confianza.
• Soporte es el fragmento de la población que
satisface la regla.
Minería de datos
• El soporte es la fracción de la población, en la
cual se cumple el antecedente, también se
cumple el consecuente.
• Se pueden encontrar en otro tipo de patrones:
“Si un cliente compra zapatos es probable que
compre calcetines no necesariamente en la
misma transacción”
Java Server Pages
M.C. Juan Carlos Olivares Rojas
Servlets
• Son aplicaciones que se ejecutan en el lado del
servidor y responden a peticiones HTTP
realizadas por los usuarios.
• Se debe contener un contenedor de servlets
como Apache Tomcat para poderlos ejecutar.
Servlets
• Todos los
métodos:
•
•
•
•
servlets
tienen
los
void init(ServletConfig config);
void destroy ();
ServletConfig getServletConfig();
void
service(ServletRequest
ServletResponse res);
• String getServletInfo();
siguientes
req,
Servlets
• La clase HttpServlet implementa los siguientes
métodos:
• doDelete, doGet, doHead, doOptions, doPost,
doPut, doTrace, service, los cuales son
protected void y reciben como argumentos un
objeto
HttpServletRequest
y
HttpServletResponse.
Servlets
• Otros métodos son:
– void service(ServletRequest req, ServletResponse
res);
– Protected
long
getLastModified(HttpServletRequest);
• HttpServletRequest:
– Enumeration getAtributeNames();
– Object getAttribute(String name);
Servlets
• HttpServletRequest:
– void removeAttribute(String name);
– Void setAttribute(String name, Object value);
– Enumeration getParamaterNames()
– String[] getParameterValues(String name);
– Cookie[] getCookies();
– HttpSession getSession();
– HttpSession getSessionb(boolean create);
– String getRequestedSessionId();
Servlets
• HttpServletResponse:
– ServletOutputStream getOutputStream();
– PrintWriter getWriter();
– void addCookie();
– void addHeader(String name, String value);
– void setHeader(String name, String value);
– boolean containsHeader(String name);
– Void sendRedirect(String location);
JSP
• ¿Porqué no son tan bueno los servlets?
• Por que es necesario mostrar mucho código
HTML.
• Es más fácil generar el diseño de manera
separada y el código dinámico incrustado.
JSP
• La fecha de hoy es <%= new java.util.Date()
%>
• Las etiquetas JSP se pueden manejar como
XML.
• <%-- comentario JSP %>
• <%! declaraciones %>
JSP
• Variables implícitas:
– request
– response
– pageContext
– session
– application
– out
– config
– page
– exception
JSP
• Directivas de página:
–
–
–
–
–
–
–
–
–
–
–
language
extends
import
session
buffer
autoFlush
info
errorPage
contentType
isThreadSafe
pageEnconding
JSP
• Ejemplo de directivas de página:
• <%
@
page
import=“java.util.*”
errorPage=“error.jsp” contentType=“text/plain”
%>
• Se pueden utilizar JavaBeans, los cuales son
clases de Java con métodos bien definidos.
JSP
• Uso de JavaBeans:
• <jsp:useBean
id=“circ1”
scope=“session”
class=“capitulo3.Circunferencia”>
• <%@ include file=“archivo.jsp”>
• <jsp:include page=“pagina.jsp”/>
JSP
• El problema de utilizar JSP y sobretodo
páginas dinámicas es tener que mantener
lenguajes distintos.
• Se sugiere utilizar JSP-EL (Expresion
Languaje) que son etiquetas de JSP para hacer
ciclos, acceder a variables, condiciones, etc.
Además de utilizar JavaBeans para separa la
lógica del negocio.
JSP
• Algunos contenedores de servlets convierten
los .jsp a servlets para mejorar su desempeño.
• JSP
utiliza
los
siguientes
paquetes:
javax.servlet.jsp y javax.servlet.jsp.tagext
• Se utiliza el carácter \
especiales como %, ‘, “, etc.
para
caracteres
JSP
• <jsp:forward page = “reenvio2.jsp”>
• <jsp:param name = “fecha” value=“<%=
java.util.Date() %>” />
• </jsp:forward>
new
Referencias
• A. Martínez, “Programación Web Java”, MP
Ediciones, Argentina, 2006, ISBN: 987-526391-1, pp. 325.
• H. Deitel, et al., “Java Como Programar”,
Quinta edición, Pearson Prentice Hall, México,
2004, ISBN: 970-26-0518-0, pp. 1111 – 1190.
Referencias
• M. Halvorson, “Aprenda ya Visual Basic 2005”,
McGraw-Hill, México, 2007, ISBN: 970-105897-6, Capítulo 20: Cree sitios y páginas Web
con Microsoft Visual Web Developer y
ASP.NET, pp. 465-493.
• D. Ferguson, “ASP sin errores”, McGraw-Hill,
España, 2001, ISBN: 84-481-3182-7.
Referencias
• M. Firtman, “Desarrollos Móviles con .NET”, MP
Ediciones, Argentina, 2005, ISBN: 987-526284-6, pp. 368.
• M. Rodriguez, et al., “Desarrollo de
aplicaciones .NET con Visual C#”, McGraw-Hill,
España, 2002, ISBN: 84-481-3277-7, pp. 405477.
Referencias
• C. Date, “Introducción a los sistemas de base
de datos”, 7a. Edición, Pearson educación,
México, 2001, ISBN: 968-444-419-2, pp. 709725.
¿Preguntas?