Business Application Development Platform

Similar documents
The Great Office 365 Adventure

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

GOA365: The Great Office 365 Adventure

Title: Front-end Web Design, Back-end Development, & Graphic Design Levi Gable Web Design Seattle WA

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

WEB DEVELOPMENT IMMERSIVE GA.CO/WDI

Developing ASP.NET MVC 4 Web Applications MOC 20486

HTML5. Turn this page to see Quick Guide of CTTC

Developing ASP.NET MVC 4 Web Applications

Tutorial JavaScript: Switching panels using a radio button

Pro/INTRALINK Curriculum Guide

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Certified PHP/MySQL Web Developer Course

Teacher Assessment Blueprint. Web Design. Test Code: 5934 / Version: 01. Copyright 2013 NOCTI. All Rights Reserved.

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

Software Requirements Specification For Real Estate Web Site

GUI and Web Programming

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

JOB READY ASSESSMENT BLUEPRINT WEB DESIGN - PILOT. Test Code: 3750 Version: 01

STATEMENT OF PURPOSE

California State University Polytechnic University. CIS 311 Interactive Web Development. Fall 2011

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Microsoft Office SharePoint Designer 2007

An Electronic Journal Management System

DotNet Web Developer Training Program

IT3503 Web Development Techniques (Optional)

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

Web Dashboard User Guide

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

Developer Tutorial Version 1. 0 February 2015

Online Visual PHP IDE

Short notes on webpage programming languages

Framework as a master tool in modern web development

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

Electronic Ticket and Check-in System for Indico Conferences

Seattle Course Schedule July 2013 December 2013

Advanced Service Design

ONLINE SCHEDULING FOR THE PRIVATE CLINIC "OUR DOCTOR" BASED ON WEB 2.0 TECHNOLOGIES

Job Ready Assessment Blueprint. Web Design. Test Code: 2750 / Version: 01. Copyright All Rights Reserved.

Drupal CMS for marketing sites

Macromedia Dreamweaver 8 Developer Certification Examination Specification

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

IT3504: Web Development Techniques (Optional)


Windchill PDMLink Curriculum Guide

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

CA Identity Manager. Glossary. r12.5 SP8

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë

maximizing IT productivity

Key Benefits of Microsoft Visual Studio 2008

Ulyxes automatic deformation monitoring system

Web Applications: Overview and Architecture

Portals and Hosted Files

ORACLE APPLICATION EXPRESS 5.0

Ruby on Rails Issue Tracker

Getting Started Guide

PROJECT MANAGEMENT SYSTEM

FileMaker Server 10 Help

Firewall Builder Architecture Overview

Peter Furesz, Tampa, Florida Mobile (USA) 1(914)

T14 RUMatricula Phase II. Section 1 Metaphor and requirements

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions

Developing Microsoft SharePoint Server 2013 Core Solutions

International Journal of Engineering Technology, Management and Applied Sciences. November 2014, Volume 2 Issue 6, ISSN

The Learn-Verified Full Stack Web Development Program

Improving Access to GIS Data With Targeted Web Apps. Joyce Green, City of Norman John McIntosh, City of Norman

Annex E - Capability Building Policy

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

OVERVIEW HIGHLIGHTS. Exsys Corvid Datasheet 1

Microsoft Dynamics CRM2015 Fast Track for developers

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

Version 1.0 January Xerox Phaser 3635MFP Extensible Interface Platform

ACE: Dreamweaver CC Exam Guide

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Using the VMware vrealize Orchestrator Client

Manage Workflows. Workflows and Workflow Actions

Category: Business Process and Integration Solution for Small Business and the Enterprise

Web Development News, Tips and Tutorials

Templates Improve Application Development

Diploma of Website Development

Alfresco. Wiley Publishing, Inc. PROFESSIONAL. PRACTICAL SOLUTIONS FOR ENTERPRISE. John Newton CONTENT MANAGEMENT. Michael Farman Michael G.

An introduction to creating JSF applications in Rational Application Developer Version 8.0

What's New in BlackBerry Enterprise Server 5.0 SP4 for Novell GroupWise

tibbr Now, the Information Finds You.

Case Study. Data Governance Portal Brainvire Infotech Pvt Ltd Page 1 of 1

New Features for Sybase Mobile SDK and Runtime. Sybase Unwired Platform 2.1 ESD #2

Content Management Systems: Drupal Vs Jahia

Performance Testing for Ajax Applications

DETAILED BOOT CAMP AGENDA

Dreamweaver Tutorial - Dreamweaver Interface

easyobject modern web applications made easy Project presentation

Magento Extension Developer s Guide

601/8498/X IAO Level 3 Certificate in Web Design and Development (RQF)

FileMaker Server 11. FileMaker Server Help


Final Report - HydrometDB Belize s Climatic Database Management System. Executive Summary

Cloud Computing and Government Services August 2013 Serdar Yümlü SAMPAŞ Information & Communication Systems

Adobe Marketing Cloud Dynamic Tag Management Product Documentation

Transcription:

