xHindge eVersion Pattern

 

xHindge eVersion Pattern for Enterprise Applications

 
 
 

XHindge-eVersion Page

 
 

 

xHindge-eVersion Software Pattern
 

OVERVIEW

 

xHindge pattern has been used since 2002  as an enterprise software pattern, providing a unique business modeling algorithm based on “Complexity Isolation and Implementation” principle, and was specifically developed as a solution provider for developing large, complex enterprise business applications. XHindge pattern provided a an organized approach to construct server side web applications using Microsoft .NET (2.0, 3.0 and 3.1)  and Java 2 EE patforms.

 

xindge pattern (www.xHindge.com ) was used to define configuration of Enterprise business objects (or business entities) and their persistence and entity-relation mappings, and was used for creating and validating software objects mappings with rows in databases. 

 

xHindge pattern with Xsd schema as well as UML Class Diagrams for business objects  has been used in developing web applications for Government departments, financial institutions, and Aeronautic organizations in USA and Canada. This includes a Geographical Information system developed for a Canadian Government department using eleven schemas of dynamic UML Diagrams identified by US FGDC Geospatial Metadata  standards.

 

eVERSION SOFTWARE PATTERN

 

While analyzing several modern day  enterprise applications models, and with the advent of  improved software tools and technologies, an enhance version of xHindge MVC  pattern called eVersion Software Pattern is derived from the Model-View-Control (MVC) pattern, specifically to isolate and resolve the complexity from the modern day enterprise software components, so that relevant  software components can be configured,  programmed and tested independently, and then integrated with the rest of the MVC based components.

 

eVersion Software Engineering Pattern is an upgraded version of the xHindge software pattern, based on the Model-View-Controller (MVC) pattern for developing enterprise level application software.

 

The upgraded version  xHindge eVrsion is derived by applying  an enhanced version  of  Inversion Control principle called Eversion Priciple (taking inside-out) to the Model-View-Controller software pattern.

 

An excellent example of the Eversion Principle (taking inside-out) as applied to a Geometric pattern is 

Geometric Sphere Eversion  in  differential topology ..

  File:MorinSurfaceFromTheTop.PNG

A Geometric model used to develop eVersion Software Pattern :  

   Eversion of Geometric Sphere in  differential topology

eVersion Software Pattern is developed by applying a kind of inside-out type of  Inversion Control by isolating the complexity of enterprise application software from the Domain Logic (the application logic ) of the  MVC based enterprise application, and then programming separately  from the VIEW ( user input and presentation) .  By isolating complex configuration of the Model part of  typical MVC based enterprise application software, it is easy to develop the business logic and relevant Controllers governing the sub-processes of the application domain, separately from the development of elaborate VIEWs consisting of JavaScript and HTML5 based user API.

 

 

This approach allows Domain Logic or the critical business logic of the eVersion MVC application to be configured at the design level and monitored during the development stage.

 

Enterprise business processes are dynamic, with constantly changing business scenarios. New business process are created, frequently combining existing processes with new requirements.

 

eVersion MVC pattern is designed  specifically for creating sophisticated enterprise web application projects for the mission critical business processes, with rigorous security profile, and  providing enough  agility so that the application may be easily modified or integrated with other enterprise applications.

 

Properly configured software components of MVC based eVersion application can be easily designed, coded and tested, and then integrated using MVC based technologies and tools available with Microsoft ASP.NET MVC, and Java EE6 MVC platforms.

 

This agility of the eVersion application at the design level provides the opportunity to define and track the development of the eVersion application through various stages of the Software Development Life Cycle (SDLC).

  

 

eVersion Architecture for Enterprise Applications

 

This whole new approach for constructing complex, highly agile and sercured applications of the enterprise provides an evolutionary concept called eVersion Architecture for Enterprise applications.

 

Architectural components of eVersion Pattern based application are constructed out of the Fuctional Requirements derived from the Requirement Analysis of the Enterprise application, and Use Cases representing underlying application processes.

Primary architectural component for eVersion system is the eVersion Domain.

 

eVersion Domain

 

 

eVersion pattern based Enterprise Application is an  Active MVC application software with a domain-driven design that leverages object-oriented technology.

 

By incorporating the MVC architecture into eVersion Pattern, software specific components of eVersion application for each of  Model, Controller and VIEW can be designed separately and then bound together at run time, by providing runtime Dependency Injection of resources.

 

In Active MVC application, the MODEL can changes state due to event inside or outside the domain of the MVC application. This change in the state of the MODEL must be reflected in the VIEW.

 

