lunes, septiembre 26, 2011

Medir la motivación de los empleados

Tomado de: Medir motivacion de empleados


Foto: Flickr. Guillermo Casas Baruque

… la motivación ha de tenerse en cuenta para entender las reacciones humanas. No es posible tener buenos resultados en algo si no se cuenta con personas satisfechas.
La palabra motivación vine del latín “movere” que significa mover. Lo que en una definición más completa implica que la motivación es una serie de procesos individuales que estimula una conducta para beneficio propio, colectivo ó laboral.
Esta conducta requiere varios elementos:
  1. Esfuerzo: se refiere a la magnitud o intensidad de la conducta que se exhibe para alcanzar una meta o un objetivo ya sea personal o laboral.
  2. Persistencia: se refiere al esfuerzo sostenido para alcanzar una meta o objetivo.
  3. Dirección: se refiere a si el esfuerzo y la persistencia van en la vía correcta.
La motivación usualmente depende de la fuerza de la necesidad o de la percepción que se tiene de cierta acción para ayudar a satisfacer una necesidad.
Las teorías clásicas sobre la motivación son:
  • Jerarquía de Necesidades de Maslow
  • La Teoría de la Motivación – Higiene de F. Herzberg, 1966).
  • Teoría del ERG
  • Teoría de la Equidad
  • Teoría de las Expectativas
  • Teoría de la Fijación de Metas
Sin duda, la teoría de Maslow es un clásico y probablemente la de más difusión.

..., aunque dicen que al final identificó un sexto nivel, correspondiente a dejar un legado.
Aquí vamos a establecer un modelo que establece tres niveles de motivación:
  • Motivación extrínseca, que se refiere a la motivación consecuencia de algún tipo de recompensa, castigo o incentivo.
  • Motivación intrínseca, que se refiere a la motivación consecuencia directa de la realización de la acción o del propio individuo (sin esperar nada a cambio).
  • Motivación trascendente, lo que motiva es formar parte de algo e implicarse con la misión de la empresa, aquí la persona busca lo que más conviene a la organización.
Este modelo establece un cuestionario de aspectos cerrados con una escala de 0 a 10 (0=situación peor y 10=situación mejor). Este cuestionario se divide en tres grandes bloques y mezcla en cada uno de ellos preguntas de los tres niveles de motivación.
Los tres grandes bloques son:
  1. Instrumentalidad, preguntas referidas a lo que espera conseguir la persona si realiza bien su trabajo. Como por ejemplo: probabilidad que consiga una subida de sueldo, probabilidad que la empresa funcione mejor o probabilidad que se sienta mejor. La escala valora que es lo más probable y que es lo menos probable.
  2. Valencia, lista de cosas que una persona puede confiar en obtener a través de su trabajo. ¿Hasta qué punto son importantes para la persona? Por ejemplo: la retribución económica, el beneficio para el departamento o el desarrollo personal.
  3. Expectativas, tres simples valoraciones que miden la frecuencia con la que el trabajo duro conduce a alto reconocimiento, labor bien hecha y alto reconocimiento.
Este cuestionario se realiza de forma anónima entre el grupo de personas sobre la que queremos conocer el grado de motivación y posteriormente se analiza estadísticamente.
Para dicho análisis se considera el grupo de preguntas relacionadas con la motivación intrínseca, la motivación extrínseca y la motivación trascendental. Además, del promedio del bloque de las expectativas. Se establece un parámetro que mida la motivación total del individuo, vinculado a las cuatro medias anteriores.

