Design & Practice

  • Is Sooos a new OS ? (Since its linux based)

     The question is a good one as it leads to an interesting discussion what Sooos is trying to do.. Firstly Sooos is probably  more of an independent OS than Android is which is basically linux with a new  Java Run time , GUI and a package manager / security system. Sooos uses the linux kernel and drivers / services  , as time goes on more and more of them will be replaced but some Linux core will probably remain for a long time since - Backward compatibility fo things taht are diffciult to support eg 3D drives/open...

  • 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...

  • Obsession with new toys

    I will be returning to eventing/EDA  soon ... There have been a number of posts lately on Windows Workflows 4s break with the past citing continual change and lack of support being a big problem. Id like to make a few comments on this. The number one productivity killer in .NET today is undoubtedly new technologies and learning how to implement them well.  While these are without doubt superior to past products eg Remoting /WCF , WIndows Forms / WPF , DataSets/LINQ for Sql people seem to be making the move because the feel its new and hence will be supported longer. This...

  • 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...

  • Is SSL really secure/too much security

    Is SSL really secure ? By encrypting messages on the wire  people get the feeling its secure and people use it ubiquitiously. Is encrypting on the wire something that really helps ? I don't really think  so , with most networks it is VERY difficult and practically impossible to do . eg - In a LAN you need physical access to put a device in between reading all traffic from a PC ( in which case you have bigger problems) - Switched mean a machine tap is not very usefull ( html is not broad cast) - You need admin access...

  • Is software theory relevant

    I just realized my main objection to heavy theoretical based development stems not from poor theory but in appropriate use. I think it comes down to the original premise that 90% of a softwares lifetime budget is in maintenance  . While this is certainly true for large scale mainframe applications or software vender apps ( eg IE , Word etc) it is not for the majority of small apps  used today.  I have seen many of these applications not change for 90% of their lifetime and when replaced they are replaced by the latest and greatest language /technology. Here is...

  • Too many DB's

    There seem to be a trend in using DBs like SQL Express for everything. Is this a good thing ? For larger systems sure , for small systems im not sure.. The reason why people use these is obvious good tools/Apis  and data protection /management.  However for small systems DB's are not that easy to manage , they have to be installed , connection string and security setup and most importantly maintained. Having a corruption in an index is a major  issue when the DB is on a client laptop a lot of small apps dont provide Reindex faciities. Considering these DB's...

  • Eventing with and without Topics

    While WS-Eventing has no support for Topics ( see last post) it is almost essential for efficient  processing of messages if you have a large amount of subscriptions. Consider the case of 10,000 Subscriptions for 10,000 Notification you are looking at 10^8 expensive xPath comparisons which will bring many servers down to its knees. With EDA we can easily solve this problem ( compare to an overloaded DB) . Lets say we have a Topicless share pricing feed  something like <Trades> <Trade> <Symbol>BHP</Symbol> <Price>38.12</Price> <Volume>10000</Volume> <Exchange>ASX</Exchange> </Trade> </Trades> Now WS-Eventing has a really nice feature in that subscriptions can force notifications to contain a header this header can...

  • OSLO to be or not

    Based on the limited information so far . Im not really sure about Oslo ( as opposed to Dublin and Azure which i think will be big hits) it reminds me a LOT of UML and associated higher end tools which manage synch the UML to code and database schemas. For a start we have to learn a new language ( ok its similar but there are a lot of differences)  that immediately has to be a barrier to entry .  In return it doesn't make anything easier it just unifies a lot of different thigns under a bigger umbrella...

  • POS or SOA Lite TODO

    I think Service Orientation has gone the way of J2EE/ EJB and needs to be pulled back like was done with POJO. I propose POS Plain old Services or POSA for Plain old services architecture. Rules. 1) There is only one rule and that is KISS.

  • 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...

  • .Net services message persistance

    Well looks like .Net services doesn't have persistant messaging ( no queues or persistance of subscriptions ) . This  will probably be address in v2 .  There is a 30 second message buffer for polling replies but this is not the same. This is especially an issue for mobile computing ( PDAs , phones etc which are often offline) and for wrapping  legacy systems.  Though its unlikely that legacy systems will be wrapped by .Net services ( more likely the service bus will redirect it to locally hosted services) . Im not a big fan of queues however.  See post.

  • 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...

  • 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...

  • Are projects getting more successful

    Im curious at the increase rate of sucess in a number of surveys such as the later CHAOS surveys. Looking in the detail however it appears that projects after peaking in 2000 the amount of time overrun and the amount of features completed have dropped dramatically in the vast majority of projects. Not sure what it means but to me it DOESNT mean software development is getting better if features are getting dropped  and there are increasing time blow outs. Things that come to mind Standards for success and projects have increasing amounts of over estimation to prevent...

  • 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...

  • LINQ for SQL and reattaching objects in nTier scenarios

    One of the issues that keeps cropping up is LINQ for SQLs support for nTier scenarios and having to reattach the object to the DataContext. However this problem is exhibited by all ORMs in nTier scenarios ( though not in web sites) and  you basically have 2 choices - refetch the object from cache/DB and replay all changes to see what has changed then you can craft a custom Update to just change the items changed. - update all fields in the DB. While the 2nd method is easier the first is more efficient especially when you consider that it...

  • Is LINQ for sql dead

      There were a lot of comments about the supposed demise of LINQ for SQL people expected it to evolve into a nHibernate style framework (and rightly object to EF  Entity Frameworks change tracking http://weblogs.asp.net/fbouma/archive/2008/11/21/baby-sitter-framework-2-0-change-tracking-in-the-ef-v2-it-s-still-your-problem.aspx ) . I think people miss the point here , LINQ for SQL is and always will be a light weight solution for smaller or RAD style projects. As Damian Guard ( from the LINQ for SQL team ) explains it will be maintained and changes required by the  community will be implemented. http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps. As it is now it is fine for most current and future needs....

  • Are Datasets dead

    Can anyone see a use for Datasets these days ? LINQ for SQL seems to have all the bases covered with a much easier and extensible model.

  • Simple services and Linq for SQL - match made in heaven

    Im a pretty big fan of Linq for SQL and it works so well with services especially smaller ones ( especially when there are no updates) . The fact services are normally responsible for about 3 tables /conceptual domain classes mean you can quickly drag the 3 tables onto the designer and generate the code.   If the structure changes you just recreate the data. Lightweight data Light weight service Light weight testing Light weight procedural code. . These services are quick to write and easy to maintain,

  • Post by Frans Bouma

    Loved this post  so had  to emphasize and post it. "That's not the case. A framework user doesn't give a **** about how many different patterns the framework is using and how great and awesome it's internally and how it will ultimately evolve in the bringer of world peace. A framework user is interested in whether the framework takes care of things the framework user can't afford to spend time on. After all, the framework user can't afford to spend time paid by the customer on plumbing, on writing infrastructure code. The framework user is paid to write code directly...

  • 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....

  • Architecting for the team

    One of the major differences between the  oft and bad used example of building Architecture  and Software architecture is people.  When you build a building people know how to pour the concrete and a few specialized roles are imported electricians etc  but with software we are expected to know all. If you have been writing Windows Forms apps for years if the new project is a web app it is expected  that you know write a web application , the only exception seems to be with languages people seem to except a C# programmer cant write VB or Java  -...