Quick thoughts on things
Difference between monitoring and reporting PDF Print E-mail
Written by Chintan Rajyaguru   
Tuesday, 19 May 2009 16:39

About a year ago, I wrote about how to think about a monitoring solution in the SOA/BPM world . The focus was on the holistic thought process for an enterprise wide monitoring strategy. My experience at the time was (and still is) that IT often doesn't understand the difference between reporting and monitoring. A monitoring solution often gets picked just because it sounds like a cool new technology (not to mention it makes the resume attractive) and business likes to idea of having pretty looking dials, charts and graphs.

Monitoring and reporting are two different concepts. A business solution may utilize both to satisfy the business requirements. Keep in mind the following differences between them when picking one versus the other:

  • Reporting is a data driven solution, which shows information about the business. This makes the report a snapshot of some business information at a given point in time. On the other hand, a monitoring solution is an event based solution, which shows what is happening during business execution. This makes monitoring solution a 'view' into the business. The view is not a time based snapshot. It tells you what is happening now
  • A report largely shows historical data. It's the information after the fact whereas a monitoring solution can show current information, historical information and even trends
  • A report tends to be static. There are solutions where business users can generate ad-hoc reports. However, these ad-hoc reports merely given enhanced filtering or query capabilities on the business data. Monitoring, on the other hand, is much more dynamic. It allows insight into the business from different perspectives. Depending on the solution used, it can even allow the business to reshuffle things and dynamically change business process to respond to the monitored events. For example, a monitoring solution can keep an eye on the number of claims arriving in a particular processing center. If the number goes beyond certain threshold the business can route new claims to a different processing center on the fly
  • The only source of information for reports is database. In case of monitoring, the information being monitored does come from the database from technical perspective but the source of that information could be an event generated by anything: a business object, a system, an application or even an entity external to the organization

Now that we know the difference between reporting and monitoring, next time we will look at an example requirement and decide whether reporting or monitoring makes the most sense.

 
WebSphere Message Broker myths dispelled PDF Print E-mail
Written by Chintan Rajyaguru   
Wednesday, 13 May 2009 02:59

WebSphere Message Broker (or message broker for short) enjoys a second class citizen status to many developers and architects - specially those that come from WebSphere Application Server and/or J2EE background. It took me a long time, many discussions and bunch of stressful and often heated debates to convince one of my clients that the message broker is and can be used as an ESB and it will work just fine with WebSphere Process Server. If I had failed, they would have used WebSphere ESB for all interactions with process server and message broker for everything else, essentially resulting in 2 ESBs and potentially defeating the purpose of the ESB. And this is not the only time I have seen this.

What amazes me is not the fact that people don't like message broker. It's the reasons they give for not wanting to use it. In the rest of this blog entry, I am going to list those reasons, which are really myths, and dispel them.

Message broker has poor support for web service standards. WebSphere ESB has better support. If you are focused on standards based interactions using XML, SOAP and WS* then go with WebSphere ESB.

This is not true. Message broker supports web services standards as well as if not better than WebSphere ESB:

  • It has support for web services standards including Basic Profile 1.1, see http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/topic/com.ibm.etools.mft.doc/ac55890_.ht
  • In WS-* standards, it has support for WS-Addressing, see, http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac64300_.htm and WS-Security, see, http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac55630_.htm
  • On vanilla web services, message broker actually supports more SOAP processing nodes than WebSphere ESB. Broker soap nodes are listed at: http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ab00026_.ht
  • Message broker even supports SOAP/MTOM and integration with a registry such as WSRR
  • It has out of the box functionality to generate schema based messages from WSDL, which WebSphere ESB doesn’t
  • It even allows you to make any text based message a SOAP message, get SOAP envelop in or out, get SOAP body out and so on – WebSphere ESB supports this but it doesn't have this capability provided out of the box in the development tool (integration developer
  • It provides a lot of XML functionalities including XSLT that WebSphere ESB provides. See this link to get a high level idea http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac67160_.htm

Message broker requires you to use proprietary things like ESQL. So code developed in message broker code becomes proprietary. WebSphere ESB is based on J2EE and SCA (Service Component Architecture) those are both standards. Mediations developed for WebSphere ESB could be ported to another standard platform in the future

