sábado, 29 de septiembre de 2012

Domotica

El término domótica puede definirse como  "el concepto de vivienda que integra todos los automatismos en materia de seguridad, gestión de la energía, comunicaciones, etc.". Es decir, el objetivo es asegurar al usuario de la vivienda un aumento del confort, de la seguridad, del ahorro energético y las facilidades de comunicación.
Una definición más técnica del concepto sería: "conjunto de servicios de la vivienda garantizado por sistemas que realizan varias funciones, los cuales pueden estar conectados entre sí y a redes interiores y exteriores de comunicación. Gracias a ello se obtiene un notable ahorro de energía, una eficaz gestión técnica de la vivienda, una buena comunicación con el exterior y un alto nivel de seguridad".
 Así concebida, una vivienda inteligente puede ofrecer una amplia gama de aplicaciones en áreas tales como:
  • seguridad
  • gestión de la energía
  • automatización de tareas domésticas
  • formación, cultura y entretenimiento
  • teletrabajo
  • monitorización de salud
  • operación y mantenimiento de las instalaciones
De una manera general, un sistema domótico dispondrá de una red de comunicación y diálogo que permite la interconexión de una serie de equipos a fin de obtener información sobre el entorno doméstico y, basándose en ésta, realizar unas determinadas acciones sobre dicho entorno.

¿CÓMO FUNCIONA UN SITEMA DOMÓTICO?

La configuración de un sistema domótico está íntimamaente ligada a los procedimientos de transmisión de información que posibilitan el diálogo entre dichos periféricos y la unidad central. Los terminales ( radiadores de calefacción, electrodomésticos, puntos de luz,etc.)suelen ser equipos convencionales a los que se aporta una inteligencia o capacidad de comunicación a traves de una interfaz. Los elementos de campo comprenden todo el conjiunto de sensores que permiten convertiruna magnitud física en señal eléctrica, y los actuadores u órganos de mando, capaces de tranformar una señal eléctrica en una acción sobre el entorno físico. Todos los elementos de campo envían y reciben señales a través de una red de comunicaciones (bus domótico), para comunicarse entre ellos y con la unidad central encargada de gestionar los intercambios de información. Estas señales de control están codificadas de una determinada forma (protocolos de comunicación), pos lo que se necesitan unos elementos que pasen las señales bus y, a su vez, de señales bus a señales de salida a los actuadores (relés, interruptores, etc.). Estos elementos se suelen denominar de diferentes formas: módulos de entrada/salida, acopladores, interfaces, etc.
Un sistéma domótico puede trabajar de forma centralizada o descentralizada. En el primer caso, el funcionamiento global del sistema depende de la programación introducida en la central domótica. En cambio, en los sistemas descentralizados cada elemento es inteligente y se programa de forma individual. Las posibilidades de aplicación de la domótica en el espacio dom´stico son muy amplias. No obstante, las áreas en las que se han dedicado mayores esfuerzosson las relativas ala segurida, la automatización de tareas domésticas o el confort, la gestión de la energía y las comunicaciones. De hecho para calificar de domótica una vivienda debe contemplar estas cuatro familias de servicios.


ASPECTOS FUNDAMENTALES DE LA DOMÓTICA
La domótica se centra en cuatro aspectos fundamentales:
% La mejora de la comodidad.
% Aportar más seguridad.
% Nuevas formas de comunicación.
% Reducción de los gastos energéticos.

COMENTARIOS
La DOMOTICA es un tema muy interesante en estos dias se trata de un nuevo concepto de vivienda que contiene muchas opciones para la comodidad,seguridad ahorro en muchos aspectos al usuario
Mas que nada es brindarle al usuario una manera de facilitar la vida en las comodidades hogareñas.
Lo que muchos desean tener y alacanze de su casa



FUENTES DE INFORMACION
http://domoticanp.blogspot.mx/2008/01/definicion-de-domotica.html 

martes, 25 de septiembre de 2012

MDD

El Desarrollo de Software Dirigido por Modelos (DSDM, también denominado MDD por su acrónimo en inglés, Model-Driven Development) es una propuesta para el desarrollo de software en la que se le atribuye a los modelos el papel principal de todo el proceso, frente a las propuestas tradicionales basadas en lenguajes de programación y plataformas de objetos y componentes de software.

Son varias las razones que han motivado la aparición de este nuevo paradigma. En primer lugar nos encontramos con la creciente complejidad de las aplicaciones de software, que han de satisfacer un mayor número de requisitos (heterogeneidad, distribución, alta disponibilidad, adaptabilidad, etc.) con mejores prestaciones y menores tiempos de desarrollo. Por otro lado, las nuevas tecnologías evolucionan demasiado deprisa (COM, DCOM, COM+, CORBA, CCM, J2EE, .NET, Web Services, SOA...), lo que hace que las inversiones en tecnologías concretas sean demasiado volátiles.

