Wednesday, October 31, 2007

Connection in the cloud : BizTalk Services & WCF


















Last session of today was around BizTalk Services aka Internet Service Bus as I learned today. Justin Smith did his talk with the following objectives:

- Intro BizTalk Services
- Service messaging options
- Introduce BizTalk API

And takeaways from this session are:

- Provide generic, secure connection
- Lowers bar for next gen development
- Incubation technology in this point

CTP is here now

Some of my notes during the session:

- BizTalk Services != BizTalk Server
- BizTalk Services is an incarnation of the Internet Service Bus (new Buzzword coming up)
- Dilemma's expose services broadly, identity and access control silos, interop to heterogeneous environment
- Services hosted by Microsoft: pub/sub mechanism, discoverability, http/rest interpertation, standard security based
- create account, download and install BizTalk Services SDK (compliant to .net fx 3.0 and 3.5)

- Demo BizTalk Services 101

- why: Software+Services (oslo), feedback regarding pub/sub, open door for applications
- all kinds of scenarios, consumer, enterprise, ect..
- http://connect.biztalk.net; http://identity.biztalk.net, workflow will come; gross anatomny
- pub/sub via uri's : biztalk services (cloud)
- feeds as discovery
- ws-addressing
- Security: CardSpace or usrname/psw
- RelayBindingType
- http://connect.biztalk.net/services/

- Demo federated pictures

Very good session and some good demoes, so check it out.

Technorati:

BizTalk Testing

Next session after service virtualization was about BizTalk testing. This session was done by Darren Jefford one of the author of Professional BizTalk Book, see one of my previous post. Some of the highlights (practices) or blurts from this session:

- test, do not forget that
- think about test overload scenarios
- test early, often
- look at performance
- identiy bottlenecks
- know patterns or anti-patterns (one you might find out yourself)
- look at latency (low is possible trough certain patterns)
- depends on customer scenario (requirements for solution)
- throttling
- environment
- Automate Test Format BizUnit,LoadGen, MSTest; So look at these tools See my previous post -->
- checklist for instance virus scanner, unc file paths, message tracking, hardware sql server and disk, look virtual machines, no performance tests on workstation hardware --> OTAP !!!!
- testplan, reports, automate test process, regression testing
- logs and data files seperated !!!
- configure web service calls in config
- perfmon counters (use excel spreadsheet)
- vs_profiler attach to process (incedible tool)
- code coverage
- Look at Codeplex for BizUnit, (Use Case --> Write Test --> BizUnit)
- Test everything in your solution, not just BizTalk solution like orchestration but also things that get called like web services and so on
- orchestration profiler (code coverage for your orchestration)
- LoadGen ; throw away custom test harnessess !!!!
- In Box Throttle Monitor: SQl-Spool, Perfmon....

Most of the testing tools most of you all already know or have experience with. On codeplex or darren jeffords blog. So check it out.

Technorati:

Service virtualization with .NET and BizTalk Server

This afternoon today at Microsoft SOA and Business Process Conference I went to a session about service virtualization with .NET and BizTalk Server done by William Oellermann and Raul Camacho. Both work for SOA Solutions Team at Microsoft Corporation. Their objective was to establish significance service virtualization in SOA implementation and demonstrate roles of .NET 3.0, SQL Server and BizTalk R2 in service virtualization. Takeaway eventually is to let the audience understand how. Speakers did a quick intro into the subject going through SOA versus service establishment, WSDL boundaries, and service virtualization and implementing it. Then they did a demonstration of the managed service engine that can be found on codeplex site. Sam Gentile already did a post about this among other things that happen here at the conference. This is pretty interesting stuff so check it out.

Technorati:

BizTalk WCF Adapters


















Yesterday I enjoyed sunset in Kirkland near Redmond. It was good scenic view of Seattle at dusk. Today the first session is a deep dive into BizTalk Adapters for WCF by Aaron Skonnard. And recently wrote a white paper about WCF Adapters in BizTalk Server R2. More you will find on his blog site. In this session he went into WCF Runtime and how in fits into BizTalk, port architecture actually. After little bit of theory of WCF he did a lot of demo’s with WCF Adapters and BizTalk Server R2. One will probably find these demo’s in near future on his site or on the Conference site. One of his demos did have some similarity with Stephen W. Thomas WCF Adapter demo, see previous post.

Technorati:

