Posts Tagged ‘systems’

Conficker Update

Author: Cian

Yes!  We are prepared.

That’s what we are now able to say when people ask us.  Basically we are processing DNS logs, scraping for any of the 90,000 Conficker A+B domain names.  As of tomorrow that won’t necessarily work, as it will be generating 50,000 new domains every day.

What we are doing is comparing all the DNS queries that come in with an in memory database of the conficker domains (very fast), then cross-indexing those IP’s / timedate stamps with user records.  Once done, this information is injected into our existing anti-abuse system.  While I can’t say what happens then, let’s just say that our existing process (people, machines, etc) deal well with viruses, and worms.

My current (un-verified) estimate is that there are anywhere from 0.001 – 0.002% of our customers infected.  This is lower than expected, as I think Canada makes up for about 5.8% of the entire 3 Million hosts, which would work out to a national average of 0.005 – 0.006 %.  I entirely attribute this to some of the super secret “we’ll take care of you” anti-abuse systems we’ve put in place for consumers.

I never realized how hard it is to talk about stuff like this, and remain confidential :-)

So today I’ve been reading about Service Oriented Architecture and Design concepts. It seems to be an interesting development in the arena of Systems Analsysis and Design. From what I’ve read so far, it takes elements from Enterprise Architecture, Business Process Modeling, and Object Oriented Analysis and Design.

The central concept of SOAD is that it further abstracts concepts in those three areas into real life (for example Web) functional concepts. Operations, Services, and Business Processes. Operations are Logical Units of Work. For example a software component that could retreive an attribute, like getFirstName(). A Service, is simply a grouping of these operations, like getUserProfile(). And a Business Process is a grouping of Services, like createNewUser().

Part of the reason this has come around is the age old problem of what do we do with our old systems? Typically when you design a new system, you do a top down approach, map out all the actors and objects, map out sequences of events, and how objects interact. But when you want to integrate it with an existing system, you must also do a bottom up analysis, and meet somewhere in the middle. Service Oriented Analysis optimizes this experience, by allowing one to do a holistic analysis of the Business Services that are provided by a system.

So essentially SO is like OOAD (Object Oriented Analysis and Design) but it blurs the details of the Class and Object relationships so you can focus on higher level, more important concepts like Services.

Then you start getting into how you descibe these Services and interactions. For example a common one on the web is WSDL (Web Service Description Language) based on XML and using SOAP. So to interact with someone’s web service, you use a service directory to first search for and find a service that fits your needs. These are often stored in UDDI (Universal Description Discovery and Integration) on some sort of Directory. Once the appropriate service is found, you can use the WSDL to connect to it. The WSDL will describe what sort of methods can be used, what port to connected to, basically all the information an Actor would need to get or put information into a system. It can also describe constraints such as order of operations and such.

With that in mind, you start to see how new web applications and systems can be designed with Services in mind, rather than just simple classes and objects. From what I have so far, this is one more level of abstraction that will allow much more transparencies between different systems, and will help move towards the ‘Data Everywhere’ model that is demonstrated by web applications such as salesforce.com or facebook.com.

I know I’m not an expert on this, so no flames please. I’m simply exploring some new ideas in an area that I happen to be researching at the moment.