Tuesday, February 17, 2009

Web Modeling - Web Development by Model Driven Approach

What is Modeling?

Modeling in the IT arena is focusing on to visualise the concept defined in wordings, i.e., a model represents a part of reality (target) which was specified by a modeling view and described by modeling facilities in order to the purposes for recognition, understanding, and manipulation of the target.

Web Modeling:

It is a branch of "Web Engineering", which majorly addresses the issues related to the web application's design and development.  It is as similar as we have application modeling tools for object oriented programming i.e., UML. 

The main orthogonal models that are involved in complex Web application design are: data structure, content composition, navigation paths, and presentation model.

There are several web modeling languages and notations are available, some of them are as follows:

1. OOHDM ((Object Oriented Hypermedia Design Method)

It was one of the first methods to postulate the separation of concerns that defines its various models - requirements, conceptual, navigation, abstract interface and implementation. 

2. WebML (Web Modeling Language)

It provides graphical, yet formal, specifications, embodied in a complete design process, which can be assisted by visual design tools, like WebRatio.

3. UWE (UML-based Web Engineering)

It follows the separation of concerns building separate models for requirements, content, navigation, presentation, process, adaptation and architecture.

Here we will describe more about the WebML (Web Modeling Language)

Requirements for Web modeling

1. Expressiveness
     
  1.1  Real-life cases should be expressible
        1.2  Frequently used design patterns should be captured

2. Ease of use
       
2.1  Intuitive notation
        2.2  Clear semantics
        2.3  Consistency checks

3. Implementability
        3.1  Efficient mapping to physical data structures
        3.2  Flexible code generation from behavioral specifications

Purpose of WebML 

1. WebML aims at providing a structured approach to the design of Data-intensive Web sites.
2. A set of integrated Models should help designers in high-quality Web sites production.
3. All the facets of Web design should be addressed.
4. Use of old or uncoherent methodologies becomes deprecated.

The WebML models

WebML: a conceptual language for high-level design of data-intensive web sites

Following Models Could be produced by WebML

Structure: data organization.
Derivation: redundant data definition.
Composition: definition of site pages as set of subpages and elementary publishing units.
Navigation: definition of links between pages and between units.
Presentation: positioning of the units in the page and definition of graphical appearance.

IMPORTANT:

WebML is not a good tool for small and static websites.

1. Structure Model 

Simplified Entity-Relationship model
1. Binary relationships between entities
2. IS-A hierarchies
3. Simple typed attributes in entities
5. Derivation model can be applied for redundant data

Above diagram is showing Structural Model

2. Derivation Model

Redundant data can be easily specified using a WebML-OQL (Object Query Language). 
E.g.:
Author.BooksNumber = count(self.Author2Book)
BestSeller := Book where Book.Sales > 50,000

Above diagram is showing Derivation Model

3. Hypertext Model

1: Content Units (Composition)
2: Links (Navigation)
3: Pages (Composition)

4. Composition

To publish information about A SINGLE object (e.g. AuthorDetail)




5. Navigation Model: Links

Semantics of a link: 
1. Moving from one place to another
2. Transporting information from one place to another (navigation context)
3. Activating a computation (side effect)


6. Composition: Pages

A Page is a structured container of units and links 
   1. Possibly structured in and/or sub-pages
   2. Abstraction of screen, frame, card, deck...
   3. Permits one to cluster related information for more efficient communication


Contd.....

1 comment:

  1. WebML has been around for some time now, and it’s implementation (www.webratio.com) has quite a community of developers. When we started, we aimed at a dramatic simplification of Web development. After ten years of experience, the tool and the language have matured. They are more targeted to professional developers, with the possibility of incorporating arbitrary JEE components in the language and code generator and modeling advanced aspects, like Web Service interactions, workflows, etc.

    The latest achievement, one of the most interesting in my opinion, is the novel idea of deriving WebML models of Web applications directly from the BPMN schema of a business process. This works nicely and, if you hide the webML part, you can even generate an open JEE running application directly from the BPMN schema of the process, which is quite amazing.

    ReplyDelete