Thursday, December 04, 2003

WinFS - Why its a big deal..

The following snippet from Ray Ozzie succinctly sums up why he reckongs WinFS is a big deal. These things take time, but WinFS will open up some really fascinating changes that we can expect in the next 5 years (or so). The 'network-effect' of WinFS, assuming we end up ubiquitously storing primary schemas types about at least our identities and profiles, means we will be able to do some pretty amazing things with personal communication and collaboration. Searching my digital assets, (i.e music, photos, documents) against standard schemas that make cross-referencing, searching and inferencing of my content, and content that i am interested in, extremely easy. IMHO, this makes WinFS the most significant part of Longhorn.

"No - the "big deal" about WinFS IMHO isn't Search. Like Web Services - it's about the fact that it's an attempt to get a higher level of interoperability between programs through agreement on schemas. Hopefully, toward the goal of bootstrapping network effects, and unintended/innovative consequences, on the client. WinFS defines an extensible object model and persistence mechanism, as well a rich and extensible "relationship" mechanism that can be used to intertwingle objects with that are somehow related to one another. Some kinds of stock relationships are obvious: common Author, common Artist, common Location, common Priority, etc. Some may be more subtle or domain-specific: common Project, common Client, common Contributors, or even manual and thus not-easily-described ties." More....

Saturday, November 29, 2003

The proud owner of an iPod 20Gb

I am now the proud owner of an iPod (3rd generation) 20Gb. Its just quite simply fantastic. Yeah, you can buy cheaper imitations, but they are just that, imitations.

Its by far the slimmest device, thanks to the use of the new 1.8" hdd from toshiba, and seamlessly integrates with USB on my pc.

My next plan is to get hold of the iTrip, essentially, an FM transmitter, which allows me to be my own personal pirate radion station on the move ;-). The reality is that i can hook it up to my car-radio and tune it in.. More on that once ive gotten it working...

Wednesday, November 12, 2003

Home made Pizza

The trick is to make a good tomato sauce for the pizza base.

- 4 x tomatoes.
- 1tbs Tomatoe puree.
- a big dollop of tomato pesto
- mixed herbs.
- 2 tbs Olive oil.
- 50ml x water.
- 1 clove of garlic.

Reduce in a sauce pan for 15mins..

You can make or buy your own pizza base, its something that i haven't learned to do, but i would like to.

Spread the tomato sauce evenly (but not too heavily) over the pizza base.

Sprinkle liberally with mozarella cheese.

Place in the oven for 12 minutes.

Now, when it comes out, its ready to *serve*. Just add the 2 SPECIAL ingredients. Prosciutto Ham and Rocket leaves.

Place up to 10 strips of prosciutto / parma ham over the pizza. And then sprinkle Rocket leaves over that (lots of it). I like rocket leaves there is something quite rustic and peppery about the flavour and smell.

Finally, sprinkle some sea salt & ground pepper and your ready to eat. trust me its simply gorgeous. :)

Tuesday, November 11, 2003

So, What EXACTLY is the Matrix!!!??

I came back come from seeing The Matrix Revolutions (yes i know the picture above relates to Reloaded) late on Saturday night, was i the only person who when the lights went up looked around at everyone else and thought, WTF?

Now before i get started, let me say that i did like the Matrix Revolutions. But that is because i can see the 'big-picture' - maybe because as a s/w architect i need to look at the world through many eyes.

So let me get this off my chest before we proceed. Firstly i have read and heard many reviews of the Matrix movies, and they range from "its got great special-effects, but theres no story" or "NEO is all-powerful its boring watching him fight Agent Smith" or "all the actions seqeunces were just there to fill up the movie" to "I didn't understand a word that the Architect was talking about" to "well i never liked Phantom Menace anyway.." . Jeez!

Get a hold of yourself, and stop trying to be so DAMNED cynical, the problem is that opnions are like arseholes, everyone has one. Its easier and 'smarter' to be critical than to admit that you liked something, or even to attempt to address the subjects that the Warchowski artists were trying to raise in the movies.

'So what other movies does Suresh like?' - i hear you say. Well i liked Solaris, i liked Mullholland Drive, and i liked the Pirates of the Caribbean, its ok folks, you don't lose your street cred for saying that you like this movie, or that you dig Keira Knightly, or thought that Johnny Deppwas excellent.

You see, its ok if you used to fancy Britney, or would like to groove like Beyonce or wish that your girlfriend had a bum like Kylie or youve realised Saira Mohan is such a doll, or you REALLY do think Christina Aguilerra is DIRRRRTY! Its ok, we still love you, the point is, you should see the beauty in what you see, so you don't have to be critical to be accepted, everyone forgives you, you mom still loves you, you weren't the only person that your school music teacher was stern at, and you know what?, you can give a two-finger salute to all those people that said that you wouldn't amount to much, cos they were wrong! Right. Now that i've gotten that off my chest, back to the Matrix movies.

These movies can be seen on different levels, and each movie offers us more to think about, more to re-evaluate. I think this movie has since the days of Star Wars, brought to the masses a rare combination of philosophy, religion, mythology, meta-physics with references to buddhism, greek mythology, hindu philosophy, and gnostic christianity that was cleverly spun through a 'post modern-generation Y-ultra-geek-comic book-anime-kung-fu-action-fetish culture-dystoptian future' story, that would otherwise have been ignored by todays generation. (if you thought writing that was hard, just try saying it!!)

In short, if you liked big guns, kung-fu, or wanted to get past the 'dollar-a-quote, strawberry gum, quasi-religious diatribe' (as ive heard it described!) then you would have got something out of it. The Warchowskis artists should be applauded for achieving this, but i will not sympathise with the person, that is critical, and that was neither entertained, nor wanted to learn or think.

I think the Wachowski Brothers should tackle another Matrix movie, perhaps they can introduce the notion of another human cancer that seems rife in this world, and that is human cynicism and apathy.

