1 / 19

Architecture 2005-09-03 Frank Bergmann <frank.bergmann@project-open>

Architecture 2005-09-03 Frank Bergmann <frank.bergmann@project-open.com>. Content. The Big Picture GUI Structure Component Architecture Component Use Overview Component Conventions Localization Permission Model Customization Concept Application Lifecycle Customization Options (1)

ondrea
Download Presentation

Architecture 2005-09-03 Frank Bergmann <frank.bergmann@project-open>

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architecture2005-09-03Frank Bergmann <frank.bergmann@project-open.com>

  2. Content • The Big Picture • GUI Structure • Component Architecture • Component Use Overview • Component Conventions • Localization • Permission Model • Customization Concept • Application Lifecycle • Customization Options (1) • Customization Options (2)

  3. Basics & Roadmap • ]project-open[ is a web-based“Project-ERP”. • It combines project collaboration (content & community ) with financial and management functionality (costs, invoicing, accounting, …) • ]project-open[ is based on the OpenACS (Open ArsDigita Community System) platform. • Most ]project-open[ modules are free or GPLed, except for specific customer functionality Platfrom Roadmap: V1.0 and V2.0 depended on Oracle, but V3.0 features PostgreSQL as a free database.

  4. Admin-Pages Base GUI Structure Home Project Client Invoice User Ticket Main PageswithBusinessObjects “ListPages”with filters New/Edit Pages Projects News Details Tickets Details Tickets ClientDetails Corp.Details Details Tickets Details Assigntoothers Tickets Team Team Portrait Projects BillableTasks Clients Tasks Profiles TicketHistory Costs Interact Costs ProjectCalendar FileSpace CustomerInteractionHistory Projects Clients Interactions Filters Filters Filters Filters Filters Links Links Links Links Links ProjectList ClientList InvoiceList UserList TicketList Details Details Details Details Details

  5. BizObject Rel (OACS) UserContact Project Customer ProjectUrlMap Superclass of all biz objects. Manages permissions using acs_rel with users. object_one project parent_project office customer url object_two object_type object_status Currency ComponentPlugin Category Profile Country Menu UrlType View ViewColumn view P/O Core Data Model BizObject Organization Office BizObject country User Customer physical location BizObject Business Objects Object Infrastructure Group Object

  6. Component Architecture Component Use Overview Home Project Client Invoice User Ticket -Project List • -ViewPage • ListPage • New/Edit -View: Project List (short) -New: Project List -List: Filter -View: Renderer -Print: Renderer -Project List -Project Select -Project Render ProjectComponents -Client List -List: Renderer -List: Filter -Project List -Project/Task List -Project Filter -Project List -Project Select -Render Comp ClientComponents - . . . - . . . - View: Invoice List • View Page • List Page • New/Edit - . . . - . . . InvoiceComponents - . . . - . . . - . . . - . . . • View Page • List Page • New/Edit - . . . UserComponents - . . . - . . . - . . . - . . . - . . . • View Page • List Page • New/Edit TicketComponents - . . . - . . . - . . . -View: Perm+Estim -View: Key Accounts (perm) -View: Customer employees (perm) - . . . Permissions

  7. Component Architecture Component Conventions • (GUI-) Components are used to render lists of objects, to render individual objects (in various variations) and to “filter” objects (restrict the elements of a SQL “where” clause). • These components have to deal with all important functions such as permissions, localization and design templates. • HTML pages are used to validate input variables, generate the page layout, and to “wire” the GUI-components together (glue-code).

  8. ]po[Overview ApplicationModules HR ProjectMgmt. Trans-lation Other Payroll Project &Subprojects TranslationWorkflow RoomReservation Skill Database ProjectControlling TMIntegration E-Commerce RecruitingWorkflow TimesheetMgmt. AutomaticInvoicing Surveys Web-Mail Glossary AvailableDocumentation Collaboration,Content & KM Finance CRM Filestorage Calendar FinanceBase ContactMgmt. FinanceGuide Controlling Wiki Chat Quotes &Invoice CustomerWeb Reg. OnlineDiscussions FreelanceInvoicing TranslationWorkflowGuide Mail ServerIntegration WebDAV Payments MarketingCampaigns IncidentWorkflow TimesheetInvoicing ContentManagement FinancialReporting CRMTracking CMS Blog ForumGuide FilestorageGuide ApplicationServices Full-TextSearch WorkflowEngine ReportingEngine Portal &Components Localization Framework Mail ServerIntegration ISDN TelIntegration SoftwareDevelopment OOFrame Security PackageManager OO Model OpenACSPermission PlatformServices PageContracts ConfigurationGuide Profiling & Performance Templates ObjectMetadata BasicAuthentication SQLTemplates DebuggingSystem AutomaticTesting DynField Object Extensions LDAPAuthentication OpenACSDeveloperGuide AutomaticSoftwareUpdates AutomaticAudits FormBuilder SOAP &XML-RPC Operations& Maint.Guide Web Server System AOLServer PoundRevers Proxy CVS TCL DB-API MondrianData-Warehouse SearchEngine TSearch2 Oracle Intermedia/Text BigBrotherSys Mgmt. OpenACSInst. Guide Database PostgreSQL Oracle 8i, 9i, 10g Database Replication Postfix/ Sendmail Unix InstallGuide OperatingSystem Windows + CygWin Linux Solaris BSD Mac OS

  9. Localization • All numbers, currency amounts, dates, times and physical locations are rendered as a function of the chosen user locale • All currency amounts are preceded by a currency identifier. A system currency determines the default. • All static text used in pages and components is translated before rendering the HTML page. An English text in the target location is used as a default value in case of incomplete translations. The translation interface also specifies the target location to provide a context for translators. • Dynamic text (names and descriptions ob business objects) are not translated. • Future versions of ]project-open[ may contain accounting modules specific for individual countries.

  10. Permission Model • Permissions are divided into profile-based permissions and role-based permissions • Profile-based permissions • Restrict the visibility of pages and modules to a user • Are modified as part of system administration • API: im_permission(user_id, token): Validates that a user has access rights to the permission token. • Role-based permissions • Restrict the access to business objects (currently “Project” and “Client”) • Permissions can be modified by the creators of the respective objects, to configure project/client team. • API: im_has_role(user_id, object_id, role): Validates that a user has been assigned the specifc role. • Roles are ordered hierarchically (administrator -> member -> specific_roles).

  11. OperationsManager GeneralManager GeneralManager SalesManager ProjectDirector Client Staff Proj.Man. Manager Finance Project Man. ProjectMan. ProjectMan. Freelance Freelance Freelance Profile Based Permissions „Vertical“ Permissions Our Company(Project Matrix) Provider Client • Predefined Profiles: • Manager • Project Manager • Employee • Finance • Client • Freelance • Access permissions to all critical data can be assigned to profiles • Additional profiles can be defined if necessary Managers Freelancers Clients ProjectA ProjectB ProjectC Finance Project Managers Employees

  12. OperationsManager GeneralManager GeneralManager SalesManager ProjectDirector Client Staff Proj.Man. Manager Finance Project Man. ProjectMan. ProjectMan. Freelance Freelance Freelance Project Based Permissions Our Company(Project Matrix) Provider Client • Within a specific project, freelancers and clients may have the same rights as in-house staff. Freelancers may even have to act as project managers. • Predefined roles: • Sales/Presales • Project Manager • Analyst, Developer, Tester, ... (IT-Consulting) • Editor, Translator, Proof Reader, ... (Translation) • Texter, Designer, ... (Advertizing) ProjectManager Translators ProjectA ProjectB ProjectC Translators Editor Editors

  13. Opera- tions Opera- tions Application Lifecycle Initial Implementation Capture Require- ments Customi- zation Install Configu- ration Data Import Installation • ERP applications are not a static systems, but need to evolve continually with changes in the business processes of the client (customizations) • ERP applications need to integrate/communicate with other corporate applications • ERP applications have life-cycles of 5-20 years • The challenge is to maintain customizations when upgrading to the next release. Upgrade Capture Require- ments Customi- zation Install Data Conver- sion Retirement Upgrade

  14. Report-ing K-Mart K-Profiles Extensible Architecture IT/Consulting Engineering Advertizing Translation • A central core allows for extensions with different application modules • Different industry sectors need different configurations and modules • Customizations should be portable to the next version as easily as possible. … … … … ProjectReporting ProjectMgmt SupportMgmt … CallCenter … Projects Account-ing Users Clients CRM … Expenses Report-Generator Invoices Sales force Mgmt … KM InventoryMgmt HR … Perf.-Reviews Recruiting

  15. Extensible Architecture • Not all modules are useful for all sectors • Some modules are different for every sector (for exampleinvoicing) • Some of these modulesmay exist in several variants specific foreach sector. • The Module architecture has to deal with the interdependencies between each other and over time. *=applicable, (*)=maybe applicable, +=customized modules

  16. Customizable Items • How can additional module change the “core”? • GUI • Home-Page (module-specific status boxes) • The main menu • Submenus of business objects • Views of biz objects (Project, Client, User, …) • Categories (=workflow states and types) • Object status categories • Object type categories • Data Model • Add columns to existing BizObj tables (system modules) • BizObj extension tables (sectorial configuration modules) • TCL Libraries • Permission Model • Add new permission tokens • New system roles • New Object/Group specific roles

  17. Customization (1) • Configurable Customization (100% preservation)The system has been designed for the particular customizations. The customization involves changes in the configuration file and/or database contents. • Future version of ]project-open[ maintain compatibility with these configurable options, possibly extending them. • Business Object Extensions (90% preservation)Business Object database tables can be extended to hold additional fields via the "DynField" SQL Metadata system. These extensions are not replaced during a system upgrade. Rendering of the fields is handled automatically by components in a new library. • Future version of ]project-open[ must not overwrite the extension tables. The client will have to integrate the modified components into the new View/List/Edit pages.

  18. Customization (2) • New Custom Modules (80% preservation)The user may add new modules to the system, including their own data model and components. • Future version of ]project-open[ will not take into account the compatibility with custom modules.However, it is likely that the integration of the new modules with the new version will be easy to manage. • Custom Extensions (50% preservation)In some cases the client wants to modify the core business objects or component libraries. • Future version of ]project-open[ will not take into account the compatibility with custom extensions.That means that the client will have to port the extensions to the new version.

  19. Participate! • Build _useful_ software • We teach you how to build real software • Learn about high-performance server applications • See why Java doesn’t work for _real_ software • Learn basics of SQL and Database Management • We have prepared some exercises that guide you through the process • Learn how to keep a web application running • Choose a module to concentrate • Study some background material and become an expert • Design a user-friendly GUIs and a solid data model • Being a leading developer with your module, clients will ask for your experience

More Related