Sorprende ver que en una organización, el dinero o cualquier otra recompensa no es lo que más motiva a los trabajadores.
Este análisis permite comparar individuos con la situación global en un departamento, en la empresa o en un sector (si se dispone de datos).
Aquí se muestran los datos de una empresa de servicios:
En donde la puntuación máxima por grupo es de 100 puntos y la del bloque de expectativas es de 10. Siendo 3000 puntos el máximo de factor motivacional.
Como se observa, las variaciones en cuanto a motivación por tipo son pequeñas. Siendo los incentivos, motivación extrínseca, la menos valorada.
Como una imagen vale más que 1000 palabras, la representación gráfica de los resultados son:
Algunas sugerencias para motivar a los trabajadores:
  • La motivación empieza por uno mismo.
  • Hay que involucrar al personal en la toma de decisiones de acuerdo a su capacidad.
  • Manten al personal informado de las tareas a realizar, de lo que se espera de ellos.
  • Los objetivos y las metas deben ser alcanzables, pero desafiantes.
  • ¿Conoces a tus empleados? Escucha y conocer a los empleados para saber sus expectativas y las cosas que les motivan.
  • Invita a dar sugerencias.
  • Ofrece críticas constructivas.
  • Reconoce el buen desempeño y maneja la motivación positiva.
  • Huye de la mediocridad.
  • Crea una ambiente de motivación.
  • Reconocer el progreso motiva.
Tomado de: Mejores practicas


Gestión de Proyectos: las 7 Mejores Prácticas

Gestionar un proyecto puede ser una tarea desalentadora. Ya se trate de planificar su boda, desarrollar un nuevo website para su empresa o construir su casa soñada a orillas del mar, usted necesita emplear técnicas de gestión de proyectos (project management en la bibliografía en inglés) que le ayuden a tener éxito.
Resumiré en esta nota las 7 mejores prácticas (best practices) principales que constituyen la clave de toda buena gestión de proyectos y que colaborarán a su éxito.

1. Defina el Alcance y los Objetivos del Proyecto

Primero entienda los objetivos del proyecto. Suponga que su jefe/a le pide que organice una campaña de donantes de sangre, ¿Cuál es el objetivo: obtener la mayor cantidad de sangre posible? O es ¿levantar el perfil local de la empresa? Decidir cuáles son los objetivos reales le ayudará a planificar el proyecto.
El alcance o área de competencia define los límites del proyecto. Decidir que es lo que está dentro o fuera de los límites del proyecto determinará la cantidad de trabajo que se necesitará realizar.
Entienda quiénes son los interesados, qué producto esperan que se les entregue y consiga su respaldo. Una vez que tenga el alcance y los objetivos del proyecto definidos, deje que los ellos mismos los revisen y le presten su acuerdo.

2. Defina las Tareas

Debe definir que tareas se esperan del proyecto. Si por ejemplo su proyecto es una campaña publicitaria para una nueva barra de chocolate, entonces una tarea sería producir el trabajo de arte para la publicidad. Por eso defina que cosas tangibles deben ser producidas y documéntelas con suficiente detalle para que cualquiera de los involucrados pueda llevarla a cabo correcta y eficientemente.
Los accionistas claves deben revisar la definición de las tareas y estar de acuerdo que las mismas reflejan adecuadamente lo que se espera.

3. Planifique el Proyecto

Planificar requiere que el gerente de proyecto decida qué gente, recursos y presupuestos se requieren para completar el mismo.
Usted debe definir que actividades se requieren para producir los productos, utilizando técnicas tales como Estructura Analítica de Proyectos ( Work Breakdown Structures –WBS; en el gerenciamiento de proyectos el WBS es una técnica que consiste en la descomposición del proyecto en partes manejables).
Usted debe estimar los tiempos y los esfuerzos requeridos para cada actividad, las dependencias entre actividades y luego decidir un programa realista para completarlas. Involucre al equipo de proyecto en la estimación de la duración de las actividades. Establezca hitos que indiquen fechas críticas durante el desarrollo del proyecto. Escríbalas en su planificación. Pida a los accionistas principales que la revisen y presten su consentimiento al plan.

4. Comunicación

La planificación del proyecto resulta inútil si no es comunicada efectivamente al equipo de proyecto. Cada miembro del equipo necesita conocer sus responsabilidades. Una vez trabajé en un proyecto en donde el project manager se quedó sentado en su escritorio rodeado de un enorme cronograma. El problema fue que nadie en ese equipo sabía cuales eran las tareas y las fechas tope, pues nadie había compartido la planificación. El proyecto sufrió todo tipo de problemas porque la gente hacía actividades que pensaban que eran importantes en vez de hacer las que el director de proyecto les había asignado.

5. Seguimiento y Reporte de Avance del Proyecto

Una vez que el proyecto esté en ejecución usted debe monitorearlo y comparar el progreso actual con el proyectado. Necesitará reportes de avance de proyecto que deberán producir los miembros del equipo. Usted deberá registrar las variaciones entre lo real y lo proyectado, tanto en lo referente a costos, como a cronograma y al alcance. Deberá reportar las variaciones a su superior y a los accionistas claves para poder tomar acciones correctivas antes de que esos desfasajes sean demasiado grandes.
Puede ajustar el plan de muchas maneras para volver a poner la planificación en el camino trazado pero siempre terminará equilibrando costos, cronograma de tareas y alcances. Si el director de proyecto cambia una de estas, entonces uno o los dos elementos restantes deberán inevitablemente ajustarse de forma acorde. Es justamente el balance estos tres elementos –conocidos como el triángulo del proyecto- lo que típicamente causa los mayores dolores de cabeza al manager de proyecto.

6. Gestión del Cambio

Los accionistas a menudo cambian de parecer en lo que respecta a las áreas de cada proyecto. A veces cambia el entorno de negocios en medio del desarrollo, y los supuestos que se hicieron al comenzar no siempre siguen siendo válidos. Esto a veces implica que el cronograma o las tareas deban ser cambiados. Si el manager del proyecto acepta todos los cambios, muy probablemente el proyecto se saldrá de presupuesto, se atrasará y hasta podría no terminarse.
Administrando los cambios, el líder de proyecto puede tomar decisiones sobre si incorporar o no los cambios inmediatamente o en el futuro, o directamente rechazarlos. Esto aumenta las posibilidades de que el proyecto sea exitoso porque el project manager controla la forma en que esos cambios son incorporados, puede disponer nuevos recursos acordes al cambio y puede planificar cuando y como se harán los mismos. Una de las razones por lo que a veces fracasan los proyectos es por la imposibilidad de gestionar los cambios eficientemente.

7. Gestión del Riesgo

Los riesgos son eventos que pueden afectar negativamente su proyecto. He trabajado en proyectos en lo que los riegos incluyeron: un plantel laboral que no tenía las habilidades técnicas requeridas para realizar el trabajo, la falta de entrega a tiempo de hardware u otros equipos, una sala de control con riesgo de inundación y muchos otros. Los riesgos varían con cada proyecto pero se debe identificar lo antes posible los riesgos del proyecto en particular. Se debe planificar para evitar los riesgos o, si los riesgos no pueden ser evitados, para mitigar su impacto en el proyecto en caso de que efectivamente ocurra. Esto se conoce como gestión del riego (risk management).
Usted no controla todos los riesgos porque estos pueden ser muchos y no todos tienen el mismo impacto.


Entonces, identifique todos los riesgos, estime las probabilidades de que ocurran cada uno:

 1= no probable;

2= posible;

 3= muy probable.

Luego estime su impacto en el proyecto

 1= bajo;

2= medio;

3= alto.



Luego multiplique ambos números para tener un factor de riesgo. Los factores de riego alto indican los riesgos más severos y, por lo tanto, las situaciones más problemáticas. Gestiones los 10 con los mayores factores de riesgo. Revise constantemente los riesgos y esté alerta por nuevos que pudieran surgir pues tienen la manía de aparecer cuando menos los esperamos.
No gestionar los riesgos eficientemente es otra de las causas frecuentes de fracaso de los proyectos.

En conclusión

El seguimiento de estas mejores prácticas no puede garantizarle el éxito de su proyecto pero le dará una mejor chance de éxito. En cambio, el descuido de estas prácticas muy probablemente llevará su proyecto al fracaso.

viernes, septiembre 02, 2011

Soluciones OpenSource - Que ofrece y como utilizar cada una de las soluciones

Tomado de: Soluciones OpenSource



-
Pentaho
Introducción:
     Pentaho es la solución de business intelligence open source líder a nivel mundial. Permite la creación de almacenes de datos, realizar todo tipo de cuadros de mando, Análisis dimensional de información, KPI's, etc. Pentaho es una suite completa que cubre todos los ámbitos necesarios para una solución B.I.
     Pentaho se consolidó como empresa en el 2004 y desde entonces no ha parado de crecer. Basada en productos exitosos ya pre-existentes Pentaho ha agrupado y empaquetado todos los elementos necesarios para construir nuestra solución B.I.
Componentes:
  • Servidor Business Intelligence: Aplicación web que nos permite explotar nuestros datos de una forma totalmente visual e integrada
  • Consola de Administración del Servidor BI : Consola de administración que nos proporcionará la gestión de nuestro servidor.
  • Herramientas Cliente / De Desarrollo: Conjunto de herramientas que nos permitirán desarrollar nuestra solución:
    • Data Integration: Nos permitirá construir nuestro almacén de datos.
    • Report Designer: Cuya utilidad se centra en la construcción de informes.
    • Metadata Editor: Con la que se modelarán los metadatos.
    • Design Studio: Utilizada para el desarrollo de procesos avanzados.
    • Schema Workbench: Para editar los esquemas Mondrian que serán las bases de nuestros cubos OLAP.
Versión actual:
      La versión actual para la suite completa es la 3.6. Aunque Data Integration y Schema workbench siguen su propia numeración (4.0.1 y 4.0 respectivamente)
Para que sirve:
  • Crear un almacén de datos unificado donde comparar y analizar toda la información disponible en su organización. Integrar toda la información existente en los diferentes sistemas en un único repositorio común que facilite su explotación analítica por los usuarios de dirección o márquetin sin que por ello sufran los sistemas operacionales.
  • Acceder a toda la información de forma visual a través de cuadros de mando interactivos que presentan la información que necesitas cuando la necesitas.
  • Navegar por los datos de su empresa hasta llegar a la información que necesitas.
  • Tener la información actualizada de forma totalmente automatizada.
  • Compartir la información entre departamentos e incluso con el exterior de forma totalmente securizada y controlada.
-
Intalio BPM
Introducción:
     Intalio es uno de los líderes en cuanto a gestión de procesos de negocio (BPM) open source, además de una de las compañías que están haciendo realidad el cloud computing.
      Esta herramienta permite diseñar y gestionar procesos de negocio de forma automatizada. Por ejemplo, cuando llega una factura,permite que esta, se almacene en el lugar adecuado,se envie una copia al departamento de contabilidad y se cree una nueva entrada en el registro de facturas,para que pueda ser validada por un responsable con un simple click.
Componentes:
  • Intalio BPM Designer: Entorno de desarrollo de procesos de negocio, 100% gráfico.
  • Intalio Server: Aplicación web que corre en cualquier servidor de aplicaciones J2EE y que da soporte para la gestión y presentación de los procesos de negocio.
-
Liferay
Introducción:
     Liferay es EL PORTAL CORPORATIVO con mayúsculas y con razón. Liferay permite gestionar todo tipo de contenidos, proporciona herramientas de colaboración online e integración con casi cualquier cosa que se comunique en la web.
     La herramienta fue creada en el año 2000 como portal open source basado en la tecnología J2EE. Pero ya en el año 2004 fue necesario crear Liferay Inc. empresa encargada de gestionar la creciente demanda corporativa del portal Liferay, proporcionando soporte y certificación empresarial sobre el mismo.
     Liferay, gracias a las especificaciones de Java Portlets (1 y 2), permite desarrollar e integrar cualquier tipo de contenido con casi cualquier lenguaje (Java, php, asp, .NET, Ruby, etc) integrando en un único portal corporativo todos los recursos informacionales de su organización bajo un lema que podría ser; "Usted preocúpese del contenido, que yo me ocupo de cómo mostrarlo"




-
Alfresco
Introducción:
     Alfresco, fundado en el 2005 es el gestor de contenidos y documental open source líder del mercado.
      Es una herramienta, basada en tecnología J2EE, que permite gestionar múltiples tipos de información (documentos, wikis, videos, audios, blogs, foros, etc) de múltiples formas (individualizada, de forma colaborativa, compartida en sitios comunes o privados, etc)
Componentes:
  • Gestor documental.
  • Gestor Workflow sobre los contenidos informacionales.
  • Gestor de blog, wiki y foros.
  • Gestor de la información en sitios públicos o privados.



-
Open Bravo
Introducción:
     Openbravo es uno de los ERP y POS (Point Of Sale) Open Source líderes del mercado orientado a la pequeña y mediana empresa. Openbravo es una solución totalmente web. No necesita de la instalación de ningún software en los terminales clientes y ofrece una solución ERP y POS 100% funcional.
     Openbravo ERP incorpora muchas ingeniosas características que le hacen destacarse entre la multitud y le convierten en el perfecto software para empresas.

  • Alertas.
  • Elementos vinculados.
  • Informes dimensionales.
  • Exportación.
  • Correo electrónico.





Componentes:
  • Gestor de compras.
  • Gestor de almacenes.
  • Gestor de la producción.
  • Gestor de ventas.
  • Gestor de servicios.
  • Gestor financiero.



-
Sugar CRM
Introducción:
     Sugar CRM, es el CRM Open Source por excelencia. Es una aplicación para la gestión integral de las relaciones de la organización. El uso típico es la gestión de las relaciones con los clientes aunque, evidentemente se pueden gestionar cualquier otro tipo de relaciones (proveedores, socios, oportunidades, etc)
Componentes:
     Sugar CRM es una aplicación web realizada con PHP. Toda la interacción se realiza con la web, desde el uso normal, como el diseño de nuevos módulos y componentes.




Instalación y configuración de Pentaho

Tomado de: Instalando y Configurando PENTAHO


               Tipo de recurso: 
Manual
Una vez descargado y descomprimido el paquete manual de pentaho es necesario realizar una serie de pasos para configurar el war de pentaho que vamos a obtener.
El directorio en el que se descomprimió pentaho lo llamaremos de aquí en adelante $PENTAHO_FUENTE.
Para configurar nuestro pentaho debemos seguir los siguientes pasos:
1. Ir al directorio $PENTAHO_FUENTE\custom-pentaho-webapp\META-INF y crear el fichero context.xml. Luego de su creación, debemos agregar lo siguiente en el:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20"
maxIdle="5"
maxWait="10000" username="hibuser" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/hibernate"
validationQuery="/* ping */ select 1"/>
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20"
maxIdle="5"
maxWait="10000" username="pentaho_user" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/quartz"
validationQuery="/* ping */ select 1"/>
</Context>

2. Descargar el Cas Client (URL: http://www.ja-sig.org/downloads/casclients/ descomprimirlo y copiar el fichero cas-client-core-3.1.10.jar) y colocarlo en el directorio $PENTAHO_FUENTE\pentaho-third-party
3. Copiar el fichero spring-security-cas-client-2.0.4.jar de la carpeta lib de CAS y colocarlo en el directorio $PENTAHO_FUENTE\pentaho-third-party
4. Crear el directorio $PENTAHO_FUENTE\build
5. Ir al directorio $PENTAHO_FUENTE y construir el paquete de pentaho utilizando Ant (Es parte de las librerías de Java así como lo es keytool de la sección de SSL) de la siguiente forma:
ant war-pentaho-tomcat
6. Esto colocara nuestro .war en el directorio $PENTAHO_FUENTE\build\pentaho-wars\tomcat, el cual debemos colocar en el directorio webapps de Tomcat así como el pentaho-style.war.
7. Es necesario configurar pentaho-solutions para mysql
8. Crear las bases de datos de hibernate y quartz en mysql, utilizando los ficheros que se encuentran en el directorio $PENTAHO_FUENTE\pentahodata\mysql5 (create_quartz_mysql.sql, create_reporsitory_mysql.sql,create_sample_datasource_mysql.sql)
9. Abrir el fichero pentaho-spring-beans.xml ubicado en $PENTAHO_FUENTE\pentaho-solutions\system y editarlo para que quede de la siguiente forma:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springsource.org/dtd/spring-beans.dtd">



<!--+
    | This should be the only file specified in web.xml's contextConfigLocation. It should only contain imports.
    +-->
<beans>
<import resource="pentahoSystemConfig.xml" />
<import resource="adminPlugins.xml" />
<import resource="systemListeners.xml" />
<import resource="sessionStartupActions.xml" />
<import resource="applicationContext-spring-security.xml" />
<import resource="applicationContext-common-authorization.xml" />
<import resource="pentahoObjects.spring.xml" />

<import resource="applicationContext-spring-security-jdbc.xml"/>
<import resource="applicationContext-pentaho-security-jdbc.xml"/>
<import resource="applicationContext-spring-security-cas.xml"/>
</beans>
10. Crear el archivo applicationContext-spring-security-cas.xml en la ruta $PENTAHO_FUENTE\pentaho-solutions\system con la siguiente configuración:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--+
| Application context containing FilterChainProxy. This version overrides
| certain beans from applicationContext-spring-security.xml to enable CAS.
+--><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">



<beans default-autowire="no" default-dependency-check="none" default-lazy-init="false">



<!-- ======================== FILTER CHAIN ======================= -->


<!-- overridden from applicationContext-spring-security.xml to enable CAS -->
<bean autowire="default" class="org.springframework.security.util.FilterChainProxy" dependencycheck="default" id="filterChainProxy" lazy-init="default">



<property name="filterInvocationDefinitionSource">
<value>
<![CDATA[CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON PATTERN_TYPE_APACHE_ANT


/**=securityContextHolderAwareRequestFilter,httpSessionContextIntegrationFilter,logoutFilter,casProcessingFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,pentahoSecurit yStartupFilter,exceptionTranslationFilter,filterInvocationInterceptor]]>
</value>


</property>
</bean>
<!-- ===================== HTTP REQUEST SECURITY ==================== -->
<bean autowire="default" class="org.springframework.security.ui.cas.ServiceProperties"dependency-check="default" id="serviceProperties" lazy-init="default">
<property name="service"
value="http://localhost:8080/pentaho/j_spring_cas_security_check"/>
<property name="sendRenew" value="false"/>
</bean>


<!-- replaces authenticationProcessingFilter in filterChainProxy above -->
<bean autowire="default" class="org.springframework.security.ui.cas.CasProcessingFilter"dependency-check="default" id="casProcessingFilter" lazy-init="default">
<property name="authenticationManager">
<ref bean="authenticationManager"/>
</property>
<property name="authenticationFailureUrl" value="/public/casFailed"/>
<property name="defaultTargetUrl" value="/"/>
<property name="filterProcessesUrl" value="/j_spring_cas_security_check"/>
</bean>
<!-- overridden from applicationContext-spring-security.xml -->
<bean autowire="default" class="org.springframework.security.ui.ExceptionTranslationFilter"dependency-check="default" id="exceptionTranslationFilter" lazy-init="default">
<property name="authenticationEntryPoint">
<ref local="casProcessingFilterEntryPoint"/>
</property>
<property name="accessDeniedHandler">
<bean autowire="default"
class="org.springframework.security.ui.AccessDeniedHandlerImpl" dependency-check="default" lazyIntegración init="default"/>
</property>
</bean>
<bean autowire="default" class="org.springframework.security.ui.cas.CasProcessingFilterEntryPoint"dependency-check="default" id="casProcessingFilterEntryPoint" lazy-init="default">
<property name="loginUrl" value="https://localhost:8443/cas/login"/>
<property name="serviceProperties">
<ref local="serviceProperties"/>
</property>
</bean>


<!-- overridden from applicationContext-spring-security.xml -->
<bean autowire="default" class="org.springframework.security.providers.ProviderManager"dependency-check="default" id="authenticationManager" lazy-init="default">
<property name="providers">
<list>
<!--ref bean="daoAuthenticationProvider" /-->
<ref bean="anonymousAuthenticationProvider"/>
<ref bean="casAuthenticationProvider"/>
</list>
</property>
</bean>


<bean autowire="default"
class="org.springframework.security.providers.cas.CasAuthenticationProvider" dependency-check="default"id="casAuthenticationProvider" lazy-init="default">
<property name="userDetailsService">
<ref bean="userDetailsService"/>
</property>
<property name="serviceProperties">
<ref local="serviceProperties"/>
</property>
<property name="ticketValidator">
<ref local="ticketValidator"/>
</property>
<property name="key" value="my_password_for_this_auth_provider_only"/>
</bean>

<bean autowire="default" class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator"dependency-check="default" id="ticketValidator" lazy-init="default">
   <constructor-arg index="0" value="https://localhost:8443/cas"/>
</bean>




<!-- overridden from applicationContext-spring-security.xml to specify logoutSuccessUrl as CAS logout page -->
<bean autowire="default" class="org.springframework.security.ui.logout.LogoutFilter" dependencycheck="default" id="logoutFilter" lazy-init="default">
<constructor-arg
value="https://localhost:8443/cas/logout?url=http://localhost:8080/pentaho/Home"/>
<!-- URL redirected to after logout -->
<constructor-arg>
<list>
<bean autowire="default"
class="org.pentaho.platform.web.http.security.PentahoLogoutHandler" dependency-check="default" lazyinit="default"/>
<bean autowire="default"
class="org.springframework.security.ui.logout.SecurityContextLogoutHandler" dependency-check="default"lazy-init="default"/>
</list>
</constructor-arg>
<property name="filterProcessesUrl" value="/Logout"/>
</bean>


</beans>
11. Editar el fichero pentaho.xml ubicado en la ruta $PENTAHO_FUENTE\pentaho-solutions\system, reemplazando “Admin” por “Administrator” en todas las ocurrencias del archivo y “User” por “Authenticated”

12. Editar el fichero applicationContext-spring-security-jdbc.xml ubicado en la ruta $PENTAHO_FUENTE\pentaho-solutions\system que debe quedar de la siguiente forma:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springsource.org/dtd/spring-beans.dtd">



<!--+
| Application context containing JDBC AuthenticationProvider
| implementation.
+-->


<beans>



<bean id="daoAuthenticationProvider"



class="org.springframework.security.providers.dao.DaoAuthenticationProvider"
>
<property name="userDetailsService">
<ref bean="userDetailsService" />
</property>
<property name="passwordEncoder">
<ref bean="passwordEncoder" />
</property>
</bean>
<bean id="userDetailsService"
class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="authoritiesByUsernameQuery">
<value>
<![CDATA[SELECT user_.screenname as username, role_.name as authority FROM role_, user_, users_roles where role_.roleId = users_roles.roleId AND user_.userId = users_roles.userId AND user_.screenname = ? ORDER by role_.name]]>
</value>
</property>
<property name="usersByUsernameQuery">
<value>
<![CDATA[select screenname as username, password_ as password, 1 as enabled from user_ where screenname = ? order by username]]>
</value>
</property>
</bean>
<!-- This is only for Hypersonic. Please update this section for any other database you are using -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/lportal" />
<property name="username" value="lportal" />
<property name="password" value="lportal" />
</bean>
<bean id="passwordEncoder"
class="org.springframework.security.providers.encoding.PlaintextPasswordEncoder"/>
</beans>
13. Editar el fichero applicationContext-pentaho-security-jdbc.xml ubicado en la ruta $PENTAHO_FUENTE\pentaho-solutions\system que debe quedar de la siguiente forma:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springsource.org/dtd/spring-beans.dtd">



<!--+
| Application context containing JDBC UserRoleListService
| implementation.
+-->


<beans>



<bean id="jdbcUserRoleListService"


class="org.pentaho.platform.plugin.services.security.userrole.jdbc.JdbcUserR oleListService">
<constructor-arg index="0" ref="userDetailsService" />
<property name="allAuthoritiesQuery">
<value>
<![CDATA[select distinct(name) as authority from role_order by authority]]>
</value>
</property>
<property name="allUsernamesInRoleQuery">
<value>
<![CDATA[SELECT user_.screenname as username FROM role_,user_, users_roles where role_.roleId = users_roles.roleId AND user_.userId =users_roles.userId AND role_.name = ? ORDER by role_.name]]>
</value>
</property>
<property name="allUsernamesQuery">
<value>
<![CDATA[SELECT distinct(user_.screenname) as username from user_ order by username]]>
</value>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="pentahoUserRoleListService" class="org.pentaho.platform.engine.security.userrole.UserDetailsRoleListService">
<property name="userRoleListService">
<ref local="jdbcUserRoleListService" />
</property>
</bean>
</beans>
14. Editar el fichero applicationContext-spring-security.xml ubicado en la ruta $PENTAHO_FUENTE\pentaho-solutions\system, reemplazando “Admin” por “Administrator” en todas las ocurrencias del archivo y “Authenticated” por “User”

15. Copiar el directorio pentaho-solutions de $PENTAHO_FUENTE y colocarlo en $DIRECTORIO_PACK

16. Iniciar Tomcat e ir a la dirección http://localhost:8080/pentaho, la cual deberia redirigirnos a la página de inicio de sesión de CAS y luego de iniciar sesión a la pantalla principal de Pentaho

pantalla principal de Pentaho

La adopción de un Programa SOA y sus implicaciones

Tomado de: La adopcion de un programa soa y sus Ventajas
Blog Original: http://mijao.blogspot.com


Cuando una organización pretender desarrollar un programa SOA, tiene entre sus objetivos establecer servicios flexibles, reusables e integrales para toda la organización. Este objetivo, requiere un ordenamiento profundo ,requiere que todas  las necesidades de sistemas de informacion estén alineadas y vinculadas con una plataforma de servicio. Esta premisa, tiene grandes implicaciones en la organización, entre las mas importantes:

  1. Los sistemas de informacion y proyectos deben estar alineados, vinculados y soportados sobre una arquitectura SOA (servicios compartidos y reusables).
  2. La metodología de desarrollo debe estar alineada con una clara orientación a servicios.
  3. Los desarrolladores deben adaptarse a un conjunto de practicas y políticas para garantizar coherencia en sus desarrollos.
  4. Las políticas de gobernabilidad de la organización deben garantizar que todos los proyectos estén basados en un modelo canónico organizacionalmente centralizado para representar sus datos.
Si las diversas iniciativas en tecnologia de informacion en una organización deben estar vinculados con un programa SOA, es primordial que exista una unidad de arquitectura que garantice una arquitectura simple, flexible, ágil, con un modelo canónico centralizado para representar los datos y la distribucion de servicios fachada o facade, que ocultan la complejidad y representan un contrato de servicio especifico para cada consumidor.

Para garantizar una exitosa introducción de un programa SOA en la organización, se requiere de un marco de gobernabilidad que establezca, comunique, e implemente los principios de orientación a servicios, mejores prácticas, metodologías, procesos, tecnologías, talento humano y estrategia.

Que establece la unidad de arquitectura?

Políticas de Valor
  1. Que vinculacion exite entre el servicio o necesidad de informacion con el cuadro de mando y mapa estrategico de la organizacion.
  2. Como se aprueba la entrada de un servicio a producción?
Politicas de Especificación
  1. Cual es la política para la especificacion del diseño de un servicios?
  2. Cual es la política para establecer el indice de reuso de servicios?
  3. Cual es la política para garantizar la interoperabilidad del servicio?
  4. Cual es la política para los cambios y el versionamiento de servicios?
  5. Cual es la politica para acordar la mejor logica de servicios, con sus practicas, nivel de granulardad, entre otros.
Políticas del Modelo Canonico
  1. Cual es la política para los cambios y el versionamiento del modelo canónico?
Politicas de Implementacion de Servicios
  1. Cual es la política para el manejo de excepciones en los servicios?
  2. Cual es la política para el manejo de trazas o log en los servicios?
  3. Cual es la política para auditar un servicios?
  4. Cual es la política para generar eventos o alertas en los servicios?
  5. Cual es la política para autentificar el consumidor del servicio?
  6. Cual es la política para autorizar al consumidor del servicios?
  7. Cual es la política para encriptar los datos del servicio?
  8. Cual es la política para firmar digitalmente los datos del servicio?
  9. Cuales es la política para establecer las credenciales?
  10. Cual es la política para garantizar la disponibilidad del servicio?
  11. Cual es la política para gestionar los timeout de los servicio?
  12. Cual es la política para gestión de servicios de compensación?
  13. Cual es la política para garantizar la vida de los procesos o servicios de orquetacion ante fallas en la disponibilidad de base de datos, red, servicios informáticos, servidores, entre otros.
Como vemos, son muchas las consideracion que deben ser fortalecidas con el tiempo y la experieincia.