Friday, April 25, 2008

Application Framework - Components

SQLObject Application Framework - Components

SQLObject Application Framework is an Open Source framework build with the opensource Technologies and sub-frameworks. It is Small in size compact and easy to work with it. Most important things are support multiple relational databae and modular development approch of the client applications, easy to manage the database communication, easy to manege the business process and user can change the process at any time without coding.

Module Manager
This component of Application Framework is responsible to manage the modules loading the initial settings, each module can be dependend on each other or can be independent too, Manager load the client module that build for the business application or extension to the business application apply change to the system and thanks to ORM define the objects. This component can be customizable according to the user requirenments to change the steps for locading new module in to the syetem, so that user can change the normal behaviour of the Module Manager.

ORM
This feature provides a faster development of an Application. no need to write any DDL and DML statements for any database, system will automatically generates the table, columns and required supporting object for database, i.e. sequence, constraints, views. all the system data and client data is used orm for database interaction. ORM inbuilt provides the security features base on the Object, View, or Fields.

Report Engine
Reporting is the most important and it must be able to serve in multiple formats of the same reports according to the purpose. ite better to take and exisgint reporting tool and customised to make it compitable with the Application Framework. there are many type of reports like documents, graphs, audio, video, etc. for the movement important are document and graphs. for the document ts better to use the Community Edition Downloads for the JasperReport, it is more power full and flaxible serves multiple formats of output.

Workflow Engine
Workflow is the most important component for the any business application, it manages the business process eaily and allow to change at any period of time without affect the system. It should be accesable to the authenticate perfon and they can change it as and when the business flow change. this will allows user / develops to make the system behaviour according to the business functions. this component will make the system Enterprise Ready. its good idea to use the any opensource workflow engine or core system and develop our system based on that. there are a OpenSource Workflow Management framework are there from the jBoss.

Wizard Engine
A general conept of the Wizard are the list of steps each will perform certain task and execute one by one according to conditions. This component will provides the user to develop the list of steps for any generic criteria based operations. wizard will be made up of the list of views. and list of datas to be required as parameters for the process, that process can be a, Any Business Processing function, Report Printing Function, etc.

View Manager
The View manager is the important to manage the views define by the developers / users. each objects can have multiple views, this is managed by the View Manager, also takes care for the default views, for each object of each type, view manager can represent the views in terms of the Form, List, Tree, Graph, Calender, etc. view can be inherited to apply the changes in to the existing view. it means that we can apply the changes in the existing view without modifying the current view.

Service Manager
Most important Component takes care to manage the comminication for the data exchange. it must support the xml data format to interchange the data easily in between Application Framework Server and any other application, as this service provide the list of standard apis to deal with the Application Server due to that any client application can easily deal with the Application Server and exchange the data and commands. also all the other components will be available to the Client in terms of the Service like for each component orm, wizard, report, workflow, they all components will be available for the client application using this Important component.

Other components

Connection Pooling and Object Pooling
Manage the Pooling for the BD Connection is the techninique start fromt he 3nd Generation of Application to redure the time to acquired the DB Connection and release, its better to make a list of connection in the system and use it and back to the system so no need to wait till the connection will open and available for the transection, same way for the moduler approch development support its better to make a pooling as one object may be made up from the list of many classes the is because of the inheritance proceure. its better to mantain the pool for the objects and use it as and when required. but need to take care during the Object Pooling its advicable to pull the most used objects only its worthless to pull the less used objects.


Inheritance - Object Oriented Principals
Thanks to Inheritance features of the any object oriented language, in Application Framework every components are takes for the this principal as whole application server provides the moduler developent approch, it must take care of all modules for object, view, wizard, report, workflow, etc and apply the inheritance from all module on each of the componets. i.e Derived Class and Base class can be defined in the different module, like module two and module one, so when system load the moduel one must affect to the existing Class which is already defined in the module one. same foe the view, wizard, report, workflow...


Tuesday, April 22, 2008

About Object Relational Mapping - ORM

Why we Required Mapping ?