Monday, November 10, 2003 - Will the Process Integrators Integrate?

This article by Peter Abrahams is spot on on the current vendors marketplace for ETL/EAI/BPM...

Its exactly what ive been thinking over the last year... Ultimately the application server (read IDE) vendors that will win in this space. EAI and BPM is not a black box solution, so it will be driven by the businesses and the developers implementing the solutions.

Thursday, October 30, 2003

LA Universal Studios

A special thanks to Scott Woodgate for enduring a whole evening with us at Universal Studios.

Between Jody, Chris and myself we felt priviliged!

BTW, 1.8 Million lines of code in BizTalk 2004 i was right!

Monday, October 27, 2003

pdc updates

This years PDC was primarily focused on the following:

- Windows 2005 / 2006 (aka Longhorn)
- SQL Server 2004 (aka Yukon)
- Visual Studio 2004 (aka Whidbey)

There was off course a whole load of other things going on at the PDC namely (previews on BizTalk Jupiter and ASP.NET v2.0 - more about this further below), but it was really hard not to get drawn into the thrust of the conference which was the next generation of Windows Server (Longhorn), reckoned by Microsoft, to be their biggest release since Windows 95, and its obvious to see why.

WinFS is pretty cool. A new file system that relies on SQL Server, and sits on top of NTFS that provides an application layer to the file system. Through the definition of schemas, and schema relationships, (Yes were talking MetaData!) WinFS is able to build dynamic views on all object types. Additionally other core appilcations like Contacts become a primary WinFS schema type, with a UI that is bound against it. For example. this means that application vendors can take advantage of this rather than building its own silo based contact list. As Jim Allchin said, "Data is trapped in the application.". WinFS will allow us to get to that data more easily, to build more meaningful relationships across these types, and allow us to search and give us contextual access.

Finally, the task centric view of the desktop will eventually appear, and we will be able to say good ridance to the file based one that we have endured for the 20 - 30 years. And not a moment too soon, given the sheer amount of data we are capturing in our hard disks every day. Its good to see that Microsoft are finally able to execute on the vision of an object oriented desktop, where previous attempts like Cairo, Pink and Taligent back in the very early 90's failed.

As an aside, its reckoned, that within the next decade or so disk storage will become so cheap that we will be able to record every second of our lives from the day we are born till we die... Imagine being able to fast-forward or rewind through ones complete recored life, i kid you not. it will will happen. Anyway, i don't think that WinFS needs to contend with such challenges (just yet).

As an aside, it wil be interesting to see how WinFS/LongHorn compares to the work sponsored by Mitch Kapoors and the Chandler product. Whilst trying to solve simliar problems of Information management on the desktop. Chandler approach takes an e-mail centric way of solving this.

built in rss reader in longhorn - oh yes.

Avalon - a Unified presentation model for web and windows, yes thats right, both!; Microsoft has taken the next evolutionary steps from the .NET framework, which had already unifiied Windows apps (System.Windows.Forms via Win32), Web apps (System.Web via IIS), Web Services (System.Web.Services via WSE) and replaced this all with a new UI framework called Avalon which will will be acessed through the new Windows API (WinFX).

This means for the first time ever, a developer can focus on the functionality of the application, rather than worry about what programming model or skills are required to deploy it.

