Duet Case Study – Auckland Regional Council

Duet, SAP May 26th, 2008

There’s a new video testimonial at www.duet.com about Duet implementation in Auckland Regional Council.
Check it out at http://www.duet.com/MediaLibrary/Videos/ARCCustomerTestimonialFlash/tabid/257/Default.aspx

(Unfortunately, no embed option. SAP still has something to learn how to let go…)

Tags: , , , , ,

Looking For New Adventures

Duet, SAP May 21st, 2008

I joined SAP more than 3 years ago (on the same day as my 23rd birthday) for a new internal startup
(an Emerging Solution as SAP dubs it) – Duet.

Working on Duet, a joint effort of SAP and Microsoft, has been an amazing experience.
During my work at SAP I’ve had the chance to appreciate the software industry from in non technical aspects (business, strategy, project management), to work in a truly global organizations that requires daily contact with colleagues around the globe and to travel quite a bit…
Undoubtedly, I owe SAP the credit for helping me "grow up" professionally and expanding my knowledge and interests beyond core development skills.

However, for a while now I’ve had this growing anxiety for doing something else.
Through blogging, friends and various web 2.0 sites\gatherings, I’ve had the chance to meet a lot of interesting new people that opened the door on many new (risky?) opportunities…

Trading my secure, salaried job for an unknown is a scary thing to do, and yet, it’s something I must do in order to be able to fully and wholeheartedly explore the different alternatives out there. And so, I have officially resigned from my position at SAP. It would be unfair to my colleagues, SAP and myself to do anything less.

What’s next? I’m not entirely sure…
I’m looking into internal opportunities within SAP as well as external opportunities, I’ve got several startup ideas that I’m exploring with partners and of course there’s that Computer Science degree I should finish already (and make the folks happy).

In any case, I’m sure there’s an exciting future ahead and I invite you all to read along and find out with me…

WPF Screen Saver Template for Visual Studio 2008

Duet, Software Development, WPF March 17th, 2008

I wanted to build a screen saver and came across Karen’s template which is made for Visual Studio 2005 and .NET 3.0.
Since I’m on Visual Studio 2008 and .NET 3.5, I took Karen’s template and made some modifications to support it.

So, if you want to create a screen saver with Visual Studio 2008 here’s a template for you:

Installation Instructions

  1. Download the zip file.
  2. Copy the zip (do not extract) to <My Documents>\Visual Studio 2008\Templates\ProjectTemplates

kick it on DotNetKicks.com

Tags:

Sexy Enterprise Software?

SAP December 13th, 2007

Robert Scoble started a debate over the weekend when he wrote that enterprise software isn’t sexy.
I guess Scoble struck a nerve as his post caused a frenzy in the enterprise blogsphere, and on a Sunday…

Here are some of the comments:
Michael Krigsman, Nick Carr, Jason Wood, Dennis HewlettEd Hermann, George Ou, Ross Mayfield, Susan Scrupski,
Ian Joyce, Anshu Sharma, Craig Cmehil, Sadagopan, Vinnie MirchandaniStowe Boyd and Alan Patrick, and Thomas Otter. (see Techmeme for more)

I think the Damn proud to be “un-sexy” post by Vinnie Mirchandani exposes the root problem in SAP and in enterprise software in general:

..Yes, we will never have the glitz of  following a Facebook or Twitter or an iPhone, but the software and other technologies we cover cut checks, invoice customers, design products, manage supply chains, keep the wheels of commerce turning.

Aren’t you glad some of us find that sexy -)”

I have to side Thomas on this one. So what if enterprise software runs complex business processes and has to support standards, laws and regulations? Does it mean that the interface to these process has to be complex?

Why do I need a PhD in economics to be able to fill out an SAP expense request? Or a dedicated HR person that will file my vocation and attendance information into the ERP because its too complicated for the untrained to do so (and I’m a tech guy, imagine what its like in low-tech companies)? How can we let “enterprise” be an excuse for over complicating even these simplest processes?

Google is a great example for hiding complexity. I can’t even imagine the cloud computing hell, the algorithms and the army of computer science PhD that make Google work, and yet, all that complexity is hidden behind a simple text box where I just need to write my search term and get instant results. Simple, effective and usable by anyone without the need for special training.

Amazon too, have a simple, friendly interface tailored per customers needs. Behind this interface Amazon has to process and store a huge amount of data and manage complex business scenarios – supply chain management, invoicing, etc. – in a reliable and secure manner, etc.

Even look at personal banking applications like Mint and Leumi. They provide reliable banking expertise wether you’re a simple user, a day trader or a professional broker.

