Traits in #NGIS: Cautious Optimism on the #Documentum Back End

Traits are a total break from the traditional object model in Documentum.  With the Next Generation Information Server (NGIS) being built from the ground up with new technologies and design principles, EMC could seize the opportunity to transform rather than merely update server-side Documentum as we know it.  However, such breaks are rarely clean and can penalize existing users with migration, training, and change management issues.

Previously on DCTM: The Next Generation

Yesterday’s Docbase

There has been a growing disconnect between how we design for the back end and the front end. The front end developer can apply agile methodologies, use new patterns like composition over inheritance, and organize data based on tags and facets instead of deep hierarchies.  Back-end developers are getting these benefits from new systems like NoSQL databases, but Documentum architects are stuck in the 90s with the current content server–in no small part because it runs on relational databases like Oracle.  Documentum did an excellent job marrying objects and tables before ORM (object-relational mapping) was a catchy initialism; the inherent disparity between the models that was inconvenient before, but now it actively hinders new ideas on the back end.  Basing NGIS on EMC’s XML database xDB changes all that, and traits are a windfall from that decision.

The latest details on traits comes from a video by Jeroen van Rotterdam, IIG’s Chief Architect.  There are two basic constructs for designing with traits:  Trait definitions group data definitions, services, and event models into packages that are attached to objects at runtime.  Type definitions control which traits can or must be attached to objects and how those traits resolve conflicts; e.g., order of precedence or mutual exclusion.  Objects end up being truly lightweight–only an ID attribute for sure and very probably a type attribute as well.  This will be a very different world than the present-day Documentum schema of data-only inheritance, tacked-on type-aware behavior, and a bloated base object type with every possible attribute stuffed into it.

For Documentum architects and server-side programmers, this is the first exciting thing to happen to Documentum since, well, forever.  The model is one of the things that made Documentum stand out; it painted a rich, complex picture of what a document could be. Instead of document as file, a document included versions, renditions, and complex structures with flexible binding (i.e., virtual documents).  A document was a different thing (or collection of things) based on context and function.  It also stepped beyond the straight jacket of the relational model to include multi-value (repeating) attributes and SQL extensions that recognized the world is more like objects than tables.  Although this perspective on document management is still valid today, the methodologies to realize it feel outdated. Traits represent almost two decades of lessons learned since the first docbase schemas struggled out of the primordial scanned-document/shared-folder ooze.

Changes of this magnitude don’t happen often in software systems.  A mature market doesn’t take well to fundamental shifts that aren’t backward compatible, so there’s significant risk here assuming EMC wants to keep its current customers happy. Discussion about migration paths from the current content server to NGIS are still little more then speculation. Given how many customers are turning to other options, being bold may be the solution if EMC can make a better product with a less onerous migration path.  Let’s put aside those messy details for now and consider what traits may mean for the Documentum architect.

Will this become my new Linkedin profile picture?

A  Few of My Favorite Things

It’s hard to say if the implementation of traits will live up to the potential from what we know so far.  I had similar high hopes for DBOF, light-weight objects, Aspects, and DFS when talked about in theory, but they all fell short in implementation either in outright design or by being born prematurely.  Letting my inner optimist out of his cage for a moment, these are some things I hope to see the implementation of traits bring about:

Attributes become rich data rather than columns in a database. Defining and constraining attributes using XSD is an easy win since NGIS sits atop EMC’s XML-based xDB instead of an RDBMS, and it gets rid of the stapled-on data dictionary in the current Documentum toolbox.  I hope this means that attributes can contain complex data–perhaps small XML documents and certainly associative arrays–but removing size constraints and character set problems (odd escape characters, special characters, unicode, etc.) is a huge win regardless. Maybe this will help people realize that attributes aren’t all metadata.  Sometimes, they are the data; e.g., non-content objects.

The broken promises of DBOF and Aspects can finally be fully realized.  A weakness in Documentum’s original model was the separation of data and behavior.  Being object-based, there were familiar ways to organize data (e.g., inheritance) that fell short of real OOP because they didn’t equally apply to behavior.  DBOF was the first attempt to relate code to the type hierarchy; it was hobbled by being duct-taped onto the side of the client libraries (DFC) instead of integrated into the server directly.  Then Aspects repeated DBOF’s same fundamental mistakes.  Traits appear to marry data and behavior nicely, and I can’t imagine them being handled anywhere but together on the server.

Traits eliminate the need for inheritance and fat objects.  Inheritance as a design principle has been under fire for years:  Single inheritance is restricting; multiple inheritance introduces pitfalls along with greater flexibility; both are difficult to refactor.  The single inheritance nature of the Documentum object model wasn’t as restrictive then because it only included data.  With behavior coming along for the ride in NGIS, it becomes a bigger issue.  Just like in programming, it looks like EMC is favoring composition over inheritance.  I haven’t seen anything showing inheritance for types or traits in NGIS yet, and I won’t be surprised if it doesn’t.  Another consequence of this composition-based approach is the object becomes really, really lightweight–little more than identity on one end and trait container on the other.  That looks surprisingly like the really, really lightweight document in MongoDB with it’s single _ID default attribute.

The Documentum architect gets a whole new (NoSQL) toolbox to build and extend systems. Although Documentum grew out of the relational database culture of the time, it broke major relational conventions because the document management problem space felt more object-oriented than table-oriented; i.e., repeating attributes, virtual documents, object-ish extensions to SQL.  Now that NoSQL is here, it’s obviously a better fit:  Documentum architects taking a look at 10Gen’s webinar on schema design in MongoDB should quickly recognize the familiar ground.  What’s new is how dynamic, real-time the data model becomes with traits because they are only attached as needed at runtime, and objects can have different versions of a trait at the same time allowing for upgrades in a conditional or rolling manner.  The docbase will no longer be where content goes to die; it becomes a Livin’ Thing. Hopefully sizing, deploying, and scaling NGIS systems will also look more NoSQL than relational, but traits don’t give us any hints there.

Me if dm_history repeats itself

Cautious Optimism

I’ll admit to some cautious optimism here; traits may be a sign that NGIS will make Documentum architecture interesting again.  Beyond just updating the toolbox, the new capabilities may inspire organizations to start solving new, interesting problems again. Documentum did a good job of getting people to think about document management the first time around, but now everybody “knows” what document management is and what Documentum is “good for”.  Traits hint that NGIS could be a game changer on the much-less-talked-about back end; it won’t directly delight the New User, but a pretty front end on a shaky server foundation won’t be particularly useful to the New User. It’s up to EMC to get the implementation right and get the word out.

 

Based on the blog post Next Generation Information Server: Traits Explained | Jeroen’s Crazy Content and video:

GooglePlus versus Google Profile?

I’m wondering if Google+ is going to negatively impact other Google products given what I’ve noticed with Profiles and Buzz.

My profile URL [profiles.google.com/kominetz] now redirects to plus.google.com/{ugly-long-id}. I’m not sure I like the implication of this, because I use my profile for OpenID, and I’d like to use it as a homepage that links to everything so I can just tell people “go there, and you’ll find me anywhere I am on the Internet.” That URL going away would make me rather unhappy.

Buzz is still a tab there, but it seems totally disconnected from Google+. It might be good to have some separation between Buzz and Posts because they post/notification frequency on Buzz can be pretty high on a Google Reader catch-up day, but Buzz feels too disconnected–and somewhat redundant. Also, oddly, there’s no RSS feed on the Buzz, tab but there is on the Posts tab. I don’t pay attention to things on the web that don’t have feeds.

Finally, I just noticed that the would-have-been convenient “Send an Email” button on my profiles/plus page only works if I’m signed into another Google account. That’s probably a spam avoidance tactic, but it’s still a let-down since I was hoping to use it as my About/Contact page that doesn’t expose my email address.

Reposted manually from Google+ since it can’t do that …

Google Circles: Aunt Ruth Doesn’t Need to Know

This Google Video sums up the philosophy of Circles perfectly in the last line: “Aunt Ruth doesn’t need to know.” Therein lies my problem with the motivation of circles: It’s preventing people from seeing things they shouldn’t, not necessarily showing them things they’re interested in, and not providing them any way to categorize incoming posts (i.e., streams). That’s where circles really fall down, on the streams side. I can put you as a poster in any circle–more than one circle–but there’s no real link between how I categorize you and what you’re actually going to talk about.

Reposted from Google+.

There’s an Evernote podcast?

EvernoteI’m a pretty light user of Evernote; it was a good dumping ground for the accumulated snippets of text I carried around first on my PalmPilot and then on my Blackberry. Useable notes came late to the iPhone; frankly, they’re still a little less than indispensable.  That’s why Evernote landed on my iPhone, my Macs, and my bookmarks list last year.

I’ve been satisfied with the free account so far but haven’t taken Evernote to the next level because tools like OmniFocus, VoodooPad, and Google Docs are more integrated into my daily routine. That might change a little thanks to The Evernote Podcast. A podcast about a single app? I couldn’t imagine having enough to say about Evernote in a long-form podcast; something short form like Quick and Dirty Tips might make more sense. Then again, a show about nothing could be entertaining from time to time. I gave it a try, and it paid off.

Podcast #10 mentioned how to send blog posts from Google Reader to Evernote, a way to archive entire articles without leaving Reader. I live in Reader, so the odds of me using Evernote more–and listening to more Evernote podcasts–just shot up dramatically, especially because I added The Evernote Blogcast to Reader. The feed includes links to the podcasts, so I’ll probably delete the iTunes subscription and listen from the web when a summary catches my attention.

The podcast also mentioned using Evernote data as a screen saver since each note has a thumbnail image rendition. It’s not terribly practical since I can’t imagine anybody (sober) watching their screen savers anymore; flying toasters are so 20th century. Still, it’s a neat hack, and chance picked a relevant reminder about last week’s gay rights victory in New York and tomorrow’s distinctly Philadelphian holiday:

The only freedom which deserves the name is that of pursuing our own good, in our own way, so long as we do not attempt to deprive others of theirs, or impede their efforts to obtain it.

— John Stuart Mill

How to use Evernote as a Screen Saver in Mac OS X:

  1. Open “System Preferences”, choose the “Desktop & Screensaver” icon, and choose the “Screen Saver” option in the tabby thingie.
  2. Click on the “+” under Screen Savers pane and choose “Add folder of pictures”.
  3. Navigate to “{HOME}/Library/Application Support/Evernote”, choose the data folder, and leave that folder selected in the Screen Savers pane.
  4. Choose the middle option from the Display Style option bar.

Google Plus Circles: Conjunction of the Spheres?

Conjunction of the Spheres Kepler imagined the solar system as a series of nested Pythagorean solids. It was an elegant notion, but we live in a more complicated (Einsteinian) universe. Is the same true of current social networking models?

GooglePlus is dominating my RSS feeds today. My excitement about Circles has faded a little because of articles like this:

Google Plus’ Circles System May Not be Sustainable — ReadWriteWeb

I posted an abridged version of the following in the article’s comments:

Good categorization is an expertise most people lack: “Work” isn’t particularly meaningful, but “Coworkers”, “Headhunters”, and “Professional Acquaintances” are. It’s more work to apply and maintain a richer taxonomy, and I’d imagine even fewer people will get equivalently greater value from such effort in social networking. We’ve been trained away from finding exactly what we want by the search-and-browse approach of unstructured searches like Google, so wading through irrelevancy is a more common skill.

Grouping mechanisms in other social networking systems also have upkeep problems; I suspect most people just don’t bother doing it, and the same will probably be true with GooglePlus. Maybe adding a feature to display circles as Venn diagrams would help data geeks like me.  For most people, public versus private might be just enough categorization to avoid social networking faux pas without making the posting process feel like taking the SAT.

Existing social networks don’t have the concept of categorization on both ends, posting and reading, and I wonder if GooglePlus Circles has the same deficiency because it hides the names of circles I’ve been added to. I’d like to subscribe to (and filter out) people’s circles instead of people themselves to control the noise of their posts about unshared interests; I’d probably disagree with how most of my non-professional acquaintances would categorize me. It doesn’t sound like GooglePlus makes the distinction of subscribing to people’s interests or topics instead of people themselves. Relevancy has to be a two-way street.

Or, perhaps, a four-way intersection.

GooglePlus Venn Diagram
GooglePlus Venn: Relevancy is an Intersection

With all those brainy data geeks at Google, I’m optimistic that they could create a Venn diagram of Circles, Sparks, +1’s, Reader Likes/Shares that could define social graph relevancy in that oh-so-Google statistical way. How many licks would it take to get to the center of that tasty relevancy tootsie-pop?  Lots, probably, but it creates a new kind of payoff that Twitter and Facebook are incapable of delivering.

Hey, Google, are you listening?

On a related note, I tried posting my comment using my Twitter account. Twitter on the web is totally brain-dead about multiple identities, so of course I posted my comment using the wrong account. It’s a perfect example of the mis-post problem I referenced in the preceding post. Then I reposted my comment using Google, and Disqus allowed me to choose from the three Google accounts I’m logged into right now. Google gets the issues of identity and context more than anybody else in the field, so I’m (somewhat) optimistic about GooglePlus.

Will Google+ bring relevance to social networking?

Google’s latest offering may finally bring relevance to social networking. Google+ Circles let people target content to subsets of their social graphs.  No more blurting out your weekend escapades to bosses or making friends’ eyes bleed with war-and-peace posts about dm_folder implementation?  Faaabulous!

Official Google Blog: Introducing the Google+ project: Real-life sharing, rethought for the web.

