SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Líder en soluciones de IT para el gobierno de Brasil
Orador: Flávio Gomes da Silva Lisboa
Coordenación Estratégica de Acciones Governamentales (CEAGO)
Sistema de
Plugins del
ExpressoV3
¡No espere, haga!
Sus preguntas pueden ser dirigidas a los siguientes
canales de comunicación :
e-mail cisl@serpro.gov.br
diáspora https://diasporabr.com.br/u/cislgovbr
twitter @CISLGovBR
facebook https://www.facebook.com/cislgovbr.
Puede ver otras conferencias técnicas en nuestro canal
youtube https://www.youtube.com/user/CISLGov.
Preguntas
Empresa pública del Ministério de
Finanzas de Brasil.
Serpro trabaja com la prestación de
servicios en tecnologias de la
información para el sector público. La
compañía desarrolla soluciones que,
además de contribuir a la
modernización y eficiencia de la
administración pública, busca
desarrollar la relación entre los
ciudadanos y el gobierno brasileño.
SERPRO
SERPRO
Presencia Nacional
11 Regionales
Brasília, Belém, Fortaleza, Recife,
Salvador, Belo Horizonte, Rio de
Janeiro, São Paulo, Curitiba,
Florianópolis y Porto Alegre
17 Escritorios
Numeros de SERPRO
● 3 Data Centers: São Paulo, Rio de
Janeiro y Brasília
● 2 Servicios - Mainframe (29.095 MIPS)
● Más de 2.500 servidores de plataforma
baja (Risc, Cisc e Epic) entre máquinas
físicas y virtuales
● 6 automated tape libraries con una
capacidad de 2 petabytes de
almacenamiento
● 1.353 petabytes de almacenamiento
(discos) con 945TB en São Paulo,
51TB en Rio de Janeiro e 357TB en
Brasília
● 12 millones de transacciones en-línea
procesadas por año
● Múltiple Base de Datos (Adabas, DB2,
Oracle, SQL Server, MySQL,
PostgreSQL, Lotus Notes, BRSearch,
MS Access Sybase, INFORMIX,
ZopePlone)
● 64.407 Microcomputadoras
Heinz Doofenshmirtz, by Disney
Líneas de negocio de SERPRO
Desarollo de Sistemas y Aplicaciones
Rede de Comunicación
Administración de correo electrónico
Desarollo de ExpressoV3 en SERPRO
Equipo de Adecuación de Proyecto ExpressoV3
Orador
ExpressoV3 es un software de comunicación y
colaboración íntegralmente desarollado en software
libre.
Su objetivo principal es proporcionar una herramienta
económicamente viable que permite a las empresas,
dentro y fuera de Brasil tener dominio y autosuficiencia
en su mantenimiento.
ExpressoV3
ExpressoV3 se basa en la versión Kristina de Tine 2.0,
un groupware y CRM libre creado en Alemania.
ExpressoV3
ExpressoV3 es un software mantenido com
una amplia experiencia en la construcción y
mantenimiento de las herramientas de
trabajo en grupo.
Comunidad
http://comunidadeexpresso.serpro.gov.br
Las comunidades ExpressoV3 y Tine 2.0 colaboram
entre si, compartiendo un código base común a través
de presentaciones mutuas de cambios.
Colaboración y Integración
ExpressoV3 Tine 2.0
Admin
Addressbook
Calendar
Tasks
Tinebase
Setup
Expressomail
Messenger
Webconference
Courses
Crm
Felamimail
Filemanager
HumanResources
Inventory
Phone
Projects
RequestTracker
Sales
Timetracker
Voipmanager
En un proyecto de software mantenido en comunidad,
siempre hay un conflicto entre los intereses generales y
los intereses privados.
Los intereses generales son funciones de software que
todo el mundo va a usar y para que la discusión se limita
a la forma en que se llevarán a cabo.
Los intereses privados son características utilizadas
por sólo un grupo o un miembro de la comunidad que
son importantes para ellos, pero no son relevantes para
los otros.
Conflicto de intereses
Un software que debe satisfacer una variedad de
necesidades de los usuarios debe centrarse en los
intereses generales de estas personas.
Software en comunidad
Software en comunidad = Intereses generales
“El destino de uno es compartido por todos”
El Amo de los Calabozos
Software en comunidad
Dungeons & Dragons, 24th episode. Copyright CBS.
La unidad de un proyecto de software en comunidad
depende del mantenimiento de los intereses de sus
miembros.
Unidad de software
Intereses
privados
Intereses
privados
Intereses
privados
Intereses
privados
Intereses
generales
Si los intereses particulares no se tratan, ellos dan lugar
a softwares derivados, los forks.
Sectarismo
Fork
Fork
Fork
Fork
Software
original
Para permitir que intereses privados se cumplen sin
dejar que el software existe como una implementación
del interés general, es necesario que cada miembro del
grupo es capaz de añadir lo que quiere o cambiar el
comportamiento de una funcionalidad de acuerdo com
su específica necesidad.
Así, software en comunidad debe ser extensible y
configurable.
Mantenimiento de unidad
Configurable
Por herencia do Tine 2.0, ExpressoV3 nació extensible
por módulos.
Extensibilidad
Módulo Módulo
Módulo
Módulo
Tine 2.0
Tine 2.0 tiene una arquitectura modular, que permite
añadir funcionalidades a través de módulos que
implementan el patrón de diseño MVC extendido.
Modularidad
Tine 2.0
Admin Addressbook Calendar Courses
Addressbook
Phone
Felamimail Filemanager
Projects RequestTracker
Human
Resources
Inventory
Sales
Crm
Phone
Setup
Tasks Timetracker RequestTracker Voipmanager New Module
Todos los módulos siguen el mismo patrón de aplicación,
lo que incluye apoyo a traducción y ajuste de
preferencias.
Patrón de módulos
Utilizando esta arquitectura, ExpressoV3 lanzó módulos
Expressomail, Messenger y Webconference.
Módulos de ExpressoV3
ExpressoV3
Admin Addressbook Calendar
Messenger Setup
Expressomail
Tasks Webconference
Qué módulos hacen
Módulos agregan funcionalidades.
Módulos pueden consumir servicios de otros módulos.
Qué módulos no hacen
Módulos no cambian funcionalidades existentes en otros
módulos.
Límites de los módulos
Ampliación de la diversidad de intereses
Comunidad
ExpressoV3 se está
expandiendo!
Los intereses ya son diferentes!
¿Cómo conciliar tantos intereses diferentes?
Qué plugins hacen
Plugins agregan funcionalidades.
Plugins pueden consumir servicios de cualquier módulo.
Plugins pueden cambiar funcionalidades existentes en
otros módulos.
Plugins son inyecciones de dependencias.
¡No extienda, haz un plugin!
ExpressoV3 apoya firma digital
La implementación de firma digital creada por Serpro se
hizo de acuerdo a las especificaciones de ICP-Brasil
(Infraestructura de Clave Pública de Brasil).
Esta implementación es de interés para las
organizaciones en Brasil, pero no encajan en otros
países.
Estudio de caso: la firma digital
Se implementó una rutina para control de firma en
módulo Tinebase.
Estudio de caso: la firma digital
Tinebase
Frontend_Json
public function verifyCertificate($_data)
Esta rutina es llamada por una clase que hereda de la
capa de frontend.
Estudio de caso: la firma digital
Tinebase
Frontend_Json
public function verifyCertificate($_data)
Módulo
Classe herdeira
La llamada al método se realiza mediante solicitud del
cliente según el protocolo JSON-RPC 2.0.
Estudio de caso: la firma digital
Cliente ExpressoV3
Tinebase.verifyCertificate
Esta rutina estaba utilizando clases que también se
agregaron a módulo Tinebase.
Estudio de caso: la firma digital
Tinebase
Auth_ModSsql_Certificate_Factory
Auth_ModSsl_Certificate_ICPBrasil
Auth_ModSsl_Certificate_X509
Auth_ModSsql_Exception_Openssl_NotLoaded
Auth_ModSsl_UsernameCallback_Abstract
Auth_ModSsl_UsernameCallback_Interface
Model_DigitalCertificateValidation Auth_ModSsl_UsernameCallback_Serpro
El problema es que el módulo Tinebase es el módulo de
que dependen todos los demás.
Tinebase: la dependencia
ExpressoV3
Admin Addressbook Calendar
Messenger Setup
Expressomail
Tasks Webconference
Tinebase
Tinebase es también el extensióne de las dependencias
de ExpressoV3.
Tinebase: la extensión
ExpressoV3
Tinebase
Syncroton
Tinebase debe ser genérico para todos los módulos, ya
que contiene los intereses generales de los módulos.
Tinebase: el interés general
Módulo Módulo
Módulo
Módulo
Tinebase
Tinebase
Por lo tanto debemos evitar el cambio de Tinebase, a
menos que el cambio es genérico.
Tinebase: el intocable
La verificación de firma digital según la norma ICP-Brasil
es un interés general en Brasil. Así ella no puede
permanecer dentro de un módulo específico, pero en el
módulo que proporciona las características esenciales.
Sin embargo, teniendo en cuenta la comunidad
internacional, esta implementación es específica.
Tinebase: el conflicto
La implementación de la verificación de firmas digitales
según norma ICP-Brasil debe ser desacoplada del
módulo Tinebase.
Tinebase: resultado
Pepper Potts & Tony Stark. Copyright Marvel.
¿Pero, cómo mantener la respuesta a la solicitud?
Tinebase: el inevitable
Cliente ExpressoV3
Tinebase.verifyCertificate
Yo dependo de una funcionalidad, pero no puedo
conectá-la a mi software, porque no todo el mundo va a
hacer uso de ella porque no es genérica.
Tengo que hacer una llamada a un método que no
puede ser definido estáticamente.
En otras palabras, tengo que hacer una llamada a algo
que sólo debe estar disponible cuando lo necesito.
Problema arquitectónico
¿Magia?
Aladdin is part of oriental culture although Disney has made an animation aboit him
La respuesta fue la creación de una arquitectura de
plugin que permite la inyección de dependencias.
Tinebase: la solución
Una clase madre hace tres capas pluggable.
Tinebase_Pluggable
Frontend_Abstract Controller_Abstract Backend_Abstract
Pluggable_Abstract
En en script, init_plugins.php, se centra las inyecciones
de dependencias.
La inyección de dependencias
Creando un plugin
Para crear un plugin usted debe:
Crear una clase en una biblioteca que sigue el estándar
de Zend Framework 1, dentro de la carpeta library.
Registrar el plugin en la capa que debe recibir la
funcionalidad, añadiendo una línea como la siguiente:
Tinebase_Frontend_Abstract::attachPlugin('nombreDeMétodo', 'NomeDeClase');
Tinebase_Controller_Abstract::attachPlugin('nombreDeMétodo', 'NomeDeClase');
Tinebase_Backend_Abstract::attachPlugin('nombreDeMétodo', 'NomeDeClase');
Plugin de capa
Un plugin es una clase cuyo método se invoca
indirectamente por un objecto de una de las capas de
frontend, controller y backend.
Usted puede crear y añadir tantos plugins según sea
necesario utilizando el método addPlugin() de la clase
abstracta de la capa.
Todos sus herederos tienen acceso a métodos de plugins.
Así, la implementación de firma digital ha sido movida a
una biblioteca.
Dependencias se encuentran en la carpeta library
Serpro
Auth_ModSsql_Certificate_Factory
Auth_ModSsl_Certificate_ICPBrasil
Auth_ModSsl_Certificate_X509
Auth_ModSsql_Exception_Openssl_NotLoaded
Auth_ModSsl_UsernameCallback_Abstract
Auth_ModSsl_UsernameCallback_Interface
Model_DigitalCertificateValidation Auth_ModSsl_UsernameCallback_Cpf
Plugins son clases que forman
parte de las bibliotecas que son
dependencias de la aplicación.
Si desea agregar una funcionalidad
específica a una capa, crea su
propia biblioteca y dentro de ella
crea sus plugins.
Dependencias se encuentran en la carpeta library
Es posible inyectar otras dependencias en archivo,
init_plugins.php, distintas de las que afectan las capas.
Usted puede cambiar la regla de validación de la
dirección IP y estrategia de almacenamiento de
AccessLog.
Esto es para hacer ExpressoV3 configurable.
¡Y no sólo eso!
En las próximas versiones de ExpressoV3, estarán
disponibles plugins para:
●Inicio de la aplicación
●Sistema de usuarios y grupos
●Filtros de consultas
¡Más plugins están llegando!
Si necesita algún tipo de personalización, no espere que
sus necesidades se conviertan en intereses genéricos.
¡ESCRIBA SU PLUGIN Y USE!
¡Escriba tuyo!
¿Tienes ideas para más puntos de plugins?
Visite el Foro del ExpressoV3 y exponga sus propuestas.
http://comunidadeexpresso.serpro.gov.br
Gracias
flavio.lisboa@serpro.gov.br
Serviço Federal de Processamento de Dados - Serpro
Edifício Sede: SGAN 601 - Módulo V - CEP 70836-900
Fone: (61) 2021-8000 - Brasília DF
www.serpro.gov.br

Weitere ähnliche Inhalte

Andere mochten auch

如何求解问题——现代启发式方法
如何求解问题——现代启发式方法如何求解问题——现代启发式方法
如何求解问题——现代启发式方法monke82
 
126989581629.03 enol in_1_00_mapa
126989581629.03 enol in_1_00_mapa126989581629.03 enol in_1_00_mapa
126989581629.03 enol in_1_00_mapaPatrícia Maria
 
Plataforma i tunes
Plataforma i tunesPlataforma i tunes
Plataforma i tunesGrecia Nuño
 
El Puma Y El Cervatillo
El Puma Y El CervatilloEl Puma Y El Cervatillo
El Puma Y El Cervatilloverodarquea
 
Tema1 Nuevas Tecnologias
Tema1 Nuevas TecnologiasTema1 Nuevas Tecnologias
Tema1 Nuevas TecnologiasNieves
 
Taalbeleid
TaalbeleidTaalbeleid
Taalbeleidpedev
 
Mercurio edoardo mochi
Mercurio edoardo mochiMercurio edoardo mochi
Mercurio edoardo mochiclaudiaterzi
 
บทนำ
บทนำบทนำ
บทนำwaralee63
 
Presentasi semerbakcoffee
Presentasi semerbakcoffeePresentasi semerbakcoffee
Presentasi semerbakcoffeeSemerbakCoffee
 
picture cv
picture cvpicture cv
picture cvminolam
 
Cuidado Con El Perro
Cuidado Con El PerroCuidado Con El Perro
Cuidado Con El PerroLuis Capelli
 
Podsumowanie działalności górskiej w roku 2010
Podsumowanie działalności górskiej w roku 2010Podsumowanie działalności górskiej w roku 2010
Podsumowanie działalności górskiej w roku 2010Wojtek Grzelak
 

Andere mochten auch (20)

如何求解问题——现代启发式方法
如何求解问题——现代启发式方法如何求解问题——现代启发式方法
如何求解问题——现代启发式方法
 
126989581629.03 enol in_1_00_mapa
126989581629.03 enol in_1_00_mapa126989581629.03 enol in_1_00_mapa
126989581629.03 enol in_1_00_mapa
 
Plataforma i tunes
Plataforma i tunesPlataforma i tunes
Plataforma i tunes
 
El Puma Y El Cervatillo
El Puma Y El CervatilloEl Puma Y El Cervatillo
El Puma Y El Cervatillo
 
Tema1 Nuevas Tecnologias
Tema1 Nuevas TecnologiasTema1 Nuevas Tecnologias
Tema1 Nuevas Tecnologias
 
Renascimento Cultural
Renascimento CulturalRenascimento Cultural
Renascimento Cultural
 
Ken robinson
Ken robinsonKen robinson
Ken robinson
 
Taalbeleid
TaalbeleidTaalbeleid
Taalbeleid
 
Taller liceo 2
Taller liceo 2Taller liceo 2
Taller liceo 2
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Beco da Rua da Pedreira
Beco da Rua da PedreiraBeco da Rua da Pedreira
Beco da Rua da Pedreira
 
MUSE
MUSEMUSE
MUSE
 
Mercurio edoardo mochi
Mercurio edoardo mochiMercurio edoardo mochi
Mercurio edoardo mochi
 
บทนำ
บทนำบทนำ
บทนำ
 
Presentasi semerbakcoffee
Presentasi semerbakcoffeePresentasi semerbakcoffee
Presentasi semerbakcoffee
 
ejemplo sistema de numeracion
ejemplo sistema de numeracionejemplo sistema de numeracion
ejemplo sistema de numeracion
 
Rua 1º de Dezembro
Rua 1º de DezembroRua 1º de Dezembro
Rua 1º de Dezembro
 
picture cv
picture cvpicture cv
picture cv
 
Cuidado Con El Perro
Cuidado Con El PerroCuidado Con El Perro
Cuidado Con El Perro
 
Podsumowanie działalności górskiej w roku 2010
Podsumowanie działalności górskiej w roku 2010Podsumowanie działalności górskiej w roku 2010
Podsumowanie działalności górskiej w roku 2010
 

Ähnlich wie Soluciones IT Brasil

Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual
Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual
Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual Olga Martí
 
Practica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercial
Practica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercialPractica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercial
Practica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercialLuis Gerardo Carvajal
 
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...michaeljr89
 
Construye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programarConstruye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programarLuis Beltran
 
Formación de emprendedores del software libre
Formación de emprendedores del software libreFormación de emprendedores del software libre
Formación de emprendedores del software librekyaalena
 
Proyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion WebProyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion WebDJasc Lives
 
Software y Bases de Datos basadas en web
Software y Bases de Datos basadas en webSoftware y Bases de Datos basadas en web
Software y Bases de Datos basadas en webDim1913
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipJose B Flores P
 

Ähnlich wie Soluciones IT Brasil (20)

Dpss u3 a2_wipl
Dpss u3 a2_wiplDpss u3 a2_wipl
Dpss u3 a2_wipl
 
Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual
Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual
Desarrollando Apps en Microsoft Teams - M365 Madrid Virtual
 
Planificación si
Planificación siPlanificación si
Planificación si
 
3. marcadores (1)
3. marcadores (1)3. marcadores (1)
3. marcadores (1)
 
3. marcadores
3. marcadores3. marcadores
3. marcadores
 
vTiger2
vTiger2vTiger2
vTiger2
 
vTiger
vTigervTiger
vTiger
 
Practica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercial
Practica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercialPractica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercial
Practica integradora-ii-parcial-administracion-de-un-sistema-operativo-comercial
 
Evolucion software - Ing SW
Evolucion software - Ing SWEvolucion software - Ing SW
Evolucion software - Ing SW
 
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...
 
Taller individual
Taller individualTaller individual
Taller individual
 
Proyecto mapsig
Proyecto mapsigProyecto mapsig
Proyecto mapsig
 
Cdtec general
Cdtec generalCdtec general
Cdtec general
 
Gt 2 tic(1)
Gt 2 tic(1)Gt 2 tic(1)
Gt 2 tic(1)
 
Construye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programarConstruye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programar
 
Formación de emprendedores del software libre
Formación de emprendedores del software libreFormación de emprendedores del software libre
Formación de emprendedores del software libre
 
Proyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion WebProyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion Web
 
Pres3
Pres3Pres3
Pres3
 
Software y Bases de Datos basadas en web
Software y Bases de Datos basadas en webSoftware y Bases de Datos basadas en web
Software y Bases de Datos basadas en web
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membership
 

Mehr von Flávio Lisboa

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPFlávio Lisboa
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasFlávio Lisboa
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadoresFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 

Mehr von Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 

Kürzlich hochgeladen

tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6SaraMineiropalacio
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxhellendiaz12
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 

Kürzlich hochgeladen (18)

tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 

Soluciones IT Brasil

  • 1. Líder en soluciones de IT para el gobierno de Brasil Orador: Flávio Gomes da Silva Lisboa Coordenación Estratégica de Acciones Governamentales (CEAGO) Sistema de Plugins del ExpressoV3 ¡No espere, haga!
  • 2. Sus preguntas pueden ser dirigidas a los siguientes canales de comunicación : e-mail cisl@serpro.gov.br diáspora https://diasporabr.com.br/u/cislgovbr twitter @CISLGovBR facebook https://www.facebook.com/cislgovbr. Puede ver otras conferencias técnicas en nuestro canal youtube https://www.youtube.com/user/CISLGov. Preguntas
  • 3. Empresa pública del Ministério de Finanzas de Brasil. Serpro trabaja com la prestación de servicios en tecnologias de la información para el sector público. La compañía desarrolla soluciones que, además de contribuir a la modernización y eficiencia de la administración pública, busca desarrollar la relación entre los ciudadanos y el gobierno brasileño. SERPRO
  • 4. SERPRO Presencia Nacional 11 Regionales Brasília, Belém, Fortaleza, Recife, Salvador, Belo Horizonte, Rio de Janeiro, São Paulo, Curitiba, Florianópolis y Porto Alegre 17 Escritorios
  • 5. Numeros de SERPRO ● 3 Data Centers: São Paulo, Rio de Janeiro y Brasília ● 2 Servicios - Mainframe (29.095 MIPS) ● Más de 2.500 servidores de plataforma baja (Risc, Cisc e Epic) entre máquinas físicas y virtuales ● 6 automated tape libraries con una capacidad de 2 petabytes de almacenamiento ● 1.353 petabytes de almacenamiento (discos) con 945TB en São Paulo, 51TB en Rio de Janeiro e 357TB en Brasília ● 12 millones de transacciones en-línea procesadas por año ● Múltiple Base de Datos (Adabas, DB2, Oracle, SQL Server, MySQL, PostgreSQL, Lotus Notes, BRSearch, MS Access Sybase, INFORMIX, ZopePlone) ● 64.407 Microcomputadoras Heinz Doofenshmirtz, by Disney
  • 6. Líneas de negocio de SERPRO Desarollo de Sistemas y Aplicaciones Rede de Comunicación Administración de correo electrónico
  • 8. Equipo de Adecuación de Proyecto ExpressoV3 Orador
  • 9. ExpressoV3 es un software de comunicación y colaboración íntegralmente desarollado en software libre. Su objetivo principal es proporcionar una herramienta económicamente viable que permite a las empresas, dentro y fuera de Brasil tener dominio y autosuficiencia en su mantenimiento. ExpressoV3
  • 10. ExpressoV3 se basa en la versión Kristina de Tine 2.0, un groupware y CRM libre creado en Alemania. ExpressoV3
  • 11. ExpressoV3 es un software mantenido com una amplia experiencia en la construcción y mantenimiento de las herramientas de trabajo en grupo. Comunidad http://comunidadeexpresso.serpro.gov.br
  • 12. Las comunidades ExpressoV3 y Tine 2.0 colaboram entre si, compartiendo un código base común a través de presentaciones mutuas de cambios. Colaboración y Integración ExpressoV3 Tine 2.0 Admin Addressbook Calendar Tasks Tinebase Setup Expressomail Messenger Webconference Courses Crm Felamimail Filemanager HumanResources Inventory Phone Projects RequestTracker Sales Timetracker Voipmanager
  • 13. En un proyecto de software mantenido en comunidad, siempre hay un conflicto entre los intereses generales y los intereses privados. Los intereses generales son funciones de software que todo el mundo va a usar y para que la discusión se limita a la forma en que se llevarán a cabo. Los intereses privados son características utilizadas por sólo un grupo o un miembro de la comunidad que son importantes para ellos, pero no son relevantes para los otros. Conflicto de intereses
  • 14. Un software que debe satisfacer una variedad de necesidades de los usuarios debe centrarse en los intereses generales de estas personas. Software en comunidad Software en comunidad = Intereses generales
  • 15. “El destino de uno es compartido por todos” El Amo de los Calabozos Software en comunidad Dungeons & Dragons, 24th episode. Copyright CBS.
  • 16. La unidad de un proyecto de software en comunidad depende del mantenimiento de los intereses de sus miembros. Unidad de software Intereses privados Intereses privados Intereses privados Intereses privados Intereses generales
  • 17. Si los intereses particulares no se tratan, ellos dan lugar a softwares derivados, los forks. Sectarismo Fork Fork Fork Fork Software original
  • 18. Para permitir que intereses privados se cumplen sin dejar que el software existe como una implementación del interés general, es necesario que cada miembro del grupo es capaz de añadir lo que quiere o cambiar el comportamiento de una funcionalidad de acuerdo com su específica necesidad. Así, software en comunidad debe ser extensible y configurable. Mantenimiento de unidad
  • 20. Por herencia do Tine 2.0, ExpressoV3 nació extensible por módulos. Extensibilidad Módulo Módulo Módulo Módulo Tine 2.0
  • 21. Tine 2.0 tiene una arquitectura modular, que permite añadir funcionalidades a través de módulos que implementan el patrón de diseño MVC extendido. Modularidad Tine 2.0 Admin Addressbook Calendar Courses Addressbook Phone Felamimail Filemanager Projects RequestTracker Human Resources Inventory Sales Crm Phone Setup Tasks Timetracker RequestTracker Voipmanager New Module
  • 22. Todos los módulos siguen el mismo patrón de aplicación, lo que incluye apoyo a traducción y ajuste de preferencias. Patrón de módulos
  • 23. Utilizando esta arquitectura, ExpressoV3 lanzó módulos Expressomail, Messenger y Webconference. Módulos de ExpressoV3 ExpressoV3 Admin Addressbook Calendar Messenger Setup Expressomail Tasks Webconference
  • 24. Qué módulos hacen Módulos agregan funcionalidades. Módulos pueden consumir servicios de otros módulos. Qué módulos no hacen Módulos no cambian funcionalidades existentes en otros módulos. Límites de los módulos
  • 25. Ampliación de la diversidad de intereses Comunidad ExpressoV3 se está expandiendo!
  • 26. Los intereses ya son diferentes!
  • 27. ¿Cómo conciliar tantos intereses diferentes?
  • 28. Qué plugins hacen Plugins agregan funcionalidades. Plugins pueden consumir servicios de cualquier módulo. Plugins pueden cambiar funcionalidades existentes en otros módulos. Plugins son inyecciones de dependencias. ¡No extienda, haz un plugin!
  • 29. ExpressoV3 apoya firma digital La implementación de firma digital creada por Serpro se hizo de acuerdo a las especificaciones de ICP-Brasil (Infraestructura de Clave Pública de Brasil). Esta implementación es de interés para las organizaciones en Brasil, pero no encajan en otros países. Estudio de caso: la firma digital
  • 30. Se implementó una rutina para control de firma en módulo Tinebase. Estudio de caso: la firma digital Tinebase Frontend_Json public function verifyCertificate($_data)
  • 31. Esta rutina es llamada por una clase que hereda de la capa de frontend. Estudio de caso: la firma digital Tinebase Frontend_Json public function verifyCertificate($_data) Módulo Classe herdeira
  • 32. La llamada al método se realiza mediante solicitud del cliente según el protocolo JSON-RPC 2.0. Estudio de caso: la firma digital Cliente ExpressoV3 Tinebase.verifyCertificate
  • 33. Esta rutina estaba utilizando clases que también se agregaron a módulo Tinebase. Estudio de caso: la firma digital Tinebase Auth_ModSsql_Certificate_Factory Auth_ModSsl_Certificate_ICPBrasil Auth_ModSsl_Certificate_X509 Auth_ModSsql_Exception_Openssl_NotLoaded Auth_ModSsl_UsernameCallback_Abstract Auth_ModSsl_UsernameCallback_Interface Model_DigitalCertificateValidation Auth_ModSsl_UsernameCallback_Serpro
  • 34. El problema es que el módulo Tinebase es el módulo de que dependen todos los demás. Tinebase: la dependencia ExpressoV3 Admin Addressbook Calendar Messenger Setup Expressomail Tasks Webconference Tinebase
  • 35. Tinebase es también el extensióne de las dependencias de ExpressoV3. Tinebase: la extensión ExpressoV3 Tinebase Syncroton
  • 36. Tinebase debe ser genérico para todos los módulos, ya que contiene los intereses generales de los módulos. Tinebase: el interés general Módulo Módulo Módulo Módulo Tinebase
  • 37. Tinebase Por lo tanto debemos evitar el cambio de Tinebase, a menos que el cambio es genérico. Tinebase: el intocable
  • 38. La verificación de firma digital según la norma ICP-Brasil es un interés general en Brasil. Así ella no puede permanecer dentro de un módulo específico, pero en el módulo que proporciona las características esenciales. Sin embargo, teniendo en cuenta la comunidad internacional, esta implementación es específica. Tinebase: el conflicto
  • 39. La implementación de la verificación de firmas digitales según norma ICP-Brasil debe ser desacoplada del módulo Tinebase. Tinebase: resultado Pepper Potts & Tony Stark. Copyright Marvel.
  • 40. ¿Pero, cómo mantener la respuesta a la solicitud? Tinebase: el inevitable Cliente ExpressoV3 Tinebase.verifyCertificate
  • 41. Yo dependo de una funcionalidad, pero no puedo conectá-la a mi software, porque no todo el mundo va a hacer uso de ella porque no es genérica. Tengo que hacer una llamada a un método que no puede ser definido estáticamente. En otras palabras, tengo que hacer una llamada a algo que sólo debe estar disponible cuando lo necesito. Problema arquitectónico
  • 42. ¿Magia? Aladdin is part of oriental culture although Disney has made an animation aboit him
  • 43. La respuesta fue la creación de una arquitectura de plugin que permite la inyección de dependencias. Tinebase: la solución
  • 44. Una clase madre hace tres capas pluggable. Tinebase_Pluggable Frontend_Abstract Controller_Abstract Backend_Abstract Pluggable_Abstract
  • 45. En en script, init_plugins.php, se centra las inyecciones de dependencias. La inyección de dependencias
  • 46. Creando un plugin Para crear un plugin usted debe: Crear una clase en una biblioteca que sigue el estándar de Zend Framework 1, dentro de la carpeta library. Registrar el plugin en la capa que debe recibir la funcionalidad, añadiendo una línea como la siguiente: Tinebase_Frontend_Abstract::attachPlugin('nombreDeMétodo', 'NomeDeClase'); Tinebase_Controller_Abstract::attachPlugin('nombreDeMétodo', 'NomeDeClase'); Tinebase_Backend_Abstract::attachPlugin('nombreDeMétodo', 'NomeDeClase');
  • 47. Plugin de capa Un plugin es una clase cuyo método se invoca indirectamente por un objecto de una de las capas de frontend, controller y backend. Usted puede crear y añadir tantos plugins según sea necesario utilizando el método addPlugin() de la clase abstracta de la capa. Todos sus herederos tienen acceso a métodos de plugins.
  • 48. Así, la implementación de firma digital ha sido movida a una biblioteca. Dependencias se encuentran en la carpeta library Serpro Auth_ModSsql_Certificate_Factory Auth_ModSsl_Certificate_ICPBrasil Auth_ModSsl_Certificate_X509 Auth_ModSsql_Exception_Openssl_NotLoaded Auth_ModSsl_UsernameCallback_Abstract Auth_ModSsl_UsernameCallback_Interface Model_DigitalCertificateValidation Auth_ModSsl_UsernameCallback_Cpf
  • 49. Plugins son clases que forman parte de las bibliotecas que son dependencias de la aplicación. Si desea agregar una funcionalidad específica a una capa, crea su propia biblioteca y dentro de ella crea sus plugins. Dependencias se encuentran en la carpeta library
  • 50. Es posible inyectar otras dependencias en archivo, init_plugins.php, distintas de las que afectan las capas. Usted puede cambiar la regla de validación de la dirección IP y estrategia de almacenamiento de AccessLog. Esto es para hacer ExpressoV3 configurable. ¡Y no sólo eso!
  • 51. En las próximas versiones de ExpressoV3, estarán disponibles plugins para: ●Inicio de la aplicación ●Sistema de usuarios y grupos ●Filtros de consultas ¡Más plugins están llegando!
  • 52. Si necesita algún tipo de personalización, no espere que sus necesidades se conviertan en intereses genéricos. ¡ESCRIBA SU PLUGIN Y USE! ¡Escriba tuyo!
  • 53. ¿Tienes ideas para más puntos de plugins? Visite el Foro del ExpressoV3 y exponga sus propuestas. http://comunidadeexpresso.serpro.gov.br
  • 55. Serviço Federal de Processamento de Dados - Serpro Edifício Sede: SGAN 601 - Módulo V - CEP 70836-900 Fone: (61) 2021-8000 - Brasília DF www.serpro.gov.br