alfresco orbeon egov solution
TRANSCRIPT
-
5/20/2018 Alfresco Orbeon Egov Solution
1/48
Implementing eGovernment Portal
Powered by Alfresco and OrbeonOksana Kurysheva Alexey Ermakov
-
5/20/2018 Alfresco Orbeon Egov Solution
2/48
Agenda
Part I Problem definition and brief overview of the approach
Local eGovernment Portals Russian experience current stateand the most challenging problems
Technical requirements what do we need, what Alfresco providedand where 3rdparty 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 detailedarchitecture, configs, key sources snippets
Workflows implementation theory and practice what we neededin real life in addition to Alfresco out-of-the-box capabilities
-
5/20/2018 Alfresco Orbeon Egov Solution
3/48
Part I:Problems faced and approach chosen
-
5/20/2018 Alfresco Orbeon Egov Solution
4/48
The aim
Make government services available for citizensand businesses online in electronic form
-
5/20/2018 Alfresco Orbeon Egov Solution
5/48
The aim
Make government services available for citizensand businesses online in electronic form
Information about government services and ways of obtaining
-
5/20/2018 Alfresco Orbeon Egov Solution
6/48
Typical local eGov portal: information web site
Static information about eGov services is available
-
5/20/2018 Alfresco Orbeon Egov Solution
7/48
The aim
Make government services available for citizensand businesses online in electronic form
Information about government services and ways of obtaining Ability to submit a re!uest to receive government services online
"ull back#office integration$ including inter#agency cooperation
-
5/20/2018 Alfresco Orbeon Egov Solution
8/48
Main problems to address
Convert existing paper forms into electronic format
Establish workflows to execute submitted forms
-
5/20/2018 Alfresco Orbeon Egov Solution
9/48
Addressing electronic forms creation
Creating forms sounds simple. But it is not:
"orms can be really huge and complicated
"orms change time to time %monthly update for some of them&
'ist of forms to be available online is not fixed ( it is regulated byfederal and local laws$ updates happen few times a year
Each agency has its own re!uirements
Bottom line: there is no way to create forms definitions once
-
5/20/2018 Alfresco Orbeon Egov Solution
10/48
Addressing electronic forms creation
The only possible solution: government employees can createand edit forms definitions themselves
It means creation and editing of do)ens of complicated forms by
non#technical users %including auto#checking configuration$ mapping
to templates for printing$ etc&
We need visual form authoring tool
-
5/20/2018 Alfresco Orbeon Egov Solution
11/48
Electronic forms management: finding the tool
What Alfresco is:
Document management
Forms storage andmanagement
Workflow automationplatform (discussed further)
Open and flexible ECM thatcreates the basis for future
inter-agency cooperationand systems integration
What Alfresco is not:
Form authoring tool thatallows non-technical users tocreate complicated forms
visually
Approach: integrate Alfresco and Orbeon
-
5/20/2018 Alfresco Orbeon Egov Solution
12/48
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
-
5/20/2018 Alfresco Orbeon Egov Solution
13/48
Form definition creation in Orbeon Builder
Visual form definition editor
-
5/20/2018 Alfresco Orbeon Egov Solution
14/48
Form definition creation in Orbeon BuilderAdding auto-checking rules to control
-
5/20/2018 Alfresco Orbeon Egov Solution
15/48
"orm definition creation in Orbeon *uilder
Uploading PDF template for printing according with localregulation (prepared in usual OpenOffice.org/LibreOffice)
-
5/20/2018 Alfresco Orbeon Egov Solution
16/48
Published formexample
-
5/20/2018 Alfresco Orbeon Egov Solution
17/48
Solution: forms authoring and submission
-
5/20/2018 Alfresco Orbeon Egov Solution
18/48
Addressing workflows: basic diagram
-
5/20/2018 Alfresco Orbeon Egov Solution
19/48
Addressing workflows: basic diagram
The issue:Step 8 is actually a monstrous non-formalized process
-
5/20/2018 Alfresco Orbeon Egov Solution
20/48
Addressing workflows
The issue: internal workflows are not fixed strictly
Each basic 'atomic' internal workflow can be described in details butthroughout 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 requestadditional papers, approvals, notifications an so on
Each sub-process can trigger even more child processes
Yeh, Russia is a very bureaucratic country after all
-
5/20/2018 Alfresco Orbeon Egov Solution
21/48
Addressing workflows
Solution: create workflows relations
Create basic 'atomic' workflows definitions
Allow users to associate these simple workflows with each other tobuild complex processes on demand
-
5/20/2018 Alfresco Orbeon Egov Solution
22/48
Solution: complete architecture
-
5/20/2018 Alfresco Orbeon Egov Solution
23/48
Part II:Implementation details
-
5/20/2018 Alfresco Orbeon Egov Solution
24/48
Orbeon Integration: Approach
-
5/20/2018 Alfresco Orbeon Egov Solution
25/48
Orbeon Integration: Implementation
-
5/20/2018 Alfresco Orbeon Egov Solution
26/48
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
-
5/20/2018 Alfresco Orbeon Egov Solution
27/48
PUT Request
persistence.put.desc.xml
Persistence Layer Web script implementing Orbeon FormsPersistence Layer put request
/persistence/crud/{app_name}/{form_name}/data/{form_data_id}/{file_name} user required argument
-
5/20/2018 Alfresco Orbeon Egov Solution
28/48
PUT Request
persistence.put.js
// create/get filevarfile folder!childByNamePathfile_name#$if%file &&folder!hasPermission"CreateChildren"##{ file folder!createNodefile_name'"formform!ype"#$ file!addspect"cm#ersionable"#$ file!addspect"cmauditable"#$ file!properties("cmcreated")new$ate#$ %%%
file!properties("formid")form_data_id$}else
file!properties("cmmodified")new$ate#$file!sa#e#$
varcopy file!chec&out#$copy!properties!content!writere'uestbody#$file copy!chec&in"modified by orbeon forms"'true#$file!mimetype re'uestbody!mimetype$file!sa#e#$
-
5/20/2018 Alfresco Orbeon Egov Solution
29/48
Persistence API problems
Forms definitions are stored in eXist
Content-type mismatch problem
-
5/20/2018 Alfresco Orbeon Egov Solution
30/48
Problem: content type mismatch
Solution: define two different scripts
%%%
/persistence/crud/{app_name}/{form_name}/data/{form_data_id}/{file_name}!pdf argument
%%%
%%%
/persistence/crud/{app_name}/{form_name}/data/{form_data_id}/{file_name}!*ml argument
-
5/20/2018 Alfresco Orbeon Egov Solution
31/48
Orbeon Integration: Persistence Layer Complete
-
5/20/2018 Alfresco Orbeon Egov Solution
32/48
Submitted forms execution
Content model to store form metadata
Workflow to automate form execution
Java class to send e-mails to client
-
5/20/2018 Alfresco Orbeon Egov Solution
33/48
Content model
-ontent class representing submitted form
cm+content
d+te*t
true
!!!
!!!
!!!
!!!
!!!
-
5/20/2018 Alfresco Orbeon Egov Solution
34/48
Workflow
-
5/20/2018 Alfresco Orbeon Egov Solution
35/48
Workflow model
bpm+1orflo1,as
read_pacage_item_actions
form1f+formaspect
form1f+assignee form1f+comment3spect
formWorkflowModel.xml: type definition
-
5/20/2018 Alfresco Orbeon Egov Solution
36/48
Workflow model
d+te*t !!!
!!!
!!!
formWorkflowModel.xml: form aspect definition
-
5/20/2018 Alfresco Orbeon Egov Solution
37/48
Workflow model
-
5/20/2018 Alfresco Orbeon Egov Solution
38/48
Workflow model
-
5/20/2018 Alfresco Orbeon Egov Solution
39/48
Java mailer
publicclassNotifier e*tendsBaseProcessor+*tension {
!!!
publicbooleansend,tring to',tring sub-ect',tring content#{!!!
Properties props ne1Properties#$
props%setProperty."mail%transport%protocol" "smtp"01
!!!
,ession mail,ession ,ession!get$efault2nstanceprops'null#$
!ransport transport mail,ession!get!ransport#$ 3ime3essage message ne13ime3essagemail,ession#$
!!!
message!set4ecipient3essage!4ecipient!ype!!5' ne12nternetddressto##$
transport!connect#$
transport!sendmessage#$ transport!close#$
}
}
-
5/20/2018 Alfresco Orbeon Egov Solution
40/48
Orbeon Integration: Workflows Complete
-
5/20/2018 Alfresco Orbeon Egov Solution
41/48
Additional Alfresco extensions developed
Custom file uploader
Related workflows extension
-
5/20/2018 Alfresco Orbeon Egov Solution
42/48
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
-
5/20/2018 Alfresco Orbeon Egov Solution
43/48
Custom file uploader
-
5/20/2018 Alfresco Orbeon Egov Solution
44/48
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
-
5/20/2018 Alfresco Orbeon Egov Solution
45/48
Related workflows
-
5/20/2018 Alfresco Orbeon Egov Solution
46/48
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
-
5/20/2018 Alfresco Orbeon Egov Solution
47/48
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
-
5/20/2018 Alfresco Orbeon Egov Solution
48/48
+ou can find this presentation and more details about this
implementation on blog,ossgeeks,org
-ontact us at
okurysheva.vdel,comand aermakov.vdel,com
And follow us on twitter/ .aviriel and .fufler
mailto:[email protected]:[email protected]:[email protected]:[email protected]