Si bien es cierto que esos problemas no son nuevos en el campo de la Ingeniería de Software, está comprobado que la mejor forma de tratar con ellos es elevando el nivel de abstracción de los modelos desde las primeras etapas del desarrollo.
De hecho, el DSDM no es el primer intento por resolver este tipo de problemas. A lo largo de la evolución de la Ingeniería de Software hemos asistido a muchas propuestas para que los programas reflejen de una forma mejor y a más alto nivel, no sólo el dominio del problema, sino también para que traten de ocultar la complejidad de la tecnología sofware subyacente. Normalmente esto se ha llevado a cabo mediante la definición de lenguajes de programación, cada vez de más alto nivel (COBOL, Pascal, C, C++, Eiffel, Java, Python, Ruby, etc.), y la aparición de nuevas técnicas y mecanismos, por ejemplo los marcos de trabajo (frameworks) como Struts o Rails. Sin embargo, estos intentos no han conseguido lograr del todo su objetivo. Quizás una de las razones de su aparente fracaso es que estaban basados en las propias tecnologías del software, cuando es precisamente ahí donde residen la mayoría de los problemas.

Principios básicos del DSDM

Uno de los términos claves en la filosofía del DSDM es el concepto de modelo. De forma sencilla podríamos definir un modelo como una abstracción simplificada de un sistema o concepto del mundo real. Como tal, el modelo contiene un menor nivel de detalle que su correspondiente artefacto de la vida real. Sin embargo, ésta no es la única definición que encontraremos en la literatura sobre el término "modelo". A modo de ejemplo, las siguientes citas muestran algunas de las acepciones más comunes de este concepto en el ámbito de la Ingeniería de Software y del DSDM:
  • Un modelo es una descripción de un sistema, o parte de éste, escrito en un lenguaje bien definido. (Warmer y Kleppe, 2003).
  • Un modelo es una representación de una parte de la funcionalidad, estructura y/o comportamiento de un sistema (OMG, 2001).
  • Un modelo es una descripción o especificación de un sistema y su entorno definida para cierto propósito. Un modelo es representado habitualmente como una combinación de elementos gráficos y de texto. (Miller y Mukerji, 2003).
Según Wermer y Kleppe (2003), cada modelo se centra en la descripción de un único aspecto del sistema, de acuerdo a un propósito específico, y descrito hasta un cierto nivel de abstracción adecuado para el problema modelado. Tal descripción puede facilitarse de forma gráfica o textual (Miller y Mukerji, 2003), haciendo uso generalmente de lenguajes de modelado cuya semántica esté bien definida. A este respecto, la idea compartida por todos los paradigmas englobados dentro del DSDM es la conveniencia de utilizar para el modelado lenguajes de mayor nivel de abstracción que los lenguajes de programación habituales, esto es, lenguajes que manejen conceptos más cercanos al dominio de la aplicación. Así pues, dependiendo del ámbito DSDM que se trate, estos lenguajes que proporcionan mayor nivel de abstracción se denominan lenguajes de modelado (contexto de MDA) o lenguajes específicos del dominio (contexto de DSM y SF).

COMENTARIOS

EL MDD es una propuesta para un buen desarrollo de software en la que se le puede considerar los modelos del papel principal de todo el proceso, teniendo en cuenta las opciones con las que ya se contaba anteriormente d las que se constityuyen de lenguajes de programacion y plaaformas de objetos y componentes de sw
Es importante tener en cuenta que  gracias a este metodo se a podido enfrentar la complejidad de las aplicaciones que tienen los software, poder satisfacer los requisitos solicitados cada vez con mayor complejidad











LEY DE MURPHY

-Todo programa, cuando esta listo es obsoleto.
-Todo programa cuesta más y demora más en terminase de lo que se había previsto.
-Si un programa es útil, debe ser corregido.
-Si un programa es inútil, debe estar debidamente documentado.
-Todo programa se expande hasta utilizar toda la memoria disponible.
-La complejidad de los programas crece hasta que exceda la capacidad del programador.
-Si un test de instalación funciona perfectamente, todos los sistemas subsecuentes funcionaran mal.
-Agregar más recursos a un proyecto de software retrasado hace que se demore aún más.
-Es imposible realizar un programas apto para tontos porque los tontos son muy ingeniosos.
-Cuando las cosas están yendo bien, algo comenzara a andar mal.
-Cada vez que las cosas parezcan estar funcionando bien es porque hay algo de que nos hemos olvidado.
-Si parece sencillo es complicado.
-Si parece complicado es imposible.
-Siempre se encontrara un error en el ultimo lugar donde se busque.
-Aquello que no se hace, siempre es más importante que lo que se hizo.
-Todo programador debe de actuar de forma racional luego de que las demás posibilidades ya han sido agotadas.
-Si no entiende una palabra determinada en un documento técnico, ignórela. El documento mantiene todo su sentido igual.
-Si las cosas pueden empeorar, empeorarán.
-Por más de que haga todo lo necesario para que nada salga mal, será insuficiente, ya que algo saldrá mal.
-Cuando todo falla, es el momento de consultar el manual que, naturalmente, no tenemos ni idea de donde pueda estar, o lo que es peor, jamas tuvimos el gusto de conocer.
-Un programa es aquello que cuesta el doble de lo calculado, tarda el doble de lo imaginado y no hace ni la mitad de lo que pensaba.
-Cantidad de líneas pertenecientes a un programa tales que, añadidas al mismo, impiden que quepa en la memoria, y sustraídas de él, no permiten que funcione, como se había previsto en un principio.
-El funcionamiento sin problemas de una computadoras igual a los días de duración de la garantía + 1.
-Los botones de reset y encendido están, por default, puestos en donde sea más fácil pulsarlos por error.
-Si nos olvidamos de hacer un backup, seguramente el Disco Duro se arruinará.
-Cualquier programa bueno requiere más memoria de la que usted tiene.
-La velocidad con que un componente se vuelve obsoleto es directamente proporcional a su valor.
-Los errores de un software son imposibles de detectar por nadie a excepción del usuario final.



