SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Implementing eGovernment Portal
 Powered by Alfresco and Orbeon
      Oksana Kurysheva   Alexey Ermakov
Agenda
Part I – Problem definition and brief overview of the approach
   • Local eGovernment Portals – Russian experience – current state
     and the most challenging problems
   • Technical requirements – what do we need, what Alfresco provided
     and where 3rd party solution help was required
   • Overall architecture of the system based on Alfresco and Orbeon



Part II – Implementation details
   • Integrating Alfresco and Orbeon in less then a month – detailed
     architecture, configs, key sources snippets
   • Workflows implementation – theory and practice – what we needed
     in real life in addition to Alfresco out-of-the-box capabilities
Part I:
Problems faced and approach chosen
The aim


Make government services available for citizens
   and businesses online in electronic form
The aim


Make government services available for citizens
   and businesses online in electronic form
 • Information about government services and ways of obtaining
Typical local eGov portal: information web site
    Static information about eGov services is available
The aim


Make government services available for citizens
   and businesses online in electronic form
 • Information about government services and ways of obtaining
 • Ability to submit a request to receive government services online
 • Full back-office integration, including inter-agency cooperation
Main problems to address

     Convert existing paper forms into electronic format

      Establish workflows to execute submitted forms
Addressing electronic forms creation

 Creating forms sounds simple. But it is not:
   • Forms can be really huge and complicated
   • Forms change time to time (monthly update for some of them)
   • List of forms to be available online is not fixed — it is regulated by
     federal and local laws, updates happen few times a year
   • Each agency has its own requirements


 Bottom line: there is no way to create forms definitions once
Addressing electronic forms creation

 The only possible solution: government employees can create
 and edit forms definitions themselves
   • It means creation and editing of dozens of complicated forms by
     non-technical users (including auto-checking configuration, mapping
     to templates for printing, etc)


 We need visual form authoring tool
Electronic forms management: finding the tool

What Alfresco is:                  What Alfresco is not:
  • Document management               • Form authoring tool that
  • Forms storage and                   allows non-technical users to
    management                          create complicated forms
                                        visually
  • Workflow automation
    platform (discussed further)
  • Open and flexible ECM that
    creates the basis for future
    inter-agency cooperation
    and systems integration


           Approach: integrate Alfresco and Orbeon
What is Orbeon?

 • Orbeon Forms – open source forms solution
   • Based on XForms and Ajax
   • Implemented in Java
   • Integration-friendly (discussed further)


 • Orbeon consists of 2 modules:
   • Forms Builder – visual form authoring tool
   • Forms Runner – runtime for deployed forms
Form definition creation in Orbeon Builder
             Visual form definition editor
Form definition creation in Orbeon Builder
          Adding auto-checking rules to control
Form definition creation in Orbeon Builder
   Uploading PDF template for printing according with local
   regulation (prepared in usual OpenOffice.org/LibreOffice)
Published form
example
Solution: forms authoring and submission
Addressing workflows: basic diagram
Addressing workflows: basic diagram




        The issue:
        Step 8 is actually a monstrous non-formalized process
Addressing workflows

The issue: internal workflows are not fixed strictly
  • Each basic 'atomic' internal workflow can be described in details but
   throughout form execution can not:
    • There are a lot of optional stages that can be included or not
    • Single form execution can trigger lots of internal processes to request
     additional papers, approvals, notifications an so on
    • Each sub-process can trigger even more child processes
    • Yeh, Russia is a very bureaucratic country after all
Addressing workflows

Solution: create workflows relations
  • Create basic 'atomic' workflows definitions
  • Allow users to associate these simple workflows with each other to
   build complex processes on demand
Solution: complete architecture
Part II:
Implementation details
Orbeon Integration: Approach
Orbeon Integration: Implementation
Persistence API Implementation


REST Web Scripts


  • PUT: add new file to repository
  • GET: return file from repository
  • POST: perform a search in repository
  • DELETE: remove file from repository
PUT Request

