Building a Free Open source ERP for French Higher Education

51
From NeXTStep to WebOjects Building a Free Open source ERP for French Higher Education Aurélien Minet Association Cocktail August 29, 2010, Montreal

Transcript of Building a Free Open source ERP for French Higher Education

Page 1: Building a Free Open source ERP for French Higher Education

From NeXTStep to WebOjectsBuilding a Free Open source ERP for French Higher Education

Aurélien MinetAssociation Cocktail

August 29, 2010, Montreal

Page 2: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Agenda

• History• At the beginning• Evolution• The consortium• The association

• Today• Applications• Developpements• Deployment• Services

• Tomorrow• Evolve organization• Economical model & Community

From NeXTStep to WebOjects 1/50

Page 3: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

At the beginning

1992: Creation of La Rochelle University• all equipped with NEXT workstation :) ! (about 40)• as it cost more manager in chief ask why ?• easy to install and to use, network by default, integrated

colloborative work, global directory with NetInfo, veryadvanced GUI ...

From NeXTStep to WebOjects 2/50

Page 4: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

The start

1993: first year with students• a few applications are developed, Objective-C with DBKit

and Informix• installation of GEFICO: financial management and

accounting application developed on NEXT at Paris VIIIUniversity

• on the LAN 200 new PC but only running OpenStep

From NeXTStep to WebOjects 3/50

Page 5: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

With the growth of La Rochelle University

1993/1996:• First applications are developed on NEXT with DBkit then

EOF: Helpdesk, mail management, persons and accountmanagement

• Begining of the "repository" database organized around amain schema

• main schema Some HP PA712 (Risc) with HP-UX andOpenStep

From NeXTStep to WebOjects 4/50

Page 6: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

With the growth of La Rochelle University

1997:• JEFYCO V1 Objective-C / EOF + Oracle 7.3• Scolarix, HComp, Salle STU, GEDI (Client-Server), ....

From NeXTStep to WebOjects 5/50

Page 7: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

With the growth of La Rochelle University

1998:• Start using WebObjects 4.5• first HTML application (directory of the university)• firsts Macintosh with Mac OS 8

From NeXTStep to WebOjects 6/50

Page 8: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Begining of the consortium

1999:• first distribution of JEFYCO

(first step towards what will become the consortium)• more PC with win95 and Linux

From NeXTStep to WebOjects 7/50

Page 9: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Begining of the consortium

2001:• Gepeto(.app) Human Resources management• more PC with win95 and Linux

2002:• Developpement with WO 5.1• Deployement under OS X, Linux and Windows (and yes

under IIS ...)• WebGenie (actual “CMS“)

From NeXTStep to WebOjects 8/50

Page 10: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Begining of the consortium

2003:• New major applications are developed with WO 5.2, for

example a payroll management application (Papaye)• Start of technological migrations of applications from WO

4.5.1 to 5.2 with JavaClient/Swing interfaces, for example aMissions management application (Kiwi)

• End of the FAX receiving application built with FaxViewer(8 NEXT workstations more than 10 years old) replaced bya WO 5.2 DMS application

• some NEXT workstations are maintained, in particular forNetInfo

• ServAut

From NeXTStep to WebOjects 9/50

Page 11: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Begining of the consortium

2004:• Deployment of Java Client applications using Java Web

Start• Start Holidays Management and PayBox applications• SSO with CAS, Zap (a "dock" application in Swing)• 32 institutions use Cocktail applications (universities and

graduate schools)2005

• Formalized definition of the Cocktail Consortium• First WO applications server that I have to manage on my

own... ;)2006

• First tests of WO 5.3From NeXTStep to WebOjects 10/50

Page 12: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Begining of the consortium

2007:• JEFYCO v2: n-tier architecture using HTML/Ajax/Swing• Deployment under WO 5.3• ManGUE (replaces Gepeto)• 54 members

2008• Java 1.5 becomes mandatory for some applications

(annotations...)• the Cocktail Consortium is headed by the university of

Provence

From NeXTStep to WebOjects 11/50

Page 13: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Begining of the consortium

2009:• creation of the Cocktail Association

2010• Interface Builder files (NIB) of Java Client applications are

beeing moved to Netbeans (just the begining)• All the WO 5.3 applications are ”migrated” to Java 1.5

(minor fix)• the Association hired 2 news developers

From NeXTStep to WebOjects 12/50

Page 14: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Association Coctail is:

• a non-profitable organization (somewhat like 501c in USA)• with more than 80 members• management and administrative services in Marseille (3)

From NeXTStep to WebOjects 13/50

Page 15: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Association Coctail is:

