From Vancouver to Vladivostok, from rotting in-house spaghetti to - - PowerPoint PPT Presentation

from vancouver to vladivostok from rotting in house
SMART_READER_LITE
LIVE PREVIEW

From Vancouver to Vladivostok, from rotting in-house spaghetti to - - PowerPoint PPT Presentation

osce.org Press and Public Information Section Gottfried Nindl, Graham Patterson Version 1.0 (26.11.09) From Vancouver to Vladivostok, from rotting in-house spaghetti to Drupal Migrating osce.org http://www.osce.org Content About the


slide-1
SLIDE 1

From Vancouver to Vladivostok, from rotting in-house spaghetti to Drupal

Migrating osce.org

Press and Public Information Section • Gottfried Nindl, Graham Patterson • Version 1.0 (26.11.09)

  • sce.org

http://www.osce.org

slide-2
SLIDE 2

2

About the OSCE Business Case Information Architecture Software Architecture Migration Usability Testing Conclusion

Content

slide-3
SLIDE 3

3

About the OSCE

slide-4
SLIDE 4

4

What is the OSCE?

  • World’s largest regional security organization
  • History: Cold War and Berlin Wall
  • Comprehensive approach to security
  • Forum for dialogue
  • Practical work in the field
slide-5
SLIDE 5

5

Where is the OSCE?

...from Vancouver to Vladivostok 56 participating states, 18 field missions…

slide-6
SLIDE 6

6

Business Case

slide-7
SLIDE 7

7

Motivation

  • Large decentralized website
  • Small central webteam
  • Inflexible technology (CMS)
  • Rigid content model
  • Confusing information architecture
  • Search engine (un)optimization
slide-8
SLIDE 8

8

Objectives

  • Multilingual capability
  • Better workflow
  • Better content organization
  • Improved information architecture
  • Flexible, community-maintained CMS
  • SEO
slide-9
SLIDE 9

9

Open Source CMS Evaluation

  • 4 serious candidates

Drupal (PHP) Plone (Python) TYPO3 (PHP) OpenCMS (Java)

  • 15 criteria

Perspective Templating Back-end Technology Repository Content Delivery Search Engine Security URL structure Scalability Building forms Building modules Content types

slide-10
SLIDE 10

10

So, why Drupal?

  • Pros

> Best balance between core features and simplicity > Small core (footprint), numerous useful modules > Large, friendly community > Reference sites

  • Cons

> Back end usability > No high-level Ajax support > Ancient design (no OO!)

slide-11
SLIDE 11

11

Proof of Concept

  • Can the chosen CMS deliver?
  • Tasks

> Front end theme => easy, by templating > Content types => hard, custom modules > Workflow => good enough > Data migration => Use APIs, e. g. node > SEO => clean URLs, taxonomies

  • Lessons learned

> Drupal can do almost anything we can think of  > Drupal needs a roadmap > Buggy modules > Active participation in community recommended

slide-12
SLIDE 12

12

Information Architecture

slide-13
SLIDE 13

13

Content Model

  • 40 sub sites & portals
  • 22 content types
  • 12 field types
  • 15 vocabularies
  • Node queues & rules
  • Numerous views
slide-14
SLIDE 14

14

Implementation

  • Sub sites & portals

as tagged pages

  • CCK for content typing
  • Vocabularies as conditionals
  • ‘Hot content’ as node queues
  • Views for generic lists
slide-15
SLIDE 15

15

Software Architecture

slide-16
SLIDE 16

16

High Availability/Performance Cluster

  • Cost-effective solution
  • Squid proxy boosts performance
  • Service failover
  • Heartbeat monitors servers
  • DRDB replicates databases/files
slide-17
SLIDE 17

17

Software Design Patterns

  • Single entry point
  • Notify responsible
  • Action  Procedure
  • Extension by convention
  • Flexible data model
  • Embedded markers & scriptlets

Front Controller Template View Observer/Visitor Plugins Transaction Script Modules