eVersion Domain   is the Domain Logic (the application logic ) of the Active MVC application  which encapsulates among other things, application data in the form of entity objects and their behavior, and ViewData consisting raw data representing properties of entities and Model state which are configured for the rendering the VIEW components.

 

Speifically, eVersion Domain of an Active MVC Enterprise Application  consists of  software objects of cohesive classes with encapsulated state and related behavior of  real-world business objects and related components of the application. This includes  configurations of enterprise entity objects, object-relation mappings and their stateless (transactional) persistence, delegating complex business logic and navigation, and invoking user authentication, and Role based authorization for  accessing the domain resources.

In addition to eVersion Domain, eVersion application domain includes process involving  choreographic selection of a VIEW from multiple VIEWs and initiating the Controller with appropriate ViewData which renders the selected View.

In terms of Model-View-Controller framework, eVersion pattern recognizes two distinct types of Controllers; those governing the VIEW and the others which control the Domain Logic of the Active MVC.

 

This logical separation of VIEW related development from the development of eVersion Domain, renders the process of developing MVC based eVersion Application highly agile.

 

eVERSION – Domain Driven MVC Application

 

eVersion application is a Domain Driven active MVC application, where the eVersion  Domain notify the views of any changes in MODEL  by using the  Observer pattern and Observer and Observable (Subject) classes (Ref:    Java Observer and Observable   Microsoft Observer  )

  

Each VIEW registers an Observer interface in the collection of the Observable (Subject), and a change in the MODEL is notified to the VIEW by MODEL executing the related method in the Subject  (Figure 1).

 

 http://en.wikipedia.org/wiki/File:Observer.svg

Figure 1 : Basic Observer and Subject structure in eVersion pattern

 

eVersion Domain  provides  an ideal venue for designing  Domain Driven Architecture  for MVC enterprise application, where the primary domain of the application can be specified and configures at the design stage by the users and stake holders, and the development of the application can be monitored using Requirement Traceability  Matrix under IT Governance during the Software Development Life Cycle.

 

eVersion Controller

 

The architecture of the MVC based eVersion pattern strongly mandates  the  need for  a central Controller for the primary domain of the eVersion application. This controller is called the  eVersion Controller which provides logical separation of eVersion Domain components from those involving VIEW related components, and is the first level contact for a client in the MVC based eVersion application.

 

eVersion Controller may be constructed for both Microsoft ASP.NET MVC3 and Java EE6 MVC platform, as the highest level of abstract component based on the  Dependency Inversion Principle , with an appropriate Adapter  and Adapter implementation for those platforms. Additional controllers required for the eVersion Domain and for the VIEWs are managed by the eVersion Controller.

 

Additional controllers for the eVersion application for ASP.NET MVC3  platform  includes Controller for VIEW based on Code Behind re-factoring,  and other business logic related controllers and action methods.

 

For Java EE6 MVC platform based eVersion application, Controllers are  managed by dispatcher and helper programs.

 

eVersion Framework -  A Domain Driven Framework for Enterprise Application

 

 

eVersion Framework is an Application Development Framework in the form of   Portlets with pluggable user interface software components and are developed using software libraries, templates for the software development , and plugins and  Annotation based declarative dependency injections made available at the deployment stage.

 

eVersion Portlet and Light-weight portlet container for the  Portlet is constructed using technologies and tools presently available for Microsoft ASP.NET MVC 3, and Java EE6 MVC. This includes Netbbeans 7.01 with Glassfich 3.1  and  Microsoft Visual Studio 10 and above.

 

 

eVersion Portlet uses Dynamic UML diagrams for design level configuration and the construction of entity objects and entity/relation mappings with databases, and  then provides run time provisioning of stateless (transactional) persistence for the entity objects.

 

 

Web Service  Injection  and Web Service Conception

 

eVesrion Portlet Framework can be used to provide a kind of  Web Service Injection to an existing  eVersion application, creating a Conception of Web Service

Web Service Injection  for an eVersion application is a kind of Dependency Injection applied to the eVersion Domain, which construct a framework of a web service, and then applying Conception of Web Service  renders the eVersion application into a kind of Hybrid eVersion Web application, which is a web service as well a web application.

 

This unconventional approach of creating an  Hybrid Web Application, is to achieve the primary objective of making it easy to convert an eVersion application into  a (SOAP/WSDL or RESTful type) Web Service.

 

Extending beyond the primary Web based MVC approach, eVersion Framework  provides a migration path for non-eVersion applications to be modified in to an eVersion application.

 

