On the last Friday of every month codecentric hosts its “Fridaymeeting”. It’s a good opportunity to spend time from everybodys 20%-time contingent for professional development and discuss news in technology, products or other interesting topics. Every now and then we also invite companies to present their newest products.
Last Friday Progress Software was our guest; a company less known by their name but rather by their products, like the Java Messaging / Enterprise Service Bus “Sonic MQ/ESB“, or the JDBC/ODBC driver “DataDirect“. Recently Progress was in the news because of the acquisitions of IONA and Mindreef. With these two new companies Progress extends its broad SOA product portfolio, of which Eric Schaumlöffel presented the products “Actional” and “DataXtend SI”.
Progress Actional provides runtime monitoring and security capabilities in a SOA with the option to actively intervene with the message flow. To achieve that, Actional instruments the participating services on application and protocol stack level (HTTP/S, IIOP, RMI, JMS, TCP) while keeping the runtime overhead low.
Without further configuration load and direction of the communication channels in the surrounding of instrumented servers can be monitored. With telling Actional where to find specific, business relevant, properties inside the message, those messages can be marked with a unique tracer. So incoming and outgoing messages can be related – also when using different protocols – and assigned to an overarching business process. This global business process can be drilled down to method level with the Actional UI. Additionally policies can be enforced, so that for example only certain systems may communicate with each other.
In Essence, Actional provides on SOA level what dynatrace is able to do for Java and .NET applications with its PurePath technology, although there certainly are overlaps in the areas in which these two products can be applied. It might feel a little strange to implement security relevant aspects of your SOA with a monitoring tool, but it makes sense if you turn this around: It’s rather so that Actional is designed and positioned as product for runtime SOA Governance. All technical necessities that are present for implementing such security relevant functions, produce the monitoring as a by-product.
Progress DataXtend SI
Progress DataXtend SI helps with the integration of services into a SOA. A reoccurring error that is made during the planning of a SOA is to concentrate on the technical connection of the services and protocols to a common communication system. This saves the costly n:m integration effort of all systems, but leaves the problem how theses systems communicate unsolved. Just because I can call and reach about any person on this planet with my mobile, it does not mean that I can communicate effectively with him or her, because we are not speaking the same language. In that sense, DataXtend is the Merriam-Webster of Esperanto, it provides for the usage of a Canonical Data Model and abilities to map it to the (legacy) services in the SOA. The modelling happens in the well known Eclipse IDE, enriched with specific plug-ins. At runtime, the data transformation can either be deployed as a stand-alone service in the SOA, or as adapter between the service and the ESB.
DataXtend can handle huge models like the Shared Information and Data (SID) Model from the TeleManagement Forum and offers all options and details, you would expect from a model mapping tool. In addition to the pure modelling you can also create validation rules, that can also be tested against the mapping. A rule could be “If incoming message is a relocation, then two addresses need to be present”. It would be interesting to know, if and how you could do that automatically in a continuous integration environment.
With the possible deployment of the DataXtend SI Runtime as Mapping und Validation Service Engine the integration into a JBI container works without problems. A welcome feature for that is that the SI Engine can be generated with all necessary mappings directly from the SI Designer.
DataXtend SI has to stand the comparison to heavy-weight products like SAP NetWeaver Master Data Management, IBM InfoSphere Master Data Management Server, or AquaLogic Data Services Platform. At first glance DataXtend is en par with the modelling possibilities, but is more flexible and lightweight at deployment. The approach of Master Data Management is more holistic in nature and aims at encapsulating all data in a SOA, to prevent multiple and different copies. While this is an desirable goal, DataXtends makes it possible to achieve this goal incrementally.
As a last point on the agenda, Carsten Mjartan presented JavaRebel. With this tool Java’s hot deployment capabilities are considerably improved. Theoretically this capability exists since JDK 1.4 (in IDEs like Visual Age for Java even longer; for Smalltalk much longer), but are constrained to changes, that do not impact the class signature. With JavaRebel, which hooks into the JVM as -javaagent, you save a good share of server redeploys and restarts, according to Carstens experience. JavaRebel monitores the generated class files in your IDE and propagates the changes to the runtime environment, while the application state is completly kept. Changing EJBs and test the new logic with a simple refresh of the browser? Not a problem any more!