Your SlideShare is downloading. ×
Managing Geneva's law courts, from Cobol to Perl
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Managing Geneva's law courts, from Cobol to Perl

3,588
views

Published on

Using Perl in a corporate environment for a mission-critical application

Using Perl in a corporate environment for a mission-critical application

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,588
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Managing Geneva's Département Office Law courts YAPC.:EU:::2009, Lisbon laurent.dami@justice.ge.ch Département Office DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 1
  • 2. Corporate Perl • a testimony : – important project (budget, resources, duration) – at the heart of the business (mission-critical) – hundreds of users (soon thousands of users) • agenda – business context, mission – history, project context and organization – architecture overview – remarks, conclusion DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 2
  • 3. Département Office Le Pouvoir judiciaire genevois Geneva's law courts DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 1
  • 4. Geneva : one of 26 Swiss cantons • 15,88 km2 • 450'000 inhabitants (2nd Swiss agglomeration) • assets 2008 : 17'912 M CHF • expenses 2008 : 7'738 M CHF 1 CHF = 0.659 EUR = 0.917 USD DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 4
  • 5. Geneva's law courts CH: 16.5 FR : 11.9 • 37 courts (grouped in same location) IT : 11.0 LU: 36.8 • 95 permanent judges (21 / 100'000 ha) • 156 other judges (assisting, replacing) • 346 juges prud'hommes • 410 employees • expenses 105 M CHF (1.26% of global Geneva budget) For info CH: 101 FR : 76 • 1'598 lawyers (355 / 100'000 ha) IT: 290 LU: 288 source: CEPEJ DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 5
  • 6. Judicial authorities Forbidden behaviors Litigations between privates Appeal against decisions (contracts, family, etc.) by State administration Penal Civil Administrative Domain Domain Domain International Federal instance 2nd cantonal instance 1st cantonal instance
  • 7. Les juridictions civiles Conciliation Chambre de Bureau de Commission de Justice de conciliation conciliation et conciliation en paix commission matière de baux TPI pour l'égalité et loyers entre hommes et < 8'000F > 8'000F femmes Concilié / Non concilié jugement Juridictions de jugement de 1ère instance Tribunal de Justice Tribunal Justice Tribunal des Tribunal des première de Paix tutélaire de Paix Prud'hommes baux et loyers instance Dernière instance : Cour de justice Chambres Autorité de Autorité de Cour d'appel Chambre civiles surveillance surveillance des d'appel des Prud'hommes baux et loyers Ordinaires Mesures tutélaires et de protection de l'enfant Baux et loyers Succession Travail
  • 8. Laws Penal Civil Administrative Domain Domain Domain International Traités internationaux agreements Federal Code pénal Code civil Lois fédérales Loi de procédure Loi de procédure 2010 2010 Cantonal Lois cantonales decisions Loi de procédure Loi de procédure Loi de procédure Loi d'organisation des tribunaux DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 8
  • 9. Some figures Annual statistics of courts activities in 2008 Pénales Civiles Admin. Divers Totaux Initial cases 6'812 24'998 4'621 22'057 58'488 New cases 23'624 36'833 5'003 13'314 78'774 Total 30'436 61'831 9'624 35'371 137'262 Closed 24'317 38'867 5'021 9'095 77'300 Remaining cases 6'119 22'964 4'603 26'276 59'962 Exit rate 1.03 1.06 1.00 0.68 0.98 Other figures (2006) • More than 200’000 people summoned (more than 1'000 / day) • 7'790'500 pages copied • 406'668 mails (paper) • 44,7 tons of recuperated paper DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 9
  • 10. Information systems for Swiss courts • 1st wave around 1980-85 : single applications – Tribunal fédéral, Genève, Zurich, Vaud • years 1990s : 2 vendors take the rest of the market – client-server (Windows) – moving towards 3-tiers architecture – each court as a closed, independent entity • 2005 : Geneva evaluates both vendors and decides not to take them – regression in functionalities – complexity of data migration (different models) – global switch very risky DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 10
  • 11. Département Office Projects i-JUGE + Justice 2010 DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 1
  • 12. Main use cases Case registration Procedural acts Employee Mails <<actor>> Office applic. Judge Hearings Financial management <<actor>> <<actor>> Jurisprudence Case Archived management judgements Judgement writing <<actor>> Notifying and closing Accounting <<actor>> phrase libraries Archives Statistics, reporting Administrator
  • 13. History and future • 1985: information system (Cobol + "All-in-1" office suite) • 2002: 1st Perl applications (statistics, Web reporting) • 2004: 1st major business application in Perl (judgements archive) • 2005: vendor analysis, decision to rewrite the business application • 2006: prototype "proof-of-concept" in Perl/Catalyst • 2007: call for tenders • 2008: development, stepwise introduction • 2010: parameterizing new laws • 2011: electronic data exchange • 2013: database migration • 2014: office migration DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 13
  • 14. Goals • replace old applications, obsolete – office (DEC All-in-1) – business application (VMS / Cobol / DBMS Basis+) • groupware • electronic data exchange, open towards external partners • adapt to important changes in law and organization DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 14
  • 15. Principles • Stepwise migration – functionality chunks – old and new application live side-by-side on same database • Web Application – inter-application links – desktop/office integration • Optimize user efficiency – special care for keyboard navigation – DHTML / Ajax • Sophisticated parameterization example – 1 single app for various needs of 37 courts DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 15
  • 16. Resources Other projects Etat GE • Budget (pluriannual) integrated – i-JUGE : CHF 7'650'000 accounting : 100 MCHF – Justice 2010 : CHF 4'140'000 human resources : 60 MCHF • People – Strategic management : 8p. – Operational management : 5p. – Help desk, support, teaching : 6p. – Analysis : 3p. – Development & maintenance : 7p. – Parameterizing, document production, Cobol maintenance : 2p. – DBA, systems, exploitation : 5p. DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 16
  • 17. Département Office Technical aspects DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 1
  • 18. Why Perl ? • positive experiences on former, less critical applications • expressive power, concision – ( but not cryptic ! ) • productivity through available components (CPAN) – Template – Catalyst • modularity and abstraction mechanisms – multiparadigms ( imperative, object-oriented, functional ) • dynamic language Old app – no compilation phase • core in Cobol – dynamic loading of components • scripts in "PRC" – dynamic class / method creation DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 18
  • 19. Main components GE::J::Action DM-Web GE::J::ObjetMetier GE::J::Data::Config GE::J::Autorisation Catalyst Data::Domain Template DBIx::DataModel JSON DBI Alien::GvaScript DBD::JDBC YAML prototype.js DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 19
  • 20. Metrics Module Files Sub Lines Data 42 262 16286 ObjetMetier 60 742 25158 Action 13 53 3739 Autorisation 15 30 2579 Directory 14 25 952 MainConfig 4 15 464 DM Web 121 727 21054 tt2/js 280 12213 Total 549 1854 82445 DBIx::DM 19 142 5575 Data::Domain 13 92 4949 GvaScript 18 5591 Total 599 2088 98560 DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 20
  • 21. Tools • Editors • Tasks – Emacs – Request Tracker (RT) – Vim • Groupware • Sources – Twiki – subversion – Tortoise • Tests – Test::Harness / Test::More • Documentation – [ Selenium ] – Pod + Pod::POM::Web • Quality • Distributions – [ Perl::Critic ] – mini-CPAN • Searching • Directives – ack – Perl Best Practices (D. Conway) – project guidelines (GE::Justice::Guidelines) DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 21
  • 22. Département Office Conclusions DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 1
  • 23. Positive • Perl – never any technological problem – code clear and concise (mostly) – good suite of tools – productivity – internal resistance disappeared DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 23
  • 24. Negative • sometimes hard to recruit – (but not impossible) – some consultants refused to do any Perl ("would stain their CV" !) – no Perl teaching in schools and universities • heavy parameterization hard to test – combinatorics, many possible cases – complex data sets • technical problems – still some install difficulties on Win32 – no native Perl driver for our DBMS; JDBC too slow DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Gestion des procédures judiciaires 01.08.2009 - Page 24