Db

Class Table Inheritance

slide-18
SLIDE 18

18

Used Modules (currently 38)

Misc:

Apache Solr, Hash tokens (custom), i18n, Pathauto, Querypath, Subscriptions, Token

Content:

CCK, Content Taxonomy, Date, Email, Filefield Filefield Paths, Imageapi, Imagecache, Imagefield, Link, Nodereference Explorer, Nodequeue, Phone, Quotation (custom)

Development:

Devel, SimpleTest

Import/Export:

Data Migration (custom), Import, Node Export, Taxonomy Export, Gateway (custom)

Workflow:

Rules, Workflow

User Interface:

Admin Menu, FCK Editor, JQuery UI, JQuery Update, Menu Block, Lightbox2 ,Views, Taxonomy Navigation (custom)

slide-19
SLIDE 19

19

Migration

slide-20
SLIDE 20

20

Approach

  • Three phase strategy:

> Data extraction > Data mapping > Data verification

  • Content Audit

> Spot checks to fix biggest issues

  • Custom import script

> CCK nodes & Aliases (ca. 50,000 items) > Menus > Taxonomies > Users > Subscriptions

slide-21
SLIDE 21

21

Implementation

  • Complex data extraction strategies (SQL)
  • Flag and mark items
  • Import module: http://drupal.org/project/import

> Uses batch API (progress bar) > Hook import_stage() > Hook import_process()

  • OO batch factory with identity map

for creating assets, references & assignments

  • Verify results with Simpletests: http://drupal.org/project/simpletest
slide-22
SLIDE 22

22

Usability

slide-23
SLIDE 23

23

Problems

  • Back end usability poor (especially for non-geeks)
  • The UI is not very scalable
  • Built-in widgets are very cumbersome
  • No high-level Ajax library
  • Custom implementation required (Nodereference Explorer)
slide-24
SLIDE 24

24

Nodereference Explorer Context

slide-25
SLIDE 25

25

Our solution: Nodereference Explorer

  • Project http://drupal.org/project/nodereference_explorer
  • Metaphor: File Explorer
  • Responsive dialog (overlay)
  • Customizable components

> Theme > Displays > Filters > Preview

  • Demo link
slide-26
SLIDE 26

26

Community

  • Quite small project
  • Start February 2009
  • Maintaining is time intensive
  • 73 issues focus on functionality, hardly on design
  • Great community => Thank you very much!!
  • BUT, think about new ways of collaboration, apart from issue list …
slide-27
SLIDE 27

27

Testing

slide-28
SLIDE 28

28

General testing

  • No battle plan survives contact with the enemy – Field Marshal von Moltke
  • No website survives contact with its users – OSCE webteam
  • Beta site under construction
  • Internal and external testers
  • Formal (recorded) and informal (ad-hoc) tests
  • Front-end and back-end
slide-29
SLIDE 29

29

Usability testing

  • Front end

> IA (clear enough?) > Navigation (ease of use) > Findability (organizational structure vs thematic vs geographic) > Responsiveness

  • Back end

> Need to manage transition from a simpler CMS > Are typical users (non-geeks) comfortable with the interface? > Common tasks should be quick and easy > Are steps to complete a task memorizable? > How do users react if they can’t complete a task? > What help is available?

slide-30
SLIDE 30

30

Conclusion

slide-31
SLIDE 31

31

Conclusion

  • Drupal will be a big step forward for the OSCE
  • Great contributions from community – thank you!
  • Contributing back and maintaining: Nodereference Explorer
  • But… feedback from testing and post-launch crucial
  • Questions, comments…?
slide-32
SLIDE 32

32

Contact

  • Velimir Alic (Public Website Manager): User ID 406104
  • Gottfried Nindl (Web Developer): User ID 421442
  • Webteam: webteam@osce.org
  • Front End Developer needed:

apply at http://employment.osce.org till December 3rd, 2009