SOA

  • Developer Book Syndrome

    A colleague of mine once stated that creativity is rare in technical people I had my doubts at the time as I’m fairly creative and often build unorthodox solutions tailor made to the problem but the longer I’m in the industry the more I agree. The biggest symptom of this is something I called book syndrome. This is where famous author xyz ( eg Lowly , Fowler etc etc ) writes a strategy in a book and people use it in completely in inappropriate circumstances. When challenged on the solution they use the authority of...

  • SOA 1 class per service Juval Lowy framework

    I posted this a year ago.... I'm really against this make each class a separate service concept. It reminds me of the Microkernel and especially workplace OS but worse. The idea of microkernels was each service ( like memory) was an easily managed entity with carefully defined inputs and outputs which could be consumed.) Workplace OS took this to limit and performance was so poor that no amount of optimization would help. So they had no choice but to scrap the project ( were talking $2B 10 years ago) the bad thing is once such a design is made and implemented just like workplace OS...

  • Can EDA SOA eventing systems be fast

    A lot of  traditional eventing systems  use C++  and are dubious about whether the Lego block style SOA can provide sufficient performance. Again it boils down to design  WCF  C# can process  over 22000 small messeges per second on an average 2 year old quad server.   http://msdn.microsoft.com/en-us/library/bb310550.aspx#wcfperform_topic4. This is more than sufficient for most applications especially as with eventing systems you can add servers relatively simply , the algorithms which manage  the propogation of  subscriptions and the path are far more important . ( Distributed Event-Based Systems  (Muhl , Fiege and Pietzuch) is a good book which covers the theory here...

  • Why should you use an Event Driven Architecture (EDA)?

    There is a lot of documentation on EDA and people working with SOA and call backs will naturally gravitate to EDA , but i have often wanted a simple reason why.  Here i will attempt this and focus on service based EDA's. 1. It Naturally mirrors organisations. High level EDA events are business events. With EDA anybody may receive these events and act accordingly. This means extending events to new applications is a trivial excercise. 2. Low integration costs Integration expenses are massive, EDA makes it really easy for systems to communicate even more so than SOA's which require writing a...

  • EDA vs Cloud storage

    Cloud storage promises a lot of the things that EDA does namely almost unlimited scaling however EDA implemented in the Cloud has significant advantages. Firstly while Cloud storage Data may scale extremely well , it does so by using masses amounts of caching or disk spindles. In itself this is not an issue but if you have say 1,000,000 users querying/polling a 10 Gig Table While the performance is likely to be good the CPU usage will be massive and this is where cloud computing bites you - in the pocket. And the situations will get worse as data increases. However EDA...

  • SOA and Cloud computing

    Great article from Zapthink. . Especially " the ESB has been far too central in organization’s discussions about SOA. The logic goes that all you need to do is develop a bunch of Web Services, plop them on an ESB and voila, you have a SOA. Isn’t it amazing that you can get architecture without actually doing architecture? As ridiculous as this might sound, for many organizations, this approach represents fully their SOA strategy. But, the movement to cloud computing throws the ESB “strategy” out the window. In the cloud computing world, you have no visibility into the infrastructure, nor do...

  • WS-Eventing flaw

    Just doing some work on eventing and having a look at a number of implementations there is a pretty annoying feature / flaw . By default the only filter supported is Xpath and the specification specifically states that This specification does not constrain notifications because any message MAY be a notification. from http://www.w3.org/Submission/WS-Eventing/. I have no issues for this - sometimes you want any message , however this is a very expensive way to do this especially when you have a large amount of events with different topics all coming through a single  notification service ( load balanced) . All the implementations...

  • Why use Queues ( MSMQ) in services ?

    Queues love them or hate them seem to be pretty popular.  I'm definetly on the hate side especially persistant queues Lets look at some recommendations Use private queues. Very few applications need public queues and the performance hit is substantial. Use non-transactional queues. Again, very few applications need transactional queues. System.Messaging is messed up in a lot of ways, but you can work around that. Use the asynchronous methods of System.Messaging (BeginReceive and BeginPeek) where possible. Learn to build your own formatter for System.Messaging. I...

  • What is Azure Services ?

    Are Azure services a cloud or are they an ESB ? While Azure does not have this it has FAR more than most ESB in terms of connecting clients to services. Sure it has router support Azure >> ESB  (Internet hosted , with integrated  internet security , scalable) Azure >> Cloud computing  ( not just Client - Service routing and hosting but also it has sender-receiver relay , multicast , firewall pass through ,   and enterprise-cloud security integration) The big thing is people see it as a cloud .. however i think the biggest thing is it can redirect clients...

  • Windows Azure services - First impressions

     I have been looking at the PDC cast of Windows Azure and all I can say is wow. At first i thought it was just another cloud but its a new generation compared to other offerings and most important its designed to win corporates. Integrating with current enterprise systems in a secure manner will be the key.  Will it succeed - certainly ( barring some outage disasters which will hurt them bad) . However it wont succeed just for Web 2.0 ( of which i am sceptical in the long term) but think of corporate laptops ,PDAs , small offices...

  • SO Analysis

    Lots of books and posts have been written but IMHO they fail miserably. - They involve a new language/diagram - They use propriatry tools - Focus heavily on BPEL and you need services to drive the BPEL (mmm) - They are overly complex. and hence violate the  most important rule KISS. I prefer a loose guideline like the following. Consider the large-grained logical services your systems represent (such as Accounting, Sales, Manufacturing, Design) Ignoring political / divisional boundaries, consider each large-grained logical service and conceptualize how it should be broken up into finer and finer...

  • Handcrafting wsdl /Contract First

    I cant people are still hand crafting wsdl !  Contract first is good but you dont need to handcraft it , Create your contract in Windows Communication Foundation and expose the wsdl . Quick and easy spend your time learning something else than wsdl or even doing some coding.  In 2005 there was an interesting debate about it http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=39ba6b34-40ba-42ef-ba78-9f9ebefe6a7a I love this quote " I don’t need to be able to read and write PDF to use PDF. I use PDF if I know that someone will open my document who is not using Microsoft Word. Still, that PDF doc isn’t the...

  • SOA ESB and hype

    There is a huge amount of hype around SOA especially around the ESB.  Companies are wasting a fortune and it has been going on for a long time now. Here is one from 2005 http://blogs.msdn.com/richardt/archive/2005/05/04/414833.aspx Richard tried to distinguish from the hype by using the term just Service Oriented (SO) instead of SOA. The end result is companies are wasting HUGE amounts of money on consulting repositries frameworks etc . The thing with Service Oriented is its light and it doesnt matter ALL what matters is converting or wrapping your legacy code and that has been happening at a poor rate -...

  • Is there a roll for OO in SOA

    From Richard Turners blog SO and OO are complementary technologies: SO is how one thinks about building systems as a whole: A System is a set of deployed services cooperating in a given task Systems are built to change Systems adapt to the introduction of new services after deployment. ...

  • Is SOA a Belief system and what does that mean for Team dynamics

    Best SOA posts on the net ( and the comments) http://blogs.msdn.com/richardt/archive/2005/12/13/503358.aspx This is what I believe SO is ... it truly is a belief system and a way of thinking. It is not a prescriptive architectural process or methodology. It's not a template that you can apply that results in a service oriented system. It's where art meets science. It's where aesthetics meets engineering. It's the thing adds a human touch to the things we create. It's inside of me and it's inside of you.... james governor said: i am with anil. a call for an epiphany is kind...

  • DTO pattern

    http://msdn.microsoft.com/en-us/library/ms978717.aspx http://martinfowler.com/eaaCatalog/dataTransferObject.html I still think Martin Fowlers description is best An object that carries data between processes in order to reduce the number of method calls. While DTOs were designed for the above they provide key benefits to distributed systems 1.Performance Typically Objects in OO have quite a chatty interface , this is good for design purposes as these communication mirror the relationships between the objects however the performance implications for distributed systems are significant and worse the worry about performance last mentality in software development makes a significant issue as these issues are VERY expensive to fix as the design from the start is...

  • OO with services

    Are OO code and SOA diametrically opposed ? In a lot of ways this is true services tend to produce very anemic object models however this merely reduces reuse which is a myth in OO for the majority anyway . However services have a unique but familiar problem . The contract of the service is critical it needs to be designed for  - The ease of use of the client  - For performance  ( ie chunky calls , many small calls can bring many services down to its needs) - To be upgradeable and allow backward compatibility. - Compatible with an...

  • How to write a good service contracts

    ... not hand craft wsdl   Custom messages reduce churn and change in the contract   Lets say you have this datacontract   [DataContract] public class WorkEntry { [DataMember] public DateTime StartTime; [DataMember] public TimeSpan Duration; [DataMember] public string User; [DataMember] public string CostCentre; [DataMember] string Comments; }   What can go wrong here ? Using public fields is good , its tight and if you need to do custom things you can refactor it easily.  I think there is nothing really wrong here however if this is a business object also i would be concerned.  The big gotcha maybe DateTime  , lets say you have some other systems in your company that use Java . Now Java systems...

  • Stored Procs and SOA services

    I was just thinking about stored procs in services , now im definetly on the side of dynamic ( paramaterized) code instead of stored procsas i rarely think the benefits are worth the costs of another deployment tier or involving an additional team. The suposed benefits are Security, performance and organisation i will address these below....