||Subscribe to riisbrich.dk
Send me an email
© Copyright 2016
Powered by: newtelligence dasBlog 2.0.7180.0
Sunday, February 24, 2008
|Microsoft SOA event|
I am speaking at a SOA event, hosted by Microsoft Denmark on the 8th of April in Copenhagen. The event starts off with a couple of general sessions on SOA and the Microsoft take on it, followed by a lot of sessions on really interesting cases across very different companies and industries.
I will be speaking with Søren Darville, from one of our customers, Bestseller, about a solution we have created with them. The solution is a full Enterprise Service Bus (ESB) implementation handling communication with more than a thousand company stores, several wholesale customers, thousands of trading partners and internal applications across a wide range of data, document types, variants and formats.
The data flows through a dynamically determined series of autonomous services / steps on the BizTalk Server before being delivered to the desired recipient(s).
The solution sits in front of an Oracle based backend system where all communication is initiated, trading partners are configured and all data is stored. We have implemented a set of Oracle packages creating an API allowing us to easily access the Oracle system.
On the other side of the fence we expose a series of web services allowing for the CRM part of the Oracle system to update BizTalk Party configuration based upon updates of trading partners and for the Java based intranet to pull information stored through Business Activity Monitoring (BAM) about the flow of data and status of the solution.
If you would like to sign up to the event you can do so here, http://www.microsoft.dk/soa
|Sunday, February 24, 2008 11:44:43 AM (Romance Standard Time, UTC+01:00)|
Thursday, February 14, 2008
|Why didn’t my mom ever bake these|
How great are these cupcakes I stumpled upon while surfing the otherday? Go here for more fantastic baking.
|Thursday, February 14, 2008 10:37:15 AM (Romance Standard Time, UTC+01:00)|
Wednesday, February 13, 2008
|Is SOA spelled with a Web Services|
To follow up on the post about SOA from the other week, one of the SOA related things I find myself discussing with customers / colleagues / people in general, again and again is whether there is an equal sign between SOA and Web Services?
Put in another way – do you have to have Web Services in your architecture to be able to give it the big SOA label?
… as such the post could end there, but OK, let’s dig a little deeper into things.
Am I against Web Services? No, that’s not it. Web Services are great and the right solution in many scenarios. They are easy to implement and have the ability to work across platforms – when implemented correctly.
The problem is that for years already whenever there was a need to expose a service there has been a tendency to default to achieving this through implementing a Web Service. Often without considering what’s already there.
I have even seen cases where a certain operation existed within a legacy system but because it wasn’t exposed in a satisfactory way (read through a web service) and that wasn’t possible from the legacy system – the entire operation was reimplemented and exposed in the wanted way.
As I wrote the other week, to me, one of the important points when designing a SOA architecture, is to utilize existing functionality. This also goes for interfaces. If there is a way to access existing functionality – be it through an old API, a stored procedure or even exchanging files – if it meets the requirements utilize the existing interface.
Of course the old interfaces will often come short some way or the other when presented with an up to date set of requirements, and then we can implement a new interface and if there is really no other way, the entire operation behind the interface.
And then I agree that web services might be the better, faster approach to a new interface … or is it!? WCF is looking good, more on that in the future.
|Wednesday, February 13, 2008 4:14:13 PM (Romance Standard Time, UTC+01:00)|
Monday, January 28, 2008
|The SOA mindset|
These days I get to talk a lot about SOA and it excites me – it truly does – so I keep on talking.
To me one of the most important things when defining a SOA architecture is not really to do with technical aspects at all but the entire mindset around it. Unlike a pattern or a best practice I don’t think there is a step by step way of getting from ‘We want a SOA architecture’ to ‘We got a SOA architecture’. Instead you have to get your mind on the right track and think the right thoughts in a number of ways.
I have the following suggested guidelines that we always try to go by when approaching a new project at Vertica A/S – also none SOA ones, so feel free to apply the approach across all your customer engagements.
Think in business processes and in how to support and optimize them. Think in combining and utilizing different services and operations from across the IT landscape to help make the processes flow.
Utilize the existing components already found within the running systems. SOA is very much about exposing and utilizing already existing functionality from within legacy systems instead of re-coding. Involve people who know these systems.
Involve the business users as early and often as possible. No matter how much you try to see things from their perspective you’re never going to be as good at it as they are themselves.
Ask their opinions and get their requirements directly from their own mouth – yes meet with them! Try to explain things to them so they actually understand what’s going on. More often than not this will help the project as you might discover things that aren’t really making any sense because you simply can’t explain them.
Ensuring the involvement of business users this is normally one of the best ways to ensuring an actual feeling of value and success in the business.
Support real needs but prepare for the future when defining a scope for your project and designing a solution to support it. Do not insist on implementing a lot of not needed features, but listen to the customer and meet their actual requirements all the while you’re not allowing the existing needs be too much of a limitation for your design and always suggest improvements where you see fit.
It’s all about finding the very thin line – and remembering that no matter how flexible a solution you implement there will be unforeseen surprises in the future.
I am aware that being a consultant you have a wish to sell as many hours as possible but more often than not delivering the right solution is better than delivering the biggest solution – in the long run this will typically give you a happy customer who keeps coming back.
Challenge the customer whenever you can and have a valid and well argumented reason. You’re job is to ensure the customer the best possible solution – not to accept everything they say! It is always going to be healthy to be challenged on your ‘beliefs’ also for your customer.
Take things in small steps if you can as opposed to a ‘big bang’ approach. Deliver often and focus on the areas where there is the most to gain. Choose one business process / use case and implement (if needed) and expose the needed services to support that. Do not insist on building up a complete service library for all process in your customer business before deploying anything to production.
At the end of the day SOA is little more than a new label to, what I believe has always been the core of the IT business. Working together with the customer on getting even more value out of their IT systems – existing and new ones.
Perhaps the most important part is the strong focus on exposing operations and services – again existing and new – and combining them across systems to support the processes of the business.
|Monday, January 28, 2008 3:35:46 PM (Romance Standard Time, UTC+01:00)|
Sunday, December 16, 2007
|On bikes, mud holes and clearing the head|
A couple of months ago I bought a new bike, a mountain bike, specifically a Scott Scale 40, 2006 model (link to 2007 model). It’s fantastic, absolutely fantastic. It has a very nice frame, excellent suspended Fox 32 F100RL fork and great gears from Shimano. All in all a fantastic new toy.
Throughout the years I have tried lots of different sports, I play or have played football, badminton and tennis; I have swum, kayaked, gone to the gym and I still regularly run. To me the key thing across all of these is that I have to have fun doing them. If not I just can’t get myself out the door. And riding my new bike is so much fun! Don’t get me wrong, it’s hard (we are talking “having to stop and catch your breath and fight the urge to through up” kind of hard) but fun – that’s the beauty of it.
Just to underline, I had a trip a few weeks back where I spent a couple of hours beating myself up on the bike in the forest and had my first crash, rode through my first pool of mud and almost ran in to a deer! How great is that!
And all the time I had fun and although I was in the middle of a lot of work and had my head full of too many things I totally ‘forgot’ it all for a couple of hours. The trip actually took place the day before I went to a potential client to present an important proposal. And finally we are closing in on the point of this post – yes there was one, right from the start – the clearing of heads.
I believe that clearing your head is one of the most important things you can do. I believe that letting everything go for a while is one of the healthiest things there is. To walk away from an obstacle when having stared at it long enough. If you have been digging in to a problem and simply can’t seem to find a solution; let it go; think about something else and come back later – more times than not this will help. I now it does for me.
Now for this to work your head needs to be cleared as much as possible and right now my bike does that for me. How you do it is up to you – go clear your head!
|Sunday, December 16, 2007 4:50:02 PM (Romance Standard Time, UTC+01:00)|
Wednesday, November 28, 2007
|XPath and Namespaces|
When you work with BizTalk, you work with XML, and when you work with XML, you are bound to run in to the need to do simple queries against an XML file. The answer of course is XPath queries; essentially just a matter of indicating a path through an XML file leading to a specific element – or set of elements – you want to extract.
As is the case – again when working with BizTalk – these files will typically have one or several namespaces. I created two very similar XML files for the sample (full links to all files are found at the end of the post). The files are invoices and have a standard items loop with some references at the item level that I will be accessing. In overview the files look like the following.
What I want is to find the value of the reference to the order number for the first Item. That is the value of the ReferenceValue element when the sibling ReferenceType element has a value of ‘OrderNumber’.
XML with one namespace
1 <?xml version="1.0" encoding="utf-8" ?>
2 <ns0:Invoice xmlns:ns0="http://XPathTest/Schemas/Invoice">
For our file with one namespace this is quite simple as XPath assumes all elements in our query are from the default namespace – because nothing else is expressed. Therefore we only have to include the name of the elements in our query which ends up looking like the following.
I am applying two different filters; the index filter to get the first Item element out of a number of repeating elements and a value filter to get the Reference element where the child ReferenceType element has a specific value.
With two namespaces
1 <?xml version="1.0" encoding="utf-8" ?>
2 <ns0:Invoice xmlns:ns0="http://XPathTest/Schemas/Invoice">
4 <ns2:Item xmlns:ns2="http://XPathTest/Schemas/Item">
For our file with two namespaces we have to indicate the namespaces for all the elements not found in the default namespace of the file which strongly affects the readability as can be seen from the resulting query. (Where I have added line brakes for readability only)
2 /*[local-name()='Item' and namespace-uri()
3 /*[local-name()='Reference' and namespace-uri()
4 /*[local-name()='ReferenceType' and namespace-uri()
='http://XPathTest/Schemas/Item' and .= 'OrderNumber']
6 /*[local-name()='ReferenceValue' and namespace-uri()
2. The index filter is applied in the same way as with the file with one namespace.
4. For the file with one namespace we applied the value filter at the level of the Reference element where we could indicate we only wanted that element when the child called ReferenceType had a specific value.
For the file with two namespaces we have to move down to the actual ReferenceType element and indicate we only want that element when it has a specific value.
5. Then we move back up to the parent of the – the Reference element.
6. Because we really want to move back down to the ReferenceValue element – which is want we wanted to find.
If you want to grab the files and test for yourself:
File with one namespace
File with two namespaces
Text file with the two XPath queries
|Wednesday, November 28, 2007 8:50:19 PM (Romance Standard Time, UTC+01:00)|
Thursday, November 08, 2007
Safely back from the SOA and BPM Conference in Seattle with a head full of new ideas and still tired from jet lag, this is just a quick post to summarize the conference and show some of the promised pictures.
As expected it was a great conference with lots of good sessions. After a first day, full of high level keynotes giving a good preview of Microsoft’s visions for the future on several aspects of the SOA world, it all got a bit more technical on the following days.
I saw an excellent session deep diving into the new WCF adapters for BizTalk Server 2006 R2. It was hosted by Aaron Skonnard and although it was on fast forward – an hour really isn’t much to go through WCF and the new adapter framework – it gave a good impression on how it will make BizTalk an even better backbone for a service oriented solution. The easy exposing of services through WCF combined with the strength of the technology together with BizTalk seems a really nice approach to inter service communication. I will try to post a little further on this in the coming weeks.
Another great session was on testing BizTalk solutions, held by Darren Jefford, one of the writers of the book, Professional BizTalk Server 2006. The session was really a walkthrough of best practices, and most of it can be found in that very book. It is always nice to have things repeated though and especially when it is something you just need to know on a subject most of us probably neglect – testing.
Finally there were two sessions on the ESB guidance by Marty Wasznicky. I think I have already used ‘fast forward’ in this post, but that’s ok because the term really doesn’t begin to describe these two sessions. In the first one Marty had just gotten the final build of the guidance and did a complete install as a demo including running a couple of the included samples. I really must say they have gone a long way from the earlier CTP builds I have looked at and I am looking forward to getting my hands on this final build and installing it on my machine – another thing there will probably be further postings on in the future.
Finally I just wanted to include one last picture, actually from the conference of ’06 and not this year. Take a look at the guys computer – I really like the picture.
|Thursday, November 08, 2007 10:12:41 AM (Romance Standard Time, UTC+01:00)|
Thursday, November 01, 2007
Wednesday, October 31, 2007
|SOA and BPM Conference - Day 1, Oslo unveiled|
After spending a couple of days sightseeing in the Seattle area (sorry no pictures yet – didn’t bring the cable for my digital) and desperately trying to adjust to the time difference (sorry no luck there either, still waking up at 5 in the morning) the conference was finally kicked of yesterday.
One day down of the most important thing to come out of it is Microsoft’s announcement of their vision for the future around working with SOA and services in general.
They call it Oslo and more than just being a name for a new product it is an overall vision for the next wave of products with the promise to help us cross lots of the boundaries we meet when implementing solutions today. They want to help us solve the problems we all have when we find us selves’ communication with other trading partners or even other departments within our own company. They want to help us break out of the silos which today too often stand in the way of truly cooperating towards the better solution.
They will deliver new unified ways of working together all the way from modeling our services across requirement gathering, specifications, designing, implementing and deploying. For this they will launch an all new tool actually demoed in the key note, called Universal Editor – a just about broad enough name. The tool will allow people involved in a project to work together on modeling the new solution indifferent of their unique approach – as it is a universal editor. All the time working on the same base of data and information stored in a new repository they will also be launching.
All in all, in spite of the very early and overall introduction to their visions it promises well for the future.
ISB (Internet Service Bus)
Another heavily discussed topic of the day was the ISB – the Internet Service Bus – which will bring the good ideas and loosely build architecture of the ESB to the internet. Extending the values gained from the ESB all the way to the external trading partners.
For simplicity the ISB can be seen as a hosted ESB, allowing for ‘everybody’ to utilize it’s publish/subscribe capabilities to expose and consume services. From the start Microsoft will host an ISB and it is actually their approach that smaller companies can communicate across this – how ever there is no reason why others shouldn’t host their own, a thing that in my mind is probably more likely to happen.
Finally Microsoft also launched their all new SOA website this morning.
|Wednesday, October 31, 2007 2:46:37 PM (Romance Standard Time, UTC+01:00)|