COMENTARIOS
Mas que nada yo los veo como buenos consejos para como saber actuar en algunos problemas asi y que no me quieran marear con otra informacion .









 

BPM

El BPM (Business Process Management) se está convirtiendo en una de las tendencias de gestión empresarial y tecnológica de mayor crecimiento del mercado y según estudios recientes, esta tendencia irá a más. Sin embargo, para muchas organizaciones no está muy claro qué es realmente un BPM, cuáles son sus funcionalidades y, en definitiva, cuáles son sus diferencias con respecto a “otras siglas”: BPA, PLM, BI, ERP,…
Empezaremos poco a poco, dando pequeños pero seguros pasos para conocer qué es y qué implica un BPM.





Por definicion se dice que el BPM es “un conjunto de herramientas, tecnologías, técnicas, métodos y disciplinas de gestión concebidas para diseñar y ejecutar la automatización de procesos empresariales”.
Es decir, el BPM sirve para automatizar el ciclo de vida de los procesos.  Todas las organizaciones realizan sus actividades según flujos de trabajo más o menos establecidos, y ese “más o menos” puede suponer el éxito o el fracaso de la empresa. Mediante las herramientas BPM una organización tendrá la posibilidad de definir en una aplicación informática sus procesos, organizar la información y el trabajo de las personas, controlar su ejecución en tiempo real y mediante una monitorización adecuada (indicadores, alertas, informes, cuadros de mandos) extraer conclusiones para alinearse con el objetivo último de lograr una mayor eficiencia.

Hay multitud de aplicaciones en el mercado que pueden ayudar a las empresas a definir y gestionar, de manera más o menos sencilla, sus procesos y contenidos. Destacan en general por ser herramientas ágiles y flexibles, que facilitan la capacidad de adaptación al cambio, sin que normalmente sea requerido un perfil técnico para implementar dichas modificaciones una vez implantado el sistema. La tendencia hace que se trate generalmente de herramientas web, que permiten comunicarse internamente a los empleados de la organización mediante portales empresariales, y que además ofrecen la posibilidad de abrir las puertas de la propia organización a clientes, proveedores, socios, etc., para que también éstos, si es necesario, intervengan de manera más activa en la ejecución de los procesos.
Es fácil intuir que para llevar a cabo una estrategia BPM se necesita tener cierto nivel de madurez empresarial y organizativa. El hecho de plantearse implantar un BPM, implica la necesidad de analizar  qué y cómo se están haciendo las cosas en su empresa y si realmente dispone del control que necesita de sus procesos.

Algunos ejemplos de BPMS:
BPM también es vista como una disciplina de administración, que requiere que las organizaciones se cambien a un pensamiento centrado en los procesos y que reduzcan su dependencia de estructuras tradicionales de territorio y funcionalidad (los llamados silos). Es un enfoque estructurado que emplea métodos, políticas, métricas, practicas de administración, y herramientas de software para mejorar la agilidad y el desempeño operacional.
La disciplina BPM tiene implicancia en 4 aspectos del negocio:
  • Estrategias
  • Governance (Administración y Control)
  • Estructura Organizacional (Organization)
  • Cultura.

COMENTARIOS
El BPM son herramientas, tecnologicas,tecnicas,metodos y disciplinas de gestion  su principal funcion es diseñar y ejecutar la automatizacion de   procesos empresariales.
 Mas que nada estas herramientas sirven para automatizar el ciclo de vida que tienen  los procesos


FUENTES DE INFORMACION
http://www.cio.com.co/2008/bpm1.htm
 http://www.soaagenda.com/journal/articulos/que-es-bpm-que-es-bpms/

CLOUD COMPUTING

Es un término que se define como una tecnología que ofrece servicios a través de la plataforma de internet. Los usuarios de este servicio tienen acceso de forma gratuita o de pago todo depende del servicio que se necesite usar.
El término es una tendencia que responde a múltiples características integradas. Uno de los ejemplos de está “nube” es el servicio que presta Google Apps que incorpora desde un navegador hasta el almacenamiento de datos en sus servidores. Los programas deben estar en los servidores en línea y puedas accesar a los servicios y la información a través de internet.

Cloud Computing es un paradigma que permite ofrecer servicios de computación a través de Internet.

Cloud computing es el desarrollo y la utilización de capacidad de procesamiento computacional basado en Internet (la “nube”). El concepto es un cambio de paradigma, a través del cual los usuarios ya no necesitan contar con conocimientos, experiencia o control sobre la infraestructura tecnológica que se encuentra “en la nube”, la misma que soporta sus actividades. Este concepto involucra típicamente la provisión de recursos fácilmente escalables y casi siempre virtualizados, tratados como servicios sobre Internet.

El termino “nube” (cloud en ingles) es usado como una metáfora para el Internet, basado en como el Internet es representado en los diagramas de redes computacionales y como  abstracción de la infraestructura subyacente que el misma oculta. Los proveedores de cloud computing proveen aplicaciones en línea de negocio, las mismas que se pueden acceder desde exploradores de internet (Firefox, IE, Opera, Chrome, Safari, etc), mientras el software y los datos son almacenados en los servidores.

