SAPI, una plataforma para aplicaciones inal - PowerPoint PPT Presentation

About This Presentation
Title:

SAPI, una plataforma para aplicaciones inal

Description:

Title: Proyecto: T tulo del Proyecto Identificaci n de participantes Author: Pablo Straub Last modified by: Administrator Created Date: 3/18/2001 1:35:30 AM – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 22
Provided by: PabloS93
Category:

less

Transcript and Presenter's Notes

Title: SAPI, una plataforma para aplicaciones inal


1
SAPI, una plataforma para aplicaciones
inalámbricas basada en software open source
  • Fecha 26 de Junio de 2003
  • Autor Cristian Ferretti

2
Temario
  • Reuso y Open Source
  • Open Source en SAPI
  • SAPI Iteración 2 Descripción del proyecto
  • SAPI Iteración 2 Arquitectura
  • Componentes Open Source Utilizadas
  • Infraestructura y Middleware
  • Bibliotecas Java
  • Herramientas de Desarrollo
  • Conclusiones
  • Preguntas
  • Referencias

3
Reuso, conceptos generales
  • Reuso
  • Simplemente, no reinventar la rueda
  • Promesa fundamental ahorro en el desarrollo al
    evitar construir todas las componentes necesarias
    para un sistema a construir
  • Reuso oportunista cada programador
  • Copiar y pegar trozos de código
  • Robo de ideas desde otros proyectos código
    fuente, diseño
  • Quien reusa de esta manera, hereda los
    esfuerzos asociados al código, replicando
    mantención, testing y verificación, etc.
  • Reuso sistemático la organización
  • Reuso de componentes (rutinas, bibliotecas,
    middleware, frameworks)
  • Evolución y habilitadores
  • 70 80 Dominios altamente especializados, como
    cálculo numérico netlib
  • 80 90 Frameworks toolkits, especialmente
    interfaces
  • 90 Lenguajes OO (C, Java). Bibliotecas
    estándares de componentes.
  • Middleware (CORBA, J2EE). Lenguajes de
    scripting. Open Source.
  • Patrones de Diseño.

4
Reuso, nuestra experiencia en SAPI
  • Crear componentes reusables requiere un esfuerzo
    adicional
  • Una componente no es general hasta que ha sido
    usada con éxito en más de un proyecto
  • No diseñe una componente para ser general.
    Diseñe una componente simple.
  • Si la necesita de nuevo, aplique refactoring.
  • Después de algunas iteraciones (2?), puede ser
    candidata a convertirse en una componente
    reusable
  • Una componente que ha sido usada en más de un
    proyecto con éxito, debe ser mantenida en forma
    separada de cada proyecto particular (control de
    configuración independiente)
  • Mover una componente al estatus de reusable no
    es gratis!
  • Moraleja Una componente no es general antes
    (por diseño)... es general después (por uso)

5
Reuso, nuestra experiencia en SAPI (2)
  • Quién paga?
  • Cuando una componente reusable quiere ser
    utilizada por un proyecto que necesita casi la
    misma funcionalidad... Quién paga por el cambio?
  • Respuesta el proyecto que requiere la
    funcionalidad nueva implementa dicha
    funcionalidad, y se hace responsable de mantener
    compatibilidad hacia atrás
  • Qué proporción?
  • En SAPI, de 80.000 líneas en Java, 5.000
    corresponden a componentes reutilizables
    desarrolladas in-house
  • Cuándo?
  • Antes del diseño/codificación

6
Open Source
  • Concepto. Cuándo una componente es Open Source?
  • Libre distribución
  • Disponibilidad del código fuente
  • Permite trabajos derivados
  • Además, típicamente (pero no necesariamente)
  • Desarrollada por un grupo geográficamente
    disperso, coordinado en forma ad-hoc a través de
    Internet
  • Grupo de desarrollo abierto a recibir
    contribuciones y cambios en el tronco principal
    de distribución
  • Releases frecuentes
  • Comunidad de usuarios de tamaño considerable
    (fenómeno de debugging y beta testing
    distribuído)

7
Open Source (2)
  • Más de una licencia
  • GNU, obliga a entregar el código fuente de la
    componente junto con un desarrollo derivado de
    ella. Si el desarrollo incluye una modificación
    de la componente misma, obliga a entregar los
    fuentes de la modificación
  • BSD, sin restricciones de distribución o uso,
    basta mantener el reconocimiento del trabajo
    original
  • Muchos esquemas intermedios licencias apache,
    netscape, etc.
  • Si no es necesario modificar los fuentes,
    cualquiera de estas licencias permite que la
    componente sea utilizada en un sistema comercial
  • Open Source en la industria
  • IBM, Sun, RedHat
  • Open Source en Motorola
  • A nivel de productos Embedded Linux
  • A nivel de ingeniería de software SourceForge,
    Bugzilla

8
Reuso, una perspectiva diferente
  • Nuevamente, el objetivo ahorro en el esfuerzo de
    desarrollo
  • Componentes reusables disponibles?
  • Mercado de componentes? Muy pequeño (excepto en
    infraestructura)
  • Componentes Open Source
  • Infraestructura sistema operativo, administrador
    de bases de datos, servidor de aplicaciones Java,
    etc.
  • Bibliotecas Numéricas, Grafos, Interfaces,
    HTTP... cientos!
  • Herramientas Compiladores, IDEs, Herramientas de
    construcción
  • Elegir una componente Open Source
  • Cumple mi objetivo?
  • Documentación y Soporte (sí, usted tiene el
    fuente, pero no tiene tiempo)
  • Continuidad del proyecto
  • No es distinto de evaluar componentes comerciales
  • Sólo parece serlo caemos en la tentación de
    creer que si es comercial, esas preguntas son
    menos relevantes

9
Caso SAPI Iteración 2
  • Agrega la funcionaldiad Encuesta Inteligente,
    sobre la ya existente Cápsulas Personalizadas
  • Produce delta de código
  • Hereda la batería de tests del incremento
    anterior
  • Aplica refactoring
  • Utiliza dos componentes reusables a nivel
    organizacional Scheduler, para agendamiento de
    eventos, y Swarm, herramienta de testing
  • Infraestructura (sistema operativo, middleware,
    base de datos) totalmente open source
  • Alta reutilización de bibliotecas open source
  • Herramientas de desarrollo utilizadas también
    open source

10
Diagrama de Arquitectura
Motor de Suscripción
BD Suscrip- ción
Internet
Despachador de bajo nivel (Motorola ó Portador)
Motor de Agenda- Miento y Notifiación
Suscripción
Canal de Log
Conección directa ó través de Internet
BD Contenido
Motor de Despacho de Contenido
SMS-C Portador
Interfaz Web _at_ Portal Web del Portador
Motor de Personalización
BD Persona- lización
Suscripción Despacho
BD Log
Motor de logging
Suscripción
11
Infraestructura y Middleware
  • RedHat Linux
  • Sistema operativo de destino, y plataforma de
    pruebas
  • MySQL
  • Administrador de Bases de Datos
  • Utilizado como Data Store para J2EE, incluyendo
    replicación
  • Kannel
  • Conección con SMS-C / Simulación de SMS-C
    utilizando un módem GSM
  • Apache
  • Servidor Web para las componentes estáticas
  • Tomcat
  • Servlet Container
  • OpenSSL / OpenSSH
  • Comunicación segura y encriptada
  • JBoss
  • EJB Container
  • Velocity
  • Framework para uso de plantillas
  • Usado para generar contenido Web dinámico a
    través de servlets

12
Bibliotecas Java
  • Java Standard Library / Extensions
  • Colecciones (Iterator, HashMap, Hashtable,
    LinkedList, TreeMap, TreeSet, Vector)
  • Manipulación de fechas (Date, DateFormat,
    Calendar, GregorianCalendar)
  • Properties
  • JDBC
  • Mail
  • Servlets, EJB, JNDI
  • IO
  • AWT, Swing
  • Java Media Framework (JMF)
  • HTTPClient
  • Conección cliente HTTP 1.1 incluyendo soporte de
    autentificación y cookies
  • util.concurrent
  • Clases para soportar el desarrollo de
    aplicaciones concurrentes
  • Pools de threads, primitivas de sincronización,
    etc.
  • Xerces
  • Parser XML para Java
  • Archivos de configuración y comunicación con
    componentes externas

