Tapestry for Nonbelievers
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
Tracking change and innovation in the enterprise software development community
Posted by Hartmut Wilms on May 21, 2007 03:01 PM
Nick Malik writes about "The Value of Intermediation in SOA", which started an interesting discussion. In his first blog post on the subject he asked the question: "Is it Service Oriented if the message cannot be intermediated?".
Malik argues that one of the key benefits of any SOA is Intermediability, "the ability to intercept a message going from point A to point B, and react to that message without informing either end of that pipe". In his view intermediation goes hand in hand with Technology Independence, which requires "that I can replace system A with a system of an entirely different technology, and that does not affect system B, as long as the message is consistent".
According to Nick Malik "SOA in an architecture for Enterprise Application Integration". Intermediation supports integration by its substitutability principle. Malik explains this point by comparing the architectural intermediary to the factory pattern in object-orientated design and referring to the Liskov Substitution Principle:
The ability to add intermediation gives me some fairly specific advantages. Just like factories give me the benefits of the Liskov Substitution Principle in OO design, intermediation gives me the benefits of substitution in messaging design. Intermediation is the ability to observe a message passing from one trading partner to another and to take action based on the contents of that message (assuming I have been given proper access to it).
Udi Dahan disagrees with Malik's EAI statement and his idea of orchestrating services via intermediation:
While I whole-heartedly agree with what Nick has to say in terms of OO intermediation of the Dependency Injection variety, and that scaling up those same concepts in terms of messaging is the right way to go, I take issue with orchestration in the intermediation area. These “tactical changes” need to be done in the context of the top, business-level service strategy. That means that all logic belongs within a service. The “network” between services is just that, a “dumb” network - no business logic of any kind, just technological capabilities like knowing which physical server to route messages to.
JohnCJ responds to the value of intermediation in the comments of Malik's blog entry and states that intermediation should not be seen as a general requirement for service-orientation. He argues that
In a second entry on the Value of Intermediation Nick Malik addresses each of these points. He points out that contextual information does not bloat the message, but that "the necessary increase in size of a single message in order to represent the independent canonical business document that we will pass in an enterprise EAI scenario is a small price to pay to achieve business agility". Regarding the second argument Malik gives a very nice analogy of Joe the bank clerk, who hands his vacation request form to his boss and waits for an approval. His boss is one of many intermediaries on the way to the ultimate receiver of his request. Joe does not know nor care about any of these intermediaries. The only thing he cares for is the outcome, the final response to his request. The approval process might be altered at any step without changing the business semantics of the process. Thus Malik "would argue that nearly all valuable long running transactions MUST have the ability to intermediate in order to allow them to be composed, and recomposed, and orchestrated". Finally he argues that sharing the semantics of a message depends on the function of the intermediary. In any case he declares that point as a "risk. Not a cost. It is a risk that occurs in any project. In a well defined SOA infrastructure, the risk is Lower than if we were attempting to compose a manual business process by entering data in three different computer systems".
Nick Malik concludes that in his view intermediation is not a general requirement for all services, but that it "is a requirement of a service oriented architecture designed to deliver composability, and therefore, business agility".
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.
David Cooksey shows how to fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET, making partial rollouts to a test audience much easier.
Windows workflow (WF) is an excellent framework for implementing business processes, but lacks support for human activities. This article describes a completely generic approach for changing this.
In this interview taken during OOPSLA 2007, Markus Voelter talks about the importance of documenting the software architecture, and gives some good and also bad examples on how it could be done.
No comments
Reply