Estas aplicaciones están ampliamente divididas en las siguientes categorías: Software como Servicio (Software as a Service – SaaS), Utility Computing, Web Services, Plataformas como Servicio (Platform as a Service – PaaS), Proveedores de Servicios Administrados (Managed Service Providers – MSP), Servicio de Comercio (Service Commerce) e Integración de Internet (Internet Integration).
El nombre de “cloud computing” fue inspirado por el símbolo de la nube que usualmente representa a la Internet en diagramas de flujo y de redes.

Comparaciones

Cloud computing puede ser confundido con:
  1. Grid computing – “una forma de computación distribuida, a través de la cual una ‘super computadora virtual’ compuesta de un grupo de computadoras que se encuentran conectados a la red libremente, trabajan en conjunto para realizar tareas muy complejas”
  2. Utility computing – el “empaquetado de recursos computacionales, tales como capacidad de procesamiento y almacenamiento, medido de forma similar como los servicios tradicionales, ej.: servicio de electricidad”
  3. Computación autónoma – “sistemas de computación capaces de auto-administrarse”
Efectivamente, muchas implementaciones de cloud computing dependen de “redes computacionales” (también llamadas Grids) de características autónomas, las mismas que se facturan como servicios.
Sin embargo cloud computing se inclina a expanderse más alla de las redes computacionales (grids) y de los servicios. Algunas arquitecturas exitosas en la “nube” tienen muy poca infraestructura o la misma no se encuentra centralizada e incluso ni siquiera cuentan con sistemas de facturación, como ejemplo se encuentran las redes peer-to-peer como BitTorrent y Skype, e incluso computación de voluntariado como el proyecto SETI@home.

Las capas de cloud computing

Existen varias capas que conforman el concepto de “Cloud Computing”, sin embargo para contar con una explicación clara y sencilla, nos concentraremos en las tres capas más importantes.
capas-cc

Software

El software en la nube (Software as a Service – SaaS, por sus siglas en inglés) potencia el concepto de “cloud computing” en una arquitectura de software, eliminando frecuentemente la necesidad de instalar y ejecutar la aplicación en la computadora del usuario final, eliminando la carga del mantenimiento del software, los costos de las operación y el soporte técnico.

Plataforma

Una plataforma en la nube (Platform as a Service – PaaS, por sus siglas en inglés) entrega una plataforma computacional y/o un conjunto de soluciones como servicio, que generalmente utilizan infraestructura en la nube y soportan software o aplicaciones en la nube. Facilita la implementación de aplicaciones sin el costo y complejidad de comprar y administrar el hardware subyacente y sus capas de software.

Infraestructura

Infraestructura en la nube (Infrastructure as a service – IaaS, por sus siglas en inglés), es la entrega de infraestructura de computación como un servicio, generalmente en un entorno de virtualización de plataforma.

COMENTARIOS

es una herramienta intersante ya que proporciona al usuario servicios de computacion atraves de internet. Los usuarios que cuentan con este servicio tienen acceso de forma gratuita o de pago depende mucho del servico que necesite usar ,y cuales son las caracteristicas del servicio.


FUENTES DE INFORMACION
http://www.desarrolloweb.com/articulos/que-es-cloud-computing.html
http://www.salesforce.com/es/cloudcomputing/



OOWS TECHNOLOGY

OWSS (Metodo de produccion de soluciones web orientadas a objetos)

Desarrollo de metodos de produccion de software que permite construir aplicaciones web complejas
con comportamiento dinamico, que seasn compatibles con los estandares metodologicos y notacionales mas extendidos en la actualidad y que establezcan como diseñar y desarrollar aplicaciones web basadas en SW XML.

OOWS:Un metodo de desarrollo de aplicaciones web

La funcionalidad del sistema y la interacion con los usuarios
Nuevas caracteristicas navegacionales
Compilador de modelos conceptuales (model compiler)

CARACTERISTICAS

Aborda de forma sistematica el modelo conceptual de aplicaciones we
Propone una arquitectura software multinivel basada en servicios web
Introduce un conjunto de reglas que permite transformar  las abstracciones conceptuales en cada uno de los cmponentes software que implementan los niveles de la arquitectura, haciendo uso intensivo de patrones de diseño.

Proceso de desarrollo de una aplicacion web

Para mdelar la navegacion asociada al sistema deseado se propone un proceso de desarrollo de soluciones web con dos pasos principales:
 a) Especificacion del problema
b)desarrollo de la solucion

MODELO DE NAVEGACION DE OOWS

Su objetivo es definir como se le proporcionara a cada usuario del sistemas el acceso a la informacion y la funcionalidad que le  es relevante para llevar a cabo su tarea dentro del sistema y que secuencias de caminos deberan seguir para conseguirlo.

En la aproximacion OOWS, los requisitos navegacionales de una aplicacion web se obitnen añadiendo una  "vista navegacional" (mapa navegacional) sobre el modelo de objetos OO-Method, indicando el conjunto posible de caminos navegacionales que se le proporcionaran al usuario.

El modelo de navegacion esta compuesto por un conjunto de mapas de navegacio (uno por cada agente) que representan y estrcuturan la vision global ddel sistema para cada tipo e usuario,definiendo su navegacion permitida.

