The db BausparenOnline application integrates with an existing mainframe application and provides support to three distinct client sets, each with different user interfaces.
This article shows how the project was built using a model-driven development (MDA) architecture and MDA tools. It looks at the design of the various application layers such as the integration tier, the presentation, business, workflow management, and data access tiers. It also looks at how much code generation was used across the various layers of the application.
Overall this project had elements of complexity, integration, and scale that makes it an educational, real-world story.
Read From the Trenches Series: db BausparenOnline
This was one of the stories submitted after we asked the community for real world project stories. If you have any interesting stories about real-world J2EE projects, you can submit them to editor at theserverside dot com.
-
From the Trenches Series: db BausparenOnline (19 messages)
- Posted by: Nitin Bharti
- Posted on: May 12 2003 21:37 EDT
Threaded Messages (19)
- Great Initiative by Ambal S on May 14 2003 00:23 EDT
- Offline Client by Stephane Valseme on May 14 2003 05:01 EDT
- Offline Client by Floyd Marinescu on May 14 2003 11:47 EDT
- If we could get some answers from people... by Milan Trajkovic on May 15 2003 03:55 EDT
- Offline Client by Joachim Purgahn on May 20 2003 04:21 EDT
- Offline Client by Floyd Marinescu on May 14 2003 11:47 EDT
- Technologies by St?phan Mestach on May 14 2003 07:09 EDT
- Technologies by Floyd Marinescu on May 14 2003 11:45 EDT
- Technologies by Joachim Purgahn on May 20 2003 04:25 EDT
- Technologies by Joachim Purgahn on May 20 2003 04:23 EDT
- Technologies by Floyd Marinescu on May 14 2003 11:45 EDT
- Possible Improvements by Abhijit Deb on May 14 2003 14:53 EDT
- Possible Improvements by Joachim Purgahn on May 20 2003 04:27 EDT
- Question: synchronization with disconnected clients by Sergiy Litsenko on May 15 2003 03:45 EDT
- Answer: synchronization with disconnected clients by Joachim Purgahn on May 20 2003 04:30 EDT
- Model Driven Architecture (MDA) by Tendayi on May 15 2003 11:23 EDT
- Model Driven Architecture (MDA) by Ray Harrison on May 20 2003 15:33 EDT
- From the Trenches Series: db BausparenOnline by David Jones on May 15 2003 12:45 EDT
- Questions on MDA by Benjamin Schmidt on May 22 2003 14:37 EDT
- Answer: Questions on MDA by Joachim Purgahn on May 23 2003 13:44 EDT
- Questions on MDA by Reima Laaksonen on May 27 2003 09:03 EDT
-
Great Initiative[ Go to top ]
- Posted by: Ambal S
- Posted on: May 14 2003 00:23 EDT
- in response to Nitin Bharti
This is a GREAT initiative from MiddleWare ! Another trend Setter ! -
Offline Client[ Go to top ]
- Posted by: Stephane Valseme
- Posted on: May 14 2003 05:01 EDT
- in response to Nitin Bharti
Great initiative.
The offline client is very interesting (local tomcat). I just wondered how do they rollout this architecture ? (WebStart? CD?) -
Offline Client[ Go to top ]
- Posted by: Floyd Marinescu
- Posted on: May 14 2003 11:47 EDT
- in response to Stephane Valseme
Great initiative.
>The offline client is very interesting (local tomcat). I just wondered how do they rollout this architecture ? (WebStart? CD?)
Unforunately we (TSS as authors) can't really reveal any more than we did in that article. Hopefully some of the Bausparen developers might drop by to answer more questions.
Floyd -
If we could get some answers from people...[ Go to top ]
- Posted by: Milan Trajkovic
- Posted on: May 15 2003 03:55 EDT
- in response to Floyd Marinescu
Unforunately we (TSS as authors) can't really reveal any more than we did in that article. Hopefully some of the Bausparen developers might drop by to answer more questions.
>
> Floyd
The article is very interesting. I realy hope that some of people that took part could answer some of our questions.
E.g. which requirements BEA server fulfilled in order to be choosen as App server (what BEA does better than other app servers).
Regards, Milan -
Offline Client[ Go to top ]
- Posted by: Joachim Purgahn
- Posted on: May 20 2003 04:21 EDT
- in response to Stephane Valseme
The client is rolled out with CDs. The server ist always compatible with one older Version.
Joachim -
Technologies[ Go to top ]
- Posted by: St?phan Mestach
- Posted on: May 14 2003 07:09 EDT
- in response to Nitin Bharti
Great idea...
i'm curious in knowing what technologies are used on client and server side ?
did they used
- open source frameworks like Struts or so ?
- JMS,...
- other tools ?
I think the architecture is well covered. It would be great if technical choices where also given and commented... I'm a bit exigent...
thx to BausparenOnline and TSS, it's still a great idea to show us poor developpers and architects such "success" stories.
Stéphan -
Technologies[ Go to top ]
- Posted by: Floyd Marinescu
- Posted on: May 14 2003 11:45 EDT
- in response to St?phan Mestach
Guys, keep up the feedback. We want to make these articles as awesome and educational as possible. FYI, they did use Struts to write their presentation layer. I'm not sure about the use of JMX.
Floyd -
Technologies[ Go to top ]
- Posted by: Joachim Purgahn
- Posted on: May 20 2003 04:25 EDT
- in response to Floyd Marinescu
I'm verry sorry to answer so late! We first had to overcome publication restrictions. It was our mistake that we
haven't done this earlier. -
Technologies[ Go to top ]
- Posted by: Joachim Purgahn
- Posted on: May 20 2003 04:23 EDT
- in response to St?phan Mestach
We use Struts in the presentation layer.
To communicate asynchronously between EJB components we use JMS and Message Driven Beans
and the internal JMS Server of BEA WebLogic.
We don't use JMS with MQSeries because the original Java MQ API which is used instead is faster.
Other tools and libraries we use are Tomcat, Xerces, Xalan, Lucene for example.
The most important tool of our development process is ArcStyler with Rational
Rose. -
Possible Improvements[ Go to top ]
- Posted by: Abhijit Deb
- Posted on: May 14 2003 14:53 EDT
- in response to Nitin Bharti
This is a great educational article. But I would like to know what better approaches could have been taken, given the current technical possiblities. For example, integrating to the mainframe using MQ sounds rather retro. I read the comment about SOAP being unavailable at that. But how SOAP would have solved this problem better, someone should explain. Also there is no talk about managing the CICS transactions. Was there no need to have a seamless transaction across the all boundaries?
Thx,
-Abhijit -
Possible Improvements[ Go to top ]
- Posted by: Joachim Purgahn
- Posted on: May 20 2003 04:27 EDT
- in response to Abhijit Deb
The decision to use MQ was made with respect to reliability, security and the established IT environment in our company. It was a kind of conservative decision.
SOAP would not solve our problem better. But we could whithin our MDA approach relativly easy migrate our project to SOAP, if it would do this in future.
The architecture is not based on seamless transactions across the server-mainframe boundary and in our system there is no need for it. Therefore our XML protocoll permits the server side to define groups of methods, send them in one request to the mainframe system where they are executed in one CICS transaction. -
Question: synchronization with disconnected clients[ Go to top ]
- Posted by: Sergiy Litsenko
- Posted on: May 15 2003 03:45 EDT
- in response to Nitin Bharti
Did developers of BausparenOnline have implemented a synchronization with disconnected clients in case some changes in business or presentation logic takes place?
And How?
Regards,
Sergey Litsenko -
Answer: synchronization with disconnected clients[ Go to top ]
- Posted by: Joachim Purgahn
- Posted on: May 20 2003 04:30 EDT
- in response to Sergiy Litsenko
The truely disconnected clients are updated only with rollouts.
Interesting are the clients which are sometimes connected.
Here we implemented a versioning mechanism that supports one older version than the actual server version of XML data structures (sure there are restrictions in possible changes).
With a release id that the client sends with every request, the server knows with which version of the requested object he has to answer transforms it and serializes it in this kind.
This mechanism is incorporated in XML Tranfer classes which are responsible for parsing and writing value objects.
Alongside we have a versioning mechanism on business methods on the server. The server must hold out older method versions which gets another name. After parsing the request the system knows whether the actual method version or the older version has to be called (again here we have restrictions to possible changes).
Joachim -
Model Driven Architecture (MDA)[ Go to top ]
- Posted by: Tendayi
- Posted on: May 15 2003 11:23 EDT
- in response to Nitin Bharti
The use of MDA interests me most here. At first glance, code generation is nothing new many of have been using it to eliminate the drudgery of routine tasks. MDA takes this a step further in-fact it does not directly mandate code generation as much as it implies it. The main thing it aims to define is separating your logical application from its physical implementation, which is very powerful.
The integration of MDA and complex runtime environments like J2EE and .Net promises much fun and benefits for developers and project sponsors alike. -
Model Driven Architecture (MDA)[ Go to top ]
- Posted by: Ray Harrison
- Posted on: May 20 2003 15:33 EDT
- in response to Tendayi
MDA is certainly interesting. We are using EMF (Eclipse) to generate an implementation of the Common Warehouse Metamodel (CWM) from the Rational Rose model that can be downloaded from OMG's web site. This has saved us a tremendous amount of time and has allowed us to get on with the real meat of the work. We are deploying this in a J2EE environment which is a natural since it avails itself to working with a wide array of data resources. Maybe I'll throw together a paper on this later...
Cheers
Ray -
From the Trenches Series: db BausparenOnline[ Go to top ]
- Posted by: David Jones
- Posted on: May 15 2003 12:45 EDT
- in response to Nitin Bharti
Not a bad high level article but it left me with with a lot of the same questions people have mentioned here.
I would suggest if someone publishes their projects architecture here they should also be available to answer questions on the discussion board.
David -
Questions on MDA[ Go to top ]
- Posted by: Benjamin Schmidt
- Posted on: May 22 2003 14:37 EDT
- in response to Nitin Bharti
Impressive project in terms of diverse technologies and code generation.
But why is this MDA? What is the difference between a UML tool with a powerfull generator and a MDA tool? Code generation is not new, so I do not understand really what is MDA about all this. Is there a difference between generating code from UML models and MDA? If it is the architecture or design how can a tool support this? Sorry, I am only a poor programmer but maybe one of you guys can put me wise.
Benny -
Answer: Questions on MDA[ Go to top ]
- Posted by: Joachim Purgahn
- Posted on: May 23 2003 13:44 EDT
- in response to Benjamin Schmidt
MDA is about generating code from UML model
with a special purpose. MDA forces to separate
business logic and application logic from technologie.
You maintain a platform independent model (PIM) which is
enriched with exchangeable platform specific parameters
to the platform specific model (PSM).
The PIM gives a platform independent overview of the
software architecture with its layers, their dependencies and
responsibilities. The technologie is plugable and hidden
in templates and framework code.
The tool we use is ArcStyler with Rational Rose.
Rose for UML modeling where we expanded the parameters
of model elements to fit our needs. ArcStyler is used
for code generation and template development. It provides
an IDE for template development with debugging
possibilities with which we are able to rapidly
develop and maintain our templates. -
Questions on MDA[ Go to top ]
- Posted by: Reima Laaksonen
- Posted on: May 27 2003 09:03 EDT
- in response to Benjamin Schmidt
Benny, for general information about MDA and an overview of MDA tools go to http://www.omg.org/mda.
From my experience, a good MDA tool is a lot more than only a generator. For example, it enables model-to-model transformations (this is how you get from a PIM to a PSM). This means that you have tool support in keeping the business and application logic separate from the technology-specific aspects.
Also, it generates not only the code but the complete fan-out for testing and deployment. In addition, an MDA tool allows you to debug your system at the model level.
I know ArcStyler from some research projects. The program uses so-called MDA Cartridges which contain the templates for model-to-model and model-to-code generation, verifiers for model debugging, configuration settings and other things, each of the cartridges for a different technology platform. The cartridges are built with the ArcStyler IDE according to the MDA approach (this means that the cartridges are themselves generated from models). There are lots of open-source cartridges at http://www.mda-at-work.com.
ArcStyler supports for example cartridge inheritance so this is a lot more than just a generator. Also it provides full integration of the modeling tool and the MDA tool so that you do not have to run XMI exports and imports all the time but always work with the same repository.