persistence.put.desc.xml
<webscript>
  <shortname>Persistence Layer</shortname>
  <description>Web script implementing Orbeon Forms
Persistence Layer put request</description>
  <url>/persistence/crud/{app_name}/{form_name}/data/
{form_data_id}/{file_name}</url>
  <authentication runas="orbeon">user</authentication>
  <transaction>required</transaction>
  <format default="html">argument</format>
</webscript>
PUT Request
persistence.put.js
// create/get file
var file = folder.childByNamePath(file_name);
if (!file && folder.hasPermission("CreateChildren")){
  file = folder.createNode(file_name, "form:formType");
  file.addAspect("cm:versionable");
  file.addAspect("cm:auditable");
  file.properties["cm:created"] = new Date();
  ...
  file.properties["form:id"] = form_data_id;
}
else
  file.properties["cm:modified"] = new Date();
file.save();
var copy = file.checkout();
copy.properties.content.write(requestbody);
file = copy.checkin("modified by orbeon forms", true);
file.mimetype = requestbody.mimetype;
file.save();
Persistence API problems


  • Forms definitions are stored in eXist
  • Content-type mismatch problem
Problem: content type mismatch
Solution: define two different scripts
<!-- web script to return application/octet-stream -->
<webscript kind="org.alfresco.repository.content.stream">
...
  <url>/persistence/crud/{app_name}/{form_name}/data/
{form_data_id}/{file_name}.pdf</url>
  <format default="">argument</format>
...
</webscript>

<!-- web script to return application/xml -->
<webscript>
...
  <url>/persistence/crud/{app_name}/{form_name}/data/
{form_data_id}/{file_name}.xml</url>
  <format default="_xml">argument</format>
</webscript>
Orbeon Integration: Persistence Layer Complete
Submitted forms execution


  • Content model to store form metadata
  • Workflow to automate form execution
  • Java class to send e-mails to client
Content model
<type name="form:formType">
 <title>Content class representing submitted form</title>
 <parent>cm:content</parent>
   <properties>
     <property name="form:id">
       <type>d:text</type>
       <mandatory>true</mandatory>
     </property>
   <property name="form:submitDate">...
   <property name="form:checkDate">...
   <property name="form:isCorrect">...
   <property name="form:executeDate">...
   <property name="form:checker">...
   <property name="form:executor“>
 </properties>
</type>
Workflow
Workflow model

formWorkflowModel.xml: type definition
<type name="formwf:checkTask">
  <parent>bpm:workflowTask</parent>
  <overrides>
    <property name="bpm:packageItemActionGroup">
      <default>read_package_item_actions</default>
    </property>
  </overrides>
  <mandatory-aspects>
    <aspect>formwf:formaspect</aspect>
    <aspect>formwf:assignee</aspect>
    <aspect>formwf:commentAspect</aspect>
  </mandatory-aspects>
</type>
Workflow model

formWorkflowModel.xml: form aspect definition
<aspect name="formwf:formaspect">
  <properties>
    <property name="formwf:email">
      <type>d:text</type>
    </property>
    <property name="formwf:checker">...
    <property name="formwf:previewlink">...
    <property name="formwf:statuslink">...
  </properties>
</aspect>
Workflow model


formWorkflowModel.xml: comment aspect definition
<aspect name="formwf:commentAspect“>
  <properties>
    <property name="formwf:comments">
      <type>d:text</type>
      <mandatory>false</mandatory>
      <multiple>false</multiple>
    </property>
  </properties>
</aspect>
Workflow model
formWorkflowModel.xml: assignee aspect definition
<aspect name="formwf:assignee“>
  <associations>
    <association name="formwf:assignee">
      <source>
        <mandatory>false</mandatory>
        <many>false</many>
      </source>
      <target>
        <class>cm:person</class>
        <mandatory>false</mandatory>
        <many>false</many>
      </target>
    </association>
  </associations>
</aspect>
Java mailer
public class Notifier extends BaseProcessorExtension {
  ...
  public boolean send(String to, String subject, String content) {
    ...
    Properties props = new Properties();
    props.setProperty("mail.transport.protocol", "smtp");
    ...
    Session mailSession = Session.getDefaultInstance(props, null);
    Transport transport = mailSession.getTransport();
    MimeMessage message = new MimeMessage(mailSession);
    ...
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

        transport.connect();
        transport.send(message);
        transport.close();
    }
}
Orbeon Integration: Workflows Complete
Additional Alfresco extensions developed


  • Custom file uploader
  • Related workflows extension
Custom file uploader


  • Attach files from local drive directly to workflow
  • Intuitive 'Google-style' end-user experience
  • Uses YUI Uploader: no third party libraries are needed
Custom file uploader
Related workflows

  • Creates relations between workflows
  • Start new workflow from task edit page
  • View all related workflows of current task from task page
  • Easy to see which process blocks current task
  • Easy to get process «dependencies» for stats


  • Bottom line: no «mega workflow» is required, allows to
    build execution paths from «basic blocks» on demand
Related workflows
Summary: Current project state


  • Orbeon and Alfresco integration allows non-technical
    users to create and edit form definitions easily
  • Forms are stored and processed in Alfresco, creating a
    basement for managing all documents in one system
  • Forms execution became more intuitive and simple
    compared with legacy document management system
Roadmap: Features planned


 • Statistics module to report on workflows execution for
   management
 • Organizational chart extension to pick employees from
   orgchart, assign tasks to organizational roles, manage
   tasks access control, get statistics on departments
 • Replace eXist completely, move everything to Alfresco
You can find this presentation and more details about this
          implementation on blog.ossgeeks.org


                  Contact us at
    okurysheva@vdel.com and aermakov@vdel.com

      And follow us on twitter: @aviriel and @fufler

Weitere ähnliche Inhalte

Was ist angesagt?

Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchRob Windsor
 
Evolving compositional user interfaces
Evolving compositional user interfacesEvolving compositional user interfaces
Evolving compositional user interfacesThomas Presthus
 
Oracle World 2002 Leverage Web Services in E-Business Applications
Oracle World 2002 Leverage Web Services in E-Business ApplicationsOracle World 2002 Leverage Web Services in E-Business Applications
Oracle World 2002 Leverage Web Services in E-Business ApplicationsRajesh Raheja
 
HTML5: A complete overview
HTML5: A complete overviewHTML5: A complete overview
HTML5: A complete overviewKristof Degrave
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webserviceDong Ngoc
 
Cloud computing by Luqman
Cloud computing by LuqmanCloud computing by Luqman
Cloud computing by LuqmanLuqman Shareef
 
WebServices using Soapui
WebServices using SoapuiWebServices using Soapui
WebServices using Soapuijaveed_mhd
 

Was ist angesagt? (10)

CS6501 - Internet programming
CS6501 - Internet programming   CS6501 - Internet programming
CS6501 - Internet programming
 
Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio Lightswitch
 
Evolving compositional user interfaces
Evolving compositional user interfacesEvolving compositional user interfaces
Evolving compositional user interfaces
 
Oracle World 2002 Leverage Web Services in E-Business Applications
Oracle World 2002 Leverage Web Services in E-Business ApplicationsOracle World 2002 Leverage Web Services in E-Business Applications
Oracle World 2002 Leverage Web Services in E-Business Applications
 
HTML5: A complete overview
HTML5: A complete overviewHTML5: A complete overview
HTML5: A complete overview
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
 
L13 Presentation Layer Design
L13 Presentation Layer DesignL13 Presentation Layer Design
L13 Presentation Layer Design
 
Bp124
Bp124Bp124
Bp124
 
Cloud computing by Luqman
Cloud computing by LuqmanCloud computing by Luqman
Cloud computing by Luqman
 
WebServices using Soapui
WebServices using SoapuiWebServices using Soapui
WebServices using Soapui
 

Andere mochten auch

Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...
Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...
Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...Turismo de Ávila
 
El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.
El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.
El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.FoxFibre Colorganic
 
Contrato de arrendamiento
Contrato de arrendamientoContrato de arrendamiento
Contrato de arrendamientoRosmeri Romero
 
Cyber Security, Why It's important To You
Cyber Security, Why It's important To YouCyber Security, Why It's important To You
Cyber Security, Why It's important To YouRonald E. Laub Jr
 
01 orthokeratology children chan
01  orthokeratology children chan01  orthokeratology children chan
01 orthokeratology children chanortokextremadura
 
Newsletter N°14 Mes de Junio
Newsletter N°14 Mes de JunioNewsletter N°14 Mes de Junio
Newsletter N°14 Mes de JunioWest Lubricantes
 
Desarrollo de software seguro: una visión con OpenSAMM
Desarrollo de software seguro: una visión con OpenSAMMDesarrollo de software seguro: una visión con OpenSAMM
Desarrollo de software seguro: una visión con OpenSAMMInternet Security Auditors
 
Company profile twa
Company profile twaCompany profile twa
Company profile twaRatman Bejo
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to ElasticsearchLuiz Messias
 
Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...
Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...
Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...Alberto López Martín
 
Global Hotel Alliance: Campaign Automation on a Global Scale
Global Hotel Alliance: Campaign Automation on a Global ScaleGlobal Hotel Alliance: Campaign Automation on a Global Scale
Global Hotel Alliance: Campaign Automation on a Global ScaleBlueHornet
 
LatinMarket
LatinMarketLatinMarket
LatinMarketLuis Cam
 
HoneySpider Network: a Java based system to hunt down malicious websites
HoneySpider Network: a Java based system to hunt down malicious websitesHoneySpider Network: a Java based system to hunt down malicious websites
HoneySpider Network: a Java based system to hunt down malicious websitesNLJUG
 

Andere mochten auch (20)

Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...
Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...
Plan de Competitividad de Turismo Activo. Sierra de Gredos y Valle de Iruelas...
 
Revista educaccion
Revista educaccionRevista educaccion
Revista educaccion
 
El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.
El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.
El algodón engaña. Nuestro algodón Fox Fibre Cologranic, no.
 
Group office
Group officeGroup office
Group office
 
Contrato de arrendamiento
Contrato de arrendamientoContrato de arrendamiento
Contrato de arrendamiento
 
M3 Sistema de rastreo vehicular
M3 Sistema de rastreo vehicularM3 Sistema de rastreo vehicular
M3 Sistema de rastreo vehicular
 
Cyber Security, Why It's important To You
Cyber Security, Why It's important To YouCyber Security, Why It's important To You
Cyber Security, Why It's important To You
 
Fac pubmed
Fac   pubmedFac   pubmed
Fac pubmed
 
01 orthokeratology children chan
01  orthokeratology children chan01  orthokeratology children chan
01 orthokeratology children chan
 
Newsletter N°14 Mes de Junio
Newsletter N°14 Mes de JunioNewsletter N°14 Mes de Junio
Newsletter N°14 Mes de Junio
 
Desarrollo de software seguro: una visión con OpenSAMM
Desarrollo de software seguro: una visión con OpenSAMMDesarrollo de software seguro: una visión con OpenSAMM
Desarrollo de software seguro: una visión con OpenSAMM
 
3. STAY IN Newsletter
3. STAY IN Newsletter3. STAY IN Newsletter
3. STAY IN Newsletter
 
Version cd web definitiva
Version cd web definitivaVersion cd web definitiva
Version cd web definitiva
 
Company profile twa
Company profile twaCompany profile twa
Company profile twa
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...
Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...
Codemotion Mad 2014 - Things I love seeing when I buy something online - Brai...
 
Global Hotel Alliance: Campaign Automation on a Global Scale
Global Hotel Alliance: Campaign Automation on a Global ScaleGlobal Hotel Alliance: Campaign Automation on a Global Scale
Global Hotel Alliance: Campaign Automation on a Global Scale
 