xHindge eVerson Framework is ideally suited for the developing and maintaining an Enterprise Service Bus for distributed applications  ,  and for a Portal framework support for Composite Applications for the Corporation.

 

Integrating Social Media for Enterprise

 

An excellent example of Eversion Priciple (a process of turning inside-out ) is the way corporations in broadcasting industry are using Facebook, and Twitter based social media systems.

 

The audience of the TV and Radio broadcasting services are using Facebook and Twitter, providing real time feedback of world wide events for the  daily news and views to the radio and TV broadcasting services, increasing the legitimacy of the broadcasting news. ( “Egyptian SPRING” and  “Libyan  FALL”  of 2011)

 

For the rest of the businesses and corporations, Social media is a Double-Edge Sword; using Social media is an excellent way to directly interact with their customers and suppliers, but it poses serious risks involving security and integrity of their web base services they provide, and for the privacy of their clients’ profiles.

 

In order to maintain the security and integrity of the highly critical enterprise applications, interaction between Social Media systems and the eVersion applications of the enterprise is developed using a service portal, a kind of proxy client called eVersion Service Portal.

 

eVersion Service Portal

 

eVersion Service Portal is an Eclipse Plaform  based implementation of the eVersion Framework, and is constructed using the eVersion Portlets consting of Plugins. Templates and  Software libraries using Microsoft ASP.NET MVC3 and Java EE6 MVC platforms.

 

Primary objective of the eVersion Service Portal is to provide a seamless access to the eVersion Architecture of the Enterprise software applications and services, and integrating Social Media for the Enterprise applications.

 

eVersion Media Server

 

eVersion Service Porta provide the following interfaces  for integrating  Social Media with eVersion applications:

 

  • eVersion Service Portal based plugins and templates are used to construct devise specific eVersion Media Servers, custom built for most popular wireless operating systems including RIM’s  Blackberry 10 Enterprise Server, and Apple’s iOS operating system for  iPhone, iPad, and iPod touch. and Facebook’s  SCALA or PHP or XFBML based Web Client.

 

  • eVersion Media Server provides highly secured and  proprietary apps for wireless iPods, iPads and iDevices, with a kind of “Firewall” against the contagion from the Service Media related ills including  losing device ID’s of the corporate wireless devices, and from compromising enterprise information to outside hackers.

 

 

eVersion Media Server is developed using following policies and guidelines identified by the  Social Media Governance Toolkit of IT Governance:

 

    1. Policy that draws on established best practice and can be adapted for all  circumstances, plus roles & responsibilities, communications & training, and metrics & monitoring;
    2.  Acceptable use agreement, template for legal guidance, branding & corporate style guide;
    3.  Guidelines for internet postings, blogging, Facebook, LinkedIn, Twitter and YouTube

 

eVersion Media Server is constructed to provides seamless interfaces for Social Media system, meeting this IT Governance guideline.

 


This makes eVersion Media Server most suitable for the integrating corporate  marketing systems with the facebook and twitter based social media systems, ultimately providing performance measurement for their business strategy and the level of customer satisfaction.

 

 

Social Media in some sense,  represents Social Consciousness on the current social issues and social trends, with highly evolved sensibility on the underlying topics or issues. 

 

Great care is required to understand and appreciate the feedback received from the Facebook and Twitter.

 

eVersion Service Portal is designed to provide a moderator service provider (Q&A using a kind of Wikipedia principle) for the well orchestrated debate on the marketing campaigns, where honest and relevant opinions  are separated from the “Noise” coming out from the Facebook and Twitter based opinions.

 

eVersion Service Portal, with eVersion Media Server can be bused to setup and manage the followings service scenarios:

 

  • Provides Balancing act - eVersion Service Portal as Security Filter for Corporate mobile devices
  • To set up Marketing campaign and capture market Intelligence, with a moderator functionality for the customer feed back
  • For New market penetration
  • For New Product (Service) introduction and measurement of product performance
  •  Corporate response on environment and ecology related issues.

 

CLOUD Computing for eVersion Application

 

The agile structure of the eVersion pattern based Enterprise Application, makes it  ideally suitable for deployment in public or private Clouds, where modification and maintenance of the eVersion application can be carried out by small and selected number of Systems Analysts, reducing over all cost of maintaining enterprise application through its life cycle.

 

 

Prototypes and Business Plan for eVersion Technologies.

 