Now lets be clear about this, the Avalon UI, will be accessilble through the .NET framework(don't know what release it will be called) or through a new XML declarative programming language called XAML. XAML is Microsofts attempt to offer a first class scripting language that is superior to DHTML, that when compiled (or interpreted) will run as managed IL code in the .NET framework. There are intermediary formats known as BAML and CAML (yes!) that allows binary and IL representations of the XAML code for faster over the wire delivery.

** Now let me just re-iterate, Microsoft has produced a new XML based declarative language which which maps 1-to-1 to the new WinFX UI/Avalon object namesapce for building applications for the web and windows. This is a fundamental change to how people will write UI applications in the future!! **

This is earliest evidence of what Microsoft has been saying for the last few years that to get the full richness of developing applications you need a much richer language than HTML. Writing managed code or XAML to the Avalon UI, means that you are writing directly to DirectX and not GDI, so you will get some pretty fancy looking vecor based user interface on the desktop (much like Macromedia Flash). This is probably earliest evidence that HTML's time is slowly coming to an end.

The benefits are obvious for developers will be able to build applications without worrying about web or windows, which is fine as long as your operating system or browser can render XAML! I suspect we won't be hearing the last about XAML and it may end up changing a bit in the course of the next 2-3 years!

Indigo - boy where do i even start with this... In short its a transport API that will converge the different middleware layers that are Enterprise Services, .NET remoting, MSMQ, COM+/MTS exposed through a web Services framework. This Web Services framework is based on existing work Microsoft has been doing to build a Web Services Architectures (known as GXA or GWA) and their work with OASIS on WS-n standards (where n=("policy" | "security" | "transactions" | "Coordination" ....etc..). Anyhow, my head is still hurting going through Don Box's sessions...entertaining as they may be ;-)

Longhorn identity management is another area which deserved more attention, this will be managed at the OS layer through a simple trust model where a physical exchange (on the phone) of the fingerprint of the users public key is used to establish identity. There is much more to this, but i didn't have time to go through it (just yet!)

BizTalk Jupiter - Well its not exactly Jupiter, but the early signs of how they intend to componentize some of the functionality in BizTalk and make it 're-hostable' in other server products like CMS, Commerce Server. In the demonstrations that they had at the PDC, they showed how the lightweight orchestration engine could be used within Windows SharePoint Server. What was remarkable was the seamless integration between Microsoft Word and SharePoint, with the worflow process being managed both server and client side.

BizTalk Indigo - Additionally, Scott Woodgate's presentation showed the integration points between BizTalk 2004 Server and future products like Yukon (SQL Server) and Indigo (Longhorn). He actually showed us how we could easily bind an indogo adapter to a BizTalk port and and undertake a regular BizTalk orchestration with out having to worry about the complexities of reliability, transactionality, assured delivery of Web Services... Also he showed how in SQL Server (Yukon) you could do control flow process management of a ETL through the SQL Server DTS. The DTS as we know it has changed substantially from the previous version, and offers a palette of orchestration components for managing this process. I preumse this orchestration engine has been embedded in Yukon. 2.0 - From what i understand the design goals for the dev team was to reduce the amount of code written by a developer by 50%. That a pretty phenonmenal challenge, and shows they are making the lives of developers easier (read: redundant). Features include ADO.NET (much less code), Master Page templates, pagination of the grid controls, login and authentication controls, user personalisation, VB.NET debugging improvements. I don't want to elaborate on this too much as there is probably a whole load of stuff out there.

LA fires

l dont know what the cost of an AT&T gprs call from Houston is, but right now i couldnt care!

Ive been waiting at the exec lounges at Continental for the last 6 hours! waiting to get on a flight to LA for this years PDC.

Anyhow, lessons learned from Houston:

1. Belleaire Broiler Burger bar
2. Big trucks
3. carwash for 50 cents.
4. Houstonian hospitality

Wednesday, September 17, 2003

How the brain thinks - scary!

i found this at Mitch Kapor's Weblog:
"Aoccdrnig to rscheearch at an Elingsh uinervtisy, it deosn't mttaer in
waht oredr the ltteers in a wrod are, olny taht the frist and lsat
ltteres are at the rghit pcleas. The rset can be a toatl mses and you
can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed
ervey lteter by ilstef, but the wrod as a wlohe.

Thursday, September 11, 2003

Web services, SOA and Service Bus architectures

This is an interesting article which talks about the roles of Web Services, Services Oriented Architectures (SOA), and the role of EAI.

I have to say that there is a lot new thinking in this area, which a lot of vendors are struggling to come to terms with, its far from clear, many have a legacy to protect, and a vision that they need to articulate.

With all of this, its too easy to look at nirvana and think that we will someday be connected in this enterprise-galactic glue of process managed asynchronous messaging that is location, technology, and vendor transparent!

Whats clear, is that the ideas are much further ahead than where most enterprises in reality are at.

Sunday, August 24, 2003

P800 phone blog

"this is a test on my SE P800. cool it works! The Opera browser has done a really good good job in rendering the pages in edit mode.... thankfully the blospot templates are coded in XHTML"

I have since then been doing more research into how i can use my P800/Symbian phone to upload pictures/commentary on the fly... it seemed to me that it would be a great (some would say sad!) idea to be able to use the camera to provide visual commentary supporting my text that is updated to my site...

I am really surprised that the Mobile carriers haven't jumped on to this, or then perhaps i shouldn't be surprised as they are only now moving up the protocol stack ( i.e. MMS!) and from their point of view anything that moves into the application stack is a control point for revenue generating services (think DoCoMo). So maybe if they were to bundle anything as useful as a phone-blog software on their phones they need to figure out a way of making money on it.

Companies like Jataayu (another privately held Indian software company) are making inroads with the big telco-carriers by licensing their apps onto their phones... perhaps time to offer them a mobile-blog app? - one for the boys there, i will let you know their response...

Tuesday, August 12, 2003

India IT superpower by 2006?

India is very likely to become an IT superpower by 2006, according Gartner who were recently quoted at a UK outsourcing conference. For many this may not seem a surprise, although the fact that Gartner believes this powershift in IT will occur so soon may raise a few eyebrows.

Whilst the UK has been slow to get onto the offshoring bandwagon the US has been slowly moving call-centres, back-office functions, and IT infrastructure to India over the past decade. Lured by the number of highly competent engineers that India produces every year, and coupled that with the fact that this english speaking workforce are cheap and have a hardworking and loyal work ethic second to none.

In the UK, there has definetely been a noticeable increase in high profiled announcements of companies striking deals to transfer callcentre and do BPO work in India. Driven by bottom line revenues, this shift, stategically makes sense since these sames companies also get the additional value of the talented IT market.

This of course, is all very depressing if you happen to be a skilled IT worker in the US or the UK, what and how should these workers should adapt is a tough question that i have been thinking about, and i simply don't really know where this is all going to take us. My feeling is that perhaps after 40-50 years of sustained growth in the western world we are seeing signs of a global balance. Try telling my younger cousins from India, who used to be in awe of the fact that i lived/worked in a foreign country, he doesn't feel like that anymore....

So, when the economy eventually picks up (assuming it doesn't suffer the fate of Japan's 10 year depression) things may be fine again, and we may forget about all those jobs that went abroad. Then again.

This time round we may need to bear in mind that the very countries that the UK and US are outsourcing to are expected to be creating much of the economic growth in the next 25 years. The question we must ask is with the loss of intellectual knowledge brought about through outsourcing these jobs may not come back. With the population in India (1.1Bn) and China (1.3Bn) accounting for one-third of the planet, both these countries have the fastest growing middle-class in south-east Asia that will need its time-free money-abundant lives filled.

And where will this leave us?

Will the U.K. become a nation of hedge fund managers and hairdressers? And will the U.S. simply continue in its preserve of Movies, Media, Military, and the high speed delivery of pizza. A laughing matter not.

Tech.Ed03, Barcelona, July 2003 - presentations


Just finished posting my ramblings from my recent visit to TechEd 2003. My postings are in the order in which i viewed the presentations, so as you go further forward, you may see some duplication on the material that was presented.

All in all. I enjoyed this years Tech Ed presentations. So what was i able to take back about Microsoft and their products:.

  • Windows 2003 just works. They have built on top of the stability of the previous release to offer (i) NLB and improved clustering, (ii) .NET framework 1.1, (iii) Web Services & UDDI, Virtual Shadow Copy, ....and much more im sure!

  • Office 2003. I didn't attend any of the seesions on Office, but from what ive read to date. I am impressed. I think the way that they are opening up Word using XML and XSD will really expand the way people will start to build producitivty applications. That coupled with InfoPane, which provides a context sensitive client side panel embedded in Word, which allows developers to build workflow based applications that leverage on XML and Web Services. Additionally they released InfoPath, an XML Forms editor that can be used send XML data to BizTalk... I really don't know where Office 2003 and InfoPath are going... but i think it will really open up new oportunites for building apps... i would recommend taking the time to follow these new developments.

  • BizTalk 2004. Of course, you could not go to TechEd without seeing the announcements for BizTalk Server 2004 (which by the way is an absolute darling of a product). This is more a reflection of how how quickly Micrsoft has taken leadership position in the EAI space in a very short space of time. While companies like SAP are making noises of their NetWeaver / SAP XI platform strategy, and IBM still in the process of integrating (and rebranding to IBM WBI) its recent acquisition of CrossWorlds and its ICS Server / Collaborations product... Oh and lets not talk about TIBCO's continual acquisition of products (last one being Talarian?), it sort of makes me think that these companies are really struggling to deliver a cohesive strategy. So I think Microsoft have really stolen a lead, with its organic development, that is in line with its product stack and their Jupiter product strategy. This is additionally supported by Microsoft entering the Gartner Magic Leader/Ability to Execute Quadrant, which means they must now be taken very seriously!

BizTalk 2004 introduction

Design goals
- Focus on making integration projects easier.
- Provide standardized way of building the solution.
- Provide standardized ways of making information available to information workers.
- Accelerating Web Services as way of unlocking legacy systems.
- BizTalk 2004 is Project Voyager (Jupiter v1) – Jupiter roadmap converges the other Windows Servers systems (e.g. Content Management, and Commerce).
- In BizTalk 2000/2002 documents were supported using XDR, BizTalk 2004 now supports XSD .

- The Web Services-Interoperability group (WS-I) gathers a set of standards known as profiles that can work together in an interoperable way (e.g. SOAP 1.1, WSDL x.y, HTTP 1.1, WS-Security, etc.). In BizTalk 2004 the WS-I basic profile is supported.

- BizTalk 2004 has a number of standard adapters automatically built into it (e.g. FTP. SOAP, SMTP, etc), and allows for newer adapters to be easily updated into the product.

- All schema mappings are executed internally using XSLT.

- BizTalk 2004 orchestrations can be imported and exported using the Web Services orchestration standards BPEL .

- BPEL is also GXA compliant

XML web services
- Compared to BizTalk 2002, which had 7 different development tools, all development in BizTalk 2004 uses Visual Studio 2003.

- Consequently, all the BizTalk ‘components’ are compiled to IL, and managed as a standard a .NET assembly. (Well mostly)

- Additionally a BizTalk orchestration can itself be exposed as a Web Service using ASP.NET

- Additional adapters are expected at the time of shipping BizTalk 2004.
- BizTalk 2004 has the concept of a Message Pipeline (they used to be called Channel’s in BizTalk 2002) that provides the decode/encode, decrypt/encrypt, parse, and extract of the messages.

- After a message goes through a Message Pipeline it ends up in the Message Box (in the past with BizTalk 2002, such state was stored in many places like the database, filesystem, WebDAV). This is all now persisted in MessageBox.

- In summary a typical solution flow would like: -
TransportàReceive pipelineàMessageBoxàOrchestrationàSend pipelineàTransport

- Built on top of MessageBox are additional services like Correlation & Content Routing, and Activation and Instance Management.

- Tracking tools and monitoring tools have been substantially improved from Biztalk 2002.

- Information workers have additional services that they use BizTalk for, namely around Business Intelligence (business activity monitoring, and human workflow)

- The MessageBox is central to the BizTalk architecture.
- All messages are persisted on SQL Server 2000 SP3.
- The messages are treated as rich objects with properties.
- MessageBox is based on stateless pub/sub architecture.
- This makes it very easy to scale out.
- Correlations are a way of declaratively identifying messages through its complete lifecycle within BizTalk (i.e. how do we know that this PO is related to this Acknowledgement)
- Large message support (can stream messages up to 2Gb without any problems.)

- System is mostly stateless. (Most of the routing occurs inside SQL Server)

- Except for the following:-
o Persisted orchestrations, (long running transactions)
o Message correlations, (must be routed to correct machine – in some cases)
o Hydration/dehydration,
o MSMQ (session based protocols)

- Can use NLB (windows or hardware) to scale front-end to the MessageBox (SQL servers)

- MessageBox is therefore the bottleneck; however they can also be scaled out. Although one of the MessageBox must be the master MessageBox.

- The Master database MessageBox can therefore take advantage of standard SQL Server clustering; this is an improvement over what could be done with BizTalk 2002, which was quite difficult.

- MessageBox is secured, stops other hosts from accessing it.

- Individual BizTalk processes can be targeted to specific hosts (secured using Service Accounts)

- No guest messages to be allows through the receive pipeline (must be authenticated - through this default behaviour can be disabled).

Developer user experience
- Visual studio is de-facto user experience for anyone working with BizTalk 2004. (Mapper, Editor, Orchestration designer, Pipeline designer)

- Schema mapper provides 98% of what is normally done with XSLT. (Also possible to launch to an external XSLT engine.)

- Functoids based on .NET (drag and drop)

- The BizTalk orchestration designer is much more sophisticated in BizTalk 2004. BizTalk 2002 had 6 shapes whereas BizTalk 2004 has 22 shapes.

- BizTalk orchestrations can now be composed of other orchestrations, making the task of designing the orchestrations more manageable compared to the cumbersome and complex approach in BizTalk 2002.

- Parallel actions. Looping constructs. Compensation constructs (long running.)

Information worker
- Exposed functionality through Ms-Office 2003, specifically using InfoPath 2003, it will be possible to route XML documents using Web Services through a BizTalk orchestration.

- Business Activity Monitoring (BAM) are a set of services that rely on SQL OLAP to analyse the data from the documents and/or processes to provide the business information worker with a view on the business process in real-time.

- The BAM information is presented to the end-user using Microsoft Office tools.

- BizTalk 2004 also contains a highly scaleable business rules inference engine.

- An Information worker can be more proactive about how the business is running, my taking the metrics that the business uses, and then run through the orchestration, analyse them using Business Activity monitoring, and then re-apply changes to the business rules based on the newer information.

- The rules composer is used to create the rules. The rules are always version managed, so any changes are made to newer versions, and not the deployed ruleset.

- The deployment of the ruleset is very easy, and independent of the BizTalk deployment assembly. This allows the business users to modify the ruleset without having to re-deploy the BizTalk orchestrations.

- The separation of the business rules from the business process makes good sense, since the business rules change more frequently than the business process.

Trading Partner Management
- BizTalk offers an improved SEED package, which is an easily distributable BizTalk package for trading partners (includes SharePoint Team Services, and InfoPath).

- BizTalk makes it easier to manage relationships with thousands of trading partners and separates this from the business process.

- Additionally, BizTalk 2004 introduces the concept of Service Links. Service Links offer a way dynamically binding a port to a partner at run-time, based on partner or message data. This is different to content based routing where the end ports are already bound.

Human based workflow
- Human-based-Workflow is a new feature provided in BizTalk 2004, which provide a layer of services on top of the Business Activity Monitoring Services in BizTalk 2004 that allow Office 2003 to track human based Office workflow activities.

- These human based workflows are characterised by the fact that they are task oriented using tools like Office 2003; that the workflows can be modified in run-time; process is ad-hoc and semi-structured;

- Human-Based-Workflows leverages the BizTalk Orchestration engine, and built on top of BPEL.

Automating Business Processes and Web Services using Microsoft BizTalk Server 2004

Orchestration is document-centric using XSD rather than XDR. Concurrency, decision branching, transaction processing are additional components available in the orchestration.

New in BizTalk 2004
- Integration with the .NET framework.

- Orchestration designer generates MSIL. (Fully compiled unlike BizTalk 2002, which was sort of interpreted.)

- Orchestration and Messaging engines are now combined.

- Deployment model is based on the standard .NET assemblies using Visual Studio.Net

- More complex business processes can now be constructed.

- Can compose orchestrations (abstraction to other orchestrations.) – allowing developers to build a library of orchestrations.

- Custom and advanced correlation.

- n:m schema mapping (now you can map several schemas to several schemas n:m)

- Flexible binding options (early, late, dynamic)
2002 just had early binding- static addressed for testing.
2004 now has late binding - for orchestration binding.
Note: (This is separate to port binding, which can be done later closer to time of physical production.)

- Move from 6 different tools in BizTalk 2002, down to a 1 single tightly integrated tool.

Basic features
- Send & Receive Message - building blocks for the business processes.

- Ports - named locations where we will be sending and receiving messages from (addresses, URI)

- Conditional Branching based on Boolean (decision) or message type. (Listen)

- Document Transformation (can integrate with the BizTalk mapper)

- Parallel Actions (fork and join, concurrency / synchronization)

- While Statement (while xyz do this… etc. etc. etc.!)

- Transactions
ACID transactions (same as what was in BizTalk 2002)
Long Running, compensation.

- Exception Handling (in BizTalk 2002 wasn't very rich model, now improved vastly, more programming centric C# model)

- Service Links (a concept in BPEL4S - a collection of ports that describe a particular action with your trading partner. At runtime you can determine trading partner to communicate with rather than coding port at design time.)

- Flexible Business Policies. (This refers to the rules inference engine capability.)

Port Binding
In BizTalk 2004 there are a number of options for binding ports:

- Specify now (URI, filename, etc.)
- Specify later (at some later time, the administrator determines where this message will be received from)
- Direct binding (communicate with other running orchestrations instances, or talk to the pub/sub MessageBox) … not clear on this one –SK.
- Dynamic (the reply to address is determined at runtime.)

- Using the BizTalk Orchestration designer a developer can easily drag a web port type and link it to a Visual Studio code Web Reference. In effect using the BizTalk designer a developer is able to bind a web port to a WSDL interface, which is bound to the auto-generated proxy code generated by Visual Studio.

Web services in BizTalk.
- Web Services Publishing Wizard – allows you to publish an Orchestration as a web service. By selecting the port that you want to expose, and by defining a target namespace, SOAP headers and Single-Sign on services. Visual Studio will create an project.

- BizTalk 2004 provides features that allow for a more robust environment for building web services, for example when an Orchestration is exposed as a Web Service, BizTalk will track and ensure retries to make sure of guaranteed execution.

Administering, Deploying, and Managing BizTalk 2004

BizTalk administrator
- MessageBox’s are assigned to a SQL Server database.

- Can now isolate BizTalk Orchestration Applications, MessageBox, Processing, Adapters, and Tracking onto specific hosts.

- These Hosts can then be mapped onto server instances.

- ReceiveLocations - where document flow in. (E.g. SharePoint, file, etc.)

- SendPortGroup - multiple subscribers (1:M)

Hosts - default host’s setup when BizTalk installed. "BizTalkServerApplication"

Note: The whole area regarding how BizTalk can scale up/across was brushed over rather quickly, and therefore its unclear how BizTalk 2004 takes advantage of any of the new features of NLB cluster and Server cluster capabilities in Windows 2003 or whether its independent of BizTalk.

Deploying Applications
- Developer use Visual Studio to produce Orchestrations, Pipelines, Schemas, Maps, and Rules. By using abstractions of the physical locations, and then wrapping them up in .NET assemblies.

- Scaling issues can be more easily managed when the administrator connects them up to the real physical world.

- BizTalk explorer is used to create the physical environment to the logical BizTalk application. (i.e. orchestration ports to physical ports, and mapping of applications to Hosts)

- Deployment wizard tool (is not part of Visual Studio) is used to create a deployment script. The tool ensures that the BizTalk assembly is registered in the GAC .

Use Visual Studio to deploy application à puts the assembly into the GAC. à Then use BizTalk explorer to set-up the send and receive ports. à Specify the physical locations. à
After that you need to bind the orchestration to the newly created send/receive ports.

How to move from dev to test to production? à Use "BizTalk Deployment Wizard" application à "export .NET assembly binding to a file." à specify assembly, specify location to place the BizTalk assembly binding file. à Creates xml script. à How to deploy to multiple machines? à Add a new project within visual studio. "BTSInstaller" à Build the project to create an MSI package.

Securing BizTalk
- BizTalk relies fully on SQL Server roles for access permissions (e.g. MessageBox, Configuration database, Tracking database.)

- Hosts are a generic container for a pipeline, or an orchestration or an adapter, and therefore becomes a security boundary.

- BizTalk provides the ability to isolate apps within hosts.

- Process isolation ensures code does not impact other hosts.

Public Key Infrastructure (PKI)
- BizTalk can accept encrypted S/MIME v2/v3 messages.
- BizTalk global address book is used for storing partner’s certificate (only public key)
- BizTalk server hosts has its own private key (they use the MY Certificate Store)

Authentication of Senders
- BizTalk will ensure hosts are trusted as well as the messages from these hosts.
- Adapters can be set to authenticate senders if required.
- If authentication is not required, then the sent message will be assigned a Guest ID.
- Establishing authentication of the message is a way to stop DoS attacks.

Note: Currently, the rejected messages cannot be trapped or re-routed.

Building an End-to-End Enterprise Application Integration Solution with BizTalk Server 2004
- There is a one to many (1:M) relationship against (receive port: receive location)

- Receive location (m) à receive port (1) à Published to MessageBox à Send port Subscribes to the MessageBox.

- Filter expressions are used against the send port to determine the messages that arrive.

- In BizTalk 2002 the terminology is different (receive function à channels à send ports)

- The receive pipeline is a stateless engine that parses, decrypts, and transforms. (Configured to the receive Port)

- This is connected to the MessageBox (running in SQL Server); this is the PUBLISHING of the message, (you can also promote any specific properties of the message)

- Very symmetrical architecture...

- A business process will SUBSCRIBE to a message...

Adapter framework
- AIC is symmetrical on send and receive ports. (on BizTalk 2002 this was just the send ports)

- Will have an FTP adapter.
- Will have a SQL adapter.

BizTalk orchestration 2004
- Performance will be 10 times that of BizTalk 2002 orchestration.

- Very simple super-scale out.

- Can import/export BPEL orchestrations.

- Nested processes / built in correlation.
- Business process contract interoperable across business boundaries... (Sort of like WSDL contract used for Web Services)

- OASIS 105 members expected to get a standard out (some time soon!)

- BPEL is implemented fully with Web Services.

Note: BizTalk 2004 Beta tips. Install sqlxml 3.0 sp1, turn off msmq...

Building Solutions Using the BizTalk 2004 Rules Engine

Manual processes have evolved to Automated process islands (e.g. ERPs!) as a result of evolving business processes we create connected processes (BizTalk2002 - externalising the process outside application) to one that is even more agile using BizTalk2004 (orchestration + business rules)

- Start with the premise that Processes DO CHANGE. Actually, the process tends to be the SAME. It is the policy within that PROCESS that CHANGES.

- Tracking is fundamental to the orchestration and rules.

- The Rules engine is a lightweight .NET application component that can run as an In-process within a BizTalk host.

- Developer will be able to drop a rules engine component into the BizTalk Orchestration designer.

What are rules?
- Basically they are predicates. (i.e. if then )
- Modify business policies (NOT processes) in real-time without rebuilding/redeploying.

Design goals.
- Rules engine can also be hosted in a WinForms component, or wherever!
- Security roles, define who can change these rules.

- Version management is also important; once rules are saved they are saved in SQL server. When they are published the ruleset they become immutable (i.e. they cannot be changed.)

- Rules engines can use English based vocabularies that map to .NET classes, database tables, XML Schemas.

- Instantiates the Policy Class... queries the Rules Store... holds rules in the rules cache.

- The Rules engine uses multiple Rules stores (XML / SQL Server / OleDB)

- Forward chaining inference mechanism.... [Finds all true statement.]

- Efficient pattern matching.
- Performance and scalability optimised.

- Eager-match algorithm for smaller rules sets & Microsoft patented algorithm for large rule sets.

Design Patterns
The following design patterns describe when to call the Rules Engine: -

- To dynamically determine which orchestration to call.

- To determine the path within the orchestration. [Using inference]

- To execute logic instead of burying it in the code.

When to use what?
When should you code in the rule policy and when should you code in the orchestration?

- When there are a large number of permutations to encode in control.
- Fact-based inference where control cannot be predefined.
- Point-in-time evaluations

- Workflows that require formal Control structures, long running semantics, and messaging.
- When Control flow is well understood and performance is critical.
- Visibility and tracking are important. (Process rather than policy)

Advanced Business Process Orchestration in BizTalk 2004

Transaction Scopes
Atomic transaction properties.
- Scope is a DTC Transaction.

- Timeout - how long it takes before we decide it’s a failed attempt.
- Retry - do you want to retry transactions.
- Isolation (read committed / seriazable) – database term.
- Synchronized - can only access transactions at the beginning and end of the synchronized transaction. [And not between]

Long Running Transactions.
- Business processes typically last longer than a few seconds.
- Atomic transactions are too resource intensive.

Nested Transactions.
- In BizTalk 2004 it is possible to have transactions inside transactions.
- When inner txn aborts, it does not necessarily mean that outer txn is aborted.

- Atomic transaction compensation is used to undo an atomic transaction within a longer running transaction.

Drag and drop scope shape component into orchestration designer à Can specify Atomic txn properties à Atomic transactions don't have exceptions since by their very nature they are rolled-back.

Correlation is a new feature in BizTalk 2004 to ensure that a message is correctly identified throughout the duration of its orchestration life cycle.

- Routes an incoming document to the appropriate instance of the business process.
- Property promotion. [Within each document, identify a property within a document that is unique within that business process.]

- Correlation sets are a collection of these promoted properties.

- Promoted fields are used for correlation.
- Distinguished fields are used for run-time calculations.

Note: Distinguished fields are different to Promoted fields.

Partner management
[A lot of work has been put into this functionality.]
- When the same business process applies across suppliers with different schemas.

- The business process can be bound to a Role. But doesn't bind the actual end-points.

- Orchestration Designer is used to define which is the best shipper to use at run-time. (i.e. how to make the decision about which supplier to use.)

Human Workflow Services using BizTalk 2004

Human oriented workflow is an area that has never been tackled by Microsoft before.

- Almost anything can be regarded as workflow.

- Ad-hoc tasks, collaborations, non-intrusive workflow, pervasive workflow, spans groupware, LOB, and systems management.

- Human Workflow Services are more focused on ad-hoc Task oriented stuff (fill out forms, organise events, campaigns, review document, RFP, recruiting, etc.)

- Provides Document Tracking displayed visually.

Demo #1
An example of an ad-hoc type workflow à Receive a document à Forward it to a distribution list à Person in distribution list à Opens the document in Word 2003. à Context sensitive task pane (SmartDocs) allows the user to à Delegate the document to another person in dist. List à This person approves the document.

Original sender of the document à Accesses the Workbench à Which shows dynamically a pictorial rendition of the tracking stream (i.e. what’s been happening to that document)

Demo #2
Utility called "sn.exe" that creates public/private key-pair (e.g. sn -k .snk) [creates a key-pair.]

Drag and drop "GAC Attribute" to AssemblyInfo.* à specify key-pair filename à then build.

Data Access Patterns: Messages or Data?

Layer: Architectural unit. (Presentation is equivalent to Facade)
Tier: Deployment unit.
Service: Functional unit.

- It used to be one service per tier.
- Tiers used to blend architecture and deployment.

That’s all going to change.
- Database is the least flexible in most architectures.
- Presentation is the most flexible.

- Presentation service - public interface whether its COM or presentation or GUI...

- Application logic sits in between.

- Near services or far services have different characteristics.

o Near Services (closely related machines, same organisation, reliable connection, trust domain, interoperable)

o Far services (Larger, less frequent messages, more interoperable, decoupled app logic, only related through contract, less common)

- The .NET Dataset is a very powerful mechanism, as it shifts loads away from data source.

- Identify tables that are updated {almost never, hardly ever, time to time, and pretty often} and whether it’s a read/only or read/write operation.

- The general rule of thumb is to minimize updates... whenever possible.

R/O Pattern.
Easy to replicate, multiple instances..

Deploying Visual Studio.NET Applications (incl. BizTalk 2004!)

- Microsoft has removed ‘dll hell’, although this may now have been replaced with ‘version hell’.

When deploying à Add a new project to system à Setup and Deployment Projects ("Web Setup Project") in Visual Studio.NET à Add Project Output à specify (Project name) includes compiled code, aspx, asmx files, etc.

- Visual Studio will detect Dependencies (i.e. .NET assemblies, COM, dll, etc.) that also need to be added...

- Creates a setup.exe, setup.ini, .msi (setup.exe only needed for pre-Win2k machines that don't have the auto-installer).

- All Visual applications uses the app.config XML file. [Automatically created by Visual Studio]

- Visual Studio allows programmatic component properties to be mapped to the app.config configuration file, therefore allowing these properties to be modified during run-time!

Global Assembly Cache (GAC)
- Only deploy to GAC if you have something to share.

- Assemblies must have a strong name (i.e. they must be digitally signed.) [particularly when you have multiple versions.]

Microsoft Solutions Framework (MSF v3)

MSF --> <--MOF

- MSF v1 (1991)
- MSF v2 (1998)
- MSF v3 (2003)

- MSF is related to MOF (Microsoft Operational Framework)
- MSF has been developed over the last 10 years. [Standish Groups?]

- Success rate on projects improved from 16% to 28%
- Challenged projects reduced from 53% to 49% [pain! but succeeded]
- Failed projects from 31% to 23% [failure, cancelled]

5 reasons why projects fail.
- Separation of goal and function.
(Programmers motivations or consultants’ motivations are going to be different)
- Separation of business and technology
- Lack of common language and process.
- Failure to communicate and act as a team.
- Process that are inflexible to change. (E.g. SSADM)

Projects on average:
- Cost overrun 189%
- Time overrun 222%
- Functionality delivered 61%
- Program manager [represents the constraints.]
- Product management [what is the user’s requirements.]
- User experience
- Development [any technology specialist incl. architect.]
- Test [ensure quality assurance, during all stages of project.]
- Release management [deployability, support, future operational needs.]
MSF Process model.
- Envisioning [Vision/scope approved, finding a focus.... get team together... business problems. who are the users.. 3-4 page vision documents]
- Planning [Project plans approved.]
- Developing [Scope complete.]
- Stabilizing [Release readiness approved. Move to production when the jelly wobbles the least...!]
- Deploying [Run pilots. Pre-production testing. Change management issues. ]

Sample documents at

DEVELOPMENT - Public Daily Builds
- Public Daily Build - Biggest improvement in software development.
- Building the product in an executable on a daily basis. Feels like a coherent whole.

- A strong indicator that a team is functional.
- A way to make the product and its progress VISIBLE.
- Focus on breadth NOT depth.
- Solves one major problem integration build.

- n x Daily build(s) lead to internal release.

- On a 4-6 months project (2 months build) ... first daily build will take 5 days or so...

- BVT - Build Verification Test.... minimal level of compatibility.

- 2 days of failed daily builds in a row is a problem, get the other programmers together to fix before continuing with other responsibilities.

- Use source code control. (VSS, Rational ClearCase)

- Each developer works locally (all code and executables on every workstation).

- Define quality levels. (BVT, TST, IDW, IDS, IDC)

- Automate the complete build process (batch files.)

- Upgrade to Visual Studio.NET supports daily build process [How?]

- Focus on high quality competent programmers.

Changing Role of Architects
- Systems Analysts no longer good enough.
- Today an architect must be an analyst, dba, programmer, and project manager.

Enterprise / Solution Architects must also consider the following views:
- Portfolio Management.
- Finances & Costs.
- Governance.
- Vendor Management.
- Technology Strategy and Innovation.
- Business Processes.
- Project life-cycle (i.e. MSF architecture, design, implementation, operations)

Case Study: Architecting Scaleable, Secure, Reliable Architectures

- Application built using Windows 2003, SQL Server 2000, .NET framework 1.1 running on a UNISYS ES7000 32 ways server
- Directory tree control driven from XML.
- Fat client talks .NET remoting to hub instance based CLR application that talks to server instance (ES7000)

- Deployment scenario that is flexible enough to support different technologies and architectures of the various departments/local municipals accessing it.

What’s important?
- ES7000 - crossbar interconnect - 16.Gb/s switched network between server components (i.e. CPU, Memory, IO, PCI, etc…)

- Server activated objects are always better than client activated objects.
- Class factory design pattern.

- Partition data locally.
- Minimal updates to global data.

- Minimize synchronization between threads.
- Use thread pools. (Don’t start and stop threads.)

Data access
- Dedicated connections per thread.
- Used connection pooling

Heap usage
- Few, large, long-lived items rather than many, small volatile items.

- .net framework 1.1 - take advantage of.
- Workstation and server use of pki/certificates.
- .net reflection to verify signatures of the assembly.
- Encryption is escrowed
- Access to SQL is through Stored Procedures only.
- All access methods for SQL Server over the network are turned off.
- Application code resides on the same server as the sql server.

Microsoft cluster services
Unisys cluster application defender (fail-over and recovery. watches and monitors)
Geo Spans (clusters across 200Km)

Wednesday, August 06, 2003

Wow... This is fantastic news, Ricky Gervais and the team that brought you "The Office" are planning 2-part christmas special. on BBC1 this winter.

One thing is for sure, there really isn't much good television programmes on anymore, its all full of cooking, diy, and chat show programmes. And most of the humour is tired, crass, and trying to be pseudo-intellectually funny.

Thats why when something which relies on the art of comic timing, and body language to be funny, its no wonder that people put it on the same pedestal as other great classics (e.g. Faulty Towers). How the tediousness and banality of daily office life could be brought to life through these guys is nothing short of sheer genius.

Ricky Gervais ("David Brent") and MacKenzie Crook("Gareth Keenan") i take my hat off to you. No, not even that. I would shake your hand Sir.

Tuesday, April 22, 2003

Unless you've been living under a rock for the last 2 years... you can't but have realised that there is a new Matrix movie coming out this May... in fact 2 matrix movies in 2003... What a joy.. "Matrix 2: Reloaded", "Matrix 3:Revolutions"

For those that think this is all some sci-fi geek fetish about Trinity wearing rubber and PVC... Woah. Stop and recognize. Think again... Read up on the philosophy of the matrix.

These guys at Warner Bros have managed to get together some of the best brilliant minds on theology, philisophy, and science fiction... and they bring you a number of interesting articles relating to the Philiospy of the Marix.. its definetly worth your time... [ more to talk about this soon... ]

Friday, April 11, 2003

Separated at birth!?

Bush and Blair

Bert and Ernie

Thursday, April 10, 2003

I really have to say that right now... my hat goes off to Mohammed Saeed al-Sahhaf...

The ministor of mis(Information) for Iraq...

I have never seen anyone like al-Sahhaf who has shown such up-beat optimism and lies in the face of the largest U.S. military build up ever...! This guy will down in history as being one of the most entertaining spokesperson for the now fallen brutal Iraqi regime!

Here are some recent quotes...


What? Don't ask stupid questions"

"No, I am not scared and neither should you be!"

"We have retaken the airport! There are no Americans there! The film they broadcast to you is a lie! I will take you there and show you . . . in one hour!" (he never did).

Coalition forces "are not near Baghdad. ... They are not even [within] 100 miles."

"Coalition forces have no control over the city of Umm Qasr in southern Iraq."

The Republican Guard is in "full control of Saddam International Airport."

"Today we slaughtered [U.S. troops] in the airport. They are surrounded; we are hitting them with rockets."

"U.S. troops are committing suicide."

"U.S. troops were poisoned yesterday."

"Be assured Baghdad is safe, secure and great. There is no presence of American infidels in the city of Baghdad, at all”

“They are superpower of villains. They are superpower of Al Capone.”

“Those only deserve to be hit with shoes.”

I think the British Labour government could use this guy.. he has talent!

If you would like to support his cause... then buy his t-shirt...
Support Al-Sahhaf and buy his t-shirt!!

Friday, April 04, 2003

Well Happy New year, 2003...

Its now April.. would you beleive and the sun is finally out...

April is an important month for me as Manchester United are at a critical stage in their Champions League and Premiership run....
We have to play Liverpool (5th April), Real Madrid (8th April), Newcastle (12th April), Arsenal (16th April), Real Madris (23rd April)

as you can see... United are going to have to play their best football that theyve ever played in the last 8 years.. to win the premiership and the champions League...

interesting times ahead.. indeed..