13
Bibliotecas Java (2)
  • Element Construction Set (ECS)
  • Creación de contenido para markup languages
  • Usada para generación de contenido WAP
  • Log4J (Log for Java)
  • Log de sucesos al nivel de aplicación
  • Usado para logs del servicio y debugging
  • Torque
  • Framework para mapeo Objeto-Relacional
  • Java Graph Editing Framework, GEF
  • Tipo de datos, algoritmos y visualización de
    grafos
  • Usado para una demo

14
Diagrama de Arquitectura (2)
J2EE Application Server
Internet
Servlet Container Presentation Layer
EJB Container
Despachador de bajo nivel (Motorola ó Portador)
Scheduler Beans
EJB Local Method Invocation
Suscripción
User Profile Beans
Conección directa ó través de Internet
Subscription Beans
SMS-C (Portador))
Interfaz Web _at_ Portal Web del Portador
Content Beans
Suscripción Despacho
RDBMS Como capa de persistencia para J2EE
Suscripción
15
Herramientas de Desarrollo
  • Ant
  • Herramienta de construcción, estilo make,
    estándar en la comunidad Java
  • Parte del Proyecto Apache Jakarta
  • Eclipse
  • Entorno Integrado de Desarrollo (IDE)
  • Extensible mediante plug-ins
  • JEdit
  • Editor Inteligente de código fuente Java
  • Extensible mediante plug-ins
  • JMeter
  • Realiza pruebas de carga de servicios Web
  • JUnit
  • Framework de pruebas unitarias para Java
  • Cactus
  • Extensión de JUnit para pruebas unitarias en J2EE
  • Cygwin
  • Utilitarios UNIX y capa de emulación POSIX para
    Win32

16
Conclusiones
  • El reuso sistemático al interior de una
    organización requiere de un esfuerzo adicional
    para la mantención y configuración de dichas
    componentes
  • Desde el punto de vista de un proyecto, la
    disponibilidad de componentes reusables al inicio
    permite apalancar el esfuerzo de desarrollo
  • Existe una GRAN cantidad de componentes Open
    Source disponibles en Internet
  • Como parte de la planificación asociada al
    diseño, pueden tomarse las decisiones para
    explorar y/o utilizar componentes reusables, en
    particular Open Source
  • El reuso efectivo requiere de un esfuerzo de
    marketting Para poder reusar una componente,
    es necesario saber que existe!
  • Realizar una búsqueda al inicio de un proyecto
    puede ahorrar mucho esfuerzo de desarrollo
    Freshmeat, SourceForge, etc.

17
Preguntas?
  • ?

18
Gracias !
  • Esta presentación está disponible en
  • http//www.motorola.com/cl/seminario
  • Referencias
  • SourceForge
  • Freshmeat
  • mySQL
  • JBoss
  • Java_at_sun
  • IBM Developerworks
  • Proyecto Jakarta
  • Alphaworks
  • Open Source Initiative (OSI)
  • Biblioteca util.concurrent
  • Biblioteca HTTPClient
  • Framework JUnit
  • Cygwin
  • RedHat Linux
  • JEdit
  • The Cathedral and the Bazaar
  • Why software reuse has failed and how to make it
    work
  • Netlib
  • Worse is better
  • GNU
  • Proyecto Apache
  • Graph Editing Framework

19
SAPI, una plataforma para aplicaciones
inalámbricas basada en software open source
  • Backup

20
Modelo J2EE de tres capas
21
Fast V-Model
MIL_01
MIL_02
MIL_02
MIL_03
MIL_05
MIL_01
Test Execution and Release
MIL_04
4s
1s
3s
1s
3s
Write a Comment
User Comments (0)
About PowerShow.com