Prototypes of eVersion platform based applications, and constructions of eVersion based Web Service Injection, and Conception of Web Serviceare completed, and developing a prototype for the eVersion Service Portal

 

We are presently in process of coding eVersion Portlets for Microsoft ASP.NET MVC3, and Java EE6 MVC platforms.

 

 

Gautam Pandya , Chief Architect

www.xHindge.com

Published : December 2, 2011

Revised :  April 5, 2012

------------------------------------------------------------------------------------------

References for xHindge eVersion pattern

 

 1.         File:MorinSurfaceFromTheTop.PNG  

 File:MorinSurfaceFromTheTop.PNG

  

 

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.

 

 2.    FGDC Geospatial Metadata 

      http://www.fgdc.gov/metadata

 Geospatial metadata commonly document geographic digital data such as Geographic Information System (GIS) files, geospatial databases, and earth imagery but can also be used to document geospatial resources including data catalogs, mapping applications, data models and related websites

 

3. Inversion of Control Containers and the Dependency Injection pattern

http://martinfowler.com/articles/injection.html 

(23 January 2004: Redid the configuration code of the interface injection example)

 

 

4.     Dependency inversion principle

http://en.wikipedia.org/wiki/Dependency_inversion_principle

 (1 November 2011 at 21:32.)

 

The principle requires that:

1.  High-level modules should not depend on low-level modules. Both should depend on abstractions.Abstractions should not depend upon details. Details should depend upon abstractions.

Various patterns such as Plugin, Service Locator, or Dependency Injection are then employed to facilitate the run-time provisioning of the chosen low-level component implementation to the high-level component.

 

Applying the dependency inversion principle can also be seen as applying theAdapter pattern, i.e. the high-level class defines its own adapter interface which is the abstraction that the high-level class depends on

 

 

5.    Microsoft MVC 3 Persistence Ignorance in the Entity Framework 

     http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/136d8499-699a-4703-adc5-ac696d00496e/  

 

6.       Java EE 6  stateles persistence  

http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html

 

7.      Aspect-oriented programming

Separation of concerns  of such aspects as logging and persistence from business logic is the aim of aspect-oriented software development (AOSD)

 

8.   Google-Guice 

    Guice alleviates the need for fact   ories and the use of new in your Java code. Think of Guice's @Inject as the new.

 9.        Java Observer and ObservableAn introduction to the Observer interface and Observable class using the Model/View/Controller architecture as a guide

 10.        Microsoft Observer 

          MVC Observer Pattern based Observer

11.      Microsoft AllFacebook‎ -2012-02-17,

Facebook users can share their experiences with their friends via the msnNOW Facebook Reader. Microsoft's Demand Dashboard is the engine that propels msnNOW ... 

12.   Inside Google's bet on 'consumerization' - Big Tech - Fortune Tech

  tech.fortune.cnn.com/2012/.../inside-googles-bet-on-consumerization...Cached – Google's sales to large businesses are still relatively small, but the company is making rapid gains. And it plans to ride the wave of. 

13.  Product Review: Google+, Consumerization of IT, and Crossing The ...

www.enterpriseirregulars.com/.../product-review-googleplus-consum...Cached3 Jul 2011 – The five pillars of Consumerization of IT (CoIT) fall in Google's favor as consumer users rapidly seek to bring these innovations into their ...

 

14.       social media Widgets of IBM® Connections (IBM®)

(http://www-01.ibm.com/software/lotus/products/connections/)

 

15.         Blackberry Enterprise Server Express

(http://ca.blackberry.com/business/software/besx/)

 

16.        Middleware (distributed applications)

 Middleware in the context of distributed applications is software that provides services beyond those provided by the operating system to enable the various components of a distributed system to communicate and manage data

-----------------------------------------------------------------1.     Content of this document including eVersion Software Pattern, eVersion Domain, eVersion Controller, eVersion Framework, eVersion Portlet, Web Service Injection, Web Service Conception, and eVersion Service Portal are proprietary intellectual properties, and may not be copied, duplicated or used without prior, written permission from the www.xHindge.com account holder.

 2.     xHindge (www.xHindge.org) was originally registered as a web service providing business in the initial version of IBM operated UDDI Web service Registry (https://uddi.ibm.com/ubr/registry.html )

 Gautam Pandya

www.xHindge.com

 


xHindge Software Pattern, including xHindge Algorithm, Core Components, Application Domain Architecture and xHindge Session Facade are proprietory intellectual properties, and may not be copied, duplicated or used without prior, written permision from the www.xHindge.com account holder


Website powered by Network Solutions®