Concept Framework (20121014)
(Layers, Tiers and Barriers)
Diego E. Malpica Chauvet et al.
Simplified Framework for developing Object Oriented Rich Internet Applications
In these last two decades there has been a lot of advances in information technology, there is so much change that it is
essential to continuously review the adequacy and effectiveness of our paradigms.
Our current paradigms for example the ones related with multitier architectures can get in our way becoming effective
barriers against software quality. In this paper we present part of our work dedicated to review our current paradigms:
tools, techniques and architectures.
There are lot of tools and techniques that may help to increase the quality by reducing the complexity and cost. They all
share common goals that can be expressed as a set of factors  like:
Flexibility: The ease with which a system or component can be modified for use in applications or
environments other than those for which it was specifically designed.
Maintainability: The ease with which a software system or component can be modified to correct faults,
improve performance, or other attributes, or adapt to a changed environment.
Reusability: The degree to which a software module or other work product can be used in more than one
computing program or software system.
Scalability: The ease with which a system or component can adjust to changing load.
A broader use of Object Oriented Techniques may substantially increase solution development quality reducing
complexity and cost.
Multitier architectures represented by mayor platforms .Net, and JEE have become barriers that difficult to use
techniques like Object Oriented and Aspect Oriented. Tiers are mainly based in t functional decomposition TopDown
Each tier may increases the complexity to establish contexts, and to coordinate events and actions.
The communication between layers can have a severe negative impact in the complexity and performance of the
We try various promising object oriented tools and techniques isolating one time efforts in a framework from effort of
developing specific solutions. So we made two efforts: One effort to develop a framework that we named "Concept
Framework", and other to develop a end user application using the framework that we called "Share Center".
These are the main requirements for the "Share Center" application:
Provide and Integral solution considering three mayor topics in the problem domain: Knowledge, Content
and Commitment Management.
Support for at least 1000 users with high concurrency.
Define an updated architecture and tools considering the problem domain and the quality factors that
affect the full life cycle of software solutions.
We identified and selected several promising techniques and tools. The selection was done to using a "Paradigm
Shifting Technique" that is illustrated shown in Figure 1. The selection criteria favours object oriented technologies
with common tools and knowledge base in order to increase reutilization and reduce the number of specialities needed
to develop a solution. As metrics we defined the specialities needed for development and the number of models
needed/used to document and implement the solution. The last criteria we used for the selection of technologies is the
one that defines a promising technology for our work we define a promising technology as the one that has stated (even
in an informally brochure) that they may increase the return of investment , reduce the complexity and/or cost.
4.1 Paradigm Shifting
from 1991 to 2013
2005 BUP & EPF
2007 Linux Android
2006 Dual Core
2007 Quad Core
2011 10 Core
1988 SUN softpc
1979 IBM VM
1997 MAC virtualpc
2006 GWT 1.0
2004 JSF 1.0
2011 FFox M
2007 Safari M
2008 Android M
2009 Opera M
2001 Explorer M
2001 Win XP
2009 Win 7
1996 Win NT
1990 WWW 2000 PocketPC
2011 Chrome M
2009 GWT 2.0
1975 Tandem T/TOS
1994 Tandem OSS (Unix)
2000 HTML 4
2008 HTML 5
2006 Linux 2.4
2011 Linux 3.0
2001 MAC OS 10
2012 MAC OS 10.8
2009 JSF 2.0
2013 Vaadin 7
1997 Oracle ORDBMS
1988 Oracle RDBMS
1987 Sybase RDBMS
1989 Microsoft SQL
1967 Object Oriented
1991 WWW3 Layer
1989 MS office1990 ERP
2006 Google Docs
2011 MS Off365
2000 RSA Public
1991 ISOS. Engineering
1993 ISOS. Process
2009 JSF 2.0
2002 Spring2000 Liferay
1991 MS Visual Basic
1991 MS Power Builder
2012Win Phone 8
1991 MS Visual Basic
1995 MS Visual Studio
2012 Win 8, WinServer
2012 Linux U Unity
2012 Linux Android 4.1
Old and Valid
2009 Mongo DB
2007 Amazon EC2
2009 Windows Azure
2009 Google Apps Engine
2001 OWASP & ISOSecurity
1990 Versant ObjecttDB
2010 Maria DB
1998 Java 3D
2004 Hypper Threading
1980 Small talk MVC
2004 Naked Objects
4.1.1 Multi Layer/Tier Architectures(TopDown)
Layers : "Logical layers are merely a way of organizing your code. Typical layers include Presentation, Business and
Persistence ”the same as the traditional 3tier model. But when we are talking about layers, we are only talking about
logical organization of code. In no way is it implied that these layers might run on different computers or in different
processes on a single computer or even in a single process on a single computer. All we are doing is discussing a way
of organizing a code into a set of layers defined by specific function". Typical layers are:
Presentation Layer : User Interface, the main function is to translate the tasks and results to something the
user can understand.
Business Layer : Coordinates the application processes commands and make logical decisions and
evaluations, and performs calculations. I moves and processes data between the two surrounding layers.
Persistence Layer : Information store and retrieval from data base system.
Tiers: "Physical tiers however, are only about where the code runs. Specifically, tiers are places where layers are
deployed and where layers run. In other words, tiers are the physical deployment of layers"..
Same Model and Same Paradigms(Tools)
Diferent Models and Same Paradigms(Tools)
Diferent Models and Diferent Paradigms(Tools)
Same Model and Same Paradigms(Tools)
4.1.2 Object Oriented Architectures (OO)
An objectoriented system is composed of objects. The behavior of the system results from the collaboration of those
objects. Collaboration between objects involves them sending messages to each other. Sending a message differs from
calling a function in that when a target object receives a message, it decides on its own what function to carry out to
service that message. The same message may be implemented by many different functions, the one selected depending
on the state of the target object. Object Oriented Systems are constructed as structured collections of abstract data
4.1.3 Service Oriented Architecture s (SOA)
In software engineering, a serviceoriented architecture is a set of principles and methodologies for designing and
developing software in the form of interoperable services. These services are welldefined business functionalities that
are built as software components (discrete pieces of code and/or data structures) that can be reused for different
purposes. SOA design principles are used during the phases of systems development and integration. 
4.1.4 Model View Controller (MVC) Architecture
A model view controller (design pattern), separates concerns in tree roles:
Model: A model notifies its associated views and controllers when there has been a change in its state.
This notification allows the views to produce updated output, and the controllers to change the available
set of commands.
View: A view requests from the model the information that it needs to generate an output representation.
Controller: A controller can send commands to its associated view to change the view's presentation of the
model (e.g., by scrolling through a document). It can send commands to the model to update the model's
state (e.g., editing a document).
4.1.5 Model View Presenter (MVP) Architecture
ModelViewPresenter is a derivative of the ModelViewController (MVC) software pattern, also used mostly for building
user interfaces. In MVP the presenter assumes the functionality of the middleman (played by the controller in MVC). In
MVP, all presentation logic is pushed to the presenter. Eventually, the model becomes strictly a domain model.
MVP is a user interface design pattern engineered to facilitate automated unit testing and improve the separation of
concerns in presentation logic:
Model: is an interface defining the data to be displayed or otherwise acted upon in the user interface.
View: is a passive interface that displays data (the model) and routes user commands (events) to the
presenter to act upon that data.
Presenter: The Presenter acts upon the model and the view. It retrieves data from repositories (the model),
and formats it for display in the view.
4.1.6 Naked Objects Architecture
Naked objects favors a Object Oriented Approach that is based in the following principles :
All business logic should be encapsulated onto the domain objects. This principle is not unique to naked
objects: it is just a strong commitment to encapsulation .
The user interface should be a direct representation of the domain objects, with all user actions consisting,
explicitly, of creating or retrieving domain objects and/or invoking methods on those objects. This principle
is also not unique to naked objects: it is just a specific interpretation of an objectoriented user
The original idea in the naked objects pattern arises from the combination of these two, to form the third
The user interface should be created 100% automatically from the definition of the domain objects. This
may be done using several different technologies, including source code generation; implementations of
the naked objects pattern to date have favoured the technology of reflection.
These are the tools that we found interesting in terms of improving productivity by promoting the use of object oriented
4.2.1 Business Layer (Code Quality)
There are several quality metrics that can be measured and enforced in object oriented code that may increase
developer productivity and example may be: Increase In Developer Productivity When Using Jtest 90% . 
4.2.2 Presentation Layer(GWT/Vaadin)
"The serverside development model doubles productivity by automating everything related to browser and ajax
communication. Builtin themes make your application look great, data sources help you connect to the backend and the
UI components make building a great user experience easy. You could say that Vaadin is a superset of GWT for
business oriented applications with focus on developer productivity. 
4.2.3 Persistence Layer (DB4O)
No time is spent on learning a separate data manipulation or query language. Unlike incumbent, stringbased, non
native APIs (such as SQL, OQL, JDOQL and others) Native Queries and LINQ are 100% typesafe, 100% refactorable
and 100% objectoriented, boosting developer productivity by up to 30%. 
4.2.4 Crosscutting (AspectJ)
To integrate different tools may be difficult, object oriented tools may be complemented using aspect oriented tools to
take care of crosscutting concerns. 
"In computing, aspectoriented programming (AOP) is a programming paradigm that aims to increase modularity by
allowing the separation of crosscutting concerns. AOP forms a basis for aspectoriented software development.
AOP includes programming methods and tools that support the modularization of concerns at the level of the source
code, while aspectoriented software development refers to a whole engineering discipline."
We manage to isolated two objective and relevant metrics that are number of models and number of specialities used as
a key indicators of the complexity and the effort needed to implement a solution.
We measure our architecture against conventional architectures and we obtained the following numbers:
Architecture GrantedParadigms Reviewed Frameworks Reviewed Architecture
Separation of Concerns
Separation of Concerns
Separation of Concerns
Object Document Mappers
Java(4), EJBs(5) Java(1), Vaadin(2), DB4O(3) AspectJ(4)
Object Relational Mappers
Models 3 3 1
Specialities 6 3 4
Complexity 18 9 4
We generated a single model for the solution.
Figure 2: Object Model
Figure 3: "Share Center" Solution.
6.1 We manage to use one model instead of three and to avoid the principal physical and logical barriers while
maintaining a good concern separation and modularization. The numbers of specialities (languages and tools) needed
was significantly reduced.The main requirements was cover with and must of the effort was for the framework(first time
6.2 Regarding or initial hypothesis we confirmed that a topdown approach is generalized in the multi tier architectures
been its main representatives .Net and J2EE.
6.3 There are big opportunities for increase the productivity by the broad use object oriented techniques and tools.
6.4 By promoting object/aspect oriented approaches we are in the way of diminishing barriers in order to reduce the
complexity of the solutions.
7. Future Work
We will continue our work to validate and measure the productivity achievements as a constant effort
After the fist internal release we will work on the open source release for the "Concept framework" and the "Share
 "Objectoriented Software Construction" , Bertrand Meyer. Prentice Hall International Series in Computer Science,
1988, Great Britain.
 "Metrics in software quality assurance" , J. E. Gaffney Jr., ACM '81 Proceedings of the ACM '81 conference, Pages
 "Concept Framework" ,
 "Share Center" , https://sc.openknowledge.mx/Concept/file/byUUID/Concept:44728987337293824/ShareCenter.html
 "Multitier architecture" , http://en.wikipedia.org/wiki/Multitier_architecture
 "The difference between layers and tiers" ,
 "Object Oriented Analysis and Design" ,
 "Object Oriented Software Construction" ,
 "Model View Controller",
 "Java Software Quality Assurance", http://www.parasoft.com/jsp/products/product_roi.jsp
 "ObjectOriented Presentation Layer", https://vaadin.com/gwt
 "ObjectOriented Persistence Layer", http://community.versant.com/documentation/reference/db4o
 "AspectOriented Crosscutting Concerns",
 "CMMI Level 5", http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration
 "Model View Presenter", http://en.wikipedia.org/wiki/Modelviewpresenter
 "Paradigm Shifting",
 "Naked Object Principles Wikipedia", http://en.wikipedia.org/wiki/Naked_objects
 "Naked Object Principles Richard Pawson's PhD thesis ",