Business Application Development Platform Author Copyright Last update Version Document type Sclable Business Solutions GmbH Attribution-NonCommercial-NoDerivatives 4.0 International 01/28/2014 1.0 Technical white paper Abstract The Sclable provides an environment for designing, developing and running business applications. The platform consists of software components and development tools with a clear focus on solving problems occurring during the development and maintenance of business applications. It provides a valid domain model along with a ubiquitous language for the business domain of the application is build for.

Table of Content Abstract 1 Table of Contents 2 Introduction 3 Purpose of this document What is not covered Sclable components 4 Core Engine Meta Language 5 Generator Domain Model Attributes & Relations 6 Workflows Agendas 7 Low-Level SQL API Productivity Layer 8 PHP Framework PHP API Generic Application Your Packages 9 Acknowledgements Glossary 10 2 / 11

Introduction PURPOSE OF THIS DOCUMENT This document is intended for developers of business applications, who have not used Sclable before. It gives a high level overview of what comprises the Sclable. It gives an introduction to the nomenclature, the concepts used in the Sclable environment, a layered visualization of the platform components, and an explanation of how they interact with each other. WHAT IS NOT COVERED This document does not include the technical configuration details. Those will be presented in separate publications for each of the platform s components. This document does not feature FAQs, How-Tos, tutorials or code examples. Nevertheless, if you think this document lacks other pertinent information, please let us know on http://sclable.io. 3 / 11

Sclable Components Packages Your Packages Domain Designer Generic Application Y O U R A P P L I C A T I O N API Framework Low-Level SQL API Domain Model Productivity Layer (PHP, HTML5, Bootstrap, jquery, CSS3) Core Engine (PostgreSQL) Meta Language Generator Figure 1: A layered visualization of the Sclable Components 4 / 11

Sclable Components Core Engine Generator The Sclable Core Engine is the foundation layer of Sclable s domain modelling capabilities. It extends the feature set of the RDBMS by providing enterprise-grade business application functionality such as relations, constraints, events, triggers, indices, security, data dictionaries, revision logging, data and model history and more. It is completely implemented in PL/pgSQL and is an integrated part of your business application s database. Sclable uses PostgreSQL as it s RDBMS of choice. PostgreSQL is currently mandatory for developing and running business applications with Sclable. The core engine generates and organizes the database structure of your business domain. All domain model specific functions are provided within the RDBMS. That way, your business domain s logic functionality can be accessed via a Low-Level SQL API in standard SQL syntax. This low-level API is mirrored by Sclable s higher leveled API implemented in PHP. Meta Language The meta language, or Sclable Business Domain Meta Language (SBDML) is the conceptual base of the core engine. The meta language is designed to describe every logical aspect of a domain model. The Framework, API, the Generic Application and all other Sclable components are built on top of it. The Sclable Platform provides tools for importing and exporting domain models as XML documents. These XML documents represent the Domain Model and play an important role when developing Your Packages. The generator component handles the logical execution of changes to a domain model. It is an SQL-interpreter/ compiler for the meta language. Every change to the domain model of a business application is immediately reflected by the generator component triggering the correct procedures to change database relations, functions, triggers, indices and much more. The generator component can be detached from a database for the purpose of locking a domain model for runtime environments. Domain Model The domain model, or Sclable Business Domain Model (SBDM) holds every logical detail of a business domain needed for your application. The Sclable Business Domain Model describes the entities, their attributes, roles, relationships and workflows, as well as the constraints that govern your business domain. The description language used is Sclable s own Meta Language. An SBDM resides completely within the RDBMS and it includes the attributes and relations, workflows and agendas of your business domain s entities. To sum up these concepts for non-technicians, it is all about the data (attributes & relations) being processed (workflows) by involving people (agendas). 5 / 11

Sclable Components Attributes & Relations Attributes and relations describe the physical data model of your application. Since Sclable makes extensive use of references, all Sclable components provide ways for exploring the ER-model of your business domain. The interactive visual exploration becomes important when the relations are modelled during the development of a domain model. request TICKET subject department organisational unit name organisational unit DEPARTMENT name ORGANISATIONAL UNIT Figure 2: A visual representation of a segment of an ER-model 6 / 11

Sclable Components Workflows Agendas Sclable Workflows are State Machines and represent the way, entities within the domain model are processed. As such they consist of states and actions which trigger transitions between them. As the ER-model describes the physical data model, the actions within the workflows are generated as SQL functions. Sclable provides ways to interactively and visually explore and model workflows. Agendas in Sclable are similar to User-Roles well known in the context of classic ACL concepts. The main difference is that rather than granting permissions, agendas allow for automated task delegation and workload balancing. Agendas are named lists of actions with an optional binding to a related entity. One or more agendas can be assigned to users of a Sclable application, thus defining the task scope of a user. Agendas bound to an entity can be assigned with a binding to an instance of that entity and therefore allow for the delegation of tasks dynamically along workflows and throughout any tree-like data structure. Low-Level SQL API At the SQL level Sclable provides an API which reflects your domain model. The generator component creates and maintains views, functions (stored procedures), triggers and indices for you to handle your domain model just right from the command line. Restricted access is granted according to your modeled agendas. Ticket Figure 3: A Sclable workflow visualization 7 / 11