LatinMarket
LatinMarketLatinMarket
LatinMarket
 
HoneySpider Network: a Java based system to hunt down malicious websites
HoneySpider Network: a Java based system to hunt down malicious websitesHoneySpider Network: a Java based system to hunt down malicious websites
HoneySpider Network: a Java based system to hunt down malicious websites
 
Luxury surface
Luxury surfaceLuxury surface
Luxury surface
 

Ähnlich wie Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon

Building Workflow Applications Through the Web
Building Workflow Applications Through the WebBuilding Workflow Applications Through the Web
Building Workflow Applications Through the WebT. Kim Nguyen
 
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSencha
 
Drew madelung sp designer workflows - sp-biz
Drew madelung   sp designer workflows - sp-bizDrew madelung   sp designer workflows - sp-biz
Drew madelung sp designer workflows - sp-bizDrew Madelung
 
Webservices Workshop - september 2014
Webservices Workshop -  september 2014Webservices Workshop -  september 2014
Webservices Workshop - september 2014clairvoyantllc
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Deploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDeploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDenny Lee
 
Angular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsAngular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsWebStackAcademy
 
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...ddrschiw
 
Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!
Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!
Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!ifPeople
 
Displaying google maps in mobileapplication.pptx
Displaying google maps in mobileapplication.pptxDisplaying google maps in mobileapplication.pptx
Displaying google maps in mobileapplication.pptxsanaiftikhar23
 
How to – wrap soap web service around a database
How to – wrap soap web service around a databaseHow to – wrap soap web service around a database
How to – wrap soap web service around a databaseSon Nguyen
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development ServicesKabilan D
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-endJordi Anguela
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Ben Robb
 
Oracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolOracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolScott Wesley
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - TalkMatthias Noback
 
Angular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP ServicesAngular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP ServicesWebStackAcademy
 

Ähnlich wie Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon (20)

Building Workflow Applications Through the Web
Building Workflow Applications Through the WebBuilding Workflow Applications Through the Web
Building Workflow Applications Through the Web
 
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
 
Drew madelung sp designer workflows - sp-biz
Drew madelung   sp designer workflows - sp-bizDrew madelung   sp designer workflows - sp-biz
Drew madelung sp designer workflows - sp-biz
 
Webservices Workshop - september 2014
Webservices Workshop -  september 2014Webservices Workshop -  september 2014
Webservices Workshop - september 2014
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Deploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDeploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePoint
 
Angular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsAngular - Chapter 3 - Components
Angular - Chapter 3 - Components
 
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
 
Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!
Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!
Open Source CMS + Salesforce Integration Showdown: Plone vs Drupal vs Joomla!
 
Displaying google maps in mobileapplication.pptx
Displaying google maps in mobileapplication.pptxDisplaying google maps in mobileapplication.pptx
Displaying google maps in mobileapplication.pptx
 
How to – wrap soap web service around a database
How to – wrap soap web service around a databaseHow to – wrap soap web service around a database
How to – wrap soap web service around a database
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development Services
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010
 
Oracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolOracle Forms to APEX conversion tool
Oracle Forms to APEX conversion tool
 
OOW 2012 Future of Forms - Lucas Jellema
OOW 2012 Future of Forms - Lucas JellemaOOW 2012 Future of Forms - Lucas Jellema
OOW 2012 Future of Forms - Lucas Jellema
 
George Jordanov CV
George Jordanov CVGeorge Jordanov CV
George Jordanov CV
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
 
Angular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP ServicesAngular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP Services
 

Mehr von Oksana Kurysheva

What Every New Developer Should Know About Alfresco (Jeff Potts)
What Every New Developer Should Know About Alfresco (Jeff Potts)What Every New Developer Should Know About Alfresco (Jeff Potts)
What Every New Developer Should Know About Alfresco (Jeff Potts)Oksana Kurysheva
 
