SlideShare a Scribd company logo
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

More Related Content

What's hot

CS6501 - Internet programming
CS6501 - Internet programming   CS6501 - Internet programming
CS6501 - Internet programming
Karthik Venkatachalam
 
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
Rob Windsor
 
Evolving compositional user interfaces
Evolving compositional user interfacesEvolving compositional user interfaces
Evolving compositional user interfaces
Thomas 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 Applications
Rajesh Raheja
 
HTML5: A complete overview
HTML5: A complete overviewHTML5: A complete overview
HTML5: A complete overview
Kristof Degrave
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
Dong Ngoc
 
L13 Presentation Layer Design
L13 Presentation Layer DesignL13 Presentation Layer Design
L13 Presentation Layer Design
Ólafur Andri Ragnarsson
 
Bp124
Bp124Bp124
Bp124
John Head
 
Cloud computing by Luqman
Cloud computing by LuqmanCloud computing by Luqman
Cloud computing by Luqman
Luqman Shareef
 
WebServices using Soapui
WebServices using SoapuiWebServices using Soapui
WebServices using Soapui
javeed_mhd
 

What's hot (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
 

Viewers also liked

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
 
Revista educaccion
Revista educaccionRevista educaccion
Revista educaccion
fabianandressuarez
 
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
 
Group office
Group officeGroup office
Group office
Marco Mocellini
 
Contrato de arrendamiento
Contrato de arrendamientoContrato de arrendamiento
Contrato de arrendamiento
Rosmeri Romero
 
M3 Sistema de rastreo vehicular
M3 Sistema de rastreo vehicularM3 Sistema de rastreo vehicular
M3 Sistema de rastreo vehicular
Juan Carlos Abaunza Ardila
 
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
Ronald E. Laub Jr
 
Fac pubmed
Fac   pubmedFac   pubmed
01 orthokeratology children chan
01  orthokeratology children chan01  orthokeratology children chan
01 orthokeratology children chan
ortokextremadura
 
Newsletter N°14 Mes de Junio
Newsletter N°14 Mes de JunioNewsletter N°14 Mes de Junio
Newsletter N°14 Mes de Junio
West 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 OpenSAMM
Internet Security Auditors
 
3. STAY IN Newsletter
3. STAY IN Newsletter3. STAY IN Newsletter
3. STAY IN Newsletter
Michaela Meier
 
Version cd web definitiva
Version cd web definitivaVersion cd web definitiva
Version cd web definitiva
Challenge Consulting Group S. A.
 
Company profile twa
Company profile twaCompany profile twa
Company profile twa
Ratman Bejo
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Luiz 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 Scale
BlueHornet
 
LatinMarket
LatinMarketLatinMarket
LatinMarket
Luis 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 websites
NLJUG
 
Luxury surface
Luxury surfaceLuxury surface
Luxury surface
iliay Tchertkov
 

Viewers also liked (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
 

Similar to 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 Web
T. 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 Pagan
Sencha
 
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
Drew Madelung
 
Webservices Workshop - september 2014
Webservices Workshop -  september 2014Webservices Workshop -  september 2014
Webservices Workshop - september 2014
clairvoyantllc
 
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
 
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
 
Deploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDeploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePoint
Denny Lee
 
Angular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsAngular - Chapter 3 - Components
Angular - Chapter 3 - Components
WebStackAcademy
 
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.pptx
sanaiftikhar23
 
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
Son Nguyen
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development Services
Kabilan D
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
Jordi 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 2010
Ben Robb
 
Oracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolOracle Forms to APEX conversion tool
Oracle Forms to APEX conversion tool
Scott Wesley
 
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
Getting value from IoT, Integration and Data Analytics
 
George Jordanov CV
George Jordanov CVGeorge Jordanov CV
George Jordanov CV
George Jordanov
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
Matthias Noback
 
Angular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP ServicesAngular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP Services
WebStackAcademy
 

Similar to 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 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 ...
 
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...
 
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
 

More from 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
Как не создавать себе проблем, разрабатывая на Alfresco
Oksana 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
Электронный документооборот на Alfresco
Oksana Kurysheva
 
Электронный архив на Alfresco
Электронный архив на AlfrescoЭлектронный архив на Alfresco
Электронный архив на Alfresco
Oksana Kurysheva
 
Потоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с KofaxПотоковый ввод и распознавание с Kofax
Потоковый ввод и распознавание с Kofax
Oksana 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 Development
Oksana Kurysheva
 
Александр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSMАлександр Чемерис - Открытая реализация GSM
Александр Чемерис - Открытая реализация GSM
Oksana Kurysheva
 
Светлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoСветлана Мосалёва - Scratchduino
Светлана Мосалёва - ScratchduinoOksana Kurysheva
 
Павел Курочкин - STeameR
Павел Курочкин - STeameRПавел Курочкин - STeameR
Павел Курочкин - STeameROksana Kurysheva
 
Александр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеАлександр Чемерис - Что такое свободное оборудование
Александр Чемерис - Что такое свободное оборудованиеOksana Kurysheva
 
Кирилл Щерба - KSduino
Кирилл Щерба - KSduinoКирилл Щерба - KSduino
Кирилл Щерба - KSduinoOksana Kurysheva
 

More from 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
 

Recently uploaded

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 

Recently uploaded (20)

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 

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