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 WinLogon User Mode
SvcHost.Exe
Windows
Admon- de Tareas
WinMgt.Exe
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
Integración Años más Tarde •Agilidad •SOA
Enterprise Service Bus
•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
Ciclo de Desarrollos Largos
Ciclos de Desarrollo Incrementales
Aplicaciones Aisladas
Aplicaciones Orquestadas
Fuerte Acoplamiento
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? Adeudo Historial s
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
c oge N ed s oi ci vr e S
c oge N ed s oi ci vr e S
Seguridad
c oge N ed s oi ci vr e S
Cliente
c oge N ed s oi ci vr e S
Orquestaci贸n
c oge N ed s oi ci vr e S
Transacci贸n
c oge N ed s oi ci vr e S
c oge N ed s oi ci vr e S
Ruteo
c oge N ed s oi ci vr e S
c oge N ed s oi ci vr e S
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
ROUTING & Business ORCHESTRATION Events Analytics Monitoring
BPEL Process Manager Native BPEL
App Dev Framework & Web Center
Human Workflow
Business Rules
Multi Protocol
Apps
DB
XSLT Transform
ODI Bulk ELT
SOA Governance
EM System Monitoring
Web Services Manager Policies
Enterprise Service Bus
Adapters
Messaging
Enterprise Business Service & Object Library
B2B Partners
J2EE Application Server
Routing
SES RFID
Security
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 Business Initiative (BPMI).
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 lĂnea segmentada finamente con el extremo en punta. 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 negoci o
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 Fabricar Producto
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. Generar pedidos a los proveedores
Proveedor
91
Modelo de casos de uso del negocio Rellenar Pedido
Inicio
Tramitar Pedido
Analizar Viabilidad [No]
Notificar rechazo
Diagrama de Actividades
Viable [Si]
Fin NoOK
Notificar Aceptacion
Ordenar fabricacion
Planificar Produccion
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.
Fin OK
92
Caso Empresa de Fabricaci贸n <<initiator>>
Cliente
Registrar Pedido
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
Comercial :Comercial
JefeTécnico Jefe tecnico
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 3. * Analizar Fabricaci贸n
5. Informar
: Empleado
2. Estudiar Pedido 4. Planificar Fabricaci贸n
: Jefe Tecnico
: Jefe Producci贸n
101
Procesos de Negocio
Arquitectura 4+1 Vistas
â&#x20AC;˘ 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. â&#x20AC;˘ 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 construidos.
de
software
ha
ser
• 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 Estructural
Empaquetado/Implementaci贸n
Clases y Componentes que representan el servicio
Comportamiento
Interfaz del Servicio
Requerimientos, Pruebas/ Criterios de Validaci贸n Contratos de Servicios
Flujos de trabajo que muestran la forma de trabajo de una unidad organizativa guiada por procesos de negocios 110
Infraestructura/ Entorno
Despliegue en .NET o J2EE considerando aspectos como la seguridad y el rendimiento
Modelo de servicios Web Clientes Clientes ricos ricos
XML
Browsers Browsers estándar estándar
Dispositivos Dispositivos móviles móviles
Servicios Servicios Web Web
Formularios Formularios Web Web Lógica Lógica aplicación aplicación Servicios Servicios SO SO
Otros Otros servicios servicios
Servicios Web
• Los servicios Web van de la mano de las tecnologías XML. • XML nos sirve para marshalling de los datos.
estandarizar
el
• 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 SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related 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
2
3 Definici贸n del Servicio
Descubrimiento del Servicio
Consumidor el Servicio
4 Invocaci贸n y respuesta SOAP
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=â&#x20AC;?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 ENV=â&#x20AC;?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>
xmlns:SOAP-
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
â&#x20AC;˘ La UDDI no es otra cosa que un repositorio en donde se almacenan servicios Web que pueden ser invocados por diversos clientes. â&#x20AC;˘ 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#â&#x20AC;&#x153; 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]; } }
using System;
Cliente del servicio
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().getAmazonSearchPo rt()); 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/jax-rpc/ri/config >
•
Servicios Web
<wsdl location= “http://soap.amazon.com/schemas3/AmazonW
” 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
â&#x20AC;˘ Es una variante del esquema de estrella, el cual normaliza toda las tablas de dimensiones. â&#x20AC;˘ 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
â&#x20AC;˘ Son aplicaciones que se ejecutan en el lado del servidor y responden a peticiones HTTP realizadas por los usuarios. â&#x20AC;˘ Se debe contener un contenedor de servlets como Apache Tomcat para poderlos ejecutar.
Servlets
• Todos los servlets tienen los siguientes métodos: void init(ServletConfig config); void destroy (); ServletConfig getServletConfig(); void service(ServletRequest ServletResponse res); • String getServletInfo(); • • • •
req,
Servlets
• La clase HttpServlet siguientes métodos:
implementa
los
• 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 java.util.Date() %>
es
<%=
new
• Las etiquetas JSP se pueden manejar como XML. • <%-- comentario JSP %> • <%! declaraciones %>
JSP
• Variables implícitas: – request – response – pageContext – session – application – out – config – page – exception
• Directivas de página: – – – – – – – – – – –
language extends import session buffer autoFlush info errorPage contentType isThreadSafe pageEnconding
JSP
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.
• Uso de JavaBeans:
JSP
• <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 \ para caracteres especiales como %, ‘, “, etc.
JSP
• <jsp:forward page = “reenvio2.jsp”> • <jsp:param name = “fecha” value=“<%= new java.util.Date() %>” /> • </jsp:forward>
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: 97010-5897-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: 987526-284-6, pp. 368. • M. Rodriguez, et al., “Desarrollo de aplicaciones .NET con Visual C#”, McGrawHill, España, 2002, ISBN: 84-481-3277-7, pp. 405-477.
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?