Как не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на AlfrescoКак не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на AlfrescoOksana Kurysheva
 
Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)Oksana Kurysheva
 
Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)Oksana Kurysheva
 
Электронный документооборот на Alfresco
Электронный документооборот на AlfrescoЭлектронный документооборот на Alfresco
Электронный документооборот на AlfrescoOksana Kurysheva
 
Электронный архив на Alfresco
Электронный архив на AlfrescoЭлектронный архив на Alfresco
Электронный архив на AlfrescoOksana Kurysheva
 
Потоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с KofaxПотоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с KofaxOksana Kurysheva
 
Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013Oksana Kurysheva
 
Александр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLabАлександр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLabOksana Kurysheva
 
Alexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware DevelopmentAlexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware DevelopmentOksana Kurysheva
 
Александр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSMАлександр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSMOksana Kurysheva
 
Светлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoСветлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoOksana Kurysheva
 
Павел Курочкин - STeameR
Павел Курочкин - STeameRПавел Курочкин - STeameR
Павел Курочкин - STeameROksana Kurysheva
 
Александр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеАлександр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеOksana Kurysheva
 
Кирилл Щерба - KSduino
Кирилл Щерба - KSduinoКирилл Щерба - KSduino
Кирилл Щерба - KSduinoOksana Kurysheva
 

Mehr von Oksana Kurysheva (15)

What Every New Developer Should Know About Alfresco (Jeff Potts)
What Every New Developer Should Know About Alfresco (Jeff Potts)What Every New Developer Should Know About Alfresco (Jeff Potts)
What Every New Developer Should Know About Alfresco (Jeff Potts)
 
Как не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на AlfrescoКак не создавать себе проблем, разрабатывая на Alfresco
Как не создавать себе проблем, разрабатывая на Alfresco
 
Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)Welcome to the Alfresco community (Jeff Potts)
Welcome to the Alfresco community (Jeff Potts)
 
Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)
 
Электронный документооборот на Alfresco
Электронный документооборот на AlfrescoЭлектронный документооборот на Alfresco
Электронный документооборот на Alfresco
 
Электронный архив на Alfresco
Электронный архив на AlfrescoЭлектронный архив на Alfresco
Электронный архив на Alfresco
 
Потоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с KofaxПотоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с Kofax
 
Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013Hardware Freedom Day Moscow 2013
Hardware Freedom Day Moscow 2013
 
Александр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLabАлександр Оликевич - OpenFabLab
Александр Оликевич - OpenFabLab
 
Alexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware DevelopmentAlexey Shmatok - Independent Hardware Development
Alexey Shmatok - Independent Hardware Development
 
Александр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSMАлександр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSM
 
Светлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoСветлана Мосалёва - Scratchduino
Светлана Мосалёва - Scratchduino
 
Павел Курочкин - STeameR
Павел Курочкин - STeameRПавел Курочкин - STeameR
Павел Курочкин - STeameR
 
Александр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеАлександр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудование
 
Кирилл Щерба - KSduino
Кирилл Щерба - KSduinoКирилл Щерба - KSduino
Кирилл Щерба - KSduino
 

