June, 2007

  • Michaeljon Miller

    What is an application platform?


    I'm working on a short paper / presentation that describes my position on what an application platform is, the services it provides, and what it does for the application developer. This is this initial outline. This doesn't talk about a specific (LOB) application platform, but instead talks about a set of requirements that a platform should meet. One of the things that started me down this path was noticing partners using the Microsoft CRM application as a platform.  I'm curious to understand how other people think about this "problem" and whether there's any benefit in pursuing the definition.


    I want to set the stage by talking about what I mean by "application" first. This paper will look at large-scale line of business applications. This isn't to say that productivity applications such as Office aren't applications, it's just that they're not the class of application that necessarily has this set of requirements.



    1. Line of business applications
      • Tools for automating the business process
    2. Productivity applications
      • Tools for executing business tasks



    • A platform isn’t useful without an application
    • It’s not possible to determine requirements without an application
    • Most people aren’t interested in buying a platform – they want an application
    • An application is the start, customers and partners want a solution


    Then I'll talk about the necessary and sufficient requirements for a platform. I'm trying to keep this list as short as possible because most application logic tends to leak "down" into a platform thereby making the platform less applicable to other applications.

    Platform services

    1. Identity and roles
    2. Rich type library
    3. Security
    4. Storage and persistence
    5. Extensibility
    6. Process identification and execution
    7. Solution packaging and containment
    8. Deployment models

    Identity and roles

    1. What is a “user” of the system?
    2. Collaboration scenarios drive SaaS
    3. Roles come in many flavors
      • Work roles (position), security roles, reporting structures
    4. Roles are facets of an identity
    5. Relationships between roles are primary

    Rich type library

    1. Meta-types
      • Constituents
        • party, role, relationship, contactMethod
      • Collaborations
        • collaboration, interaction, goal, participation, structuredDocument
      • Unstructured collateral
        • simpleDocument, annotation
      • Opaque data
        • Reference data, lookup tables, auditing, etc.
    2. Data types
      • enumerations, elemental types, higher-level types



    1. Authorization and authentication
    2. Security roles are privilege collections
    3. Privileges provide access
      • User interface, data, process, tasks
    4. Security roles trump work roles
    5. Storage and persistence

    6. Storage structure is schema independent
      • From an application perspective
    7. Storage is disconnected from logic
      • From an application perspective
    8. The platform controls persistence
      • Types DO NOT know how to persist themselves



    1. Schema
      • Types and storage
    2. Presentation
      • Navigation
      • Data capture
      • Clients and user interface
    3. Process
      • Business rules (simple and compound validation)
      • Business logic (“big” and “little” process definition)
      • Process execution structures (message definitions)


    Process identification and execution

    1. Message definition and execution
    2. Actor identification by identity and role
    3. Task and work lists
    4. Loosely bound to an extreme
    5. Declarative vs. imperative
    6. Long-running business processes
    7. Transactional business logic
    8. One entry point to execute processes

    Solution packaging and containment

    1. Everything is an extension
      • Schema, process, presentation
    2. All extensions are named and grouped
      • Names are like CLR strong names
    3. Packages are like applications or modules

    Deployment models

    1. Multi-tenancy is important
    2. Multi-language per tenant
    3. Presentation is independent of the platform
      • But the platform can provide presentation tools
  • Michaeljon Miller

    My WPC schedule


    Wow, the calendar system on the WPC site isn't quite what I had expected. So, I'm going to keep my calendar in this posting. I'll update this as I pick times. Drop me a note if you want to meet and pick an open slot that works for you. The times listed here are already booked. Sorry.

    (updated 7/6/07 10:30am PDT) 

    I arrive late on Monday. Well, later anyway. I get in around 9pm or so. I suppose I could be convinced to meet for drinks after I get checked in.

    Tuesday July 10th
    9:00 to 9:30 with Anne S at Breakfast at Convention Center
    2:30 to 3:00 with Ryan T at Convention Center
    3:00 to 3:30 with Peter H at Table 140
    4:00 to 5:00 with Mike R at Convention Center

    Wednesday July 11th
    11:30 to 1:00 with RT at Hyatt
    12:00 to 1:00 with John O for Lunch at Convention Center
    1:30 to 2:00 with RT at Convention Center
    3:00 to 3:30 with Mike S and Jim S at Convention Center
    3:30 with Rob H and RT at Convention Center

    Thursday July 12th
    10:00 to 10:30 with David K, Jason H, and Mike B at Convention Center
    3:00 to 3:30 with RT at Convention Center

    I'm leaving for the airport at 3:00 on Thursday

  • Michaeljon Miller

    WPC here I come


    I've finally registered for this year's WPC and I'm extending an invitation to MBS customers and partners to come chat with my team about some of our plans. We're currently putting together a short presentation to talk about what we're doing and how we think it impacts the MBS community. In return we're asking you to complete a short survey -- the plan is that is fits on a single piece of paper. If you're interested in participating, or just want to catch up, drop me a note and we'll set something up.

Page 1 of 1 (3 items)