Writing a Java application that stores data in a RDBMS can be as simple as slapping a few data-aware components on a form. However, if you rely on data-aware controls you lose the benefits of encapsulation and set yourself up for a larger maintenance burden ahead. Proper object-relational integration requires a strategy for mapping the object model to the relational model in order for Java objects to become persistent to the RDBMS. A persistent object is one that can automatically store and retrieve itself in permanent storage.

The problem is that objects can't be directly saved to and retrieved from relational databases, and if we follows the method to provide the functionalities for store and retrieve with each object is highly duplication of the code. like we always write few method with all Java Objects.

class Person {
public void create() {
//TODO : write a code to create a person in Database
}
public void read(int id) {
//TODO : write a code to read a person from Database
}
}

So, this way we have to write a code in all the objects to store and retrieve the data to/from database. but this is not the proper solution to the real problem, but this is not the solution, we must have some system that automatically map the Java Object to the Database, this is what SQLObject is doing for any real object.

Mapping Fundamentals
available soon

Tuesday, March 18, 2008

Easy Application Framework

SQLObject is an Open Source Easy, Advanced and Flexible framework to develop any Application using Java Language, this framework provides so many features to design and develop flexible, secured, service oriented application for any domain.

In the market there are lots of framework available to create, and manage Java application, but with the SQLObject you can easily create, manage and grow application very easily, and quickly. this is the biggest advantage you can get from this Framework. The second biggest advantage is its complete Open source one can easily get it, configure and use it.

All real world application have Business / Real Objects and business logic to process them. SQLObject provides all basic Objects which required to have in all Business Application like Person, Contact, Users, Role, Currency, Country, State, and many more. SQLObject have already a well defined object structure which is ready to use.

A relation between two objects are much important in Relational Object modeling. to satisfy this features SQLObject provides the well defined relational fields that provides One2Mny, Many2One, and Many2Many relations. you can relate any objects according to your application requirements easily. even its very easy to manage relational field in framework.

Ability to make Localize – Globalise Application that can start from local to globel use. it support i18n features. using that you cam make globalise application.

SQLObject provides multiple Database support, this is the biggest advantage to use this Framework. it support PostgreSQL, MySQL, Oracle. any one can start development with any database and during the development or after the development they can easily change the Database according to their requirements.

An 100% core Java code based on the Design Pattern, and and interesting Java feature called Java Reflection are base for the SQLObject Framework. beside that, I used XML-RPC framework provided by the Apache to make the application read to publish the data over the Internet, and that can be used by any application.

SQLObject framework is divided in to so many flexible an open source existing modules, like apache xml-rpc framework, Jasper Report, JBPM Work flow Management system, etc...

Major components of SQLObject Framework are as follows
  • Connection Pooling
  • Object Pooling
  • Object Relational Mapping
  • XML-RPC Based Service Publisher
  • Mould Loader
  • Column Framework
  • Service Module
  • Report Manager
  • Wizard Module
  • Work flow Manager
Database Support
Framework support compatibility with multiple database like, PostgreSQL, MySQL, Oracle, SQLServer. any one can add support for other databases just by supplying the custom column framework, in this they have to define all columns type and datase specifications, this way its easy to work with any Databases

Object Relational Mapping
This feature provides a faster development of an Application. no need to write any DDL and DML statements for any database, system will automatically generates the table, columns and required supporting object for database, i.e. sequence, constraints, views

Object to Table Mapping
Object is Directly map to the Table in Database so its easy for the Data Storage and Retrievals easily. framework provides the base methods for the data store, retrieve, update, delete, and search data

Event Based Model
This also support Event based Model to track the user operation easily and to work on them. like if user create a record this will fire an 2 event beforeCreate and afterCreate with required data like user_id, context, and other informations related to the operation.

Relational Fields
it have a good capabilities to relate 2 objects via relational fields, like One2Many, Many2One, and Many2Many, Selection and Reference one can relate 2 objects using these relations.

Example:
private Many2One partner_id = new Many2One("Partner",0,true,"modules.base.res.Partner");