WebML is a web modeling language or as they say a visual notation for specifying the content, composition, and navigation features of hypertext applications, building on ER and UML . We can say that WebML is a DSML (domain-specific modeling language) for the web domain (but note that it was created before all this new DSML movement became popular) that started with simple features for data-intensive web applications and that has been extended to cover business processes, rich-internet applications and so on.
Since I believe we can all learn a lot from their success story and design/strategy decisions I decided to interview Stefano as part of the A coffee with series of interviews with MDD tools creators . This is the result. I hope you enjoy it!
Jordi Cabot (JC) Welcome Stefano. To begin with, can you tell us when did you start developing WebRatio
Stefano Butti (SB) The first version of WebRatio was released in 2000. The first version was developed by a research team at the Politecnico di Milano lead by Stefano Ceri and Piero Fraternali. That first version was based on the WebML modeling language and dedicated to the production of data-intensive web applications, which was the most common data application at the time. Researchers thought that development of this kind of applications could be automated by using the model of the application. Thats how WebML started.
JC Is WebML a DSL?
SB Yes, it is a DSL for the specific domain of web applications. Concepts in WebML are pages, contents inside pages, links, user interactions and the operations that need to be executed in the server as a consequence of this user interaction.
JC So, there is an obvious question, here: Why creating a new language and not a web profile for UML?
SB UML is not enough for expressing the execution aspects we required. Jim Conallen tried to propose such UML profile for the web but in our opinion it was not enough to represent all the aspects of the web application we wanted to specify. Furthermore, the UML notation could be cumbersome when you aim at a very detailed specification of Web application features. Thats why the research team created a new language with the specific intent of being able to execute the model or, better said, to transform the models into executable code. So, to sum up, the main reason is that UML is not executable.
JC Since 2000, the tool has evolved a lot. What have been the major improvements
SB Exactly, the tool started in the domain of data-intensive of web applications. However, one year after founding the company (in 2001) the tool started to evolve quickly.
First, the tool embraced an open environment vision. By open we mean that the user can define his own modeling components to complement WebML. For each new component, you define the component at the model level, how this component relates to the other modeling components and how the component is translated into running code. These components can be reused in other projects and can even be exchanged with other companies. Apart from adding new components, companies can adapt the generation rules for the existing modeling elements (e.g. to integrate with existing CRM systems or web services already existing in the company).
Then, we extended WebRatio for service-intensive web applications, covering the SOA world and allowing the definition of orchestration and choreographies of web services.
Another very important point is the customization of the visual identity of the application. The UI is what in the end the final customer sees so it has to be perfect and tailored exactly to what the customer needs. This is an area in which many other MDD tools fail. In those tools, the generation of the user interface is mostly predefined and only limited changes can be done. We let the user of WebRatio to define his own interface template. The presentation layer is completely customizable. Thanks to this we have been able to build complex web portals with WebRatio, like the ACER computer portal. Even if its hard to believe, this site is automatically generated! UI templates are written in HTML where you can add custom tags. These custom tags are linked to specific modeling elements so that the generation process provides the right graphical representation for each element.
Our latest improvement is the support for BPMN and business processes. We found out that our approach could also work very well starting from a business process perspective and business process management applications. We now have a two-layer modeling phase: you can start by defining your business process and then for each component of the process (activity, event, ) you can open the component and define inside the component the WebML that corresponds to that component. For instance, an activity create an invoice is just a box at the BPMN level but with WebRatio you can double click on the activity and define a WebML model that precisely specifies how the invoice is created (what would be the entry form, what web pages would be involved, ).
The BPMN community is quite fond of this two-phase approach since some people in that community start to realize that BPMN is not enough and needs to be complemented to automate the production of business process management applications.
JC WebRatio follows a code-generation approach and not a model interpretation one, right? Also, WebRatio focuses only on Java code?
SB Exactly, I read your post about this and WebRatio is a code-generation tool. We believe this is the right approach for a model-driven environment for several reasons. The first one is that when you must run the generated system, the system has to be as standard as possible. Customers in our experience dont like at all proprietary solutions for the run-time environment. They want to run the final application in their own infrastructure and in our context, they are mostly interested in java-based applications.
JC So, you dont think that having to deploy your generated application is a problem for them (model interpretation approaches release clients from that burden)
SB No, on the contrary. In our experience, customers already have their own IT infrastructure in place they would like to use and what they dont want is to install a new runtime environment that they cannot control. In the most common scenario, after modeling the application with WebRatio a WAR file is generated so customers just need to deploy the WAR file in the application server.
JC Whats the Java architecture you use when generating the code?
SB We use a three-layer architecture. We use JSP for the presentation layer, an MVC framework like struts for managing the navigation, Hibernate for accessing the data layer and standard web service libraries to connect to external web services.
JC But only Java so if I want a PHP application WebRatio is not the right tool for me?
SB In theory you can do it (the model is decoupled from the generator) but right now the generator focuses on Java platforms.
JC And why is that? Its because of the kind of clients do you have? My feeling is that your clients are mostly big companies which may prefer to use Java technologies instead of something like PHP
SB All our clients are OK with using Java. The tool itself is written in Java so this is our natural environment. Generating Java is also very important for performance reasons. Many customers are worried about performance. The fact that we generate a standard java application allows customers to improve the performance using the same strategies they would use for other Java applications. We believe that if we wouldnt follow this code-generation approach focused on Java applications we wouldnt have many of the customers we have in the bank and financial sector where performance is a complete must.
JC As basically all MDD vendors, your web page contains some claims about the productivity improvements you get when using your tool . How can you be sure about that
SB We try to follow a very scientific way. We measure productivity by counting function points of the generated applications and compare this productivity with the function point productivity in a hand-coded application. We have a presentation in slideshare where we describe in more detail our productivity gains
JC Now about the business model. You sell tool licenses but you also offer services to develop products for interested companies
SB Yes, Id say this is quite normal. You need to show to customers that your application works and the best way to do it is to build an application for them with your tool. We are a product company, we only have the service business line to showcase the tool to potential customers. In the most common case, to get a new customer we first build together an application with him, maybe a second one and then a few months later the customer is willing to get a license because it is convinced about the benefits of using the tool.
Also, to enable customers to use the tool without our help (which is our final goal) we have a public wiki in which we publish a lot of articles covering different aspects of the tool and their application on different scenarios.
JC Who are your main customers?
SB We have different segmentations. From a technology perspective we focus on Java users. From a customer size perspective we approach both big and small companies. Since WebRatio is domain-independent we cover all kinds of companies (financial sector, utilities sector, information technology, ). Our tool is adopted both by end customers and by software houses and consulting & system integration companies that build applications for their customers. Also, we are now building an international partner program, for instance we have now an office in Ecuador (started two years ago and working well), we have also competence centers in Spain, in Germany and in Romania.
JC You also have an academic license. What do you, as a company, expect from this academic program?
SB There are three main reasons for an academic license program. First, visibility. WebRatio is used in hundreds of universities all over the world. Also, it happens often that students using the academic license talk about WebRatio in their workplace once they finish the university studies. Anotherreason is for research purposes. We have some researchers in universities outside the group in Milan that help us explore new features for WebRatio.
JC And how do you manage this relationship with research groups. Do you approach them explaining your needs or adopt a more passive role?
SB We try to be very active. University is a very important resource for us but must be guided otherwise they go in directions very far from our needs. We have regular meetings with close researchers (e.g. every three months) where we put on the table our needs, they explain their ideas and we try altogether to find a matching. Its important that researchers are creative but we need to explain them the input we get from the market.
JC And what kind of relationship do you have with your customers? Do they influence future requirements for WebRatio?
SB Absolutely. The improvements I explained before were suggested by our customers. At least once a year we do a survey and meetings with customers where we collect suggestions from them. Id say 50% (or maybe more) of the new features are in response to requests from the market.
JC How WebRatio deals with the maintenance and evolution of generated systems?
SB Here it is where WebRatio does its best. If requirements change we can just go back to the model and regenerate (and redeploy) the web application. Obviously, you must perform all the modifications inside the development environment, you cannot modify the generated code.
Note that, also, generating standard Java code helps to convince clients about using the tool. If WebRatio disappears for any reason they will still have the source code of the application that they will be able to modify at will. This is a psychological reason to convince customers since they dont feel the vendor lock-in syndrome.
JC Another point is collaborative modeling. What are WebRatio features in this area?
SB WebRatio reuses all tools in the Eclipse Deveopment environment. As such, we can use the standard subversion tools to version all the models and facilitate collaborative work. Moreover, we have our own model comparison tool that shows the differences between two versions of the models in a graphical way.
JC And what about the support for business rules (e.g. in OCL) as part of your business processes definition?
SB We dont support OCL or similar languages as part of the business process definition. However, this can be done as part of the WebML level of the model (e.g. a business rule could be defined as a validation rule to be verified in the first page of a WebML model corresponding to a given activity in the business process). These validation rules can be written in OQL, implemented as calls to an external service or directly expressed in Java.
JC How do you deal with the non-functional requirements of the system ?
SB Theres no explicit support for non-functional requirements in general but we have specific solutions for some of them. Moreover, since customers can adapt the generation rules and create their own templates they can change whatever they need to achieve those NFRs. This is the case for instance of customers needing a given accessibility level in the application web pages.
Other non-functional requirements like performance can be solved by the client by adapting the deployment infrastructure for the generated war file. Security aspects are already embedded in the generation process.
JC Any plans about adopting Eclipse modeling technologies (e.g. EMF) in a near future?
SB Not really. We believe that these technologies still suffer from efficiency problems. For very large models the system freezes.
JC What kind of model quality checks are provided in WebRatio
SB The tool checks the well-formedness of the models. Users can also write validation rules when developing new modeling components.
JC What software development process do you use yourselves to create the WebRatio tool?
SB Technically, WebRatio is an Eclipse plug-in. WebRatio is developed in Java using the Eclipse IDE, we dont have a model-based generation process for WebRatio itself. As for the development process we follow standard practices.
JC What would you say is the most challenging aspect when developing a tool like WebRatio?
SB Hiding and showing the complexity of the tool depending on what the user wants. For some users, we need to hide the complexity as much as possible but for others we need to offer him all the configuration possibilities of the tool. For instance, for us, its very difficult to decide the user interface of the tool.
JC Can you comment on the future evolution of the tool in the next five years?
SB There are several lines we will continue in the next years. We will continue working on BPM exploring complementary areas as social BPM. Another area is user interface customization. In this area, we would like some tool to facilitate the definition of the HTML templates for the visual identity of the generated applications. A third line is testing. We would like to generate a testing suite automatically from the model. We would also like to integrate the tool with user requirements management systems. We would like to keep a connection between those high-levels requirements specifications and the models. Finally, we are also interested in function point analysis. Many call for tenders in public projects require providing estimations in terms of function points so we would like to add some functionality in the tool that helps our customers to provide that information with more precision.
A very interesting interview that I hope you all have enjoyed. Visit the WebRatio web page for more information and do not hesitate to give your opinion on the questions and answers of this interview by adding your comments to this post.