Sunday, June 01, 2008 |
|
|
On Friday, June 6 of Microsoft's Tech-Ed I will be hosting a Birds of a Feather Session on the topic "Software + Services is For Small Companies Too". It will be held in Room S330 E at noon. To continue the conversation, please add your comments and opinions to this blog post. If you are unable to attend feel free to add your thoughts as well here. Here are some questions to get you started thinking about the topic: What is Software + Services? Are small companies afraid of software + services? Are they afraid of cloud computing? Why? Doesn't cloud computing leverage the efforts of small companies? If cloud computing makes IT a commodity, doesn't this allow small companies to be even more nimble in their development efforts? What are the real advantages that large companies have over small companies? What about the innovators dillemma? How do large companies keep their current customers happy and assure future growth through innovation? Doesn't this help small companies. Doesn't cloud computing help small companies innovate even more?
|
|
|
|
|
Thursday, April 03, 2008 |
|
|
I have put my VSLive! talk, explaining how to use Windows Comunication Foundation and Windows Workflow Foundation together to create distributed applications in the Presentations section of my web site. |
|
|
|
|
Thursday, March 06, 2008 |
|
|
I did a short podcast for Consortio Services about Software as a Service as part of their weekly techcast. I very briefly cover what SaaS is about and some of the critical issues facing organizations looking at delivering services using the SaaS model. |
|
|
|
|
Tuesday, March 04, 2008 |
|
|
I am going to be giving two talks and a workshop at VS Live! in San Francisco. The first talk is an "Introduction to Windows Workflow Foundation" where I explain both the business reasons why Microsoft developed Workflow Foundation as well as the technical fundamentals. This talk will help you understand not only how to build workflows, but when it makes sense to do so and when to use some other technology. The second is " Workflow Services Using WCF and WWF". WCF allows you to encapsulate business functionality into a service. Windows Workflow Foundation allows you to integrate these services into long running business processes. The latest version of the .NET Framework (3.5) makes it much easier to use these technologies together to build some very powerful business applications. On Thursday I will give a whole day tutorial on Workflow Foundation where will dive into the details of how to use this technology to build business applications. Other speakers will talk about VSTS, ALM, Silverlight, AJAX, .NET Framework 3.0 and 3.5, Sharepoint 2007, Windows WF, Visual Studio 2008, SQL Server 2008, and much more. If you have not already registered for VSLive San Francisco, you can receive a $695 discount on the Gold Passport if you register using priority code SPSTI. More at www.vslive.com/sf
. |
|
|
|
|
Thursday, November 22, 2007 |
|
|
The Windows Workflow
Foundation (WF) ships with a Policy Activity that allows you to execute a set
of rules against your workflow. This activity contains a design time rules
editor that allows you to create a set of rules. At run time, the Policy
Activity runs these rules using the WF Rules engine.
Among other
features, the rules engine allows you to prioritize rules and to set a chaining
policy to govern rules evaluation. The
rules engine uses a set of Code DOM expressions to represent the rules. These
rules can be run against any managed object, not just a workflow. Hence, the
mechanisms of the rules engine have nothing to do with workflow. You can
actually instantiate and use this rules engine without having to embed it
inside of a workflow. You can use this rules engine to build rules-driven .NET
applications.
I gave a talk at
the last Las Vegas VSLive! that demonstrates how to do this. The first sample
in the talk uses a workflow to demonstrate the power of the rules engine. The
second and third samples use a very simple example to demonstrate how to use
the engine outside of a workflow.
Two problems have to
be solved. You have to create a set of
Code DOM expressions for the rules. You have to host the engine and supply it
the rules and the object to run the rules against.
While the details
are in the slides and the examples, here is the gist of the solution.
To use the rules
engine at runtime, you pull the workflow rules out of some storage mechanism.
The first sample uses a file. A WorkflowMarkupSerializer instance deserializes
the stored rules to an instance of the RuleSet class. A RuleValidation instance validates the rules
against the type of the business object against which you will run the rules
against. The Execute method on the RuleExecution class is used to invoke the
rules engine and run the rules.
How do you create
the rules? Ideally you would use some domain language, or domain based
application, that would generate the rules as Code DOM expressions. If you were
masochistic enough, you could create those expressions by hand.
As an alternative,
the second sample hosts the Workflow rules editor dialog (RuleSetDialog class)
to let you create the rules. Unfortunately, like the workflow
designer, this is a programmer's tool, not a business analyst's tool. A WorkflowMarkupSerializer
instance is used to serialize the rules to the appropriate storage.
I would be
interested in hearing about how people use this engine to build rules driven
applications.
|
|
|
|
|
Wednesday, October 31, 2007 |
|
|
Meditation is supposed to develop awareness, help focus your attention, and relax while increasing your focus. At one of my current clients we are developing a Software as a Service (SaaS) application. We have developed the following "meditative principles": 1. It's not done until the tests are done. 2. If it's broke, fix it first. 3. If it's not in a script or code, it doesn't exist. 4. Don't explain, do it (but ask questions if you don't understand). And finally (with apologies to Bobby McFerrin), "Don't worry, be agile". Here is a little song I wrote You might want to sing it note for note Don't worry be agile In every software we have some trouble When you worry you make it double Don't worry, be agile Ain't got no place to lay your head Somebody came and took your machine Don't worry, be agile The manager say your code is late He may have to litigate Don't worry, be agile Look at me I refactor Don't worry, be agile Here I give you my url When you worry call me I make you agile Don't worry, be agile Ain't got no time ain't got no style Ain't got not money to make you smile But don't worry self organize Cause when you worry Your face will frown And that will bring everybody down So don't worry, be agile (now) There is this little song I wrote I hope you learn it note for note Like good little developers Don't worry, be agile Listen to what I say In your software expect some trouble But when you worry You make it double Don't worry, be agile Don't worry don't do it, be agile Put a smile on your face Don't bring everybody down like this Don't worry, it will soon pass Whatever it is Don't worry, be agile |
|
|
|
|
Friday, September 29, 2006 |
|
|
David Chappell (http://www.davidchappell.com/HTML_email/Opinari_No16_8_06.html) argues that SOA may not foster the service reuse that everyone has been hoping for. I think his analysis is correct, but I think with business services we at least have a reasonable hope of achieving reuse. Here we are least dealing with the way things actually happen in the world as opposed to programmer abstractions such as objects or components. That combined with the looser coupling of services gives me some hope.
The reason why frameworks like .NET are successful is they reflect years and years of experience with programming problems. Many examples of reuse (such as file systems and compilers) are so embedded in our experience that we no longer see them for what they are.
Reuse may fail here as well for all the reasons mentioned in David Chappell's analysis. At least now I feel we are on the right track. |
9/29/2006 6:00:37 PM (Eastern Daylight Time, UTC-04:00) | | All | SOA
|
|
|
|
Friday, September 01, 2006 |
|
|
The Reference Model for Service Oriented Architecture defines a vocabulary for building service-oriented systems. Put together by a technical committee operating under the auspices of the OASIS standards organization, it is the result of individuals and organizations representing vendors, users, governments, consulting organizations, and academic institutions.
The Reference Model (RM) sees SOA as a means for organizing and using distributed capabilities that may be under the control of different ownership domains. The RM is not an architecture. It does not attempt to make any architecture normative. It does not try to make any standard or set of standards normative.
It does provide a common set of semantics that can be used across different implementations. This does sound rather fancy. Nonetheless, just like Moliere's bourgeois gentlemen that found out he was speaking prose all his life, many industries have been using reference models all along. They just never had to define them explicitly.
An architect for a residential dwelling knows that if they use the term door or window, the builder will understand what is meant. There are widely varied implementations of doors and windows depending, for example, if you are building a space station or an igloo. Nonetheless, everyone knows what the terms mean. Many of these terms are codified in building codes, and by standards bodies, and have evolved over the years. The software architecture community moves too quickly for such evolution; this is where standards organizations can help.
Software architectures, for sure, can have views and viewpoints, but the terms in which they are discussed have to be understood.
The core concepts that the RM discusses are service, visibility, execution context, service description, real world effect, interaction, and contract and policy.
I will discuss these core concepts over the next few posts.
None of this work is going on in isolation, or is it intended to denigrate other work such as the WS* specifications, or organizations such as the ISO, IEEE, IETF, the Ontolog Forum or other groups. The reference model just supplies standard definitions so that it becomes easier for each group to communicate with the others. |
9/1/2006 12:32:59 PM (Eastern Daylight Time, UTC-04:00) | | All | SOA
|
|
|
|
|
|
|
| Archive |
| June, 2008 (1) |
| April, 2008 (1) |
| March, 2008 (3) |
| February, 2008 (2) |
| January, 2008 (1) |
| November, 2007 (1) |
| October, 2007 (1) |
| August, 2007 (1) |
| May, 2007 (1) |
| October, 2006 (1) |
| September, 2006 (2) |
| August, 2006 (1) |
| July, 2006 (1) |
| June, 2006 (8) |
| February, 2006 (1) |
| November, 2005 (1) |
| October, 2005 (1) |
| August, 2005 (1) |
| March, 2005 (2) |
| December, 2004 (2) |
| November, 2004 (1) |
| August, 2004 (1) |
| June, 2004 (2) |
| March, 2004 (1) |
| February, 2004 (1) |
|
|
|
|
| Themes |
| Pick a theme:
|
|
|
|