Contact Information

Chris Toohey

    Site Resources

    RSS Site Content
    Syndicate This Site!
    DG Banner Logo
    BleedYellow.com Dogears
    Advertisements

    IBM Lotus Notes and Domino 7 now available

    BYOUI - Architecture for the mass adopters?

    05/13/2008 10:41:47 AM | Chris Toohey | Bethlehem, PA

    If the surge in both development and adoption of solutions like TwitNotes and the pick-your-poision Instant Messaging clients (GAIM/Pidgin, Trillian, etc.) have taught us anything, it's that people prefer to use their own or preferred entry point into community and collaborative solutions. But what's this mean for the Domino application development community? Well, it tells me that I really need to consider architecting my applications to facilitate BYOUI - or Bring Your Own UI. Now, for corporate applications, you may think that this doesn't apply... but I wholeheartedly disagree! I think that if you really look at it, you'll see just how truly limited the majority of our applications can appear.

    Let's take Twitter.com for example. If you were limited to only the website itself to follow and update your and other tweets, how many people do you think would adopt such a thing? Now image if you could only have the reading capabilities, but you needed to log into the website in order to interact - slightly better, but I'll still pass thanks.

    With the architecture initially designed to allow ANY chosen client to interact with near-full fidelity, they've given me no choice but to use their service and say thank you!

    Now let's hop back into the corporate setting, and say that you have... a corporate travel requests solution. Now, that Lotus Notes client application has all of these do-dads and amazing things that get a person from their cubicle and onto that plane to parts-unknown, but what happens when they want to access that solution via the web? Simple right? We modify the current Design Elements (or the smarter of us create new client-specific Design Elements) and mirror the Lotus Notes client. Now you're cooking with gas!

    And what about when the users demand access via their Blackberry? Kinda simple, right? More modifications and more design elements, ahoy!

    What about implementation into Portal? What if you needed external travel vendors and agents to access this solution, but only for a subset of functionality? All things you're bound to run into to be honest...

    Now imagine that they want a new button, a new function, a new feature - kiss your next month good-bye!

    By architecting a solution to maintain it's content both separate from UI and Client Type, we can do away with a lot of that headache. Such a content management engine that is made available to the BYOUI crowd would require a Web Services (or like) mechanism to provide access to the data and functionality.

    All this is fine and good, I'm certain that all of you agree... until you understand what that means for Lotus Notes Client Type applications that adopt this architecture. See, moving to a Web Services-like engine for data access goes against everything that IS Lotus Notes Development.

    As Notes Developers, we modify "documents", not data. Data is stored in those documents, sure - but we're ultimately modifying an object that contains data.

    And that was OK when all anyone ever wanted to do was modify "documents" in a Lotus Notes Client... but today, the demands are different. It's total BYOUI for the employee at home, why can't they work that way in the office?! We can adopt a different development methodology and deliver the same choices from Client Type to Subset of Functionality.... but it's gonna require a change to the way the majority of us think.

    I'm babbling here a bit, but with good reason - I think I'm right here, or at least I'm onto something...


    Like what you see? Help feed-the-beast by donating to the site and it's humbly thankful author!

    Comments

    Thomas Bahn
    http://www.assono.de/blog/
    05/13/2008 04:44:04 PM

    Hi Chris,

    I have to disagree (a bit at least).

    Certainly, there are success stories like Twitter. But even Twitter isn't just a Web service API, but a Web service API and a Web application.

    You could create an Domino application with a Web service API for "the others" to use and a Notes application for your "home" users with all of the features and in full fidelity. This way you had the same "situation" as Twitter. Someone could create a Blackberry app, someone else a Notes 8/Samtetime/Expeditor sidebar, someone else an iPhone app and so on.

    I have to disagree that Notes applications are "outdated", just because they don't use a Web service API. They have another "data model" - the documents. And this is good the way it is.

    Thomas
    http://www.assono.de/blog


    Chris Toohey
    http://www.dominoguru.com
    05/13/2008 05:51:57 PM

    @Thomas:

    Twitter isn't just a Web service API, but a Web service API and a Web application.

    Let's take a look at the following (slightly trimmed) markup from the Twitter "update" form markup:

    <form action="http://twitter.com/status/update"method="post" name="f">
    <fieldset>
    <div class="bar">
    <h3><label for="doing" class="doing">What are you doing?</label></h3>
    <span id="chars_left_notice" class="numeric">
    <strong id="status-field-char-counter"></strong>
    </span>
    </div>
    <textarea cols="40" id="status" name="status" rows="2"></textarea>
    </div>
    <center><input type="submit" value= "update" /></center>
    </fieldset>
    </form>

    If I were to take this code alone, I should be able to update my Twitter status (although the API looks like it rejects such things without a bunch of hoop-jumping that I'm too lazy to do right now).

    ... and I can do this because the content is consumed on submission regardless of it's submission origin. The Twitter "website" is just a barebones front-end that could have been written in Notepad. To make your analogy hold up, the Twitter website itself would need to... well, here's the point that I was trying to get at:

    I have on the very website template that I use to host my babbling against such practice, a computed text field that's used for my RSS feed content. Because this computed text field is part of the Form Design Element that I use to create/modify each posting, I'm very limited to it's successful usage when I start employing non-Domino/Lotus Notes clients.

    I can either force the issue with a ComputeWithForm or do some other undesirable clean-up act to mirror that UI+Data marriage that I officiated! I suck, and developers that maintain that type of architecture in light of recent development trends (I mean, Model-View-Controller architectures have like just hit the scene right?!) earn that categorization as well IMHO.

    As for saying that Notes applications are "outdated", I don't think that they are - I think that we should migrate Lotus Notes apps to modern platforms methodologies!


    Thomas Bahn
    http://www.assono.de/blog/
    05/14/2008 01:46:50 AM

    Model-View-Controller and migrating Lotus Notes apps to modern methodologies: see
    http://www.assono.de/blog/d6plinks/OOP-in-LotusScript-Why-should-I-care
    http://www.assono.de/blog/d6plinks/OOP-in-LotusScript-MVC-in-Lotus-Notes
    http://www.assono.de/blog/d6plinks/OOP-in-LotusScript-Controller-Classes
    and
    http://www.assono.de/blog/d6plinks/Lotusphere2008-OOP-in-LotusScript

    We are recommending the modern methodologies (and using them) for quite a long time (since second half of 2006 to be more precise).

    Your example snippet from the Twitter update site: compare this to - say - the comments input section on Blogsphere blogs. They are just as easy. Just put a CreateDocument URL command in the form action and some fields into a form. Just as easy!

    And using the CreateDocument URL command (or SaveDocument), all computed fields in the form are calculated automatically! And the Web Query Save agents are fired, too.

    So, why do you think that something should be changed?

    Thomas



    Add a New Comment


    (Not Published/Public)
    Remember my Information!

    (Enter the text from the image to proceed)

    (Full markup allowed in the comment field below; play nice!)

    Live Comments Preview