Again, this is not true.

  • You can use ESQL or Java in message broker. While ESQL is proprietary, Java is an open standard
  • While SCA is a standard and some vendors are implementing it, portability across containers is still a dream. Plus, not every vendor wraps mediations in an SCA component. Also, packaging of SCA components (in jar and ear files) appears to be specific to WebSphere ESB and process server. In some cases, you have to extend a com.ibm class or use a com.ibm class behind the scene (e.g. binding classes). The point isn't that SCA is bad. The point is, although SCA is a standard, use of SCA in WebSphere ESB doesn't make ESB code portable

If you have J2EE developer adoption of WebSphere ESB is easier than message broker.

This argument does hold some water. WebSphere ESB is built on top of WebSphere Application Server. It uses ear and jar as deployment artifacts, it uses EJB and Web projects behind the scene. However, you should keep in mind that there is a learning curve involved in using WebSphere ESB as well. I would agree that the learning curve for a J2EE developer on message broker would be steeper.

The point of this blog entry is not to say that message broker is better than WebSphere ESB. Nor that the message broker should be chosen over ESB. The intent is to dispel some myths so it is not discarded for wrong reasons.

 
ESB product or integration bus pattern PDF Print E-mail
Written by Chintan Rajyaguru   
Tuesday, 12 May 2009 07:43

The world was a happy place when ESB was a pattern. We implemented the bus pattern using a combination of tools and technologies. Now, ESB is a product. And, if you are using IBM products, you have two of them: WebSphere Message Broker and WebSphere ESB.

Here is how webster.com defines 'bus': (1) a set of parallel conductors in a computer system that forms a main transmission path (2) a spacecraft or missile that carries one or more detachable devices (as warheads). Extending the thought to enterprise architecture, it is easy to infer that the bus should be used as the transmission path or as a carrier (typically of a message) to integrate separate systems. However, since we have ESB as a product, people throw it in anytime two systems or even two services have to talk. Here are some inappropriate uses of an ESB product:

  • Exposing a service using an ESB because the method signature in the EJB is not web service compatible
  • Using ESB because there is a need to send a copybook, a proprietary XML or any other message format and you don't want your application to be tightly coupled to that format
  • Using ESB between different layers of the application
  • Using ESB because some architect decided to use canonical message format

I am not saying having ESB as a product is a bad idea but just because we have a product, we often fail to analyze the architectural need for an ESB. This leads to product first and architecture second approach, which is a bad idea. This is specially important for an ESB because it usually ends up being a central piece to which everything is connected. A bad ESB architecture will negatively impact everything that is connected to it.

In my opinion, when you have identified the need for a bus, it is often helpful to think what kind of bus you need.

  • Do you need to expose business services through the bus? You need a service bus
  • Do you need to send and receive messages, and in the process, need to validate, route or transform them? You need a messaging bus
  • Do you have too many applications talking to one another directly resulting in an integration spaghetti? You need an integration bus
  • Do you have too many sources of data in different shape, form and structure? Do you have large amounts of data moving between places but you need to improve the quality of the data before it can be delivered to the target? You need a data bus. Although the data bus is not a widely recognized concept, as an architect who comes from the middleware background, it helps me to think in terms of data bus so I can recommend a data integration solution as opposed to building services that simply move data around

Once you know what kind of bus you need, you can identify the technology that supports the bus and once the technology is known, you can select the product. This approach will lead to a more appropriate selection of the product that implements the bus pattern. There is an excellent redbook, which addresses this topic. It explains how the bus can be implemented as a pattern using different products. I can't find it anymore on ibm.com/redbooks.

 
Thinking about business monitoring in SOA/BPM world PDF Print E-mail
Written by Chintan Rajyaguru   
Wednesday, 04 June 2008 19:00

In simple words, Business Activity Monitoring (BAM) deals with monitoring business solutions to extract information relevant to the business and representing it in a way that is meaningful to the business stakeholders. This may include generating appropriate notifications when relevant business events occur.

A BAM solution helps answer questions similar to the following to the business:

  • What is the status of Joe's loan application?
  • How many applications did Mary underwrite last month?
  • What percentage of the applications were approved automatically vs. manually?
  • It's October. How far are we from our goal of having 10,000 members by the end of this year?
  • How do I know right away when a fraud is detected by my fraud detection system?
  • How much time on average is it taking to open a new account?

