Ecom tecserver

Page 1

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

• 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 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=�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=�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

• 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]; } }


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

• 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 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?


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.