Академический Документы
Профессиональный Документы
Культура Документы
La gestin de contenidos
empresarial
Ponente
Introduccin a ECM.
Alfresco ECM de un vistazo.
Profundizando en la plataforma.
Qu es la gestin de contenidos
empresarial?
Situacin actual.
Tendencias del mercado.
Qu es la gestin de contenidos
empresarial?
En los ltimos aos, se ha producido un gran
crecimiento en el volumen de informacin que las
empresas generan y almacenan diariamente.
El almacenamiento desmedido de facturas, informes,
albaranes, mails, ... , nos obliga a implantar
plataformas capaces de procesar toda esta
documentacin, organizarla y poder extraer de ella el
valor adicional que nos ofrece.
Qu es Alfresco?
Su arquitectura.
Conceptos importantes:
Tipos personalizados.
Java Foundation services y WebScripts
en Alfresco.
Otros.
Qu es Alfresco?
Entornos de desarrollo:
Alfresco SDK.
Alfresco Maven SDK.
INFORME TCNICO
INFORMACIN ESTRUCTURADA
MANEJADA POR EL GESTOR DOCUMENTAL
Introduccin.
Servidor de contenidos de Alfresco.
Protocolos.
Los servicios de Alfresco.
Conclusin.
Clientes de Alfresco:
Clientes web de Alfresco.
Clientes web externos.
...
Content Repository
Remote APIs
Protocols
Introduccin.
Servicios del repositorio de contenidos.
Servicios de aplicacin de contenidos.
Las APIs de Alfresco.
Remote APIs
Embeddeb APIs
APIs remotas:
Introduccin.
Diccionario de datos.
Creacin de un nuevo modelo de contenidos.
Despliegue de modelo de contenidos.
INFORME TCNICO
INFORMACIN ESTRUCTURADA
MANEJADA POR EL GESTOR DOCUMENTAL
<imports>
<!-- Importamos las definiciones del Diccionario de Datos -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<types>
<type name="aeat:documento">
<title>Documento de Agencia Tributaria</title>
<parent>cm:content</parent>
<properties>
<property name="aeat:MailResponsable">
<title>eMail del responsable del documento</title>
<type>d:text</type>
</property>
<property name="aeat:Proyecto">
<title>Proyecto al que pertenece</title>
<type>d:text</type>
</property>
<property name="aeat:EstaAprobadoPorDireccion">
<title>Aprobado por direccion</title>
<type>d:boolean</type>
</property>
</properties>
</type>
</types>
...
Tipo de dato declarado por el
</type> Data Dictionary de Alfresco
...
Introduccin.
Definicin de aspecto.
Aspectos por defecto.
Ejemplo:
<aspect name="cm:auditable">
<title>Auditable</title>
<properties>
<property name="cm:created">
<type>d:datetime</type>
</property>
<property name="cm:creator">
<type>d:text</type>
</property>
<property name="cm:modified">
<type>d:datetime</type>
</property>
...
</properties>
</aspect>
Alfresco. La gestin de contenidos empresarial Jess Salinas Revelles
Aspectos por defecto
Complianceable Aspect:
<aspect name="cm:complianceable">
<title>Complianceable</title>
<properties>
<property name="cm:removeAfter">
<title>Remove After</title>
<type>d:datetime</type>
</property>
</properties>
<mandatory-aspects>
<aspect>cm:auditable</aspect>
</mandatory-aspects>
</aspect>
Translatable Aspect:
<aspect name="cm:translatable">
<title>Translatable</title>
<parent>cm:localizable</parent>
<associations>
<association name="cm:translations"><title>Translations</title>
<source><role>cm:translationOf</role>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target><class>cm:content</class>
<role>cm:hasTranslation</role>
<mandatory>false</mandatory>
<many>true</many>
</target>
</association>
</associations>
</aspect>
Introduccin.
Crear el fichero de contexto.
Despliegue esttico.
Despliegue dinmico.
<beans>
<!-- Registration of new models -->
<bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap"
depends-on="dictionaryBootstrap">
<property name="models">
<list>
<value>alfresco/extension/customModel.xml</value>
</list>
</property>
</bean>
</beans>
Introduccin.
Elementos importantes.
Documento de descripcin.
Controller Script.
Plantillas.
Ejemplo:
<webscript>
<shortname>Hello World</shortname>
<description>Greet a user</description>
<url>/holamundo?to={name?}</url>
<format default="html">extension</format>
<authentication>user</authentication>
</webscript>
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
http://freemarker.org/docs/index.html
Introduccin.
Acceso a la API.
Los servicios disponibles.
Conceptos importantes.
Servicio de nodos NodeService.
Inyeccin de servicios.
Construir nuevos servicios.
Webscripts en Java:
Hasta ahora hemos hablado de webscript desarrollados mediante
JavaScript, pero qu ocurre si necesitamos implementar
funcionalidades complejas?
Por ejemplo, acceso a una base de datos relacional o trabajar con
generadores de informes como JasperReports.
Webscripts en Java:
...
public class MoveDocuments extends DeclarativeWebScript {
if(nodeService.exists(nodeRefCentro)){
String centroFolderName = (String)
nodeService.getProperty(nodeRefCentro, ContentModel.PROP_NAME);
...
Factory.getBean("AuthenticationService");
serviceRegistry.getAuthenticationService();
// Inicializar el contexto
ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();
workspace://SpacesStore
archive://SpacesStore
workspace://SpacesStore/5af5a38b-e20a-4885-bbd1-4b3fde9b0dd3
Se encuentra en el paquete
org.alfresco.service.cmr.repository:
Ejemplos:
// Se recupera el nombre del fichero asociado al nodo
String fileName = (String) nodeService.getProperty(
nodeRef, ContentModel.PROP_NAME);
Ejemplos:
// Leer el contenido de un nodo
ContentReader reader = contentService.getReader(
nodeRef, ContentModel.PROP_CONTENT);
String content = reader.getContentString();
Ejemplos:
// Escribir el contenido de un nodo
ContentWriter writer = contentService.getWriter(nodeRef,
ContentModel.PROP_CONTENT, true);
writer.putContent(new ByteArrayInputStream(content));
<beans>
<import
resource="classpath:alfresco/public-services-security-context.xml"/>
<beans>
<import
resource="classpath:alfresco/public-services-security-context.xml"/>
<property name="proxyInterfaces">
<value>org.alfresco.service.cmr.search.SearchService</value>
</property>
<property name="target">
<ref bean="searchService"/>
</property>
...
</bean>
Alfresco webservices
Introduccin a Share.
Share y los modelos.
Share y los flujos de trabajo.
Links:
Listas de datos
Crear carpetas:
Crear contenidos:
Introduccin.
Lucene vs Solr.
Bsquedas Alfresco v.4.
Solr en Alfresco.
Configuracin en Tomcat.
Administracin de Solr.
Ventajas:
No se necesita indexacin durante una transaccin.
No se necesita duplicar ndices en cada servidor.
Las bsquedas pueden ser escaladas.
Se pueden usar herramientas de administracin de Solr.
Mejoras en el acierto de los resultados.
Mejoras en el rendimiento.
Introduccin.
ndices de Solr.
Configuracin en Tomcat.
Administracin.
+ archive
+ archive-SpacesStore
+ ...
+ workspace-SpacesStore
+ workspace
+ ...
data.dir.root=/Applications/Curso/alfresco-4.1-enterprise/
alf_data/solr
data.dir.store=workspace/SpacesStore
enable.alfresco.tracking=true
cache.alfresco.size=100
max.field.length=2147483647
#
# Properties loaded during alfresco tracking
#
alfresco.host=localhost
alfresco.port=8080
alfresco.port.ssl=8443
alfresco.baseUrl=/alfresco
alfresco.cron=0/15 * * * * ? *
alfresco.stores=workspace://SpacesStore
Propiedad alfresco.host:
url a la que apunta alfresco.
Esta url puede apuntar al balanceador de carga de un cluster de
Alfresco.
Propiedad alfresco.cron:
La indexacin entre Solr y Alfresco siempre se inicia a peticin del
primero.
Se conecta peridicamente al repositorio y pregunta por si se han
producido cambios.
alfresco.cron=0/15 * * * * ? *
Propiedad alfresco.secureComms:
Permite habilitar o no comunicaciones cifradas:
# none, https
alfresco.secureComms=https
alfresco.encryption.ssl.keystore.type=JCEKS
alfresco.encryption.ssl.keystore.provider=
alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore
alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-
passwords.properties
alfresco.encryption.ssl.truststore.type=JCEKS
alfresco.encryption.ssl.truststore.provider=
alfresco.encryption.ssl.truststore.location=ssl.repo.client.trustst
ore
alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-
truststore-passwords.properties
Copiar solr-tomcat-context.xml a
<SOLR_TOMCAT_HOME>/conf/Catalina/localhost/
solr.xml:
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="@@ALFRESCO_SOLR_DIR@@/apache-solr-1.4.1.war"
debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String"
value="@@ALFRESCO_SOLR_DIR@@" override="true"/>
</Context>
...
...
Introduccin.
Acceso a la herramienta.
Anlisis.
Navegar por esquema.
Configuracin de log.
https://<IP_MAQUINA>:8443/solr/
https://<IP_MAQUINA>:8443/solr/
https://<IP>:8443/solr/alfresco/admin/
https://<IP>:8443/solr/alfresco/admin/luke?
wt=xslt&tr=luke.xsl
Introduccin.
Activiti de un vistazo.
Herramientas.
Trabajando con Alfresco.
El diagrama representa la
secuencia de actividades y
asignaciones con una notacin
estndar (BPMN)
Motor integrable.
Uso de APIs REST.
OpenSource y BPMN 2.0.
Suite BPM completa.
Motor integrable:
Motor integrable:
Activiti Explorer:
Activiti Modeler:
Activiti Modeler:
Activiti Modeler:
Activiti Designer:
Introduccin.
Despliegue del workflow.
http://localhost:8080/alfresco/activiti-admin
o tambin podemos desplegarlo utilizando para ello un
bean de Spring que se encarga de desplegarlos, el
llamado workflowDeployer.
...
...
<props>
<prop key="engineId">activiti</prop>
<prop key="location">
alfresco/extension/workflows/helloWorldFork.bpmn20.xml
</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop> </props>
</list>
</property>
</bean>
...
<property name="models">
<list>
<value>alfresco/extension/model/scWorkflowModel.xml</value>
</list>
</property>
...
...
<property name="labels">
<list>
<value>alfresco.extension.messages.scWorkflow</value>
</list>
</property>
</bean>
</beans>
...
scwf_workflowmodel.type.scwf_submitHelloWorldTask.title=Start HW Workflow
scwf_workflowmodel.type.scwf_submitHelloWorldTask.description=Submit a workflow
that says hello in the log
scwf_workflowmodel.type.scwf_submitReviewTask.title=Start Someco Web Review
...
La URL http://localhost:8080/alfresco/faces/jsp/
admin/workflow-console.jsp nos permite acceder a la
consola.
Una vez dentro, podemos escribir comandos para
extraer informacin sobre flujos de trabajo.
Introduccin.
Estndares de Comunicacin (JCR y CMIS).
Modelo de datos.
Servicios.
Consultas.
Versiones:
Las versiones en CMIS son sencillamente la forma de controlar
versiones de varios formas en diferentes implementaciones CMIS.
Cada versin es un objeto independiente con su propia
identificacin de objeto.
Con el identificador de un objeto determinado se puede obtener la
versin actual o todas las versiones del objeto, as como eliminar
una o varias versiones de un objeto.
Objeto carpeta:
Los objetos documento se almacenan en una jerarqua de carpetas.
Al igual que en Alfresco, una carpeta puede estar dentro de otra
para crear la jerarqua.
La relacin entre carpeta y documento es de muchos a muchos, si
el repositorio soporta multi-presentacin (multifiling), un
documento puede estar presente en ms de una carpeta.