• 3 developer teams:• La Rochelle (8+1)• Toulouse (2)• Marseille (1+2)

• 2 Freelances (E. Geze in Spain, C. Buttin near Toulouse)• contributors:

• Mulhouse (1)• Lyon (1)• Pau (1)• Nîmes (1)• Nouméa (1)• maybe more Pau Troyes Toulouse... :)

We also colaborate with Intelcore (Christian Trotobas)

From NeXTStep to WebOjects 14/50

Page 16: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Members are all around the world

From NeXTStep to WebOjects 15/50

Page 17: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Today Cocktail ERP provides:

• Financial management and accounting• Scholarity management• Human resources and payroll management• Wealth management• Reasearch management (administrative part)• Decision-making and streeing tools• Digital workspace elements for institutions portal

All the applications are built on a single database

From NeXTStep to WebOjects 16/50

Page 18: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Financial management and accounting

• Abricot (JavaClient): Mandate bills, outstand invoice• Amande (JC): order form control/buying service• Bidasse (JC): budget• Carambole (Ajax): pre-order form and order form• Catalogue (JC): catalogs from procurment contracts• Cocolight (Ajax) / Coconuts (JC): agreements, contracts• JefyAdmin (JC): rights management, grants on budget lines• JefyCopilot (JC): reporting (Excel pivot tables)• MarchesPub (HTML+JC): submiting bids / calls for tender• Maracuja (JC): accounting• Pie (JC) : commercial services management• PieWebService (Ajax): "online store"• Sapics (JC): Procurement contracts mangament• Situations (JC): reporting (pdf/xls)

From NeXTStep to WebOjects 17/50

Page 19: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Scholarity management

• Preinscription (Ajax): matriculates online• Scolpedagogie (.app): courses, notes and results• HComp (.app): teaching loads• Contrat de Licence (Ajax): educational charters for the

bachelor degree, objectives of the student.• SaphaRI (JC): international exchange of students, mobility

and associated scholarship management• IPWeb (HTML): pedagogical registration• Griotte (Ajax): company internships, work experience

placement management• TrombiWeb (HTML): rogue’s gallery of students groups• GroupScol (JC): create and manage groups of students

From NeXTStep to WebOjects 18/50

Page 20: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Wealth management

• Corossol (JC): asset, estate, inventory management• G-spot (Ajax): classroom, room management

(going to replace SalleSTU.app)• GPC (Ajax): stock management of chemicals• ParcMatos (.app): computer asset management: inventory,

lifecycle ("abandonware" / dead application)

From NeXTStep to WebOjects 19/50

Page 21: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Human resources and payroll management

• Papaye (JC): payrool (for non-state employees)• Kaki (JC): importation of payrool data of General Treasury• RecrutATER (HTML): recruitment of temporary teaching

and research assistants, front and back office• Mangue (JC): career, employment, assignment, legal

leaves, sick leaves management• Feve (HTML): job description• HAmAC/Congés (HTML/Ajax): time-off, holidays, absences

From NeXTStep to WebOjects 20/50

Page 22: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Research management

• Sangria (Ajax): fundings, contracts, publications, doctoralschools,laboratories, research units management

• Physalis (JC): third cycle studies/PhD thesis management

From NeXTStep to WebOjects 21/50

Page 23: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Digital workspace elements for institutions portals

• ServeurDePlanning ("ws"): aggregate events in an ics file• Profiler (Ajax): change password, personnal information ...• Directory (Ajax): Yellow Pages and White Pages• Spooler (Web + C deamon): print quota• SuperPlan (JC): management of schedules for individuals,

groups, (class)room, articles, training (lessons) and exams• Guichet (HTML/Ajax): request tracker• Enquêtes (HTML): survey tool• GEDI (JC)/Corail (HTML): document/content management• WebGenie (HTML): "CMS output"• WODownload (HTML): files/documents downloading• Peanuts (HTML): create temporary,visitor,wifi accounts• AGrhum (Ajax): manages legal and physical persons,

groups, accounts (will replace peanuts and annuaire.app)

From NeXTStep to WebOjects 22/50

Page 24: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Other applications around

• Paybox (HTML + web services): gateway to the onlinepayment service Paybox

• SIX (HTML + RMI): pdf generator based on XSLT• GEDFS (HTML + RMI): file storage application• SAM (pure java): plugins for processing emails by using

direct action within WebObjects applications• WOLive (pure java): ask the WOTaskd to run apps and

check if they are responsive (check if they can do anythingbut send WOLifeBeat)

• ServAut (HTML): provide direct actions for bypassingconnection dictionnaries in the index.eomodeld

