This blogpost is part of a larger blog post series. Get the overview of the content here. But messaging alone is not enough! We need to decompose our system. Service Orientation can help us with that. Service Orientation or Service Oriented Architecture was first used in 1996 when Roy Schulte and Yeffim V. Natiz from Gartner defined it as “a style of multitier computing that helps organizations share logic and data among multiple applications and usage modes”. Unfortunately the term SOA has...
Composite UI for Service Oriented Systems – Ordering and buy-in
This blogpost is part of a larger blog post series. Get the overview of the content here.
Never assume messages will arrive in the order you sent them. If it works fine on your machine that doesn’t mean it will do the same in your production environment.
Composite UI for Service Oriented Systems – More message patterns
This blogpost is part of a larger blog post series. Get the overview of the content here. I briefly mentioned that the message has a body. The body carries on the payload or the actual business data identified by the message. Furthermore a message can contain metadata on its header. This allows the message to carry on additional information which can be consumed by the receiver side. Message forwarders need to make sure that the headers remain intact during the communication process. This means...
Composite UI for Service Oriented Systems – Messaging and fault tolerance
This blogpost is part of a larger blog post series. Get the overview of the content here. Consider a classical application approach where clients invoke remote procedure calls on the server. Now, what happens to the initiating request when a crash occurs? For example when the IIS App pool recycles or a connection has been refused by the remote host when too many transactions are waiting to time out. The initiating request is lost or if you are lucky somewhere present as cryptic...
Composite UI for Service Oriented Systems – Messaging vs. RPC
This blogpost is part of a larger blog post series. Get the overview of the content here. In the beginning, RPC style communication seems to be better performing than messaging. But when the load on the systems increases and no more threads are available the RPC performance decreases. One cause of the RPC performance decrease is the need to acquire threads from the thread pool and to allocate memory for the parameters of each request. A messaging infrastructure can deterministically assign a...
Composite UI for Service Oriented Systems – Messaging Introduction
This blogpost is part of a larger blog post series. Get the overview of the content here. Messaging can help to reduce coupling in your system. It also addresses some of the fallacies of distributed computing. But messaging is no silver bullet. You have to carefully choose according to your non-functional requirements, risk analysis, fallacies and more whether it makes sense to use messaging. Messaging can take place inside the same process boundaries (i.e. with Event Aggregators) or over...
Composite UI for Service Oriented Systems – Monolithic and Big Ball of Mud Systems
This blogpost is part of a larger blog post series. Get the overview of the content here.
Now that we are aware of the fallacies of distributed computing let us step back and look into a traditionally built distributed system.
Composite UI for Service Oriented Systems – Coupling
This blogpost is part of a larger blog post series. Get the overview of the content here.
Coupling is a measure of dependencies. If a component X depends on Y, then there is coupling between them. There are two kinds of coupling: Afferent and Efferent coupling.
Composite UI for Service Oriented Systems – Fallacies Part III
This blogpost is part of a larger blog post series. Get the overview of the content here. Interoperability is easier when you only have two similar platforms like .NET and Java. Today we have a variety of languages, platforms and tools such as Ruby, NoSQL and more. Sooner or later your systems needs to interop with other platforms and tools. Interoperability does work but is usually hard and the costs involved should not be underestimated. It is important to plan for interoperability and budget...
Composite UI for Service Oriented Systems – Fallacies Part II
This blogpost is part of a larger blog post series. Get the overview of the content here. Unless you’re on a separate network that will never, ever be connected to anything else… Well, not even then. Viruses, Trojans, etc. can still be brought in by users on CDs, DVDs, DOKs, etc. You can’t be 100% safe from everything Never underestimate security risks. Perform a thread model analysis and after that balance costs against risks. What is the risk involved when a security breach occurs, how much...