So what makes enterprise software different? If the above companies can make engaging and intuitive software while still enabling execution of complex business processes in a reliable and secure manner.
New business software disrupters, like SalesForce.com, are taking advantage of the simplicity and ease of customization features we see in consumer applications.
Enterprise software makers like SAP, still stuck somewhere in the 80s computing age, need a serious change of mindset in order to be able to continue competing. The current way of doing things doesn’t lead to anywhere…

So, maybe Vinnie is proud to be “un-sexy” but I’m damn tired of getting the evil eye (at best) whenever I tell someone I work for SAP…

Technorati Tags: ,,

Tags: , ,

Duet: An Enterprise S+S Offering From Microsoft And SAP

Duet, SAP, Software Architecture December 12th, 2007

The Strategic Architect Forum (SAF) conference was hosted at the Microsoft Conference Center in Redmond over three days during November 2007. All the keynotes and informational sessions are available for download at the SAF recorded sessions site.

Be sure to check out the Duet: An Enterprise S+S Offering From Microsoft And SAP session”:

Duet: An Enterprise S+S Offering From Microsoft And SAP
Chris Keyser (Microsoft)
Burra Gopal (Microsoft)
Adi Kavaler (SAP)

[Video] . [Slides] . [Transcript]

Other topics include:

  • Changing the World with Software and Services
  • Project Astoria: Data Services for the Web
  • Anatomy of An S+S Application
  • Unified Communications: Breaking VoIP Barriers
  • Composite Application Architectures Using the 2007 Office System
  • A Data-driven Approach To Distributed, Concurrent Software
  • A Look Into Microsoft Research
  • Claims-Based Identity Layer For The “New Internet”
  • The Reality Of The Cloud And The Future Of The Datacenter
  • Mining Lightning For The Cloud
  • User Experience for Architects
  • Windows Live Platform: Making Better End User Experiences
  • Dynamic IT
  • Amazon.com’s Simple Storage Service, Elastic Compute Cloud, and Simple Queue Service
  • Lessons Learned from the Web’s Edge: MySpace
  • Leading Geeks: How to Manage and Lead People Who Deliver Technology
  • Tags: , ,

    Moving to Seattle (Redmond)

    Duet, SAP, Travel, United States October 18th, 2007

    I’m moving to Seattle for a couple of months to work with the team at Redmond on Duet related topics.
    I’ve already taken care of most of the arrangements (still need to pack) and I’m anxiously anticipating my flight on Sunday morning.

    Looking forward to a very interesting visit…

    Anyone has some good tips on things to do in the Seattle area?

    Tags: ,

    Wiimote 3D Desktop Widgets

    SAP October 7th, 2007

    I just came across this sick demo from SAP TechEd demo jam:

     

    The Colgate Twins have done it again…

    Duet To The Rescue…

    Duet, SAP September 16th, 2007

    When BNSF decided to replace its aging legacy systems, two software companies naturally came to mind. At the end of the decision process, only SAP remained.

    Fort Worth, Texas-based Burlington Northern Santa Fe Railroad had already pushed its decades-old legacy systems to the limit, and with the railroad industry expecting rapid growth, the company decided it was time to upgrade, according to Jeff Campbell, BNSF’s vice president of technology services and chief information officer.

    The only question was: SAP or Oracle?

    The final nail in Oracle’s coffin may well have been Duet. While SAP and Oracle both had advantages in other areas, BNSF felt Oracle couldn’t match Duet’s functionality.

    “Our casual users are very good at, and very familiar with, the Office environment,” Campbell said. “To be able to utilize that platform — as time goes on and more functionality is available in Duet — makes it much easier for the end-user experience.”

    Check out the full article

    Duet Behind the Scenes: Bounded Items

    Duet, SAP July 18th, 2007

    Binding to Outlook item (Mail, Task, Contact, etc.) is one of the main features that differentiates Duet’s user experience from other OBA products such as Snap-Ins, Extensio etc. What exactly are bounded items? and how is binding implemented?

    What are Bounded Items?

    A bounded item is a simple Outlook item, which can be an email, appointment, contact etc. with an attached schema that defines it as a specific presentation object (presentation objects discussed in the previous post) and carries the business data related to that object. We call this a payload.

    The payload is an encrypted XML containing the presentation object reference and business data mentioned above and attached to the Outlook item as a custom property.

    For example, a payload attached to a contact item that represents a CRM customer would probably contain data such as the customer’s ID, company he works at, etc.

    Before we examine how this payload is built, maintained and displayed to the user we first have to take a step back and understand how its schema defined. Or to be more accurate, how we define a presentation object.

    Bound Item Definitions

    If you remember the metadata illustration from the first post, one of the key parts in a presentation object’s metadata definition is its Data Definitions as displayed in the illustration:

     image

    A presentation item’s Data Definitions contain the following information:

    1. Presentation object name- A unique resource name identifying this presentation object type
    2. Outlook definitions -Specifies the Outlook item type this objects relates to and its default folder location.
    3. Synchronization behavior – Type of synchronization used to synchronize to the backend.
    4. Business Data Schema – A schema for the business data this object carries with it
    5. Data Mapping to\from Outlook Properties – A set of mappings that define how the Outlook item’s default fields (Such as Subject, Location, Start\End Time) map to\from values in the item’s business data.

    If we look at a definition for a CRM Customer object again, its name would be something like "urn:sap:duet:crm:customer" and its business data would probably contain name and contact information (address, phone numbers). This data would be mapped to the relevant Outlook fields (phone numbers to Contact item phone properties, address to the Contact item address property etc.) so that when the user edits the object the changes will be propagated back to the business data payload (and eventually to the backend).

    This data definition, termed Bound Item Definition looks like this:

    <BoundItemDefinition Name="urn:sap:duet:crm:customer" xmlns="http://schemas.microsoft.com/OBA/2005/BoundItemDefinition">
      <Outlook DefaultFolder="CRM Contacts" MessageClass="IPM.Contact" />
      <Synchronization>
        <Behavior>Always</Behavior>
      </Synchronization>
      <Properties>
        <Property Name="Crm.Customer.FirstName" Type="String">
          <Behavior>OutlookToXml</Behavior>
          <Outlook Name="FirstName" />
          <Xml XPath="/ns0:CRMContact/Name" Namespaces="ns0='urn:sap:duet:crm:customer'" />
        </Property> <Property Name="Crm.Customer.LastName" Type="String">
          <Behavior>OutlookToXml</Behavior>
          <Outlook Name="LastName" />
          <Xml XPath="/ns0:CRMContact/ns0:LastName" Namespaces="ns0='urn:sap:duet:crm:customer'" />
        </Property>
        ...
      </Properties>
      <XmlTemplate>
        <s0:CRMContact xmlns:s0="urn:sap:duet:crm:customer">
          <s0:FirstName>String</s0:FirstName> <s0:LastName>String</s0:LastName> <s0:FileAsName>String</s0:FileAsName> <s0:Comapany>String</s0:Comapany> <s0:JobTitle>String</s0:JobTitle>  ...
        </s0:CRMContact>
      </XmlTemplate>
    </BoundItemDefinition>

    Binding an Item

    The process of binding an item is where we take a regular Outlook item and mark it has a presentation object. Basically we’re taking a regular Outlook item and marking it as a presentation object. The item’s behavior and schema for the business data attached to it are according to the presentation object’s data definitions. When binding an item the Duet platform adds 3 custom properties to the item:

    1. BoundItemId – A unique ID to represent this bounded item.
    2. BoundItemType – The type of presentation object that the item represents
    3. BoundData – The business data the item carries (payload).

    In our example, a bounded IPM.Contact object representing a customer would have urn:sap:duet:crm:customerIn as its BoundItemType and the following XML as its BoundData:

    <s0:CRMContact xmlns:s0="urn:sap:duet:crm:customer">
      <s0:FirstName>Eran</s0:FirstName>
      <s0:LastName>Kampf</s0:LastName>
      <s0:FileAsName>Kampf, Eran</s0:FileAsName>
      <s0:Comapany>SAP Labs Israel</s0:Comapany>
      ...
    </s0:CRMContact>

    The values in the BoundData are populated according to the data mapping rules specified in the bound item definition for our customer object.

    Security Considerations

    The BoundData can contain confidential information. Once retrieved from the backend systems we would like to limit access to it specifically to the user who got the information. Otherwise, sensitive information which is part of the user’s item can leek if, for example the user forwards the item to someone or if an IT administrator (or anyone else who has access to the user’s mailbox) looks at the item.

    We use DPAPI to encrypt the BoundData using the current user’s credentials so that only the Duet user who received the data can decrypt it. This way, even if someone else gets hold of the BoundData value he has no way to decipher it…

    This also means that when forwarding a Duet item the receiving side will not have Duet information available and will see the item as a regular unbounded Outlook item. I’ll discuss how forwarding of bounded items is performed in a future post dedicated to forwarding…

    kick it on DotNetKicks.com

    Tags: , , , , , , ,

    Duet Microsoft Partner Program Page

    Duet, SAP July 2nd, 2007

    Saw the news on Ian’s blog. Microsoft launched their Duet partners page. Check it out…