Tuesday, October 30, 2007

Microsoft SOA Governance

Last session for me today at Microsoft SOA and BP Conference was on flexible SOA Governance. Frank Martinez from SOA Software was presenting this topic with his software portfolio. So this was a kind of product session. His company is a Microsoft Partner and has products in

- SOA Governance
- SOA Policy Management
- SOA Security
- SOA Mediation
- SOA Management

And has customers like jetBlue, Verizon, Amgen, Thomson, Ford, and Ingram Micro…

Ok so here are some blurts from his session.

SOA Goals
- Reduce cost
- Increase agility to better align IT and Business
- Reduce Risk, fragility and complexity of integration by improving interoperability through standards

SOA-Driven Technical Governance Challenges

- Lifecycle related concerns
- Operations related concerns

Top 5 SOA Governance Fallacies

#5 We already have good IT and application lifecycle governance
#4 We don’t have an SOA program…therefore, we don’t need SOA governance
#3 We don’t have any services..therefore we don’t need soa governance
#2 We already have run-time SOA Management… therefore we have soa governance
#1 We already have an SOA Registry/Repository therefore, we already have soa governance

Common Inhibitors To A Successful SOA Program

No SOA Strategy, program, organization, people, policies, process, disproportionate early investment
Very little SOA based transformation, socialization and governance automation strategy

Governance Defined…The Blowhard Version

SOA Governance can be thought of as a decision right and accountability framework;
IT Governance mythologies, such as ITIL, COBIT

SOA Governance is most effective when this decision rights and accountability framework is combined with the operationalization of processes and supporting systems required to encourage the desirable ..

Enterprise Drivers for SOA Governance

SOA Governance = SOA Scalability
Balance enterprise needs

Role of sharing in SOA governance

Kindergarten lesson
Sharing is essence of collaboration
Economies of scale

Why sharing is hard

People don’t like to share
It is a behavior challenge
Not ready represented in the 7 layer of OSI stack
Not about technology…it’s about people, process and organization (layer 8,9,10)


How we make it work

Balance compromises
Emphasize sharing as the path of success
Disproportionate rewards for effective sharing and collaborations

Popular Perception of Governance

Costly and resources intensive
The governance implication is that we cannot be trusted to do it right
Focus on striking a balance between governance and chaos

A Framework for Effective Governance

Identify (key word)
- Goals and implications of your governance initiative
- Appropriate structures supporting your governance models
- …

Formality and Centralization

No governance
Self governance
Formal governance
Centralized
Decentralized

Manual versus automated Governance

Don’t just start with technology, also start with your goals and objectives
Start with Manual Governance
In time Automate manual governance tasks

Late-cycle versus early cycle governance

Introduce governance when it can make a difference…throughout the course of various service developments
Treat governance as a first-order concern of your enterprise SOA Program

Shared Contract Management to support late/early cycle governance (SOA Software)

Prescriptive versus collaborative governance

Don’t just assume that people are going to go along with the program, give them a reason to engage in the dialogue and process
Acknowledge and promote the fact that there are separate (but interrelated) SOA lifecycles

Policy versus process

Easier to introduce
Changes faster
Scales better