Existen dos posibilidades:que los nodos (contextos) navegacionales sean alcanzables desde cualquier ubicacion en el sitema (llamados contextos de exploracion)  o que los nodos solo sean alcanzables sigueindo un camino predeterminado de pasos de navegacion ( llamados contextos de secuencia).

COMENTARIOS
en estas tecnologias tienen como mision proporcionar al usuario de sisteas el acceso a la informacion y funcionalidad que necesita para poder cumplir con su tarea que le fue dada dentro del sistema y todos los caminos que este mismo necesitara para poder llegar a su meta establecida

FUENTES DE INFORMACION
http://www.inf.udec.cl/~adweb/docs/ecweb2009/MemoriaProyectoTesis.pdf

SOA

¿ QUÉ NO ES SOA ?

La mejor manera de comenzar a explicar SOA, es explicar qué NO es:


  • SOA no es un software, no es un MOM, no es un EAI, aunque una arquitectura SOA puede apoyarse en un conjunto de herramientas como MOMs o EAIs para conseguir su objetivo.
  • SOA no es una metodología de proyecto, aunque a la hora de iniciar un proyecto orientado a conseguir una arquitectura SOA en mi empresa, algunas metodologías se ajustan mejor que otras: es preferible seguir un modelo en iteraciones (no confundir con iterativo como UP), como las metodologías ágiles (XP, etc..), que seguir metodologías Waterfall
  • SOA no es otra forma de llamar a los WebServices, aunque los webservices son una herramienta válida para conseguir una arquitectura SOA, incluso una arquitectura SOA podría apoyarse en la programación distribuida (DCOM, CORBA, RMI, EJBs...)

¿Qué es SOA – Service Oriented Architecture?

La palabra de moda en los últimos años en el área de desarrollo de software ha sido SOA – Arquitectura Orientada a Servicios. ¿Pero qué significa SOA en realidad? 

Básicamente SOA es un cambio significativo en la manera en que nosotros diseñamos y construimos aplicaciones. Esta arquitectura toma la naturaleza abierta de la Web y la convierte en una nueva manera de pensar acerca de las arquitecturas de aplicaciones.
SOA significa integración a través de sistemas diversos. SOA utiliza protocolos estándar e interfaces convencionales – usualmente Web Services – para facilitar el acceso a la lógica de negocios y la información entre diversos servicios. SOA nos brinda los principios y la guía para transformar el conjunto de recursos de TI de la compañía – los cuales son por lo general heterogéneos, distribuidos, inflexibles y complejos -  en recursos flexibles, integrados y simplificados, que pueden ser cambiados y compuestos para alinearse más fácilmente con los objetivos del negocio. Podemos decir entonces, que SOA no es una herramienta, no más bien es un conjunto de patrones de construcción de las nuevas aplicaciones de la empresa – más dinámicas y menos dependientes. 

SOA es la evolución del modelo de programación orientado a componentes, ya que SOA agrega herramientas de computación distribuida a estas tecnologías que hemos venido utilizando por años. Podríamos decir que el cambio más grande es filosófico: en lugar de pensar en el diseño de aplicaciones individuales para resolver problemas especificos, SOA ve el software como un patrón que soporta todo el proceso del negocio. Cada elemento de un servicio es un componente que puede ser utilizado muchas veces a través de muchas funciones y procesos dentro y fuera de la empresa. Los servicios se pueden actualizar y escalar conforme sea requerido, o se pueden cambiar a una librería de terceros, sin afectar la operación del negocio – esto se da por que el componente clave de SOA no es la aplicación o el componente en uso si no más bien el contrato de uso, la interface.
La idea detrás de todo esto es que es más efectivo trabajar con servicios que con aplicaciones. Todos los componentes de una infraestructura de TI tradicional permanecen en una implementación de SOA, pero esta vez en lugar de que una aplicación soporte una funcionalidad, esta se pone disponible para todo el negocio.
Esta idea de aplicaciones como servicios alineadas a los procesos del negocio no es nueva, solamente que en esfuerzos anteriores se requería mucho esfuerzo para integrar las aplicaciones heterogéneas, además de que cada uno de estos esfuerzos tenían su propio API y su forma propietaria de comunicarse; por ejemplo CORBA y COM+.

Sin embargo, esta solución moderna que llamamos SOA, toma mucho de estos esfuerzos y de los estándares abiertos de Internet para posibilitarnos llevar a cabo esta tarea. Al día de hoy XML se ha convertido en la lengua de facto entre máquinas, lo que permite a los arquitectos ligar nuevas herramientas con aplicaciones “legacy”, y desarrollar el B2B – Business to Business - alrededor del mundo.  Esta intercomunicación no es solo entre componentes, ya que incluso se pueden describir procesos de negocio con documentos XML, utilizando lenguajes de orquestación como BPEL.
A nivel del servicio, la información se maneja como mensajes XML, definidos por un esquema XML, mientras que las interfaces de la aplicación pueden ser servicios web. XML y Servicios Web son soportardos por Java y .NET,  y estan empezando a ser soportadas por muchas más tecnologías.
En la siguiente imagen podemos ver la composición de una arquitectura orientada a servicios y la interacción de sus diversos componentes. En esta imagen faltan los elementos de infraestructura tales como el ESB, BPEL, etc.

ArquitecturaSOA
En esta imagen se puede ver que una arquitectura orientada a servicios agrega una interface de servicios ( capa lógica de servicios ) sobre los objetos de negocio y sobre las aplicaciones legacy que están alineados con los procesos del negocio. Estos objetos de negocio a su vez tienen una capa de acceso a datos la cual es la que se encarga de abstraer el acceso a las diversas fuentes de datos que utiliza la empresa.

FUENTES DE INFORMACION

http://www.theserverlabs.com/folletos/Folleto%20SOA



"XML"


Acrónimo del inglés eXtensible Markup Language (lenguaje de marcado ampliable o extensible) desarrollado por el World Wide Web Consortium (WSC). Su objetivo es conseguir paginas Web  más semántica. XML separa la estructura del contenido y permite el desarrollo de vocabularios modulares. Se trata de un formato abierto

Al igual que el HTML, se basa en un texto plano y etiquetas, con la diferencia de que XML definen las etiquetas en funcion al tipo de dato que está describiendo y no, como en HTML, a la apariencia final que tendrán en pantalla.


"FICHEROS DE XML"


Los ficheros XML son ficheros de texto. Los símbolos mayor que y menor que se usan para delimitar las marcas que dan la estructura al documento. Cada marca tiene un nombre; veamos un ejemplo: la marca <figura>, que puede tener uno o más atributos: <figura fichero=”foto1.jpg” tipo=”jpeg”> tiene dos atributos, “fichero” y “tipo”. Los atributos toman valores que tienen que estar entre comillas o entre apóstrofes. ninguna marca se puede dejar abierta; o sea, por cada marca, <figura> por ejemplo, deberá existir una marca </figura> correspondiente que indica donde termina el contenido de la marca. 

a los ficheros XML se les suele dar un nombre terminado en .xml para identificarlos como xml. Esto es simplemente una convención para los usuarios; el estándar XML 1.0 indica que para identificar un fichero como XML es necesario que la primera línea tenga el siguiente contenido
<?xml version="1.0" ?>
Dentro de esta marca puede ir otra información adicional. El alfabeto usado por defecto en los ficheros XML es el Unicode; para documentos en español será mas conveniente usar el alfabeto latin-1, lo cual se logra usando el atributo encoding de la marca xml
<?xml version="1.0" encoding="iso-8859-1" ?>
 

XML (al igual que HTML) deriva de SGML. XML es una simplificación de SGML para aplicaciones de propósito general, como la web semántica.

XML ha sido usado para un gran número de aplicaciones como ser XHTML, RSS, Atom, XML-RPC y SOAP

Algunas tecnologías para el procesamiento de XML son:
* Document Object
* XSL Transformations
* SAX
* VTD-XML
* Streaming Transformations para XML (STX)


"VENTAJAS DE XML"


·  Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se lo pueda continuar utilizando sin complicación alguna.
·  El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan errores y se acelera el desarrollo de aplicaciones.
·  Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla.
·  Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgre y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server.
·  Transforma datos en información, pues les añade un significado concreto y los asocia a un contexto, lo que le otorga flexibilidad para estructurar documentos.


FUENTES DE INFORMACION

http://soporte.miarroba.es/332796/1980390-xml/
http://www.informatica-hoy.com.ar/aprender-informatica/Que-es-el-lenguaje-XML.php


jueves, 13 de septiembre de 2012

Conceptos: SAP, ERP, SMART, PERFORMANCE

SAP

El nombre de SAP proviene de: Sistemas, Aplicaciones y Productos en Procesamiento de datos. EL nombre SAP es al mismo tiempo el nombre de una empresa y el de un sistema informático. Este sistema comprende muchos módulos completamente integrados, que abarca prácticamente todos los aspectos de la administración empresarial. Cada módulo realiza una función diferente, pero esta diseñado para trabajar con otros módulos. 

La integración total de los módulos ofrece real compatibilidad a lo largo de las funciones de una empresa. Esta es la característica más importante del sistema SAP y significa que la información se comparte entre todos los módulos que la necesiten y que pueden tener acceso a ella. La información se comparte, tanto entre módulos, como entre todas las áreas.


SAP establece e integra el sistema productivo de las empresas. Se constituye con herramientas ideales para cubrir todas las necesidades de la gestión empresarial -sean grandes o pequeñas- en torno a: administración de negocios, sistemas contables, manejo de finanzas, contabilidad, administración de operaciones y planes de mercadotecnia, logística, etc. SAP proporciona productos y servicios de software para solucionar problemas en las empresas que surgen del entorno competitivo mundial, los desarrollos de estrategias de satisfacción al cliente, las necesidades de innovación tecnológica, procesos de calidad y mejoras continuas, así como, el cumplimiento de normatividad legal impuesta por las instituciones gubernamentales. Los Módulos de aplicación son los siguientes :

  • Gestión financiera (FI). Libro mayor, libros auxiliares, ledgers especiales, etc.
  • Controlling (CO). Gastos generales, costes de producto, cuenta de resultados, centros de beneficio, etc.
  • Tesorería (TR). Control de fondos, gestión presupuestaria, etc.
  • Sistema de proyectos (PS). Grafos, contabilidad de costes de proyecto, etc.
  • Gestión de personal (HR). Gestión de personal, cálculo de la nómina, contratación de personal, etc.
  • Mantenimiento (PM). Planificación de tareas, planificación de mantenimiento, etc.
  • Gestión de calidad (QM). Planificación de calidad, inspección de calidad, certificado de, aviso de calidad, etc.
  • Planificación de producto (PP). Fabricación sobre pedido, fabricación en serie, etc.
  • Gestión de material (MM). Gestión de stocks, compras, verificación de facturas, etc.
  • Comercial (SD). Ventas, expedición, facturación, etc.
  • Workflow (WF), Soluciones sectoriales (IS), con funciones que se pueden aplicar en todos los módulos.
SAP fue fundada el 1 de Abril 1972 a partir del desarrollo de un paquete de contabilidad financiera que funcionaba en bloques. Continuó con el diseño y aplicación de un sistema financiero en tiempo real, sobre las experiencias que se tenía en el programa. Simultáneamente, SAP desarrolló un sistema de administración de materiales. Posteriormente el sistema de administración de materiales se convirtió en un paquete estándar, que se financió con los beneficios del sistema financiero contable. Los dos sistemas desarrollados fueron los primeros módulos de los que se llamo el sistema R, que producto de un nuevo desarrollo, se renombró R/1 seguido de sus sucesores R/2 y R/3.

SAP también ofrece diseño y estrategias de procesos, así como, servicios permanentes que ayudan a emigrar los sistemas empresariales de acuerdo con los cambios de las TI. SAP ayuda a sus clientes “a dirigirlos durante dichas transiciones, de los entornos de min (SAP R/2 ®) a los de cliente-servidor (SAP R/3) y de estos a la arquitectura hacia la arquitectura orientada a los servicios (ESA)”. Asimismo, ofrece estrategias de resistencia al cambio en los sistemas de soluciones de negocios pues se involucra en los procesos de capacitación de los usuarios finales del sistema.


¿QUE ES ERP?
Los sistemas ERP no solo sirven para integrar varios departamentos de una empresa. Para verdaderamente ser considerado ERP, el sistema posee algunas de las siguientes características fundamentales:

- Flexibilidad:
Un sistema ERP es flexible de tal manera que responde a las constantes transformaciones de las empresas. La tecnología cliente/servidor permite al sistema ERP operar sobre diferentes bases de datos por las conexiones de bases de datos abiertas.

- Modularidad
El sistema ERP es un sistema de arquitectura abierta, es decir, puede usar un módulo libremente sin que este afecte los restantes.

- Comprensivo
El sistema debe estar apto a soportar las diferentes estructuras organizacionales de las empresas, así como una vasta área negocios.

- Conectividad
El sistema no se debe confinar al espacio físico de la empresa y permitir la conexión con otras entidades pertenecientes al mismo grupo empresarial.

- Simulación
de la Realidad debe permitir la simulación de la realidad de la empresa en el ordenador.

Y además un ERP cuenta con los siguientes beneficios:

1. Proveer acceso en tiempo real a operaciones y datos financieros.
2. Modernizar las estructuras administrativas.
3. Centralizar el control sobre la información.
4. Estandarizar los procesos.
5. Reducción en los costos y tiempos en los procesos claves del negocio.
6. Transacciones de la información más rápidas.
7. Mejor administración financiera.
8. Establecer las bases para el comercio electrónico.
9. Hacer el conocimiento de los procesos explícito.

ARQUITECTURA TECNICA DE LOS ERP.


Los ERP están sobre un servidor, la mayoría de los ERP son compatibles con un paquete de oficina como el Office de Microsoft, normalmente Powerpoint o Excel tanto para hacer presentaciones de datos como para Exportar o Importar datos. Los ERP son compatibles también con Herramientas de Reporteo (Normalmente Crystal Report).


ARQUITECTURA MODULAR

Un ERP es un conjunto donde todas las partes dependen unas de las otras y todas ellas forman una unidad. Un ERP es modular ya que es posible tener una o varias aplicaciones al mismo tiempo.

¿QUE ES SMART?

 S.M.A.R.T es un acrónimo inglés y sirve para marcar principios que nos ayuden a clarificar y estipular adecuadamente nuestros objetivos.

¿Que es S.M.A.R.T ?

Son los principios por los que un objetivo se debe regir:

S – Específicos

M – Mensurables

A – Alcanzables

R – Realistas

T – Plazo ( en un tiempo determinado)

Específicos: Al establecer tus objetivos debes asegurarte de que cada uno de ellos contiene una acción determinada. ¿Por qué? Pues porque un objetivo genérico, Ej.: posicionarse como la primera marca nacional en un determinado producto, debe traducirse en varias acciones específicas que especifiquen como alcanzar ese objetivo. Ej.: mejorar las características x del producto, mejorar comercialización en determinada zona…

Mensurables: ¿Cuanto tiempo tardarías en recorrer la galaxia? Puedes responder…Un objetivo que no puede medirse no sirve ya que no contribuye de una forma cuantificable a alcanzar nuestras metas y, lo que es peor, no podemos confirmar si se ha logrado o no.

Alcanzables: ¿Cuanto tiempo tardarías en recorrer la galaxia? Plantearse objetivos inalcanzables no contribuye a nuestra planificación, más bien contribuye al escepticismo, ya que la función de un objetivo es la de posibilitar una meta, no la de obstruirla.

Realistas: ¿Quiero ser el hombre más rico del mundo en un mes?… Ser irrealista a la hora de plantear un objetivo nos desmotivará e impedirá que continuemos peleando por nuestras metas. Un objetivo debe motivar, debe empujarnos hacia su logro, debe retarnos en los momentos difíciles y debe obligarnos a pelear hasta la extenuación por conseguirlo, plantear un objetivo irreal no lo consigue.

Tiempo: ¿Algún día comenzaré una empresa?…algún día… Trabajar contra plazos es la única forma de romper la inmovilidad de un objetivo eterno. Si un objetivo no tiene plazos marcados entonces es un objetivo abierto y un objetivo abierto es un objetivo eterno.

 ¿QUE ES PERFORMANCE?



Se refiere a un sistema integrado de métodos de gestión que permiten conocer el desempeño, idealmente en tiempo real, de una empresa u organización, todo ello con el fin de mejorar su rendimiento por la vía de detectar oportunamente los problemas que se presentan y solucionarlos efectivamente.

En rigor, Performance Management es un ciclo permanente que involucra la realización de determinadas actividades, empleando métodos medianamente establecidos y apoyándose en tecnologías de la información para llevar a cabo un auténtico control de gestión del negocio.

Este ciclo, conocido con varios nombres (y al que yo llamo "Ciclo Decisional"), se puede descomponer de diversas formas, pero básicamente responde a la estructura del típico ciclo de vida de desarrollo que se ha usado desde hace décadas en ingeniería y que comienza con análisis y sigue con diseño e implementación.

En el caso particular de Performance Management, el ciclo puede ser descrito constando de las siguientes etapas:

1.- Análisis estratégico
2.- Planificación
3.- Desarrollo y monitoreo
4.- Inteligencia del negocio

Nótese que es un ciclo y, por lo tanto, no tiene comienzo ni fin, sino que se trata de un “loop” o círculo que debe ser recorrido permanentemente, pasando por todas sus fases de manera relativamente secuencial.

Para entender más cabalmente qué se entiende por performance management y conocer cuáles son las metodologías y herramientas en las que se sustenta, es necesario revisar cada una de estas etapas por separado.
 

Análisis Estratégico

El análisis estratégico puede ser algo tan elemental como aplicar el famoso método FODA, denominado así ya que consiste en enumerar las principales Fortalezas, Oportunidades, Debilidades y Amenazas. Las primeras dos son, evidentemente, las cosas positivas en las que el negocio se sustenta para posicionarse en el mercado con cierta ventaja estratégica. Las últimas dos, por el contrario, son los aspectos negativos que debemos enfrentar o solucionar para estar mejor posicionados.

La distinción entre fortalezas y oportunidades, así como la distinción entre debilidades y amenazas, generalmente se hace sobre la base de aquello que en psicología se denomina “locus”, es decir, dependiendo de si tienen un origen interno o externo. Claramente fortalezas y debilidades tienen un locus interno y, en cambio, oportunidades y amenazas un locus externo. En todo caso, independiente de la discusión bizantina de si algo es fortaleza u oportunidad (o bien, debilidad o amenaza), lo importante es reconocer y estar alerta ante todos estos factores. En otras palabras, en realidad no importa en cuál de las cuatro categorías se colocan los factores, lo importante es estar conscientes de ellos y de todas sus implicancias.

Una vez que se ha analizado la situación de partida, y se conocen las principales variables tanto internas como externas, se procede a establecer un plan destinado a alcanzar una mejor posición de aquella con la que se parte.

Aunque hay muchas metodologías para llevar a cabo esta actividad, la que yo recomiendo se subdivide en las siguientes etapas sucesivas:

1. Visión: Se debe establecer cuál es el principal concepto motivador que da vida a la empresa u organización y es muy importante que esa visión sea comunicada efectivamente a toda la comunidad para hacerlos parte de ese verdadero “sueño despierto” en el que toda buena visión debe consistir.

2. Misión: En algunos casos, especialmente en la PYME, no se justifica tener visión y misión separados, ya que con una basta (llámesele como se le llame). En cambio, en empresas mayores y, especialmente, en unidades de negocio que tienen estrategias genéricas diferentes de sus hermanas, será necesario aglutinar a todas las unidades de negocio bajo una sola visión corporativa pero varias misiones específicas.

3. Objetivos: A la luz del análisis estratégico y de la visión/misión, siempre será posible establecer objetivos, aquello que queremos mejorar o aquello que sencillamente queremos mantener o defender. Estos objetivos deben ser establecidos, entonces, con meridiana claridad y serán el punto de partida de la planificación propiamente tal.

4. Metas: A diferencia de los objetivos, que pueden ser un tanto nebulosos y cualitativos, las metas son, por definición, cuantitativas y tienen fecha de expiración. En otras palabras, las metas deben ser establecidas de tal forma que, al final del período, sea posible verificar con toda exactitud y objetividad si se cumplieron o no. Mi recomendación es definir un número de unas siete metas y que cada una de ellas represente un desafío factible de alcanzar.


FUENTES DE INFORMACION

http://seguridadsap.blogspot.mx/2007/05/qu-es-sap.html

http://blocknetworks.com.mx/bnext/?q=node/51