24
01.08.2009-Page 1 Département Office Gestion des procédures judiciaires DIRECTION DES SYSTÈMES D'INFORMATION (DSI) Managing Geneva's Law courts YAPC.:EU:::2009, Lisbon [email protected] Département Office

Managing Geneva's law courts, from Cobol to Perl

  • Upload
    ldami

  • View
    3.543

  • Download
    2

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 1

DépartementOffice

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Managing Geneva'sLaw courts

YAPC.:EU:::2009, Lisbon

[email protected]

DépartementOffice

Page 2: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 2

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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

Page 3: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 1

DépartementOffice

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Le Pouvoir judiciaire genevois

Geneva's law courts

Page 4: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 4

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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

Page 5: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 5

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Geneva's law courts

• 37 courts (grouped in same location)

• 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

• 1'598 lawyers (355 / 100'000 ha)CH: 101FR : 76IT: 290LU: 288source: CEPEJ

CH: 16.5FR : 11.9IT : 11.0LU: 36.8

Page 6: Managing Geneva's law courts, from Cobol to Perl

Judicial authorities

PenalDomain

CivilDomain

AdministrativeDomain

1st cantonalinstance

2nd cantonalinstance

Federal instance

International

Forbidden behaviors Litigations between privates (contracts, family, etc.)

Appeal against decisions by State administration

Page 7: Managing Geneva's law courts, from Cobol to Perl

Les juridictions civiles

Justice de paix

Chambre de conciliation

TPI

Bureau de conciliation et commission pour l'égalité

entre hommes et femmes

Commission de conciliation en

matière de baux et loyers

Conciliation

Justice de Paix

Tribunal de première instance

Tribunal tutélaire

Justice de Paix

Tribunal des Prud'hommes

Tribunal des baux et loyers

Dernière instance : Cour de justice

Chambres civiles

Autorité de surveillance

Autorité de surveillance

Cour d'appel des

Prud'hommes

Chambre d'appel des

baux et loyers

< 8'000F > 8'000F

Concilié / jugement

Non concilié

Juridictions de jugement de 1ère instance

Ordinaires

Mesures tutélaires et de protection de l'enfant Baux et loyers

Succession Travail

Page 8: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 8

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Laws

PenalDomain

CivilDomain

AdministrativeDomain

Code pénal

Loi de procédure

Code civil

Loi de procédure

Lois fédérales

Loi de procédure Loi de procédure

Loi de procédure

Lois cantonales

Traités internationaux

Federal

Cantonaldecisions

2010 2010

Loi d'organisation des tribunaux

Internationalagreements

Page 9: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 9

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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

Page 10: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 10

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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

Page 11: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 1

DépartementOffice

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Projects i-JUGE + Justice 2010

Page 12: Managing Geneva's law courts, from Cobol to Perl

Main use cases

<<actor>>Case

management<<actor>>Archived

judgements

Employee

Judge

Case registration

Procedural acts

Judgement writing

Notifying and closing

Jurisprudence

<<actor>>phrase libraries

Mails

Archives

<<actor>>Office applic.

Statistics, reporting Administrator

Hearings

Financial management

<<actor>>Accounting

Page 13: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 13

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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

Page 14: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 14

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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

Page 15: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 15

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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

Page 16: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 16

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Resources

• Budget (pluriannual)– i-JUGE : CHF 7'650'000

– Justice 2010 : CHF 4'140'000

• 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.

Other projects Etat GE

integratedaccounting : 100 MCHF

humanresources : 60 MCHF

Page 17: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 1

DépartementOffice

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Technical aspects

Page 18: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 18

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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– no compilation phase

– dynamic loading of components

– dynamic class / method creation

Old app• core in Cobol• scripts in "PRC"

Page 19: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 19

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Main components

DBI

DBIx::DataModel

Data::Domain

YAML

GE::J::Data::ConfigGE::J::ObjetMetier

Alien::GvaScript

Template

Catalyst

prototype.js

GE::J::Autorisation

GE::J::Action

JSON

DM-Web

DBD::JDBC

Page 20: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 20

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Metrics

985602088599Total

559118GvaScript

49499213Data::Domain

557514219DBIx::DM

824451854549Total

12213280tt2/js

21054727121DM Web

464154MainConfig

9522514Directory

25793015Autorisation

37395313Action

2515874260ObjetMetier

1628626242Data

LinesSubFilesModule

Page 21: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 21

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Tools• Editors

– Emacs– Vim

• Sources– subversion – Tortoise

• Documentation– Pod + Pod::POM::Web

• Distributions– mini-CPAN

• Directives– Perl Best Practices (D. Conway)– project guidelines (GE::Justice::Guidelines)

• Tasks– Request Tracker (RT)

• Groupware– Twiki

• Tests– Test::Harness / Test::More– [ Selenium ]

• Quality– [ Perl::Critic ]

• Searching– ack

Page 22: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 1

DépartementOffice

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Conclusions

Page 23: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 23

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

Positive

• Perl– never any technological problem

– code clear and concise (mostly)

– good suite of tools

– productivity

– internal resistance disappeared

Page 24: Managing Geneva's law courts, from Cobol to Perl

01.08.2009 - Page 24

Gestion des procédures judiciairesDIRECTION DES SYSTÈMES D'INFORMATION (DSI)

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