From the Trenches Series: db BausparenOnline

Discussions

News: From the Trenches Series: db BausparenOnline

  1. From the Trenches Series: db BausparenOnline (19 messages)

    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.

    Threaded Messages (19)

  2. Great Initiative[ Go to top ]

    This is a GREAT initiative from MiddleWare ! Another trend Setter !
  3. Offline Client[ Go to top ]

    Great initiative.
    The offline client is very interesting (local tomcat). I just wondered how do they rollout this architecture ? (WebStart? CD?)
  4. Offline Client[ Go to top ]

    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
  5.   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
  6. Offline Client[ Go to top ]

    The client is rolled out with CDs. The server ist always compatible with one older Version.

    Joachim
  7. Technologies[ Go to top ]

    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
  8. Technologies[ Go to top ]

    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
  9. Technologies[ Go to top ]

    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.
  10. Technologies[ Go to top ]

    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.
  11. Possible Improvements[ Go to top ]

    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
  12. Possible Improvements[ Go to top ]

    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.
  13. 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
  14. 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
  15. Model Driven Architecture (MDA)[ Go to top ]

    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.
  16. Model Driven Architecture (MDA)[ Go to top ]

    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
  17. 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
  18. Questions on MDA[ Go to top ]

    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
  19. 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.
  20. Questions on MDA[ Go to top ]

    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.