Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox”...
Transcript of Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox”...
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Crear aplicaciones Sandboxed en SharePoint Luis Alfonso Rey | 9º Encuentro Danysoft en Microsoft
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Desarrolladores construyen soluciones propias
• Administradores solo pueden asegurar con CAS• Difícil de controlar que se
hace con el código personalizado
• La mayor causa de casos de soporte: código personalizado
El reto de SharePoint 2007Desarrollador• Diseñar, compilar y probar
personalizaciones
Administrador• Instalar y monitorizar
personalizaciones
Propietario de la colección de sitios• Activar y usar la
personalizaciones
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Los desarrolladores crean soluciones personalizadas
• Los propietarios de la colección de sitios despliegan, activan e implementan las personalizaciones
• Administradores monitorizan los recursos para comprobar el uso de la colección• Automáticamente “apagan” las
soluciones demasiado caras en una colección y que afectan al rendimiento del servidor
La solución SharePoint 2010Desarrollador• Diseño, compilar y probar
personalizaciones
Administrador• Monitorizar
personalizaciones
Propietario de colección de sitios• Activar y usar
personalizaciones• Instalar personalizaciones
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Las soluciones Sandboxed son importantes por• Solucionan los problemas de alojamiento en entornos
corporativos• Lo entornos de alojamiento son más fácil de manejar
• Reducen el tiempo de despliegue• Prescindiendo del proceso de que IT apruebe y
despliegue el código• Mejora la estabilidad de los servidores
• Ahora el código con un rendimiento pobre se aísla en una colección de sitios en vez de el servidor entero
Las soluciones “Sandboxed” ayudan a las empresas
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Permite un subconjunto de las capacidades de la API de SharePoint:
• Seguro – refuerza la “sandbox”• Se ejecuta en un entorno parcialmente confiable• El código se ejecuta en un servicio especial• Sujeto a CAS• Entorno de validación
• Permite realizar validaciones a lo largo de la granja para los paquetes desplegados
• Cada solución se aísla en su colección
Introducción a la “Sandbox”
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Galería de solución -- _catalogs/solutions• Potencian a los administradores
Administración de colecciones
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Ciclo de vida de la soluciónInstalación• Subir a la galería de soluciones
Activación• Características auto activables
Desactivación• La operación se extiende por el desarrollador• Las Web Parts dejan de ejecutarse
Borrado
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Administración de la solución - Cuota/Soluciones bloqueadas
• Subconjunto del modelo de objetos• Procesos externos• Code Access Security (Directivas CAS)
Defina la solución Sandbox
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Administración Central• Bloqueo de soluciónes• Plantillas de Cuota
Administración de la solución
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• En general• SPSite y debajo
• Sin SPSecurity• Sin construcción de SPSite• Los espacios de nombres comunes
no están disponibles• Microsoft.SharePoint.Administration• Microsoft.SharePoint.WebControls
Subconjunto del modelo de objetosSPSite
SPWeb
SPList
SPListItem
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Un proceso separado
• Servicio de código de usuario(SPUCHostService.exe)
• Proceso de trabajo sandbox(SPUCWorkerProcess.exe)
• Proxy del proceso de trabajo sandbox(SPUCWorkerProcessProxy.exe)
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
SandboxAspNetHostingPermission, Level=MinimalSharePointPermission, ObjectModel=trueSecurityPermission, Flags=Execution
Full Trust
wss_usercode.config
Código de usuairo
Código framework
My.dll
Other.dll System DLL
SharePoint DLL
SharePoint MO
Subconjunto MO
Sandbox y Code Access Security
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Front end Back end
Servicio de alojamientoGestor de ejecución
Arquitectura del "sandboxing"
Proceso de trabajo
Código no confiable
Subconjunto del modelo de objetos
Modelo de objeto completos
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Proceso de las soluciones Sandboxed
Raíz SPWeb del SPSite
Solution galleryWebParts.wsp
Web Part gallery
Per-WFE AssemblyCache
<siteguid>\company.intranet.webpart.wsp\foo.dll
Proceso de lassoluciones Sandboxed
1
2 5
6
7
4
3
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
SandboxedCaracterísticas soportadas
Tipos de soluciones Sandboxed
• Las Soluciones Sandboxedofrece un subconjunto del API de Sharepoint disponible en las aplicaciones de confianza completa• Collección de sitios y
características de ambitode sitio
• Muchos XML disponibles para: Modulos, Listas, Tipos de contenidos, etc.
• Tecnologías de cliente para acceder a datos externos –JavaScript, Silverlight etc.
Web Parts no visuales
Receptores Evento/Característica
Eventos características de
eventos
Acciones de workflow propias
Servicios InfoPath Forms
Definiciones de Listas
Acciones personalizadas Páginas de sitios
Columnas de sitio Tipos de contenidos
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Conexiones no previstas, http, WS, etc• ADO.net• Características empresariales (Search, etc.)• Threading• P-Invoke• ES• Otros sitios
Límites de las aplicaciones sandbox
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Visual Studio 2010utiliza IntelliSense para ocultartipos “full-trust”
• Todo el código se compila contra la API completa
• No hay chequeo “sandbox” en compilación solo en ejecución
• Solución: cambiar Microsoft.SharePoint.dll la referencia de la referencia a la versión sandbox• [..]\14\UserCode\Assemblies\Microsoft.SharePoint.dll• NOTA: ¡Cambiarlo antes del despliegue!
Compilar vs. Ejecutar soluciones Sandboxed
Full Object Model Subset Object Model
MyWebPart.dll
Proxy
Runtime
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Listas externas via SPList• Proxy “Full-Trust”
“Rompiendo” la “Sandbox”
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Las soluciones “Sandboxed” pueden ser ejecutadas de dos formas• Local
• Ejecuta el código en SharePoint WFE• Poca sobrecarga de administración• Baja escalabilidad
• Remote• Ejecución en la máquina de la granja
• Via aplicaciones de servicio dedicadas• Distribución de balanceo de carga de peticiones de ejecución de código
Balanceo de carga
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• [GuidAttribute("34805697-1FC4-4b66-AF09-AB48AC0F9D97")]• public class PublisherValidator : SPSolutionValidator{•
public override void ValidateSolution(• SPSolutionValidationProperties properties){• properties.Valid = [true || false];• properties.ValidationErrorMessage = “no soup for you”;• }
• public override void ValidateAssembly(• SPSolutionValidationProperties properties,• SPSolutionFile assembly){• }• }
Validación de la solución
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Las cuotas especifican los límites del número de recursos que pueden ser usados por día
• Suma de medida de recursos son calculadas a lo largo de las soluciones desplegadas a la colección de sitios• Ej., elevar puntos CPU para todas las soluciones
• Máximo de utilización de recursos comprobadas contra las cuotas para determinar si deben ser estrangulada/bloqueadas
Monitor de Soluciones SandboxComo funciona
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Recursos monitorizadosNombre de la métrica Descripción Unidades Recursos
por punto Limite
AbnormalProcessTerminationCount Process gets abnormally terminated Count 1 1
CPUExecutionTime CPU exception time Seconds 200 60CriticalExceptionCount Critical exception fired Number 10 3
InvocationCount Number of times solution has been invoked Count N/A N/A
PercentProcessorTime Note: # of cores not factored in Percentage Units of Overall Processor Consumed 85 100
ProcessCPUCycles CPU Cycles 1E+11 1E+11ProcessHandleCount Windows Handles 10,000 5,000
ProcessIOBytes (Hard Limit Only) Bytes written to IO Bytes 1E+07 1E+08
ProcessThreadCount Number of Threads in Overall Process Threads 10,000 200
ProcessVirtualBytes (Hard Limit Only) Memory consumed Bytes 1E+09 4E+09
SharePointDatabaseQueryCount SharePoint DB Queries Invoked Number 400 100
SharePointDatabaseQueryTime Amount of time spent waiting for a query to be performed Seconds 20 60
UnhandledExceptionCount Unhanded Exceptions 50 3
UnresponsiveprocessCountWe have to kill the process because it has become unresponsive
Number 2 1
Los valores son personalizables…
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
• Una solución ha ejecutado 40 consultas SQL (via SharePoint OM)
• Un punto para SQL es 400 queries• Significa que para SQL se consume 0.1 puntos• Así que el uso de recursos por día para la
solución es 0.1 más otros contadores
Caso de estudio solución Sandbox
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Gestión activos software y libros
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146
Formación, consultoría y seminarios
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146