Now, if you think that BAM is nothing new and business has always wanted to know how it was doing, you are right! To implement BAM, business would define 'reporting' and 'history' requirements. IT would define the data fields needed to be captured in order to provide the necessary information. IT would then write the necessary code in the application to save the information and then provide some sort of combination of SQL and web pages to view the information. This solution works very well in a typical web based application or in an application that is deployed in a single solution environment e.g. Java or .Net. From an SOA and BPM perspective, this solution is limited due to the following reasons:

  • A service is a black box - unaware of the context in which it is invoked. Building the reporting logic in the service may not satisfy ALL the business contexts in which the service will be invoked. Besides, embedding monitoring logic in the services is a bad design
  • A typical BPM solution enabled by SOA spans multiple IT systems and is often represented as a collection of services orchestrated in a specific sequence. Using traditional approach, logic to capture monitoring information gets scattered in the services and the information gets scattered in the databases for those services
  • It is possible that business monitoring requirement would change more frequently than the core business logic. Changing application code to support changes in the monitoring requirements is ineffective from cost and time perspectives

So, what does a good monitoring solutions look like in a BPM/SOA environment?

  • It can receive events in a format defined by xml schema - this way any service enabled system can emit events that can be submitted to the monitoring solution
  • It can retrieve data from any relational database. This would work well when the business solution is made up of multiple services deployed in disparate systems. Different services would store their relevant data in their databases but the monitoring solution would be able to pull data from different sources
  • It monitors the business solution non-intrusively. In other words, monitoring logic shouldn't have to be coded in the service implementation. Instead, monitoring solution would simply configure the deployment environment, which would generate appropriate business events when services are invoked. These events are then collected by the monitoring solution

Finally, it is a good idea to keep monitor data separate from the core business data. For example, if business wants to monitor the time it takes execute a service, don't store start_time and end_time along with the core business data that service operates on.

Last Updated on Thursday, 05 June 2008 10:15
 
IBM Impact 2008: overall impression PDF Print E-mail
Written by Chintan Rajyaguru   
Monday, 14 April 2008 16:34

SOA is hot and people are curious about it. This was clear to me at IBM Impact 2008 conference when I saw more than 6000 people attending the conference. By the way, the next Impact conference - Impact 2009 - will be held in Las Vegas (again) from May 3 through May 8. I have shared my daily experiences at Impact 2008 here, here, herehere and here.  I have described my overall experience in the following topics: 

Customer focus: There were numerous IBM customers presenting case studies and success stories. IBM seemed highly interested in answering customers' questions and getting feedback from them. As a customer, you could participate in the Birds of the Feather sessions and share your experiences, or ask questions about other customers' experiences. You could participate in feedback sessions and give direct feedback about IBM products to its representatives. You could even participate in the face to face discussions and ask specific questions about any tool or technology. I took advantage of this face to face discussions and asked questions about the future of integration between FileNet and WPS, end-to-end traceability in SOA, defining and using common elements (remember, UML is not enough in the SOA/BPM world) and the future direction around events etc. IBM even contacted me before the conference and offered to arrange a one on one session with an expert of any technology of my choice. SOA ties business and technology. Given the heterogeneity and complexity of IT and business in various organizations, the customer focus is a critical success factor for IBM or any other tool/technology/service vendor in SOA/BPM space. 

Content and coverage: The conference covered areas from web 2.0 to CICS, IT strategy to governance and everything in between. There was something... no, a lot, for everyone. Whether you wanted to learn something new or validate what you were doing, whether you wanted new insight into SOA strategy or explore ways of implementing governance, whether you wanted to see the code or pretty looking power point slides - the conference had it all.

However, I do have some critical feedback on the content and presentations. Most of the lecture style power point presentations disappointed me. The speakers were poor presenters; they knew little beyond their deck of slides and covered the topics at a very high level. The explanations like, "the message will flow from WMQBus, sendQ destination to the remote queue remoteQ of WMQ queue manager, and from there it will go to remote queue on WMQ2. Hence the bus appears as a queue manager to the WebSphere MQ and the queue manager appears as a foreign bus to the WebSphere Application Server SIBUS." don't provide any value. Most of the presentations showed screen shots of the tool, which I can see by going to an article on www.ibm.com/developerworks or simply by opening the tool. The presentations should have focused on business scenarios that warrant a particular solution, why you would pick certain solution, what are the best practices and what are the gotchas - not here is what the screen looks like. As I have explained on Day 2, labs were excellent. Labs focused on 'how-to,' the presentations should have focused on 'why.' 

I also felt that the content around business integration and BPM was too basic but having said that, I understand that the conference has to be catered to the larger audience.

