S T A T I S T I C S A U S T R I A June Frederick Rennert June 2009 © STATISTICS AUSTRIA i n f o r m a t i o n Moving „e-Quest-New“ Current development status
S T A T I S T I C S A U S T R I A June Overview e-Quest „new“ – development status e-Quest „new“ – questionnaire execution alternatives Demonstration
S T A T I S T I C S A U S T R I A June Proposal for e-Quest New When creating the „new“ e-Quest, it must –integrate even better with eQuest/Web using the same programming language (Java) using the same generator using the same questionnaire database using the same authorization database using identical XML schemata –be even simpler to use without needing a local database with all unused or little-used functions stripped away –obtain software, metadata and data online only what is needed when it is needed but must offer comparable questionnaire function and flexibility to e- Quest „classic“ –plus the goodies which eQuest/Web offers (PDF conversion, XML schema- based import/export, etc.) and the whole system must be migrated step by step, in an organic manner.
S T A T I S T I C S A U S T R I A June e-Quest New - startup Investigation of technical options Creation of a prototype on the basis of those findings Survey of e-Quest „classic“ users –what functions are used –what preferences they have –how they compare e-Quest and eQuest/Web Decision to go ahead – taken August 2008
S T A T I S T I C S A U S T R I A June Repository (file or database based) structural metadataClassificationsQuestionnaire data Application framework (RCP) general functions XML processing Persistency Framework base GUI Base PDF funct. Classification handling Application coordination, logging, authorization, navigation Questionnaire framework Quest type A Quest type B Common functions for Survey C Quest C1 Quest C2 Quest C3 Communication* … * Software download/update, download of structural metadata, classifications and questionnaires, questionnaire upload (report or import into the open Web questionnaire) e-Quest New: Architecture based on eclipse RCP (schematic)
S T A T I S T I C S A U S T R I A June Eclipse Rich Client Platform (RCP) Eclipse provides the Eclipse Rich Client Platform (RCP) for developing general purpose applications. The following components constitute the rich client platform: –Equinox OSGi – a standard bundling framework –Core platform – boot Eclipse, run plug-ins –Standard Widget Toolkit (SWT) – a portable widget toolkit –JFace – viewer classes to bring model view controller programming to SWT, file buffers, text handling, text editors –Eclipse Workbench – views, editors, perspectives, wizards from en.wikipedia.org
S T A T I S T I C S A U S T R I A June e-Quest New – architecture Further investigation of technical options and some prototyping led to alternative scenarios and architectural changes: –Generate Java code for questionnaires instead of dynamic XML interpretation. If the questionnaire is interpreted dynamically from the XML definition, all behaviour must be embedded in the XML and the scripts. In the long run, however, we want to get rid of the VB scripts and move to direct Java code. Furthermore, real-time interpretation is not an option for a Web application, so the online alternative would always differ from the local one.
S T A T I S T I C S A U S T R I A June Questionnaire creation – e-Quest New --- Support plugins --- Generated SWT structure Script code (Java currently generated from VBScript) Classifica- tion plugins GUI handling (SWT) Error handling Data representation Script frameworkSWT framework Questionnaire framework e-Quest Metadata Manager e-Quest New SWT Generator e-Quest New Script Translator Questionnaire XML
S T A T I S T I C S A U S T R I A June Repository (file or database based) structural metadataClassificationsQuestionnaire data Application framework (RCP) general functions XML processing Persistency Framework base GUI Base PDF funct. Classification handling Application coordination, logging, authorization, navigation Communication* * Software download/update, download of structural metadata, classifications and questionnaires, questionnaire upload (report or import into the open Web questionnaire) e-Quest New: Architecture based on eclipse RCP (schematic) Generated SWT structure Script code (Java currently generated from VBScript) Classifica- tion plugins GUI handling (SWT) Error handling Data representation Script frameworkSWT framework
S T A T I S T I C S A U S T R I A June Original e-Quest New scenario Login with eQuest/Web user ID and password –check the central DB for questionnaires for this user –download questionnaires with initial data as XML –download all plugins required for these questionnaires: questionnaire definition XML, help system, classifications (as XML), control and validation software for the questionnaire types Break online connection Present questionnaires in tree When questionnaire is opened, interpret the XML definition and create questionnaire dynamically. During filling in, control and validate. Open online connection for user to send the filled in questionnaire as XML to the eQuest/Web database.
S T A T I S T I C S A U S T R I A June Current e-Quest New scenario – eclipse RCP version Start e-Quest –download updates to the software Login with eQuest/Web user ID and password –check the central DB for questionnaires for this user –download questionnaires with initial data as XML –download all plugins required for these questionnaires: generated questionnaire structure (Java), help system, classifications (as XML and Java), generated and/or hand-coded control and validation software for the questionnaire types Break online connection Present questionnaires in tree When questionnaire is opened, run its code and create SWT questionnaire in eclipse RCP editor dynamically. During filling in, interact with control and validation code. Open online connection for user to send the filled in questionnaire as XML to the eQuest/Web database.
S T A T I S T I C S A U S T R I A June e-Quest New - alternatives Further investigation of technical options and some prototyping led to alternative scenarios and architectural changes: –Generate Java code for questionnaires instead of dynamic XML interpretation. –Stand-alone SWT questionnaires for one-time (or infrequent) surveys. The questionnaire module with the code of part of the supporting plug-ins can be used as a stand-alone SWT application, without the eclipse RCP framework. This will be useful in cases where a single questionnaire has to be filled in and there is no need for the respondent to keep the questionnaire for a longer period.
S T A T I S T I C S A U S T R I A June Repository (file or database based) structural metadataClassificationsQuestionnaire data Application framework (RCP) general functions XML processing Persistency Framework base GUI Base PDF funct. Classification handling Application coordination, logging, authorization, navigation Communication* * Software download/update, download of structural metadata, classifications and questionnaires, questionnaire upload (report or import into the open Web questionnaire) e-Quest New: from RCP to stand-alone SWT Generated SWT structure Script code (Java currently generated from VBScript) Classifica- tion plugins GUI handling (SWT) Error handling Data representation Script frameworkSWT framework
S T A T I S T I C S A U S T R I A June general functions XML processing Persistency Framework base GUI Base PDF funct. Classification handling Application coordination, logging, authorization, navigation Communication e-Quest New: Stand-alone SWT architecture Generated SWT structure Script code (Java currently generated from VBScript) Classifica- tion handling GUI handling (SWT) Error handling Data representation Script frameworkSWT framework
S T A T I S T I C S A U S T R I A June e-Quest New - alternatives Further investigation of technical options and some prototyping led to alternative scenarios and architectural changes: –Generate Java code for questionnaires instead of dynamic XML interpretation. –Stand-alone SWT questionnaires for one-time (or infrequent) surveys. –New implementation of eQuest/Web using Apache Wicket instead of JSP. We can reuse (the code of) most of the plugins for e-Quest New, just replacing the SWT generator by an XHTML generator. The framework for the translated scripts can be adapted to the request/response paradigm with minor changes. The XHTML pages are created according to the Austrian e- government guidelines but can be formatted further using CSS. The load on the Web server should also be reduced.
S T A T I S T I C S A U S T R I A June Apache Wicket Apache Wicket is a lightweight component-based web application framework for the Java programming language. Wicket... is closely patterned after stateful GUI frameworks such as Swing. Wicket applications are trees of components, which use listener delegates to react to HTTP requests against links and forms in the same way that Swing components react to mouse and keystroke events. Wicket uses plain XHTML for templating (which enforces a clear separation of presentation and business logic and allows templates to be edited with conventional WYSIWYG design tools). Each component is bound to a named element in the XHTML and becomes responsible for rendering that element in the final output. The page is simply the top-level containing component and is paired with exactly one XHTML template. Reuseable parts of pages may be abstracted into components called panels, which can then be pulled whole into pages or other panels with a special tag. from en.wikipedia.org
S T A T I S T I C S A U S T R I A June Questionnaire creation – e-Quest New --- Support plugins --- Generated SWT structure Script code (Java currently generated from VBScript) Classification handling GUI handling (SWT) Error handling Data representation Script frameworkSWT framework Questionnaire framework e-Quest Metadata Manager e-Quest New SWT Generator e-Quest New Script Translator Questionnaire XML
S T A T I S T I C S A U S T R I A June Questionnaire creation – e-Quest/Web New --- Support plugins --- Script code (Java currently generated from VBScript) GUI handling (Apache Wicket) Apache Wicket framework Classification handling Error handling Data representation Script framework Questionnaire framework e-Quest Metadata Manager Generated XHTML e-Quest/Web New Wicket Generator e-Quest New Script Translator Questionnaire XML
S T A T I S T I C S A U S T R I A June Questionnaire execution – e-Quest/Web New --- Support plugins --- Script code (Java currently generated from VBScript) GUI handling (Apache Wicket) Apache Wicket framework Classification handling Error handling Data representation Script framework Generated XHTML Web server Respondent with Web browser
S T A T I S T I C S A U S T R I A June e-Quest New – status June 2009 Questionnaire functionality (SWT) in internal test phase Apache Wicket framework under development: –basic questionnaire functionality partly finished –CSS for Austrian e-government guidelines Respondent and user structure for RCP version under development Questionnaire life cycle and synchronisation between local installations and central database being designed: –Questionnaire life cycle eQuest/Web and e-Quest New –Synchronisation logic –Web services Probable first use for the Agricultural Structural Survey 2010.
S T A T I S T I C S A U S T R I A June e-Quest New – Agricultural Structural Survey Full survey (not a sample) starting October 2010, about agrarian enterprises from about communities. No paper version, only electronic alternatives. Extremely large questionnaire with hundreds of questions. Danger of overloading the Statistics Austria Web servers. Solution: –Install e-Quest New (RCP) with the community authorities: most respondents will require the help of the agricultural officer anyway, thus most questionnaires will be filled in off-line. –Respondents can also fill in the Web questionnaires from home, either in eQuest/Web or using the stand-alone SWT version (to be discussed) –Synchronisation of questionnaires between eQuest/Web and e- Quest is crucial.
S T A T I S T I C S A U S T R I A June Wir bewegen I n f o r m a t i o n e n Moving i n f o r m a t i o n