sMash Demo: InfoSphere Gateway (3 of 3)
Saturday, August 8th, 2009Here is the video that shows how easy it is to build a simple GUI for an MDM Server transaction.
Here is the video that shows how easy it is to build a simple GUI for an MDM Server transaction.
This video shows real, live web services making calls from the sMash environment to MDM Server through a simple http request.
I’ve recorded a few videos showing the integration between InfoSphere MDM Server and WebSphere sMash. There are three parts:
Resource Modeling Tool - How you define attributes and labels for your demo
Web Services Calling MDMS - Real transactions invoked by a simple http requests
Building the UI - A two minute GUI
The display quality of the you […]
Apparently, you can’t designate any arbitrary attribute as the resource identifier. (At least, the model editor GUI does not support it.) Rather, sMash just assumes the identifier will be an attribute called, “id”.
This became as issue when I tried to implement the delete and update services. The sMash runtime should pass the identifier value in […]
Firebug and Poster are two very useful tools for web development. Both are Firefox plug-ins. (Gotta love open source.)
Poster is a simple http client that enabled me to test the RESTful web services before building the UI. This is a great programming model. Encapsulated, reusable services…but so much easier to build and use than the […]
The MDMS Handler model maps the RESTful web services invoked by sMash to MDM Server services. Here is an example of the handler for the “person” resource.
/public/handlers/personModel.json:
{
“model”: “personModel”,
“CREATE”: {
“request_type”: “addPerson”,
“is_new_style_doc”: false,
“service_type”: “Tx”,
“wrapper_input”: “mdmPerson”,
“wrapper_output”: “mdmPersonSearch”
},
“DELETE”: {
“request_type”: “deletePerson”,
“is_new_style_doc”: false,
“service_type”: “Tx”,
“wrapper_input”: “mdmPerson”,
“wrapper_output”: “mdmPersonSearch”
},
“LIST”: {
“request_type”: “searchPerson”,
“is_new_style_doc”: false,
“service_type”: “Tx”,
“wrapper_input”: “mdmPersonSearch”,
“wrapper_output”: “mdmPersonSearchResult”
},
“RETRIEVE”: {
“request_type”: “getPerson”,
“is_new_style_doc”: false,
“service_type”: “Tx”,
“wrapper_input”: “mdmPerson”,
“wrapper_output”: “mdmPersonSearch”
},
“UPDATE”: {
“request_type”: “updatePerson”,
“is_new_style_doc”: false,
“service_type”: “Tx”,
“wrapper_input”: “mdmPerson”,
“wrapper_output”: “mdmPersonSearch”
}
}
The “wrapper” binds the sMash resource model to the MDM Server BObj, matching model attribute names to BObj xpaths. This is the wrapper (represented in json like the resource model) for the TCRMPersonObj. The sMash file editor insures correct json syntax, but I created this by typing it in manually. In addition to attribute mapping […]
This is what a sMash resource model looks like. Models describe resource attributes and optionally define collections and filter conditions. This is a model for a “person” which would correspond to an MDM Server TCRMPersonBObj. sMash provides GUI tools to create these models. For my MDM Server application in this environment, I’m creating one resource […]
Here’s a video that really captures the kind of development methodology and application architecture that, I think, works extremely well for MDM Server. Rob Nicholson of IBM uses WebSphere sMash as a web 2.0 development platform that can call back end like transactions, like CICS.
The video, starting at about the 2:55 mark, starts illustrating the […]
Just keeping track of the things I need to come back to:
MDM Server doesn’t like the TCRMPartyContactMethodBObj’s in my addPerson XML. I could add the phone number, but not the e-mail address. It complained that I was using either an incorrect contact method category or contact method type. My entries matched the code tables as […]
I’ve now wired the second of the RESTful web services, onAdd(). My demo application can now retrieve a list of Persons and add new Persons (by executing MDM server transactions that have been mapped.) No changes need to the UI since the Dojo widgets implicitly support the CRUDL actions. I still need to add support […]
Every resource needs a handler to perform the RESTful web services. By convention, WebSphere sMash will look for a file with the same name (as the resource model ) in the app/resources directory, except with a .groovy file extention rather than .json.
But I don’t want to script custom handlers for each resource. So, I can write […]
The ZRM Data store called by UI Dojo widget appears to be making unnecessary GETs to the resource handler. I noticed this initially by watching the traffic flowing over the RMI Gateway. I saw three searchPerson service invocations every time I loaded or refreshed the index.html page.
One of the developers on the Project Zero forums […]
Success! Well, at least a successful first step. My first application retrieves person data from MDM Server (calling the searchPerson service) and presents the result list in a Dojo data grid and form:
More importantly, this required zero programming. I did some configuration and built several application artifacts with tools. That’s all. The key, high level […]
I’ve been writing, implementing, and now selling enterprise software for quite awhile, and I’m still perplexed by the complexity of it all. Does it all really need to be this difficult?
I don’ think so. Powerful scripting languages and new web 2.0 tools and technologies can radically simplify software development. So I began to wonder, can […]