World around IBM: It was great to see that many companies have products and solutions around IBM tools and technologies, which means that many vendors see IBM as the thought leader in BPM/SOA space and are willing to invest money and resources on IBM solutions. I saw vendors with solutions around hardware, software, services and even learning. 

Arrangements and logistics: I liked that every room had a dedicated TV monitor displaying events taking place in that room. A person was present outside the room and distributed feedback and forms and collected them at the end of the session. I would have liked more comfortable chairs and a table in front of every chair so people can take notes, write etc. It was little strange (and rude) when a person stopped me from entering the testing room and asked me to read the sign by the printer. The sign said there was going to be music practice in the evening so there might be some noise in the evening testing sessions. I didn't know why she had to stop me to read that sign in the afternoon but looking around little more, I realized there was another sign on the table (not next to the printer) that said no food or drink allowed in the testing center. I realized then that the person wanted me to read that sign and throw away my coffee. I thought a simple, "Sir, you can't take that coffee with you in the room." would have worked really well.

Missing pieces: I found it surprising that there wasn't much information on becoming an IBM partner. I thought given the growth potential of the SOA/BPM market, IBM would want to utilize every possible channel and every possible opportunity to get its solution to the customers and one very effective way is to use partners. It is possible that the information was available but I couldn't find the right person and location (the conference was huge).

I would have loved to see more practical information on design patterns, best practices and recommended approach around business integration, BPM and SOA - especially around WebSphere Process Server. I would also have liked some kind of solution sessions. These would be similar to the lab sessions but they would be focused on the solution, architecture and design. The sessions could present a business problem and, in a highly interactive environment, come up with the solution. They could even model the solution in the tools and leave it up to the audience to implement it.

May be a future Impact could have some design or implementation challenges. A problem or a set of problems could be posted before the conference and candidates could submit their solutions. The winners could be declared during the conference. 

Overall, the conference was a good experience for me. While the experience wasn't transformational, the conference certainly exposed me to variety of different areas and gave me new food for thought. The experience was encouraging to go next year again.

Last Updated on Monday, 14 April 2008 16:49
 
IBM Impact 2008: Day 4 PDF Print E-mail
Written by Chintan Rajyaguru   
Friday, 11 April 2008 04:34

Today was the last day of Impact, at least for me, because I am not attending tomorrow. I continued attending sessions today - as always, some good, some not so much.

Kim Clark of IBM talked about WebSphere Process Server design best practices. He rather focused on problems you need to think about than how to solve them. The presentation lacked specific guidance around designing with process server. 

A technical overview on Project Zero was one of the best sessions I attended at Impact. It had less marketing and more substance. I learned the following about Project Zero:

  • It's a community driven commercial project to create a development and execution platform for web 2.0 applications. It's available at projectzero.org
  • You can use PHP or Groovy to develop in project zero, both of them will run on JVM. The PHP implementation has been ported to run on JVM and IBM believes most of the existing assets should run on JVM but some extensions might not
  • The solution uses REST style services and all web 2.0 technologies to present the content to the user
  • There is no server runtime, you just develop, zip and run
  • IBM is coming up a product called WebSphere sMash (the speaker didn't give the date), which will run on top of Project Zero. Unlike other products, this will be free to download, develop and use in production. There may be some support structure but I didn't understand it quite well

Unfortunately, there wasn't enough time to show a cool demo or an application created in project zero. 

The next session I attended was SOMA: The methodology for SOA. Again, this was one of the best sessions at Impact. The speaker answered all the questions well and took the audience through a scenario that used SOMA technique to identify services. SOMA has been around for some time now and I have been using it in bits and pieces at my clients but I did learn a few new things:

  • SOMA is packaged as SOMA Foundation and SOMA Complete with SOMA Agile soon to be added. Foundation is basic SOMA and Complete version is more comprehensive, useful for larger organizations and larger projects
  • What I don't like about SOMA from the beginning is that you have to purchase it separately as part of Rational Method Composer. As a methodology, SOMA (and RUP for that matter) should be free. A freely available methodology makes it easy for organizations to see how something that made sense on the white board can actually be done

The third session on using WebSphere MQ and WAS together was unimpressive. The speaker didn't speak loud enough and even though I was sitting way up front, I could barely hear anything. 

In any case, the conference has ended for me. Tomorrow I will post my overall impression of the conference.

 
«StartPrev123NextEnd»

Page 1 of 3
 

Calendar

< March 2010 >
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31