From NeXTStep to WebOjects 23/50

Page 25: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Cocktail ERP

• nearly fifty applications: 20 JC, 26 HTML/Ajax, .app 6+• almost half are under heavy developpement• about a dozen aren’t maintenend but are still beeing used• this software is governed by the CeCILL V2 License under

French law ( http://www.cecill.info )• all of these applications are centered round a single

repository: 1 database

From NeXTStep to WebOjects 24/50

Page 26: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Repository Approach

A single database:• no silo effect: data are not partitioned/scattered• immediate correlation of data, data are consolidated• no duplicate data so no need to synchronize data• sharing classifications (country code ...)

From NeXTStep to WebOjects 25/50

Page 27: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Repository Approach

• 50 shemas• 2500 tables

From NeXTStep to WebOjects 26/50

Page 28: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Netbeans Migration

JavaClient applications are build applying themodel-view-controller paradigm :

• EOF frameworks are used for the model• JavaClient frameworks are used for the controllers• JavaClient interface frameworks and Interface Builder were

used to draw the interface

From NeXTStep to WebOjects 27/50

Page 29: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Netbeans Migration

Major Cocktail applications are based on the JavaClienttechnology

• thousand of interfaces drawn with Interface Builder and theEOF palette

• Leopard :• Interface Builder doesn’t support anymore the EOF palette• The JavaClient frameworks are always available in

WebObjects

Several solutions were approached to minimize the evolution ofthe applications.As JavaClient interfaces are based on SwingUsing Netbeans as an "interface builder" appeared as the bestsolution : it generates an interface file as Swing code.

From NeXTStep to WebOjects 28/50

Page 30: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Netbeans Migration

Development of several tools :• Netbeans palette of graphical objects for WebObjects

• CODisplayGroup• CODisplayGroupDetail

• Customized dialogs to configure tables, display groups...• Netbeans Assistant to create the skeleton of interfaces files• com.webobjects.eoapplication.EOArchive subclassed to

keep available the whole JavaClient application

From NeXTStep to WebOjects 29/50

Page 31: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Netbeans Migration

Migrating an application :• Interface files are drawn with Netbeans by dragging

WebObjects graphical elements from the Netbeans palette• Associations between the interface elements and the

controller or the display groups are established usingNetbeans Properties Inspector (same as Interface BuilderInspector)

3 files are generated :• _EOArchive and _EOInterface used by WebObjects: they

replace Interface Builder files and are compiled within theapplication

• .form : XML data used by Netbeans to draw the interface

From NeXTStep to WebOjects 30/50

Page 32: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Netbeans Migration

Controllers and model classes are not modified

The application is recompiled. That’s it !!

will be available soon as open source software (CeCILL V2Licence) with a JavaClient presentation and a tutorial included

To know more, contact Christine Buttin:[email protected]

From NeXTStep to WebOjects 31/50

Page 33: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Frameworks

old ones: CRI*• CRIWebApp:

Models the basic behavior of a Cocktail ApplicationContains utility classes to be used by all the applications

• CRIWebExt:WebObjects components to be shared by all the HML andAjax Cocktail applications

From NeXTStep to WebOjects 32/50

Page 34: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Frameworks

new ones: FwkCktl• FwkCktlWebApp:

inherits WOnder stuff (ERXApplication, ERXSession andERXDirectAction)

• FwkCktlAjaxWebExt and FwkCktlPersonneGUIAjax,FwkCktlGFCGUIAjax

• FwkCktlThemes• FwkCktlJavaClientSupport

From NeXTStep to WebOjects 33/50

Page 35: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Frameworks

• FwkCktlReporting: Jasper(jrxml,jrxls), OOo (odt,calc)• FwkCktlSync: running Tallend jobs, ex: synchronise data

between DB and LDAP (OSS ETL http://www.talend.com)• Evenement (ApplicationEvenement): Quartz based

framework for scheduling task and an application like cron.• FwkCktlB2b: integration of external online store of supplier

under procurement contract (only for Dell)

From NeXTStep to WebOjects 34/50

Page 36: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Deployment

Installating WO• make sure that 1.5 Sun JRE/JDK is installed (and not the

GCJ or OpenJDK)• untar in some directory an archive containing Library and

Local• create a group and a user• change permision on logs and Configuration directory,

make sure the rest is readble• change the SpawnOfWotaskd.sh• install init scripts, configure values (NEXT_ROOT, default

ports, JavaMonitor name)

From NeXTStep to WebOjects 35/50

Page 37: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Deployment

SpawnOfWotaskd.sh modifications:• output of stdout and stderr to a file• export shell variable like TZ or LANG• setting umask (make the group owning the created files)• change or add command line arguments• test command ligne arguements too (existence and value)

i f [[ ‘echo $CMD | egrep ’Djava.awt. headless ’ |wc - l ‘ == "0" ]] ; thenCMD=‘echo $CMD | sed ’s / -WOPort/ -Djava.awt. headless=true -WOPort/ ’ ‘

f i

From NeXTStep to WebOjects 36/50

Page 38: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Deployment

• classic deployment is used• for JavaClient static jnlp is used (not the one from the

application)(no need to changeResources/JavaClient.wo/JavaClient.wod)

• for deploying quickly 20 or more application:mk_SiteConfig.sh

• for quickly configuring lots of application: command linetools find for feeding a loop and sed

• using shell tools for management and solving problems:xargs awk sed ps lsof grep strace

From NeXTStep to WebOjects 37/50

Page 39: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Deployment HA

In some case more than 100 applications need to be deployedand some of them are critical.

From NeXTStep to WebOjects 38/50

Page 40: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

several NEXT_ROOTs

For production, testing, user sanbox ... you may need severalNEXT_ROOTs

From NeXTStep to WebOjects 39/50

Page 41: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

several NEXT_ROOTs

rules for cohabitations each uses• a different port range if not WOHOst is mandatory• a different user (group)

From NeXTStep to WebOjects 40/50

Page 42: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

ServAut

special application with two aims:• authenticating users• providing connection information

(jdbc url or instance name, login, password)

From NeXTStep to WebOjects 41/50

Page 43: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

mod_WebObject

refactoring the way it is build (just for Apache 2.2)• all files in one directory• just one command line using APache eXetenSion tools

$APXS -a -c -Wc,"-O2 -fPIC -fpic-DSINGLE_THREADED_ADAPTOR-DFORKING_WEBSERVER -DAPACHE " -Wlmod_WebObjects.c appcfg.c ...

• add -i for automatic installation of mod_WebObject.so inapache libraries directory

(configuring apache still be needed)

From NeXTStep to WebOjects 42/50

Page 44: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Services

• server installation (OS, WO, Oracle)• applications installation / deployments• applications setup and special configuration• project management• support/hotline• project management• assist prime contractor• consulting• trainings

From NeXTStep to WebOjects 43/50

Page 45: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

trainings

• dedicated to end users and focused on learning theCocktail applications

• for IT to learn how to install WebObjects and deployapplications

• for developers to learn WebObjects, Ajax or technologiesused within the Cocktail applications

From NeXTStep to WebOjects 44/50

Page 46: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Seminars

Developers meetings are organized at least 3 times a year:• Feburary 2010: Paris• May 2010: Bordeaux• September 2010: Nîmes

During 3 days we:• share knowledge• present recent work• explain how to use last frameworks• discuss about technical options, design ..

From NeXTStep to WebOjects 45/50

Page 47: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Tomorrow

Evolution of the software edition organization• distribution industrialization / CI with Hudson• database metadata management (patch sql: DDL DML)• reusable components: new generation of frameworks• better GUI• Support 2 databases:

• Oracle (the initial and proprietary database)• PostgreSQL (open source database, lower tco)

• Update industrialization of applications and databaseschemas

• QA: guide for packaging, standards, ,charters, more tests• Internationalization / multilingual• switching to WO 5.4 ?

From NeXTStep to WebOjects 46/50

Page 48: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Tomorrow

Offer more services:• support the implementation of ERP in an institution "from

the plug to the end user"• specific development ( new workflows functionalities )• integration in an existing information system• On-demand software or software as a service (SaaS)

From NeXTStep to WebOjects 47/50

Page 49: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Tomorrow

Stabilize the business model and expand the community• stabilize the membership fee and support fee• having more developers ;)• having more "business" managers to define specifications• ansering the foreign instutions needs with the help of the

AUF (Agence Universitaire de la Francophoniehttp://www.auf.org )

From NeXTStep to WebOjects 48/50

Page 50: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Resources

• Official WebSite: http://www.cocktail.org(warning HTML 3.0 website )

• Source code available: http://svn.cru.fr/cocktail(warning is not really tidy)

• Developers pages: http://sites.google.com/a/cocktail.org/developpeurs/frameworks-cocktail

• Javadoc: http://www.cocktail.org/doc/devel/javadoc/fwkcktlwebapp/20100419/index.html

(sorry most if not all is in french)

From NeXTStep to WebOjects 49/50

Page 51: Building a Free Open source ERP for French Higher Education

Cocktail HistoryToday

Tomorrow

Questions

Q&A

From NeXTStep to WebOjects 50/50