This isn’t just about hiding potentially embarrassing facts from prospective employers; it’s about targeting content to the audiences that are most likely to find it interesting. Current social media systems like Twitter and Facebook don’t get this. With Twitter in particular, I try to work around it by having a half dozen Twitter accounts. I restrict who I follow and what I post by account based on theme–personal, professional, gaming, etc. Hacks like this make for more work and are prone to mis-posts; it’s as discouraging to posting as wading through live-tweeted baseball games or diaper anecdotes are to reading.

Identity is also an issue as services like Facebook and LinkedIn expose our real-life names to the virtual world, something I experience more acutely because of this eponymously-named blog and professionally-oriented Twitter account.  I can’t prevent noise in my professional channel no matter how clever and diligent I am when less savvy friends and relatives can’t remember to use my personal non-eponymous identity for personal messages. Social search, realtime results, and consolidated logins will make this everybody’s problem in a few years.

Google’s social networking track record isn’t great; i.e., Orkut, Buzz, and Wave. It looks like Google+ doesn’t suffer from the lack of look-and-feel sophistication that may have hampered earlier efforts, and features like Circles address some of the fundamental design flaws in established products. However, the better product doesn’t always win, and Google will have to convince people to leave existing services. That’s a Catch 22 because the value of a network depends on its size, and it’s compounded because members of those networks don’t understand issues of identity, privacy, and relevance.

Call me cynical, but I think the odds are stacked against Google+. How many people realize the value of regular backups before losing everything to crashed disks or lost laptops? Those same people won’t realize why leaving Facebook for Google+ makes sense until they lose jobs or spouses for lack of caring. Please, Google, prove me wrong.

Reports of Mouse’s Death Greatly Exaggerated

Hole: Live Through This “When I get what I want I never want it again.”
— Violet, Courtney Love

I’ve been clamoring for something better than the mouse for more than a decade. My ideal interface would unite action with result to eliminate the perceptual disconnect between moving my hand in one place and seeing the result in another. The iPhone was the first thing in all that time to feel like a real breakthrough along those lines, and I think there’s much personal computer interfaces can learn from touch on phones and tablets. That doesn’t mean copy them verbatim and proclaim previous paradigms completely invalid.

The second half of Erick Schonfeld’s TechCrunch article on Windows 8 [Windows 8 Is Gorgeous, But Is It More Than Just A Shell?] claims the mouse is dead. I beg to differ. Touch interfaces like this have their uses, but they also have limitations because they are content consumption oriented.  It’s not that we’re living in a post-mouse era: we’re living in a post-one-size-fits-all era, i.e., the Windows Everywhere Era.  Touch interfaces will not obliterate mice and trackpads for the following reasons.

IMPRECISION: The finger is an imprecise pointing device when pixels matter.  Although I don’t have fat fingers, it’s rather difficult for me to finger a single pixel on a good monitor with 100 pixels per inch–let alone the Retina Display’s 326 PPI. You can select an image that way, but you can’t draw one.  It’s not just being more precise; pointing devices can transform imprecise hand movements into a variety of precision levels on screen. I love mice that let me dial up the resolution for fine work or dial it down when flailing around in a game.

OBSTRUCTION: With touch interfaces, fingers block sight of a substantial number of pixels during touch activities, interfering with the realization of a realtime respond-where-you-act interface like touch. That’s not an issue when tapping a built-big tile to select something but it’s a big problem for precision movement or tracking.

INEFFICIENCY: Sometimes editing text requires switching between mouse and keyboard despite a keyboard jockey’s mastery of keyboard shortcuts. Current pointing devices live within the same range of motion as the keyboard so it’s a small, less disruptive gesture. Now imagine reaching from keyboard to the screen to drag-select or reposition a cursor; the gods of time-and-motion studies will not be pleased. Maybe laptops would fare better than desktops with Windows 8, but it also might add to the ergonomic train wreck they’ve become.

SMUDGINESS: People touching monitors is a huge pet peeve of mine. I’m a little more smudge tolerant with my iPhone, but I can’t imagine what my monitor would look like after just one working lunch on Windows 8. Just thinking about this makes me want to rush into the bathroom and wash my hands.

Touch technologies have existed for decades, and I think that the iPhone APIs ushered in this new era, not the hardware. Apple created a toolset to help developers deal with the strengths and weaknesses of touch that also provided a consistent experience for users across applications. Mac OS X Lion appears to learn from touch interfaces, not emulate them. Apple realizes that they need operating systems that match the devices they run on, perhaps a wisdom only earned by making both software and hardware. Microsoft should think very carefully about repeating their habitual strategic blunder of trying to make a one-size-fits-all Windows.