B2B - inter-business transactional agreements and enforcements
The transactional logic for business to business communication is an enforcement of the relationship between those two businesses. Several standards exist for this communication, but underneath, they express the same logical contract, merely varying in terms of flexibility and structure. That is to say that for the purposes of this discussion, we don’t really need to care about a particular language, as long as there is a language.
B2B transactions are simpler than the EAI transactions described above, for two reasons. First, B2B communications typically occur between exactly two businesses (note: a middleman type company may actually complicate this by having both a provider and a consumer, but this is the exception, not the rule), meaning no complicated half-completed transactions, and also meaning that the transactional system cannot be defined as NP complete. With two (or perhaps three) businesses involved, even brute force techniques will be quite effective if needed at all.
Second, if rollback is needed (e.g. “oops, we didn’t really mean to order those 500,000 elevators”), it can be explicitly and simply provided for in the transactional contract between the two businesses. That is, the rollback becomes a logical operation to represent the existence and state of a particular transaction, not a physical constraint against an application. Now with these two simplifications, rollbacks can be simply defined as transactional elements that allow for:
ApplicationState1 + data1 – data1 = ApplicationState1
ApplicationState1 + data1 + data2 – data1 = ApplicationState1 + data2
Boom! B2B and EAI are completely different entities serving different purposes.
It may not seem like much, but the slight simplifications in purpose and usage of webMethods B2B versus webMethods EAI is the exact difference between tractable and non-tractable systems, and also between being definable as a Group and not being definable as a Group. I suspect that anyone who has taken Abstract Algebra and is reading this is saying “Wow! B2B and EAI don’t even exist in the same universe of thought!”, and anyone who hasn’t studies this important but advanced topic is saying “Something is wrong with greg, and this post doesn’t really make much sense”. Regardless, the difference is paramount: our implementation tools have been merged down into one ‘webMethods Developer’, but the problem spaces that they address are completely different in terms of their structure and solvability.
Wait! Don’t stop reading, let’s try it again, a different way
So, in case you are still reading, but aren’t happy with the discussion above , let me switch over from a mathematical perspective to a biological one, it should be fun, not quite as obtuse, and hopefully enlightening as to some of the subtleties of the underlying and more pragmatic differences between B2B and EAI.
Organizations are like Organisms
Notice the relationship between the words ‘organization’ and ‘organism’. As a type of organism becomes more complicated, it needs to become more organized. Cells become specialized toward different purposes even in very simple animals (e.g. Jellyfish, the second most simple animal type have cells that are specialized as stingers). Eventually the organism type is complicated enough that it needs organs (again, organ – organized – organization), and systems of organs must conduct specific and perhaps complicated activities that are necessarily focused in their scope. Organizations go through the same type of evolution as they grow, needing more and more “organization” in their systems to remain viable, in the form of various applications and data storage.
EAI is a circulatory system
At some level of complexity a circulatory system is necessary to transmit “stuff” throughout the organism. The stuff transmitted is: biological physical building blocks and control information (such as adrenaline). This is directly analogous to the “EAI - Application level information propagation” purpose of EAI described above (in the case of EAI, the stuff transmitted is business data, and […but don’t do it this way] potential control signals).
The transmission of information using the circulatory is good at reaching every node (i.e. pub/sub), but is relatively slow. When you put your hand on a flame, you wouldn’t want your circulatory system to transmit the event to your brain, and then your brain to instruct your hand to move away using your circulatory system. You need something that allows faster point to point communication.
EAI is also a nervous system
In higher organisms, a separate system, the ‘nervous system’ handles requests that require quick directed responses (i.e. request/reply). This is directly analogous to the “EAI – command and control” purpose of EAI described above.
B2B is spoken word
For two complex organisms to intercommunicate, they do not mix their circulatory or nervous systems. Instead they develop rich communicative inter-organism signaling capable of expressing their needs and desires. For organisms, this is language (e.g. Latin, a dog’s bark), which is directly analogous to B2B. This B2B communication is also language, but not a programming language, rather, an expressive language (e.g. EDI, RosettaNet, XML).
None of our systems are good enough to be the brain
It seems like we use our EAI and B2B systems as primitive brains, doing transformations and cross referencing if needed, but to me this is very primitive compared to a brain, and i do not believe that organizations have yet developed an appropriate surrogate brain application. That is, it is the people in the organization use their brains to further the organization are effectively the brain of the company.
The needs of the three analogous states are quite different. My circulatory system needs to transmit information across my entire body as fast as possible, my nervous system transmits control signals as fast as possible to specific subsystems, and my spoken word needs to be rich enough to express my needs and desires to other people (and some other animals too!). Fast equals terse, while rich equals verbose and flexible. If you accept the analogies as accurate, than the absurdity of believing that EAI and B2B are the same is quickly shown by imagining trying to use my spoken word to efficiently control my hand, or to communicate with my wife by sharing my circulatory system with her.
(continued in Differences between EAI and B2B part3)