We rolled out the first version of our SOA about a year ago. It was a big effort and a huge change in direction for us as a company. At that point, it was a brave step as SOA was more of a concept than a reality in most people’s eyes. But we did it. V1 of the SOA was just what you might expect, total vertical transparency for a few core systems and data stores. Nothing fancy, just a collection of services exposing consolidated logic. By itself, for us, it was a huge step in the right direction. We now have a single code base with which we can interact consistently with core systems and the interoperability of web services so we can extend this functionality to other platform and vendors.
Sounds great right? OK it is, but it also seems to have its own drawback. You see, now that this SOA, admittedly still in its infancy, is seen as a viable solution, the drive to push applications through it is strong. This is great, save the issue of business intelligence.
There are two sides to the SOA development coin as I see them; Service Orientation (SO) and Business Intelligence (BI). SO represents the vertically transparent services which expose the functionality of a system or individual stores of data within the enterprise as services. There is no defined interactivity between these services, the messages are simple and small, and the service interfaces are very coarse in their granularity: AKA Information Silos.
Business intelligence, however, is the aggregation of these granular services spanning multiple systems. A layer, if you will, that spans these information silos and they are driven by the processes defined by the business. To me, this is the biggest payoff for an SOA concept and where you really start seeing the opportunities to ‘trim the fat’ from the existing processes. Lets say you have a process for customer address change, where there are several key systems maintaining independent profile data on a customer. When it comes time for that customer to change his/her address, it must be replicated throughout many systems, across many departments, by many people. Even better, it needs to be done accurately; Remember, To Err is Human! Add any amount of logic necessary for sending out notification letters or flagging records and you’ve got a process worthy of SOA implementation in the form of BI.
The payoff is simple, once you have this process coded for and exposed; you’ll have a consistent automated process for changing address. The process can then be offered publicly without any worry as to process adherence by the subscribers. It’s all there. Of course there are lots of contingencies to deal with in the real world. For instance, processes change right? That’s where the choice in architecture to orchestrate these processes comes into play. Orchestration is a topic unto itself, one I will be covering in a different entry.
Focused on the every day strife of architecting solutions that remove the barriers to accessing data and provide an infrastructure to transform data into usable information
1/31/2006
Other peoples code can be fun too!!
A while back, a colleague got me hooked on this site. The entire purpose of this site is for fellow programmers to share some of the worst code they have found. Most of the code is "legacy code" left by previous programmers. If you have ever run across code and said "WTF!?!?!" then it deserves to be on this site.
1/22/2006
WinFX Here we come...
One of the best parts about where I work is our ability to quickly adopt the latest technology and apply it to out infrastructure. Hell, we started developing the second version of our SOA using the 2.0 framework while it was still in beta!! Now, this does not mean we are pushing beta software into a production environment, that would be foolish, but it does seem to make us early adopters of technology. And it sure does make programming interesting again.
So here comes WinFX, which finally has a Go-Live license. I have been waiting forever for this product to get close enough for me to consider using. Specifically, I have been waiting for Windows Workflow Foundation (WWF) which really fits the bill for a lot of complex functionality we have been planning for our SOA.
If you have never played with WWF, I suggest you DL the components and try it out.
"Windows Workflow Foundation is the programming model, engine and tools for quickly building workflow enabled applications on Windows. It consists of a WinFX namespace, an in-process workflow engine, and designers for Visual Studio 2005. Windows Workflow Foundation is available (currently in beta) for both client and server versions of Windows. Windows Workflow Foundation includes support for both system workflow and human workflow across a wide range of scenarios including: workflow within line of business applications, user interface page-flow, document-centric workflow, human workflow, composite workflow for service oriented applications, business rule driven workflow and workflow for systems management.
The Windows Workflow Foundation namespace in WinFX is called System.Workflow. Windows Workflow Foundation provides a consistent and familiar development experience with other WinFX technologies such as ASP.NET, Windows Communication Foundation and Windows Presentation Foundation. Windows Workflow Foundation provides full support for Visual Basic .NET and C#, debugging, a graphical workflow designer and the ability to develop your workflow completely in code. Windows Workflow Foundation also provides an extensible model and designer to build custom activities which encapsulate workflow functionality for end-users or for re-use across multiple projects. Windows Workflow Foundation will be used across many future Microsoft products including The Microsoft Office System, BizTalk Server and the Microsoft Dynamics Products (previously known as Microsoft Business Solutions products). Most applications can benefit from the asynchronous state management features of the workflow model, the rapid development features of the designer, the potential for end-user flexibility, and the increased visibility into run-time code execution.
A workflow is a set of activities stored as a model that describe a real world process. Work passes through the model from start to finish and activities might be executed by people or by system functions. Workflow provides a way of describing the order of execution and dependent relationships between pieces of short or long running work. While it is possible to write a workflow completely in code, workflow is often best viewed graphically. Once a workflow model is compiled it can be executed inside any Windows process including console apps, forms- based apps, Windows Services, ASP.NET web sites and web services."
If you understand the above Microsoft quote, you can understand my excitement!! Not only will this boost out development time in system aggregation, it could play a huge role in giving the clients more flexibility in defining their own custom workflows and submitting them, rather than having to solely rely on the workflows available. Less SOA deployment, development...More Flexibility, Scalability etc.. I'll be posting more experiences as I have them.
See, I'm excited!!
So here comes WinFX, which finally has a Go-Live license. I have been waiting forever for this product to get close enough for me to consider using. Specifically, I have been waiting for Windows Workflow Foundation (WWF) which really fits the bill for a lot of complex functionality we have been planning for our SOA.
If you have never played with WWF, I suggest you DL the components and try it out.
"Windows Workflow Foundation is the programming model, engine and tools for quickly building workflow enabled applications on Windows. It consists of a WinFX namespace, an in-process workflow engine, and designers for Visual Studio 2005. Windows Workflow Foundation is available (currently in beta) for both client and server versions of Windows. Windows Workflow Foundation includes support for both system workflow and human workflow across a wide range of scenarios including: workflow within line of business applications, user interface page-flow, document-centric workflow, human workflow, composite workflow for service oriented applications, business rule driven workflow and workflow for systems management.
The Windows Workflow Foundation namespace in WinFX is called System.Workflow. Windows Workflow Foundation provides a consistent and familiar development experience with other WinFX technologies such as ASP.NET, Windows Communication Foundation and Windows Presentation Foundation. Windows Workflow Foundation provides full support for Visual Basic .NET and C#, debugging, a graphical workflow designer and the ability to develop your workflow completely in code. Windows Workflow Foundation also provides an extensible model and designer to build custom activities which encapsulate workflow functionality for end-users or for re-use across multiple projects. Windows Workflow Foundation will be used across many future Microsoft products including The Microsoft Office System, BizTalk Server and the Microsoft Dynamics Products (previously known as Microsoft Business Solutions products). Most applications can benefit from the asynchronous state management features of the workflow model, the rapid development features of the designer, the potential for end-user flexibility, and the increased visibility into run-time code execution.
A workflow is a set of activities stored as a model that describe a real world process. Work passes through the model from start to finish and activities might be executed by people or by system functions. Workflow provides a way of describing the order of execution and dependent relationships between pieces of short or long running work. While it is possible to write a workflow completely in code, workflow is often best viewed graphically. Once a workflow model is compiled it can be executed inside any Windows process including console apps, forms- based apps, Windows Services, ASP.NET web sites and web services."
If you understand the above Microsoft quote, you can understand my excitement!! Not only will this boost out development time in system aggregation, it could play a huge role in giving the clients more flexibility in defining their own custom workflows and submitting them, rather than having to solely rely on the workflows available. Less SOA deployment, development...More Flexibility, Scalability etc.. I'll be posting more experiences as I have them.
See, I'm excited!!
GMail gets a DELETE!!!
It's amazing how such a simple item could garner so much excitement, but I sure did miss having a Delete button.
Subscribe to:
Posts (Atom)