Building a Free Open source ERP for French Higher Education


Published on

Published in: Technology, Education
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Building a Free Open source ERP for French Higher Education

  1. 1. From NeXTStep to WebOjectsBuilding a Free Open source ERP for French Higher EducationAurélien MinetAssociation CocktailAugust 29, 2010, Montreal
  2. 2. Cocktail History Today TomorrowAgenda • 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
  3. 3. Cocktail History Today TomorrowAt 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, very advanced GUI ... From NeXTStep to WebOjects 2/50
  4. 4. Cocktail History Today TomorrowThe 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 VIII University • on the LAN 200 new PC but only running OpenStep From NeXTStep to WebOjects 3/50
  5. 5. Cocktail History Today TomorrowWith the growth of La Rochelle University 1993/1996: • First applications are developed on NEXT with DBkit then EOF: Helpdesk, mail management, persons and account management • Begining of the "repository" database organized around a main schema • main schema Some HP PA712 (Risc) with HP-UX and OpenStep From NeXTStep to WebOjects 4/50
  6. 6. Cocktail History Today TomorrowWith 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
  7. 7. Cocktail History Today TomorrowWith 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
  8. 8. Cocktail History Today TomorrowBegining 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
  9. 9. Cocktail History Today TomorrowBegining 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
  10. 10. Cocktail History Today TomorrowBegining 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 a Missions management application (Kiwi) • End of the FAX receiving application built with FaxViewer (8 NEXT workstations more than 10 years old) replaced by a WO 5.2 DMS application • some NEXT workstations are maintained, in particular for NetInfo • ServAut From NeXTStep to WebOjects 9/50
  11. 11. Cocktail History Today TomorrowBegining 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.3 From NeXTStep to WebOjects 10/50
  12. 12. Cocktail History Today TomorrowBegining 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
  13. 13. Cocktail History Today TomorrowBegining 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
  14. 14. Cocktail History Today TomorrowAssociation 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
  15. 15. Cocktail History Today TomorrowAssociation 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
  16. 16. Cocktail History Today TomorrowMembers are all around the world From NeXTStep to WebOjects 15/50
  17. 17. Cocktail History Today TomorrowToday 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
  18. 18. Cocktail History Today TomorrowFinancial 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
  19. 19. Cocktail History Today TomorrowScholarity 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
  20. 20. Cocktail History Today TomorrowWealth management • Corossol (JC): asset, estate, inventory management • G-spot (Ajax): classroom, room management (going to replace • GPC (Ajax): stock management of chemicals • ParcMatos (.app): computer asset management: inventory, lifecycle ("abandonware" / dead application) From NeXTStep to WebOjects 19/50
  21. 21. Cocktail History Today TomorrowHuman 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
  22. 22. Cocktail History Today TomorrowResearch management • Sangria (Ajax): fundings, contracts, publications, doctoral schools,laboratories, research units management • Physalis (JC): third cycle studies/PhD thesis management From NeXTStep to WebOjects 21/50
  23. 23. Cocktail History Today TomorrowDigital 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 From NeXTStep to WebOjects 22/50
  24. 24. Cocktail History Today TomorrowOther applications around • Paybox (HTML + web services): gateway to the online payment 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 anything but send WOLifeBeat) • ServAut (HTML): provide direct actions for bypassing connection dictionnaries in the index.eomodeld From NeXTStep to WebOjects 23/50
  25. 25. Cocktail History Today TomorrowCocktail 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 ( ) • all of these applications are centered round a single repository: 1 database From NeXTStep to WebOjects 24/50
  26. 26. Cocktail History Today TomorrowRepository 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
  27. 27. Cocktail History Today TomorrowRepository Approach • 50 shemas • 2500 tables From NeXTStep to WebOjects 26/50
  28. 28. Cocktail History Today TomorrowNetbeans Migration JavaClient applications are build applying the model-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
  29. 29. Cocktail History Today TomorrowNetbeans Migration Major Cocktail applications are based on the JavaClient technology • thousand of interfaces drawn with Interface Builder and the EOF 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 of the applications. As JavaClient interfaces are based on Swing Using Netbeans as an "interface builder" appeared as the best solution : it generates an interface file as Swing code. From NeXTStep to WebOjects 28/50
  30. 30. Cocktail History Today TomorrowNetbeans 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
  31. 31. Cocktail History Today TomorrowNetbeans 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 using Netbeans Properties Inspector (same as Interface Builder Inspector) 3 files are generated : • _EOArchive and _EOInterface used by WebObjects: they replace Interface Builder files and are compiled within the application • .form : XML data used by Netbeans to draw the interface From NeXTStep to WebOjects 30/50
  32. 32. Cocktail History Today TomorrowNetbeans Migration Controllers and model classes are not modified The application is recompiled. That’s it !! will be available soon as open source software (CeCILL V2 Licence) with a JavaClient presentation and a tutorial included To know more, contact Christine Buttin: From NeXTStep to WebOjects 31/50
  33. 33. Cocktail History Today TomorrowFrameworks old ones: CRI* • CRIWebApp: Models the basic behavior of a Cocktail Application Contains utility classes to be used by all the applications • CRIWebExt: WebObjects components to be shared by all the HML and Ajax Cocktail applications From NeXTStep to WebOjects 32/50
  34. 34. Cocktail History Today TomorrowFrameworks new ones: FwkCktl • FwkCktlWebApp: inherits WOnder stuff (ERXApplication, ERXSession and ERXDirectAction) • FwkCktlAjaxWebExt and FwkCktlPersonneGUIAjax, FwkCktlGFCGUIAjax • FwkCktlThemes • FwkCktlJavaClientSupport From NeXTStep to WebOjects 33/50
  35. 35. Cocktail History Today TomorrowFrameworks • FwkCktlReporting: Jasper(jrxml,jrxls), OOo (odt,calc) • FwkCktlSync: running Tallend jobs, ex: synchronise data between DB and LDAP (OSS ETL • 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
  36. 36. Cocktail History Today TomorrowDeployment 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 • install init scripts, configure values (NEXT_ROOT, default ports, JavaMonitor name) From NeXTStep to WebOjects 35/50
  37. 37. Cocktail History Today TomorrowDeployment 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" ]] ; then C D M =‘echo $CMD | sed ’s / -WOPort/ -Djava.awt. headless=true -WOPort/ ’ ‘ fi From NeXTStep to WebOjects 36/50
  38. 38. Cocktail History Today TomorrowDeployment • classic deployment is used • for JavaClient static jnlp is used (not the one from the application) (no need to change Resources/JavaClient.wo/JavaClient.wod) • for deploying quickly 20 or more application: • for quickly configuring lots of application: command line tools 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
  39. 39. Cocktail History Today TomorrowDeployment HA In some case more than 100 applications need to be deployed and some of them are critical. From NeXTStep to WebOjects 38/50
  40. 40. Cocktail History Today Tomorrowseveral NEXT_ROOTs For production, testing, user sanbox ... you may need several NEXT_ROOTs From NeXTStep to WebOjects 39/50
  41. 41. Cocktail History Today Tomorrowseveral 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
  42. 42. Cocktail History Today TomorrowServAut special application with two aims: • authenticating users • providing connection information (jdbc url or instance name, login, password) From NeXTStep to WebOjects 41/50
  43. 43. Cocktail History Today Tomorrowmod_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 " -Wl mod_WebObjects.c appcfg.c ... • add -i for automatic installation of in apache libraries directory (configuring apache still be needed) From NeXTStep to WebOjects 42/50
  44. 44. Cocktail History Today TomorrowServices • 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
  45. 45. Cocktail History Today Tomorrowtrainings • dedicated to end users and focused on learning the Cocktail applications • for IT to learn how to install WebObjects and deploy applications • for developers to learn WebObjects, Ajax or technologies used within the Cocktail applications From NeXTStep to WebOjects 44/50
  46. 46. Cocktail History Today TomorrowSeminars 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
  47. 47. Cocktail History Today TomorrowTomorrow 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 database schemas • QA: guide for packaging, standards, ,charters, more tests • Internationalization / multilingual • switching to WO 5.4 ? From NeXTStep to WebOjects 46/50
  48. 48. Cocktail History Today TomorrowTomorrow 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
  49. 49. Cocktail History Today TomorrowTomorrow 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 Francophonie ) From NeXTStep to WebOjects 48/50
  50. 50. Cocktail History Today TomorrowResources • Official WebSite: (warning HTML 3.0 website ) • Source code available: (warning is not really tidy) • Developers pages: developpeurs/frameworks-cocktail • Javadoc: fwkcktlwebapp/20100419/index.html (sorry most if not all is in french) From NeXTStep to WebOjects 49/50
  51. 51. Cocktail History Today TomorrowQuestions Q&A From NeXTStep to WebOjects 50/50