Build Business Web Applications with PHPOpenbiz framework and Cubi Platform
Agus [email protected] Contributor, on coding standard and code quality enhancement
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Demo• Questions
Agenda
• Openbiz Overview– What’s Openbiz– What’s Cubi– Tools– Sample Application and ISV
• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Demo• Questions
What is Openbiz
• Openbiz is php application framework that provides an object-oriented metadata-driven platform for application developers to build web application with least possible programming code (80% metadata, 20% programming code).
• A little history– Project was started in 2003 with the goal to minimize
the coding efforts in business application development. Has been continuously improved by community developers and user feedback.
What is Openbiz
• A PHP business application framework featured with– Metadata-driven design principal. Developers
declare business logic as metadata– Model-View-Controller– Object Relational Mapping– AJAX browser client– Stateless and Statefull
What is Openbiz
• Target User Community– Professional software developers – IT consultants– Software Houses (ISV)
• Target applications – Management/Administration System (i.e. CRM, HRM)– Company home-grown internal management systems – Migration from desktop application to rich client web
application– Will satisfy the need for most of the database driven
web applications
What is Cubi
• Openbiz Cubi is a php application platform. – From demo to full-featured application
platform
• Goal– provide commonly used modules and a set
of tools in a platform level – boost the productivity of Openbiz-based
application development
Tools
• Metadata generator (CLI)• From db to CRUD application
• App Design Center aka metadata editor– Edit metadata from application
• Application Installation Wizard– End user fully enjoy
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Demo• Questions
Openbiz Architecture
• Metadata-driven design principal– Openbiz objects are defined with XML metadata– Metadata describes the properties and behaviors of
an object– Metadata describes the relationship between objects– Object factory creates objects on the fly– Openbiz core objects are the base of the framework– All objects are extensible with customer classes
Openbiz Architecture
• Openbiz Core Objects
Openbiz Architecture
• Openbiz MVC
Openbiz Architecture
• Openbiz MVC
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Extending Openbiz• Demo• Questions
Openbiz Metadata
• Metadata and Object
Openbiz Metadata
• Steps to Build Openbiz ApplicationsOpenbiz is a metadata centric framework, so the application development process is some different with the traditional one.– Step 1: gather requirements– Step 2: design data models, e.g. database schema– Step 3: write business objects with DO and their metadata– Step 4: write user interface with Form and View– Step 5: write custom DO, Form and Service classes if necessary– Step 6: refine the metadata and custom code– Step 7: test and debug
Openbiz Metadata
• What can metadata do:– Describe the properties of objects– Describe relationship of objects– Describe rendering behavior of objects– Describe validation of the data– Describe user interaction on a page
• What can't metadata do:– Logic of function - this is implemented in real program
classes. The "Class" attribute of a metadata can bind any custom class with the metadata.
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Extending Openbiz• Demo• Questions
Openbiz Metadata
• Openbiz maps database tables to data object (DO)
Openbiz Metadata
• Object Relational Mapping (ORM)
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Extending Openbiz• Demo• Questions
Openbiz Form and View
• Openbiz Data Object (DO) plays a data unit, and Openbiz Form plays as corresponding presentation unit. – Each Form declares a DO name and mapping
between DO Fields to Form Elements.
• Openbiz View plays as a presentation container of Forms. – In web technology, View is same as a web
page and Form is a logic block within a page.
View and Form Navigation
• In a data-driven web applications, data is presented in four types of screens.– List : screen for multi-record list or table– Detail : screen for single-record detail– Edit : screen for single-record editing. – New : screen for single-record creation.
View and Form Navigation
View and Form Navigation
• In a data-driven web applications, data is presented in four types of screens.– List : screen for multi-record list or table– Detail : screen for single-record detail– Edit : screen for single-record editing. – New : screen for single-record creation.
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Demo• Questions
Openbiz (Plug-in) Service
• implementing special logic by Plug-in Service.
• metadata-driven objects.
• Service metadata doesn’t have fixed schema (different services can have very different configuration)
Openbiz (Plug-in) Service
• Log Service• Email Service• DO Trigger Service• ID Generation Service• Cache Service• Security Service• Query Service• Validation Service• Excel Service• Access Service
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Demo• Questions
Agenda
• Openbiz Overview• Openbiz Architecture• Openbiz Metadata• Openbiz Data Object• Openbiz Form and View• Openbiz Service• Demo• Questions