Productivity Layer API The productivity layer is completely separated from the core engine. In case no web front-end is needed for an application, there is no need to install the productivity layer s components. Sclable ships with a web application productivity layer written in PHP, HTML5, JavaScript and CSS3 utilizing popular libraries such as Log4PHP, the Smarty Templating engine, The Bootstrap javascript and CSS Framework, jquery and SASS. The API-Layer provides all the functionality to communicate with the core engine through the Framework. In terms of reflecting the domain model it mirrors the Low-Level SQL API in PHP. The generic application is built upon the API and you will use the API s helpers, traits, classes and methods when you write PHP code for your application to extend Sclable. One of the most obvious benefits of the API is that it allows you to code in your domain s language. We call this a DVC (Domain- View- Controller) pattern. Framework Generic Application The Framework is the foundation for the API as well as the Generic Application. It provides all components you will need for building web-based business applications quickly and easily. Among these are routines for request/response handling, routing, templating, etc. as well as helpers like a database abstraction layer, a caching facility, session management and much more. In addition, the Framework ships with a number of known and tested libraries such as the Smarty template engine or Log4PHP to add both stability and versatility to the framework. The framework s resources are integrated by the Lazy Loading design pattern. The Generic Application contains overview screens to browse through an entity s instances. Instances are organized into tab panes according to the entity s workflow states. It is possible to execute actions according to your domain s agendas with each instance. Therefore, the Generic Application generates web forms and handles request and response. Any alteration of your domain model also alters the Generic Application and immediately allows you to see, use and verify those changes from the perspective of the end user. Extending the Generic Application is also easy. Every generated user interface consists of default page elements such as input fields, select dropdowns, date selectors, etc. which can be overridden by your own code. Along the process of receiving requests, displaying a generic form, submitting the form and executing the action, the Generic Application offers so-called hooks for your own code s callbacks. 8 / 11

Your Packages Sclable comes quite lightweight. Additional functionality comes in packages. They can be anything from libraries and helpers to obscure data types, from an appropriate page element to full-fledged applications. A package might extend Sclable via SQL, CSS, JavaScript or PHP but also integrate any other programming or scripting language. Packages can extend the functionality of existing packages as well. A good example would be a package which provides a generic calendar view and another package adding support for additional calendar resources. Just as the Generic Application provides hooks for callbacks from other packages, every Package can offer hooks of its own. As the Generic Application is a package in its own right, every Package might come with a domain of its own or extend other domains. Acknowledgements This technical white paper is continuously improved by the members of the Sclable development team. 9 / 11

Glossary Sclable A collection of software products and services, called components, provided by Sclable. In the context of a specific component, the Sclable Business Application Development Platform can be referred to simply as Sclable. RDBMS A Relational Database Management System (RDBMS) is a database management system that is based on the relational model. PostgreSQL An object-relational database management system (ORDBMS) with an emphasis on extensibility and standards-compliance. State Machine A mathematical model of computation used to design both computer programs and sequential logic circuits. State In computer science and automata theory, the state of a digital logic circuit or computer program is a technical term for all the stored information, at a given instant in time, to which the circuit or program has access. PL/pgSQL Procedural Language/PostgreSQL (PL/pgSQL) is a procedural programming language supported by the PostgreSQL RDBMS. API An Application Programming Interface (API) is a set of routines, protocols, and tools for building software applications. Action Type In Sclable, it is create, edit, read and delete. Notably these are types of actions, not the actions themselves, that are nevertheless bound to the original CRUD actions of the RDBMS. DVC Sclable s Domain-View-Controller is a domain model enhanced MVC. ERM (ER-model) An Entity Relationship Model (ERM) is a data model for describing the data or information aspects of a business domain or its process requirements in an abstract way that lends itself to ultimately being implemented in a database such as a relational database. 10 / 11

Glossary ACL An Access Control List (ACL) specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects. Lazy Loading A design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed. It can contribute to efficiency in the program s operation if properly and appropriately used. PHP A server-side scripting language designed for web development but also used as a general-purpose programming language. HTML5 A markup language used for structuring and presenting content for the Web. The Sclable Business Application Development Platform is finally generated in HTML5. CSS3 A style sheet language used for describing the look and formatting of a document written in a markup language. Javascript A dynamic computer programming language most commonly used as part of web browsers, whose implementations allow client-side scripts to interact with the user, control the browser, communicate asynchronously, and alter the document content that is displayed. log4php A versatile logging framework for PHP. Smarty A web template system for PHP. Bootstrap A free collection of tools for creating websites and web applications. It contains HTML and CSS-based design templates for typography, forms, buttons, navigation and other interface components, as well as optional JavaScript extensions. jquery A cross-platform JavaScript library designed to simplify the client-side scripting of HTML. SASS A scripting language that is interpreted into Cascading Style Sheets (CSS). 11 / 11