Kürzlich hochgeladen

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Kürzlich hochgeladen (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Alfresco DevCon 2011. Implementing eGov Portal. Powered by Alfresco and Orbeon

  • 1. Implementing eGovernment Portal Powered by Alfresco and Orbeon Oksana Kurysheva Alexey Ermakov
  • 2. Agenda Part I – Problem definition and brief overview of the approach • Local eGovernment Portals – Russian experience – current state and the most challenging problems • Technical requirements – what do we need, what Alfresco provided and where 3rd party solution help was required • Overall architecture of the system based on Alfresco and Orbeon Part II – Implementation details • Integrating Alfresco and Orbeon in less then a month – detailed architecture, configs, key sources snippets • Workflows implementation – theory and practice – what we needed in real life in addition to Alfresco out-of-the-box capabilities
  • 3. Part I: Problems faced and approach chosen
  • 4. The aim Make government services available for citizens and businesses online in electronic form
  • 5. The aim Make government services available for citizens and businesses online in electronic form • Information about government services and ways of obtaining
  • 6. Typical local eGov portal: information web site Static information about eGov services is available
  • 7. The aim Make government services available for citizens and businesses online in electronic form • Information about government services and ways of obtaining • Ability to submit a request to receive government services online • Full back-office integration, including inter-agency cooperation
  • 8. Main problems to address Convert existing paper forms into electronic format Establish workflows to execute submitted forms
  • 9. Addressing electronic forms creation Creating forms sounds simple. But it is not: • Forms can be really huge and complicated • Forms change time to time (monthly update for some of them) • List of forms to be available online is not fixed — it is regulated by federal and local laws, updates happen few times a year • Each agency has its own requirements Bottom line: there is no way to create forms definitions once
  • 10. Addressing electronic forms creation The only possible solution: government employees can create and edit forms definitions themselves • It means creation and editing of dozens of complicated forms by non-technical users (including auto-checking configuration, mapping to templates for printing, etc) We need visual form authoring tool
  • 11. Electronic forms management: finding the tool What Alfresco is: What Alfresco is not: • Document management • Form authoring tool that • Forms storage and allows non-technical users to management create complicated forms visually • Workflow automation platform (discussed further) • Open and flexible ECM that creates the basis for future inter-agency cooperation and systems integration Approach: integrate Alfresco and Orbeon
  • 12. What is Orbeon? • Orbeon Forms – open source forms solution • Based on XForms and Ajax • Implemented in Java • Integration-friendly (discussed further) • Orbeon consists of 2 modules: • Forms Builder – visual form authoring tool • Forms Runner – runtime for deployed forms
  • 13. Form definition creation in Orbeon Builder Visual form definition editor
  • 14. Form definition creation in Orbeon Builder Adding auto-checking rules to control
  • 15. Form definition creation in Orbeon Builder Uploading PDF template for printing according with local regulation (prepared in usual OpenOffice.org/LibreOffice)
  • 17. Solution: forms authoring and submission
  • 19. Addressing workflows: basic diagram The issue: Step 8 is actually a monstrous non-formalized process
  • 20. Addressing workflows The issue: internal workflows are not fixed strictly • Each basic 'atomic' internal workflow can be described in details but throughout form execution can not: • There are a lot of optional stages that can be included or not • Single form execution can trigger lots of internal processes to request additional papers, approvals, notifications an so on • Each sub-process can trigger even more child processes • Yeh, Russia is a very bureaucratic country after all
  • 21. Addressing workflows Solution: create workflows relations • Create basic 'atomic' workflows definitions • Allow users to associate these simple workflows with each other to build complex processes on demand
  • 26. Persistence API Implementation REST Web Scripts • PUT: add new file to repository • GET: return file from repository • POST: perform a search in repository • DELETE: remove file from repository
  • 27. PUT Request persistence.put.desc.xml <webscript> <shortname>Persistence Layer</shortname> <description>Web script implementing Orbeon Forms Persistence Layer put request</description> <url>/persistence/crud/{app_name}/{form_name}/data/ {form_data_id}/{file_name}</url> <authentication runas="orbeon">user</authentication> <transaction>required</transaction> <format default="html">argument</format> </webscript>
  • 28. PUT Request persistence.put.js // create/get file var file = folder.childByNamePath(file_name); if (!file && folder.hasPermission("CreateChildren")){ file = folder.createNode(file_name, "form:formType"); file.addAspect("cm:versionable"); file.addAspect("cm:auditable"); file.properties["cm:created"] = new Date(); ... file.properties["form:id"] = form_data_id; } else file.properties["cm:modified"] = new Date(); file.save(); var copy = file.checkout(); copy.properties.content.write(requestbody); file = copy.checkin("modified by orbeon forms", true); file.mimetype = requestbody.mimetype; file.save();
  • 29. Persistence API problems • Forms definitions are stored in eXist • Content-type mismatch problem
  • 30. Problem: content type mismatch Solution: define two different scripts <!-- web script to return application/octet-stream --> <webscript kind="org.alfresco.repository.content.stream"> ... <url>/persistence/crud/{app_name}/{form_name}/data/ {form_data_id}/{file_name}.pdf</url> <format default="">argument</format> ... </webscript> <!-- web script to return application/xml --> <webscript> ... <url>/persistence/crud/{app_name}/{form_name}/data/ {form_data_id}/{file_name}.xml</url> <format default="_xml">argument</format> </webscript>
  • 32. Submitted forms execution • Content model to store form metadata • Workflow to automate form execution • Java class to send e-mails to client
  • 33. Content model <type name="form:formType"> <title>Content class representing submitted form</title> <parent>cm:content</parent> <properties> <property name="form:id"> <type>d:text</type> <mandatory>true</mandatory> </property> <property name="form:submitDate">... <property name="form:checkDate">... <property name="form:isCorrect">... <property name="form:executeDate">... <property name="form:checker">... <property name="form:executor“> </properties> </type>
  • 35. Workflow model formWorkflowModel.xml: type definition <type name="formwf:checkTask"> <parent>bpm:workflowTask</parent> <overrides> <property name="bpm:packageItemActionGroup"> <default>read_package_item_actions</default> </property> </overrides> <mandatory-aspects> <aspect>formwf:formaspect</aspect> <aspect>formwf:assignee</aspect> <aspect>formwf:commentAspect</aspect> </mandatory-aspects> </type>
  • 36. Workflow model formWorkflowModel.xml: form aspect definition <aspect name="formwf:formaspect"> <properties> <property name="formwf:email"> <type>d:text</type> </property> <property name="formwf:checker">... <property name="formwf:previewlink">... <property name="formwf:statuslink">... </properties> </aspect>
  • 37. Workflow model formWorkflowModel.xml: comment aspect definition <aspect name="formwf:commentAspect“> <properties> <property name="formwf:comments"> <type>d:text</type> <mandatory>false</mandatory> <multiple>false</multiple> </property> </properties> </aspect>
  • 38. Workflow model formWorkflowModel.xml: assignee aspect definition <aspect name="formwf:assignee“> <associations> <association name="formwf:assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect>
  • 39. Java mailer public class Notifier extends BaseProcessorExtension { ... public boolean send(String to, String subject, String content) { ... Properties props = new Properties(); props.setProperty("mail.transport.protocol", "smtp"); ... Session mailSession = Session.getDefaultInstance(props, null); Transport transport = mailSession.getTransport(); MimeMessage message = new MimeMessage(mailSession); ... message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); transport.connect(); transport.send(message); transport.close(); } }
  • 41. Additional Alfresco extensions developed • Custom file uploader • Related workflows extension
  • 42. Custom file uploader • Attach files from local drive directly to workflow • Intuitive 'Google-style' end-user experience • Uses YUI Uploader: no third party libraries are needed
  • 44. Related workflows • Creates relations between workflows • Start new workflow from task edit page • View all related workflows of current task from task page • Easy to see which process blocks current task • Easy to get process «dependencies» for stats • Bottom line: no «mega workflow» is required, allows to build execution paths from «basic blocks» on demand
  • 46. Summary: Current project state • Orbeon and Alfresco integration allows non-technical users to create and edit form definitions easily • Forms are stored and processed in Alfresco, creating a basement for managing all documents in one system • Forms execution became more intuitive and simple compared with legacy document management system
  • 47. Roadmap: Features planned • Statistics module to report on workflows execution for management • Organizational chart extension to pick employees from orgchart, assign tasks to organizational roles, manage tasks access control, get statistics on departments • Replace eXist completely, move everything to Alfresco
  • 48. You can find this presentation and more details about this implementation on blog.ossgeeks.org Contact us at okurysheva@vdel.com and aermakov@vdel.com And follow us on twitter: @aviriel and @fufler