Products

  • Workbench SOA Governance

  • Service Manager SOA Management and Security



  • Takeaways

  • There is no one size fits all SOA Governance model

  • Effective SOA Governance has to address people, policy, process and technology in that order

  • Governance automation delivers economies of scale

  • Early cycle SOA Governance model can act as an accelerator for enterprise SOA goals and objectives

  • Closed-Loop policy definition, enforcement, auditing and compliance reporting is a MUST HAVE for effective governance automation


  • Technorati:

    Microsoft OSLO Project

    During Microsoft SOA and Business Conference Oslo project is announced. This project is about updating Microsoft technologies for service-oriented architectures, and for composite applications build on top of it. See Tim Rayburn blog post for more detail or my keynote post.

    Technorati:

    Increasing Business and IT agility with SOA and Microsoft

    Increasing Business and IT agility with SOA and Microsoft by Kris Horrocks, who went into offerings by Microsoft on SOA. Here are some blurts from this session.

    Focus business and technology model and its friction points. These points are:

    Focus document exchange in the business and inward technology driven view like EAI (contract and messages by different systems) that deliver solutions that impose constraints to the business and business siloed IT.

    Reducing friction by soften up boundaries. Shared semantics, definitions in technology and business model through service model. Business focus on service and technology focus on contract. Business services compose processes and technology deliver services.

    Portfolio on

  • Business architecture

  • IT architecture and strategy

  • Solution architecture


  • SOA to succeed:

    Start with business need;
    - Now the it here and now
    Key benefit is business agility;
    - Service reuse is upside
    Focus on time to value;
    - Plan, but don’t boil the ocean
    Deliver business value in iterations;
    - Grow your capabilities
    Expect and design for change;

    Microsoft Resources:

    Business architecture
    - Microsoft Services Business Architecture (MSBA)(previously motion) See also channel 9!!!

    IT architecture and strategy
    - Application Platform Optimization
    - Core Infrastructure
    - Assessments & Roadmaps
    - Reference Architecture

    Solution architecture and delivery
    - Application Platform
    - Patterns and Practices
    - Industry frameworks
    - Business Process Alliance


    Kris went into some of these resources. First off MSBA then technical reference architecture (service implementation, service consumption and service administration) and SOA platform capability model.

    SOA for transaction and interation

    A)

    Expose : Existing systems
    Compose: BP integration, Automation and optimization, information integration
    (SOA as mechanism to transact)

    Compliance and evolution, cost justified, CFO/CIO driven

    Between A and B : Standards based interoperability

    B)

    Compose: User experience and interaction, people using content, BI, Collaboration and Communication

    Consume: User directed
    (SOA as mechanism to interact)

    Business innovation, value justified, LOB Manager driven

    Plotting product portfolio as services on model expose/compose/consume

    Application platform for compose:

    A)

    SharePoint Services, .NET CF, ASP.NET/AJAX, Silverlight, WPF
    SharePoint Server & Live Communication Server
    SharePoint Server, WF, CAB

    B)

    BizTalk Server, WF
    SQL Server
    BizTalk Server Windows WCF
    BizTalk Server WCF

    Across model:

    Active Directory
    System Center, MOF, Patterns
    Visual Studio, Patterns & Practices, MSF

    Summary

    Key value of SOA
    Create Roadmaps
    - Business strategy
    - IT strategy
    - Solution Delivery
    Solutions deliver business value
    SOA capabilities

    So a bit blurry, but if one views the slides which hopefully will be available soon, it will all be very clear.

    Technorati:

    Microsoft SOA and Business Process Conference 2007 Keynote

    My fifth day here in Redmond starts with Microsoft SOA and Business Process Conference first day. I arrived a little earlier before conference starts, so I could enjoy scenery in Washington State. I went to Mount Rainer, Mount St. Helens, Seattle Needle, Pike Market, and Snoqualmie Falls and so on. This is definitely the ever green state. Rainer and St. Helens are room name in the Microsoft Conference Center, where event is held.

    First session of the day is by Robert Wahbe, Donald Ferguson and Steven Martin about Microsoft‘s Vision for the next generation application platform. This is a keynote session, which lasted two hours. First speaker was Donald Ferguson and he went straight into why he started working for Microsoft now instead of IBM and is inspired by Microsoft’s vision. Microsoft is ideal for Model driven development, internet service bus. These two subjects are his passion. Then he went into a scenario about travelling and how his passions fit in.

    Next person is Robert Wahbe and he made it clear that this conference is sold out (1000 persons), which is a couple more than last year (around 800 persons). He thanked attendees, sponsors, and etcetera. He went into crossing boundaries and how his keynote will evolve with Microsoft’s vision and coming products.

    Approach is services, more investment of Microsoft into it. So Client, Server, Cloud (Software plus services) and model driven (requirements, design, process, contracts) together with challenges like communication, relationships, end to end view, skill set and ecosystem. Vision of Microsoft here is to bring models and services together to gain productivity, TCO and agility by 10 times.

    Roadmap from now to 2008: BizTalk Server R2, .net framework 3.5, SQL Server 2008, Visual Studio 2008.

    Then Robert let Steven Martin talk about the current wave of technology around productivity, TCO and agility. He went into focusing on people, process and tools with a scenario Achmea (Dutch insurance company) using Visual Studio team system. Service bus technology was mentioned next with .NET framework, BizTalk Server, AmberPoint (governance) and SOA software. Another case study MedicAlert around Enterprise Service Bus was brought up. He finally went into people ready process and business process alliance. Later two partners (Accenture and Avanade) of business process alliance were brought on stage. They did a demo with ARIS and went through business process of hiring people.

    Get started today go to www.microsoft.com/soa. You will find here SOA and Business Process Pack together with prescriptive guidance.

    Where is technology is heading done by Don Wahbe. He went into OSLO project and new wave application like BizTalk Server 6, Visual Studio 10, and System Center 5. More can be found in an article found in Infoworld by Paul Krill. Justin Smith a technology evangelist did a demo around OSLO. He also pointed out difference between Internet Service Bus crossing boundaries between organizations and applications versus Enterprise Service Bus crossing application boundaries inside an organization. Demo and so on can be done through BizTalk labs. Next another quick demo ‘universal editor’ for models done.

    Oslo in nutshell

  • Service - extending services from client to the cloud

  • Models - - making models mainstream part of development


  • Huge bet and double down (blackjack term) on services!!!!

    Closing

  • Huge wave of products: Windows Server 2008, BizTalk R2 ...

  • Stay tunded for OSLO, expect beta’s in 2008


  • These are some blurts from the keynote today here at Microsoft SOA and Business Process Conference 2007. So hopefully you get a little impression of Microsoft’s vision for next couple of years.

    Technorati:

    Tuesday, October 23, 2007

    IDesign WCF Samples






    Today I came across IDesign a consulting and training company, where I found out one can download a bunch of WCF samples. I mentioned them before in a previous post. They have WCF samples categorized as follows:

  • Essentials

  • Contracts

  • Data Contracts

  • Instance Management

  • Operations

  • Faults

  • Transactions

  • Concurrency Management

  • Queuing

  • Security


  • I have not given one of them a try yet in my VS2008 Beta 2 on my VPC, but I think it is a great resource for samples. I definitely will try some samples out. It is nice of them to make samples available to the public. Check out their site there is far more to find out.

    Technorati:

    Monday, October 22, 2007

    WCF Contracts

    In previous post I talked about my exploration (and/or study) of WCF. I have started with building WCF services and so on (see list below).

  • Defining service contracts and services

  • Hosting of services in a console app or IIS

  • Exposing of endpoints for services using various standard bindings

  • Working with VS templates and tools (SvcUtil, Service Configuration Editor)

  • Service metadata (browsing)

  • Configuration of service behaviors

  • Generate proxies and invoking services


  • Now I am going deeper into contracts and study messaging protocols (TCP, MSMQ, HTTP or named pipes), SOAP, WS*, WSDL and so on. WCF relies on standards to serialize messages, for instance SOAP (1.1 or 1.2) which describes a general format for messages. When messages need to be secure and reliable WS-* plays an essential role. There is a long list of WS-* protocols and some of them are well-adopted like WS-Addressing, WS-MetadataExchange, WS-Policy, MTOM, WS-Security, WS-Trust and WS-SecureConversation, WS-Reliable Messaging and WS-AtomicTransaction. All of them are very lengthy described in documents and can found at W3C or OASIS. A shorter version or overview I found in for instance an msdn article written by Aaron Skonnard. I have downloaded the code of that same article and had a spin on it using VS 2008 Beta 2. Converting the code to use in VS 2008 was no problem and sample worked fine. There are some more great explanations of reliable messaging on the web like Reliable Messaging Simplified and WCF: Reliable Message Delivery. Another great article (overview) about WS-* can be found at InfoQ written by Michele Leroux Bustamante (yep same as author of Learning WCF I currently reading and doing WCF labs from).

    Services implement one or more endpoints, each supporting different set of operations, messaging protocols, message encoding formats and transport protocols. Well this information about a service is part of its metadata and can be viewed as the service description. WCF represents this info at runtime as ServiceDescription type from System.ServiceModel namespace. This type is used to generate the WSDL document. Through SvcUtil proxies can be generated for clients through (A) WS-MetadataExchange or (B) a WSDL document.


















    In WCF application requirements are described by contracts and there are three types that clients (consumer) and services (provider) rely on to control messaging.

  • Service Contract : describe operations exposed by particular endpoint

  • Data contract : describe how complex type is serialized

  • Message contract : provide control over format entire SOAP message


  • See also Wikipedia and msdn.

    Service Contract describes operations supported by a service, message exchange patterns used and format of each message. A WCF service has at least one service contract and the following attributes play an important role in defining it: ServiceContractAttribute, OperationContractAttribute and MessageParameterAttribute. These attributes provide control over the way messages are formatted. In a lab inside learning WCF book this exercised. And that is what I am going to now.

    Technorati:

    Sunday, October 21, 2007

    Microsoft 2007 SOA and BP Conference coming up

    Anybody saw Rugby final yesterday evening, it was a great outcome. South Africa won and deserved to be world champions, since they won every game. Montgomery did his best with penalty kicks and England was just disappointing. But it’s over now and I will have to wait until RWC 2011 in New Zealand.



















    Well in a few days I am somewhere else in world attending something different: the Microsoft 2007 SOA and Business Process Conference.

    I have noticed on their site the agenda is ready. It will be hard choice to choose between sessions, because there are a lot of interesting ones.



















    I have to think hard which one to follow, but I have a few days left before I fly to Seattle. Hope to see some of you there.

    Technorati:

    Creating some more WCF Services

    I have advanced a bit more now in my study of WCF. After going through some of the basics and using channel factory to manually creating a proxy or svcutil to generate it. Now I am going into exploring tools that generate services, access metadata, create configuration settings and generating proxies. I first started with a lab where one creates a service and then configures service endpoints with Service Configuration Editor.

















    This was done in one project where the service resides inside a host (Console app). Once I was finished with configuration using the editor; the project was run so a client project could be created and a service reference can be added (proxy will be created). With the following code inside client application the service can be invoked:

    ServiceReference.HelloIndigoServiceClient proxy = new Client.ServiceReference.HelloIndigoServiceClient();

    Next part in the lab was using WCF Service Library to generate a service. I ran into a problem though, where I got this error: Another application has already registered this URL with HTTP.SYS. I found some background about this by reading an article on dotnetjunkies by Shawn Cicoria. Problem is that there was another application that already reserved and "locked" the Uri with HTTP API. So I had to change the address and then it worked. Last part inside the lab was generating a proxy using the SvcUtil. This is something I have already have before(see previous post).

    Since I am so enthusiastic about WCF I did another Lab, where I had to create an IIS host and can browse metadata.


















    I must say I am far from being an expert on WCF, but having the oppertunity to learn it and explore its features and possibilities is fun. Having all software (VPC, and all), a couple of books and internet helps a lot. So far I have learned about different ways of generating services through tools or by hand, I have used Service Configuration Editor and finally hosted a service inside IIS. This was al done by doing labs found in Learning WCF published by O'Reilly Press (see previous posts).

    Technorati:

    Saturday, October 20, 2007

    Creating WCF Services Experience

    I have started with my study of Windows Communication Foundation. As you can read in my previous post I have decided to learn it myself. There are possibilities of learning it form recommended training and consulting companies like IDesign, Developmentor, Wintellect, newtellingence, thinktecture or Pluralsight. I kicked off with a book called learning WCF written by Michele Leroux Bustamante, who also has a blog called thatindigo girl. WCF makes it possible to build secure, reliable, and transacted systems through a simplified programming model that unifies and extends many of the previous .NET technologies including ASMX, WSE, .NET Remoting, .NET Enterprise Services, and System.Messaging. And this just what I want to learn one technology that can do all stuff that ASMX, WSE, etcetera does. It has focus on service orientation and supports for standardized Web Services specifications.

    Ok I first lab I did was creating a service contract with a simple operation and implemented it on a service type. Next I had to create a host application and finally a client application.

    So let’s recap here what I have done:

  • Service contract with service type

  • Created a host

  • Created a client


  • These 3 steps and one creates a WCF service and it can be run (called). The lab I did was from the book 'Learning WCF' from O'Reilly written by Michele Leroux Bustamante. She also has a site where you can download code used in labs. When I tested my client that calls the service I ran into an error: TCP error code 10061: No connection could be made because the target machine actively refused it. From this I learned that I had to start the host project first, followed by client project. Now it worked. On web there are also a nice article on code project that let you explore Windows Communication Foundation. I tried this out and it worked. Approach was a bit different, because here a configuration file was used for the host. In this case one use svcutil to create proxy code and configuration items. I did run into another problem, when using svcutil. Their solution though I found here at this blog post. By running sn -Vr svcutil inside C:\Program Files\Microsoft SDKs\Windows\V6.0A\Bin folder it will work (thanks to Nishith Pathak).

    Technorati: