martes, 7 de noviembre de 2017

Ataques Informáticos

Latinoamérica presenta por lo menos 12 ataques informáticos por segundo según un reporte de Kaspersky Lab en 2016.

Según la firma la principal amenaza son los programas piratas, memorias USB contaminadas y otros medios que no requieren el uso obligatorio de internet, lo cual representa el 82% de los ataques registrados, el 18% de los ataques restantes, correspondes a los ataques realizados en línea. En Colombia específicamente el 39,3% de los usuarios conectados son atacados.

La seguridad de la información es una tema que cada vez se hace más importante, debido a los daños que puede causar ser víctima de cualquier tipo de ataque, daños económicos, de reputación, extorciones, robo de identidad entre otros.

No existe  un sistema que sea seguro completamente, pero existen ciertas medidas y recomendaciones en cada una de las capas de un sistema que pueden ser tomadas, para prevenir dichos ataques. En estas medidas y recomendaciones no debemos dejar de lado el eslabón más débil de la cadena, las personas, las cuales deben ser capacitadas continuamente en seguridad de la información con el fin de evitar uno de los ataques más comunes hoy en día, la ingeniería social

Fuentes:

martes, 31 de octubre de 2017

IDS - Sistemas de detección de accesos.

Los IDS o Intrusion Detection System son herramientas de detección de accesos no autorizados. Existen dos tipos de IDS, los HIDS (IDS enfocados a la detección de ataques en el host) y los NIDS (IDS enfocados a la detección de ataques en red).

Los NIDS suelen capturar todo el trafico que pasa por la red y entregan alertas de los ataques en tiempo real, ademas necesita de un hardware exclusivo y dedicado a el y se suele poner en modo invisible sin asignación de IP, por otro lado las HIDS suelen detectar la integridad de los archivos que se encuentran dentro del host, y en caso de existir la modificación en algún archivo sin el debido acceso muestra una alerta del ataque, también muestra trafico de red para verificar señales de intrusión

Algunas de las acciones tomadas por los IDS son el envío de un mensaje de reconfiguración del firewall para bloquear el ataque, envío de correo electrónico con el aviso del ataque, envío de un datagrama SNMP a una consola externa con los detalles del ataque, registro del ataque, almacenamiento de paquetes sospechosos entre otros 


Fuente: 

martes, 24 de octubre de 2017

Mock Service




Un mock service es una simulación de la respuesta de un servicio, que suele ser utilizado cuando el servicio real no esta disponible, incluso puede utilizarse cuando NO se ha desarrollado el servicio usando métodos de desarrollo guiado por pruebas, en donde se puede probar una funcionalidad general e incluso automatizarla, desde el punto de vista funcional y de desarrollo, con el fin que cuando se termine de desarrollar el servicio, este pueda ser validado.

Otro de los posibles usos de un mock service, es para hacer demos o pruebas de concepto de funcionalidades que aun no han sido desarrolladas, para que puedan ayudar en la toma de decisiones a nivel de negocio, otro de los posibles usos es cuando una empresa manda a hacer el desarrollo de una aplicación a un proveedor externo y por temas de seguridad y sensibilidad de los datos, entrega un mock funcionando con datos ficticios.

Hay algunos servicios  que son cobrados de acuerdo al número de transacciones que ingresan a este, por lo cual se hace necesario en pruebas de performance utilizar mock services para que no se genere un costo adicional y otros de las ventajas que tiene desarrollar un mock service es aislar un sistema y crear total independencia con otros servicios que puedan estar involucrados en una misma funcionalidad


jueves, 19 de octubre de 2017

Creación en un Web Service SOAP básico

CREAR WEB SERVICE SOAP

  1. Crear un nuevo proyecto en Nerbeans. Seleccionar Java EE, luego EJB Module y Next.
  1. Asignar el nombre “CalculatorWSApplication” y seleccionar la ubicación del proyecto.

  1. Seleccionar la versión de Java y el servidor el el que se desplegará el proyecto (Glassfish, Webogic, Tomcat, etc.).


Dar click en “Finish”.



  1. Agregar los parámetros del web service, modificando el siguiente código en el método que aparece por defecto en el proyecto web, de tal manera que aparezca así.


  1. Para realizar una prueba preliminar del proyecto, se debe correr el programa dando “Run” y luego dar click derecho en el proyecto y seleccionar “Test Web Service”.


  1. Aparecerá una aplicación web para testear el Web Service. En esta aplicación se podrán ingresar los dos parámetros que pide el web service (en este caso i y j) y observar el valor de devuelta.

Dar click en el botón “add”.


CREAR EL CLIENTE DEL WEB SERVICE

  1. Se creará un nuevo proyecto en Netbeans de tipo Java SE, Asignando el nombre “CalculatorWS_Client_Application”.

  1. Al estar creado el proyecto, dar click derecho y seleccionar “New Web Service Client”.


  1. Hacer click en el Browse de seleccionar ubicación de WSDL y seleccionar el proyecto anteriormente creado..




PRUEBA DEL WEB SERVICE

Al ser un web service tipo Soap, se hace uso de la herramienta SOAP UI (se puede descargar del sitio https://www.soapui.org/downloads).

Después de instalada la herramienta, se crea un nuevo proyecto (tipo Soap) y aparecerá la siguiente ventana en la que se debe buscar el WDSL generado con anterioridad. El WDSL se debe encontrar en el directorio “xml-reference” de la carpeta del proyecto del cliente (para nuestro caso C:\...\NetBeansProjects\CalculatorWS_Client_Application\xml-resources\web-service-references\CalculatorWS\wsdl\localhost_8080\CalculatorWS\CalculatorWS.wsdl)



Se da click en OK.

Después de creado el proyecto, se da click derecho sobre el método “add” y se elige la opción “New request”.


Después de generado el request, se procede a probar el web service, ingresando los parámetros dentro de la parte izquierda. Después de ejecutar, se debe poder visualizar el resultado en la pantalla de la parte derecha.


martes, 17 de octubre de 2017

ESB (Enterprise Service Bus)

¿Qué es un ESB?


ESB (Enterprise Service Bus), es una aplicación de software, cuyo diseño se encuentra basado en un conjunto de patrones predeterminados (SOA - Service Oriented Architecture), cuya principal función es ser un intermediario entre varias aplicaciones para que dichas aplicaciones puedan comunicarse entre sí, sin tener que hacerlo directamente. De esta manera la complejidad que implique dicha comunicación entre aplicaciones será absorbida por el ESB.

Una conexión directa entre aplicaciones tiene diferentes inconvenientes. Las relaciones directas entre las aplicaciones son complejas, lo que genera una gran cantidad de código para manejar las comunicaciones necesarias en cada aplicación. Cuantas más aplicaciones y más relaciones existan entre ellas, existirá una mayor complejidad. El diseño sería rígido y poco flexible a posibles cambios y aumentará la mantenibilidad del sistema.


Interacción de sistemas sin un ESB 



Además puede que las aplicaciones no soporten la comunicación con las demás. Por ejemplo, si el Sistema es una aplicación como COBOLo Siebel o alguna otra, no tiene forma de comunicarse con una aplicación como JAVA de manera directa.



En contraposición se presentan algunas ventajas
  • Facilita la integración de aplicaciones. 
  • Ideal para trabajar en entornos heterogéneos: diferentes tecnologías y protocolos. 
  • Reduce el coste total de la gestión y el mantenimiento.


Interacción de un sistema con un ESB







Fuentes
https://ucase.uca.es/sites/default/files/documents/jboubeta/2013-05-20-introduccion-a-esb.pdf
http://desarrolloconsoa.blogspot.com.co/2013/10/que-es-un-enterprise-service-bus-y-por.html



domingo, 1 de octubre de 2017

Arquitectura SOA fuente: 

SOA es un marco de trabajo que permite integrar datos y logica de negocio de sistemas separados. Este fue desarrollado a finales de los 90's con el objetivo de unir aplicaciones que en su momento eran autosuficientes y fueron diseñadas sin considerar los otros sistemas a su alrededor y donde no era posible acceder desde cierto sistema a la informacion de alguna aplicacion en especifico.

Para implementar SOA se debe en primera medida asegurar que los sistemas sean compatibles con SOA, luego se debe identificar los sistemas que desea integrar y publicarlos como servicios, claramente esto requiere de un desarrollo y una serie de herramientas e infraestructura especifica que se deben poner a disposición del desarrollador para que pueda ser exitosa la integración entre las aplicaciones.

Los servicios deben tener un control de recursos tecnologicos, continenen la logica del negocio independientemente del consumidor y su entorno, son un activo de la empresa, no mantiene ni depende de condiciones pre-existentes, proporcionan una respuesta (response) ante una solicitud realizada (request).

Aseguramiento de bases de datos 

Es importante realizar una secuencia de procedimientos básicos para asegurar las bases de datos, con el fin de proteger los datos sensibles que se alojan en estas. El aseguramiento de las bases de datos se pueden hacer en 4 fases

Fase 1: Tienen una prioridad alta y se deben realizar en el momento de la instación de la base de datos
Implemente estrategias de copias de seguridad y recuperación.
Eliminar contraseñas por defecto
Usar contraseñas complejas
Ajustar los permisos de acceso al software
Proteger los programas fuente
Limitar los accesos de usuarios administradores

Fase 2: Tienen una prioridad alta, se deben realizar dentro de las primeras semanas de la instalación de la base de datos
Limitar accesos por sistema operativo
Asignar cuotas de espacio
Depurar los accesos de los usuarios
Habilitar auditoria para cuentas de administración
Monitorear los accesos de administración

Fase 3: Tiene una prioridad media, se debe realizar en los primeros meses de la implementación de la base de datos
Eliminar contraseñas de archivos
Crear perfiles para los usuarios de la base de datos
Bloquear objetos no usados
Analizar los perfiles de los usuarios
Análisis y Limpieza periódica de logs.

Fase 4: tiene una prioridad media, se puede realizar algunos meses después de la implementación de la base de datos
Profundice la Auditoria
Identifique información sensible
Cifre la información sensible
Cifre las copias de seguridad

fuente: Diplomado en Seguridad de la Información FEUD
defensa en profundidad

la defensa en profundidad para sistemas de información establece varias lineas de defensa que cubren la profundidad del sistema en sus diferentes capaz, garantizando la protección del sistema y un medio de comunicación que permita al interesado tomar decisiones según la gravedad del incidente ocurrido

La defensa en profundidad debe ser global (engloba todas las dimensiones del sistema de información como aspectos organizacionales, técnicos y de implementación), debe tener coordinación (los medios de implementación actúan por la capacidad de alerta y difusión teniendo en cuenta incidentes previos), debe ser dinámica (se debe disponer de una política que identifique la capacidad de reacción, una planificación de las acciones y una escala de gravedad), debe ser suficiente (cada medio de protección debe contar con protección propia, un medio de detección y procedimientos de reacción), ser exhaustiva (los bienes se deben proteger en función de su criticidad y asegurar que cada uno de ellos este con por lo menos 3 lineas de defensa) y demostrada (se debe poder calificar la defensa y tener una estrategia de homologación).

Un ejemplo de profundidad que puede ser adoptado es la implementación de lo siguiente:
Firewalls
Antivirus
Redes privadas virtuales (VPN)
Segmentación de redes
Contraseñas Complejas para Usuarios Administrativos
Contraseñas complejas para usuarios estándar
Contraseñas complejas para usuarios de acceso remoto
Contraseñas complejas
Creación de contraseñas para administradores
Paquetes de administración
Archivo con la bitácora del uso
Proceso de creación para parches
Terminales de trabajo


Principios de seguridad en Bases de Datos

La mayoria de los datos sensibles se almacenan en las bases de datos, por lo cual la seguridad en ellas es de vital importancia, a continuacion se especifican los principios de seguridad en bases de datos.

1. Identificar la sensibilidad: Se debe identificar cuales son las tablas o datos sensibles y protegerlos contra malware o inyeccion SQL
2. Evaluación de la vulnerabilidad y la configuración: Evaluar la forma como se instalo la base de datos, su sistema operativo, comprobación de privilegios, bitácoras transaccionales, parámetros de configuración y programas ejecutables; También se puede revisar que la base de datos no se este ejecutando con una versión que tenga vulnerabilidades conocidas
3. Endurecimiento: Se deben seguir las recomendaciones cuando se encuentren vulnerabilidades, eliminar funciones y opciones que ya no se utilicen, tener una poíitica estricta sobre lo que se puede y no se puede hacer y desactivar lo que no se necesita.
4. Auditar: Se debe realizar evaluacion y seguimiento a las recomendaciones de la auditoria, es recomendable automatizar el control de la configuracion, implementando alertas si existen cambios en la configuracion de la base de datos
5. Monitoreo: Es importante tener un monitoreo en tiempo real de la base de datos contra detección de intrusos o uso indebido, como alertas por patrones inusuales de acceso, cambios no autorizados a los datos, cambios de privilegios, cambios de configuración
6. Pistas de auditoria: Es importante tener trazabilidad de las actividades que afectan la integridad de los datos o la visualización de datos sensibles
7. Autenticación, control de acceso, y Gestión de derechos: Se debe garantizar la rendición de cuentas por usuario, administrar los privilegios y limitar los accesos, debido a que todos los usuarios no son creados iguales. se debe revisar periodicamente los permisos de los usuarios. Tambien es recomendable cifrar los datos sensibles

Requerimientos

El levantamiento de requerimientos al inicio de un proyecto de software es fundamental, ya que desde este punto se pueden empezar a corregir errores y así mismo evitar el fracaso de un proyecto.
Los requerimientos se deben identificar y documentar a partir de los requerimientos de un sistema, a partir de los usuarios, clientes o interesados

PMO informatica a desarrollado 7 tecnicas que podemos utilizar en la elaboracion de estos requerimientos.

1. Analisis de la documentacion: Consiste en revisar documentos como Planes de negocio, actas de constitución de proyecto, reglas de negocio, contratos, definiciones de alcance, memorándums, correos electrónicos, documentos de entrenamiento, entre otros, que quizas ya puedan tener algunos requisitos funcionales y no funcionales

2. Estudiar el entorno de trabajo de usuarios y clientes, en donde se pueden hacer sus respectivas anotaciones y hablar con los mismos

3. Entrevistas: se realiza con los usuarios o interesados y en este punto se puede obtener informacion detallada y clara sobre los requerimientos y su granularidad

4. Encuestas o cuestionarios: se realizan con el fin de recopilar requerimientos de muchas personas

5. Mesas de trabajo: son reuniones para obtener informacion especifica de varias personas

6. Tormenta de ideas: son reuniones para proponer ideas, evaluarlas y/o priorizarlas

7. Historias de usuario: Es la especificacion de los requerimientos del cliente de manera simple, en donde se especifican las funcionalidades y las tareas tecnicas que se deben tener en cuenta para lograr dichas funcionalidades.




Profiling:


El performance de las aplicaciones cada día se a vuelto mas relevante, debido a que las aplicaciones que antes eran para algunos pocos usuarios se han masificado y ahora la misma aplicación debe soportar cientos o miles de usuarios

Para verificar el performance de una aplicación existen muchos tipos de pruebas (carga, estrés, entre otras) que verifican el performance a nivel de infraestructura, analizando los contadores de rendimiento de los servidores y bases de datos. Sin embargo en algunas ocasiones con este tipo de pruebas no se puede determinar la causa raíz de un problema de performance, por lo cual se hace necesario realizar un profiling.

Un profiling es el perfilamiento de una aplicación (java, .net) donde a través de una herramienta se van  a obtener datos del consumo de memoria y CPU de cada método, clase o llamado a base de datos en particular, conociendo así mismo el número de invocaciones para cada uno de estos, también se puede conocer el numero de hilos utilizado, los que se encuentran en estado ocioso o los que se ejecutan en determinado momento.

Este tipo de información nos ayuda a identificar a nivel de software donde se debe optimizar el código, para así mejorar el performance de la aplicación al revisar el método que consume mas memoria o CPU, un llamado a base de datos que sea poco optimo y se este demorando según criterios de aceptación mas del tiempo adecuado entre otras cosas.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

martes, 26 de septiembre de 2017

PENTAHO CE: SOLUCIÓN OPEN SOURCE PARA BI

La visibilidad que nos está dando Pentaho, la solución de software libre de BI de sus componentes, se ha convertido en un interesante ejercicio de análisis de la arquitectura de una suite de BI.
En las siguientes lineas vamos a comentaren que estado actual se encuentra la solución y que con que componentes cuenta, para llevar a cabo un proyecto BI, como se indica en la siguiente gráfica:

Introducción a Pentaho

Pentaho se define a si mismo como una plataforma de BI “orientada a la solución” y “centrada en procesos” que incluye todos los principales componentes requeridos para implementar soluciones basados en procesos y ha sido concebido desde el principio para estar basada en procesos.
Las soluciones que Pentaho pretende ofrecer se componen fundamentalmente de una infraestructura de herramientas de análisis e informes integrado con un motor de workflow de procesos de negocio. La plataforma será capaz de ejecutar las reglas de negocio necesarias, expresadas en forma de procesos y actividades y de presentar y entregar la información adecuada en el momento adecuado.

Su modelo de ingresos parece estar orientado a los servicios (soporte, formación, consultoría y soporte a ISVs y distribuciones OEM) aunque en alguno de los documentos y páginas que hemos examinado aparece mencionado algunas funcionalidades “Premium” que hacen pensar en ingresos por futuras versiones o funcionalidades de pago.

En su web presenta una organización por productos: 
ReportingAnálisisDahsboards y Data Mining, acompañado por dos introducciones: a la plataforma y a los productos. En dichas introducciones se hace mención específica al workflow como una de las capacidades BI claves de la plataforma.

Presentando y entregando la información.


Pentaho presenta informes en los formatos habituales (html, excel, pdf...) mediante 
JfreeReportproyecto incorporado recientemente a Pentaho junto con su responsable Thomas Morgner, u otras plataformas como BIRT o JasperReports. Para la generación de PDFs utilizan, como podría ser previsible, el conocidísimo Apache FOP. Asimismo incorpora la librería JPivot, gracias a la cual podemos ver tablas OLAP a través de un browser y realizar las aplicaciones típicas de análisis OLAP (drill down, slice and dice...).
Recientemente se anunció Pentaho Report Design Wizard, una herramienta de diseño de informes, que facilita el trabajo con JfreeReport y supera sus limitaciones. Suponemos que algo tiene que ver JFreeDesigner, el diseñador de informes para JFreeReport de jfree.org, ya que Thomas Morgner es también el responsable de 
JFreeDesigner.

Los dashboards son un desarrollo propio de Pentaho. Recogen información de todos los componentes de la plataforma incluyendo aplicaciones externas, feeds RSS y páginas web. Incluyen gestión y filtrado del contenido, seguridad basada en roles y drill down. Pueden ser integrados en terceras aplicaciones, en portales o dentro de la plataforma Pentaho.
Para generar gráficos se apoyan en 
JFreeChart, una librería para generar los gráficos más comunes (2D, 3D, barras, líneas series temporales, Gantt...), interfaces para acceder a diferentes fuentes de datos, exportación a PNG, JPEG y PDF y soporte para servlets, JSPs, applets y aplicaciones clientes.

Los 
WebServices son una característica fundamental de Pentaho. Las acciones, que son las tareas más sencillas que constituyen una solución de Pentaho, pueden publicarse como WebServices. Pentaho utiliza como motor de WebServices Apache Axis, quedando los servicios descritos en el lenguaje de definición de servicios web WSDL.
Para entregar la información Pentaho se apoya en una infraestructura 
JMS para enviar correos electrónicos y Quartz, un scheduler opensource integrable en aplicaciones J2EE (de hecho necesita ser instanciado). También está anunciado un feed RSS propio, para posicionarse en el desktop.

Para obtener la funcionalidad de procesamiento analítico en línea (OLAP) se utilizan otras dos aplicaciones: el servidor OLAP Mondrian, que combinado con Jpivot, permiten realizar querys a Datamarts, que los resultados sean presentados mediante un browser y que el usuario pueda realizar drill down y el resto de las navegaciones típicas.

Algunas cuestiones interesantes sobre Mondrian:
- Mondrian utiliza MDX como lenguaje de consulta, que no tendría nada de raro si no fuera porque fue un lenguaje propuesto por Microsoft.
En noviembre de 2005 Mondrian se incorporó al proyecto Pentaho, incluyendo a su fundador Julian Hyde.
- Mondrian funciona sobre las bases de datos estándar del mercado: Oracle, DB2, SQL-Server, MySQL... lo cual habilita y facilita el desarrollo de negocio basado en la plataforma Pentaho.
- JPivot está considerado con un “proyecto hermano” de Mondrian. Al incorporarse Mondrian también lo ha hecho JPivot




UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

miércoles, 20 de septiembre de 2017

SCRUM (tomado de "Guia de Scrum").

Scrum es un marco de trabajo que puede ser usado para el desarrollo de proyectos complejos, basado en la toma de decisiones a partir de la experiencia.

Scrum se compone de los siguientes roles:
- Product Owner (PO): Es el encargado de plasmar los deseos del cliente (Stakeholders) en una lista de productos (product backlog), especificandolos, priorizandolos y maximizando el valor del producto
- Scrum Master (SM): Este rol vela por que la metodología se adopte y se cumpla, hace que las reuniones se realicen en los tiempos adecuados, guía al equipo de desarrollo en ser auto-organizado y multifuncional, proporciona técnicas al PO para gestionar la lista de productos entre otras
- Equipo de desarrollo (DT): Son un grupo de profesionales que se encargan de desarrollar y entregar un incremento del producto, son  auto-organizados y multifuncionales, por lo cual no necesitan que nadie les indique como hacer su trabajo

Scrum también cuenta con ciertos eventos que ayudan a la inspección del progreso del proyecto, como lo son el planning, el daily, el review y la retrospective, importantes para dar transparencia en las tareas que se están realizando y dar una adecuada adaptación a cambios que surjan a lo largo del proyecto


UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

jueves, 7 de septiembre de 2017

En esta entrada observaremos el TOP de las mejores herramientas de modelado UML online en el 2017 (también incluye herramientas basadas en web para diagramas ER y BPMN)


La demanda de colaboración en línea y las asombrosas interfaces web que se pueden crear con nuevas tecnologías (por ejemplo, canvas en HTML5 ) ha creado un nuevo mercado y de rápido crecimiento para herramientas de modelado: herramientas de modelado en línea . De hecho, muchos de ellos son más herramientas de dibujo que herramientas de modelado, pero, como mínimo, ofrecen una forma de dibujar y compartir sus modelos en línea, cubriendo principalmente modelos UML, modelos de base de datos (diagramas ER) y modelos BPMN.
Hay muchas herramientas que podríamos utilizar (con nuevos jugadores entrando en el mercado cada pocos meses) con una amplia variedad de diferentes características y mercados objetivo. Para ayudarte a navegar por este concurrido mercado sigue leyendo para ver algunas recomendaciones de las mejores herramientas de modelado en línea. La lista no incluye bibliotecas (javascript) para dibujar modelos ni herramientas UML textuales (que podrían considerarse como algún tipo de herramienta UML en línea, ya que normalmente ofrecen la opción de embeber el modelo UML renderizado en un sitio web como una imagen). Algunas de las herramientas UML de escritorio también pueden tener una versión en línea (limitada).

Lucidchart

Basado en HTML5. Con soporte UML y habilidades de colaboración en tiempo real. Puede importar archivos de Visio, lo cual es definitivamente un plus considerando que una gran base de usuarios para estas herramientas parece proviene de más ambientes de modelado de escritorio como Microsoft Visio. Más allá de UML, Lucidchart también viene con plantillas de dibujo para ER, modelado de procesos, diagramas de red y más.
Afirman tener más de 8 millones de usuarios. Y sólo recaudaron más de 36 millones de dólares en fondos para que puedas esperar un montón de nuevas características y cosas emocionantes de Lucidchart. 

GenMyModel

GenMyModel comenzó como una herramienta de modelado de UML solamente, pero desde entonces se ha expandido para cubrir también el modelado de negocio con el soporte de Archimate y BPMN. Si ofrece un repositorio de modelos centralizado para equipos (con gestión de derechos de acceso) que permite una colaboración fácil y simultánea.
Contrariamente a otras herramientas de esta lista, esto es más una herramienta de modelado que una herramienta de dibujo (con sus pros y contras, dependiendo de cómo piensa utilizar sus modelos). Como tal, una distinción clave de GenMyModel es su apoyo a la exportación de modelos como XMI (el formato "estándar" para intercambiar modelos ) y sus capacidades de generación de código.

Gliffy

Con un fuerte énfasis en los aspectos de control de colaboración y revisión, Gliffy afirma ser "la aplicación de diagramas en línea más utilizada" (me pregunto cómo saben eso!). Gliffy soporta todos los diagramas UML junto con una variedad de otros tipos de diagramas, incluyendo un fuerte soporte para los modelos de proceso BPMN.
Viene con plugins para Confluence y Jira tan claramente que se integra muy bien con estas herramientas. Eso es importante si su equipo los usa y quiere integrar sus modelos en el resto de su proceso de discusión / desarrollo.

Fuente: http://modeling-languages.com/web-based-modeling-tools-uml-er-bpmn/