Continuing from where we left off in Part 3, lets start exploring the application integration aspects of itHUB a little more in this post.

E. External Service Provider’s Products and Services Integration

This section will discuss the integration of Walmart’s products and services to itHUB using the Walmart Data Feed API [10].

1) Data Integration

To get a list of items by category, we have to register with the Walmart Open API and acquire an apiKey. Once the apiKey is acquired, there are several methods available to retrieve items as follows:

  1. Lookup API - Get Items - /v1/items/id
  2. Taxonomy API - Get Taxonomy - /v1/taxonomy
  3. Search API - Get Search - /v1/search
a) Data Semantics

Walmart’s product data semantics is shown below:

<items>
    <item>
        <itemId></itemId>
        <parentItemId></parentItemId>
        <name></name>
        <salePrice></salePrice>
        <upc></upc>
        <categoryPath></categoryPath>
        <shortDescription></shortDescription>
        <longDescription></longDescription>
        <thumbnailImage></thumbnailImage>
        <productTrackingUrl></productTrackingUrl>
        <standardShipRate></standardShipRate>
        <marketplace></marketplace>
        <modelNumber></modelNumber>
        <productUrl></productUrl>
        <customerRating></customerRating>
        <numReviews></numReviews>
        <customerRatingImage></customerRatingImage>
        <categoryNode></categoryNode>
        <bundle></bundle>
        <availableOnline></availableOnline>
    </item>
</items>
b) Data Format

Data Feed API can either return data in the XML or JSON format. An example product is shown in the JSON format below:

{"items": [
    {
        "itemId": 24699992,
        "parentItemId": 24699992,
        "name": "HP Black 110-023 Desktop PC Bundle with Intel Pentium G2020T Processor, 8GB Memory, 20\" Monitor, 1TB Hard Drive and Window 8 Operating System",
        "salePrice": 498.0,
        "upc": "887758272657",
        "categoryPath": "Electronics/Computers/Desktop Computers",
        "shortDescription": "The HP 110 sticks to the basics, providing the competitive performance and familiar, essential features you need for routine tasks like email and social networking, homework and personal finances or casual Web browsing and online shopping. The clean modern styling makes it reliable, easy-to-use and extremely affordable.",
        "longDescription": "&lt;br&gt;&lt;b&gt;HP 110-023 Desktop PC Bundle:&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Key Features and Benefits:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Intel Pentium G2020T processor&lt;br&gt;2.50GHz, 3MB Cache&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;8GB DDR3 SDRAM system memory (expandable to 16GB)&lt;br&gt;Gives you the power to handle most power-hungry applications and tons of multimedia work&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;1TB SATA hard drive&lt;br&gt;Store 666,000 photos, 285,000 songs or 526 hours of HD video and more&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;SuperMulti DVD Burner&lt;br&gt;Watch movies, and read and write CDs and DVDs in multiple formats&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;10/100Base-T Ethernet&lt;br&gt;Connect to a broadband modem or wired broadband router with wired Ethernet&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;20&quot; LED-backlit LCD monitor&lt;br&gt;Intel HD Graphics with up to 1664MB total available graphics memory&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;b&gt;Additional Features:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;6-in-1 memory card reader&lt;/li&gt;&lt;li&gt;6 x USB 2.0 ports, 1 x headphone jack, 1 x microphone jack, 1 x RJ-45 Ethernet port, 1 x VGA+DVI-D port&lt;/li&gt;&lt;li&gt;1 x PCI Express x 0.5 slot, 1 x external 5.25&quot; bays, 1 x internal 3.5&quot; bay&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;b&gt;Software:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Genuine Microsoft Windows 8 Operating System&lt;/li&gt;&lt;li&gt;Norton Internet Security (60-day subscription)&lt;/li&gt;&lt;li&gt;HP Recovery Manager&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;b&gt;Support and Warranty:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;1-year limited hardware warranty; 1-year limited monitor warranty; 24/7 technical assistance available online or toll-free by phone&lt;/li&gt;&lt;li&gt;Restore discs are not included (unless specified by supplier). We recommend you use the installed software to create your own restore and backup DVD the first week you use the computer.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;b&gt;What's In The Box:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Power cord&lt;/li&gt;&lt;li&gt;HP USB keyboard&lt;/li&gt;&lt;li&gt;HP optical mouse&lt;/li&gt;&lt;li&gt;Quick Start Guide&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;b&gt;&lt;i&gt;To see the manufacturer's specifications for this product, click &lt;a href=&quot;http://i.walmart.com/i/rb/0088775827265.pdf&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;To see a list of our PC Accessories, click &lt;a href=&quot;http://www.walmart.com/cp/accessories-peripherals/132959&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Trade in your used computer and electronics for more cash to spend at Walmart. Good for your wallet and the environment - click &lt;a href=&quot;http://gazelle.com/register_click?campaign=electronics_trade_in&amp;media_type=text&amp;network=walmart&amp;destination_url=http%3A%2F%2Fwalmart.gazelle.com&amp;placement=product_computers&amp;creative=learn_more&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/i&gt;&lt;/b&gt;",
        "thumbnailImage": "http://i.walmartimages.com/i/p/00/88/77/58/27/0088775827265_100X100.jpg",
        "productTrackingUrl": "http://linksynergy.walmart.com/fs-bin/click?id=|LSNID|&offerid=223073.7200&type=14&catid=8&subid=0&hid=7200&tmpid=1081&RD_PARM1=http%253A%252F%252Fwww.walmart.com%252Fip%252FHP-Black-110-023-Desktop-PC-Bundle-with-Intel-Pentium-G2020T-Processor-8GB-Memory-20-Monitor-1TB-Hard-Drive-and-Window-8-Operating-System%252F24699992%253Faffilsrc%253Dapi",
        "standardShipRate": 0.0,
        "marketplace": false,
        "modelNumber": "110-023wb",
        "productUrl": "http://www.walmart.com/ip/HP-Black-110-023-Desktop-PC-Bundle-with-Intel-Pentium-G2020T-Processor-8GB-Memory-20-Monitor-1TB-Hard-Drive-and-Window-8-Operating-System/24699992",
        "customerRating": "4.432",
        "numReviews": 37,
        "customerRatingImage": "http://i2.walmartimages.com/i/CustRating/4_4.gif",
        "categoryNode": "3944_3951_132982",
        "bundle": false,
        "availableOnline": true
    }
]}

2) Process Integration

a) Interface Process

The requestor of the data feed will make a call as follows:

Walmart Interface Process

Request Management component needs a translator service to enable the processing of product data to and from Walmart API services.

b) Workflow

One of the attributes, productUrl, shown in the JSON code block, represents the deep linked URL that directly links to the product page of the item on walmart.com, and uniquely identifies the affiliate (itHUB in this case) sending this request via a linkshare tracking id |LSNID| [11]. In this case, the ordering process with the external service provider can be as simple as a link-out to the deep linked web page on the Walmart.com website.

3) Application Integration

To seamlessly integrate with the request management component as described in the previous section, the products and services data from the external service providers such as Walmart and Staples have to be translated to and from the itHUB product and service vocabulary. One of the methods of implementation design is shown below:

itHUB Application Integration with External Service Providers

a) Walmart Product Mapper

The responsibility of the Product Mapper is to extract all the necessary attributes from the “item” response XML/JSON string and create an itHUB-compatible external product item that can be represented using a common web interface. By the same token, for item inquiry or item order details, the mapper will convert the “Request” to Walmart API specific item specification.

b) itHUB Walmart Gateway

The responsibility of the Walmart Gateway is to receive and submit the product data from and to the Walmart Open API.

F. User Management

As discussed in the previous section, to create a singular view about the customer, itHUB user management component might have to assemble the information from a wide variety of data sources – user directory, ERP systems such as SAP, employee management software systems such as PeopleSoft to name a few. The following entity relationship diagram (ERD) shows a simplistic implementation of some of the attributes needed to properly service customers:

User Management

To pull customer-related information from multiple data sources, the following design could be implemented.

E-R Diagram for User Management Integration

1) Repository

The responsibility of the repository is to encapsulate storage, retrieval, and search behavior and to emulate a collection of objects (Evans, 2003).

a) ERP Repository

This is a specialized implementation of the Repository to deal with ERP systems and can be further specialized to deal with a specific ERP system – e.g. SAP Repository.

b) User Repository

This is a specialized implementation of the Repository to extract user details of customers from a user store such as an Active Directory. This can also be further specialized to deal with specific user stores.

2) User Service

The responsibility of the User Service is to retrieve and assemble user details, billing details etc. from a wide variety of repositories described above.

I’ll contiunue my discussion in the next post.


[10] Walmart. (2011). Walmart Open API - Data Feed API. Available: https://developer.walmartlabs.com/docs

[10] Walmart. (2011). Walmart Open API - Data Feed API. Available: https://developer.walmartlabs.com/docs

[11] Walmart. (2012). Walmart Open API - Item Response Groups. Available: https://developer.walmartlabs.com/docs/read/Item_Field_Description

Continuing from where we left off in Part 2, lets start exploring the software architecture of itHUB a little more in this post.

C. Technology: Web 2.0 and Beyond

The use of Web 2.0 and beyond [9] is a must for the itHUB platform. The following diagram illustrates the architectural layers and partitions of itHUB platform software components: Layers and Partitions of itHUB

1) Internal Products and Services

These products and services are the core competencies of the IT departments. These products and services could range from homegrown applications to hardware and software bundles that the IT departments have direct control over.

2) itHUB Data Store

This is a dedicated data store to itHUB platform for the purposes of storing and retrieving its constructs such as “requests”.

3) External Products and Services

These are from the external service providers such as Walmart, Staples and PC Connection – a select set of products and services that conform to the standards and compliance needs of the IT organization. The products and services from the external service providers will be accessed using their application interfaces (API) and added to the internal products and services to create the consolidated portfolio of products and services.

4) Request Management

Request Management is the crux of the itHUB platform as shown in Figure 7. Requests are managed in two steps as follows:

  1. Configure/Provide Request Types – Either the service providers or the service administrator carries out this step. This is the first step in making a set of requests available to the IT customers to choose from and ultimately requested for. These are configurations or specifications of the requests and not the requests themselves. For example, to process a desktop request, the IT department might need a set of data points such as “Is this a new or replacement desktop?” or “How much RAM is required?” etc. Without these values, processing of the desktop request may not be possible. Plus, the list of approvers is specified for each of the request type. For example, for a desktop request, there may be a need for approvals from the department manager and the general manager (or some suitable roles).

Request Management

  1. Create/Track Requests – After choosing one of the request types, for example, the desktop request, the customer goes on to fill out the necessary data points and submits the request. Once the request is submitted, it is routed for approvals based on the specification of the request type. As described in the previous section, a desktop request will be routed to the department manager and the general manager of the customer who submitted the request. After submitting the request, the customer could check on the status of the request including the approvals.

5) Approval Workflow

As shown in the above picture, the approval workflow enables the management team to ensure that the requested products or services are really a need for the requestor’s job role. One of the primary steps of this component is described below:

  1. Approve/Reject Requests – In this step, requests are either approved or rejected by the approvers. Email/SMS channels will be utilized to send and receive approval notices.

6) User Management

This is where the customer data is managed. As described in the previous sections, customer data includes location information such as address, building, and floor details, billing information in terms of cost center, project number or internal order number etc., and the department information including manager details.

7) User Management Store

The data points about the customer needed to process requests successfully might spread across multiple data stores and ERP systems. There may be a need to assemble the customer data from a wide variety of data sources such as PeopleSoft, Asset management database, LDAP directories to create a unified view of the customer.

8) ERP

Enterprise Resource Planning (ERP) might house the relevant billing information for itHUB to associate with customers and their requests. As described in the previous section, the billable information could include cost center, project number or internal order number for cross charging purposes.

9) Web Layer

The web layer would include components such as wiki/blog creation framework, web application frameworks such as J2EE-based Spring framework for web site navigation development, data persistence, web service development, and for messaging.

D. itHUB – The System Boundary

The following diagram illustrates the system boundary and the dependencies of itHUB with external systems both managed by the IT department and external service providers.

itHUB System Boundary

As shown in the diagram, the user infrastructure could be a combination of systems such as PeopleSoft, corporate LDAP directory etc. The billing information such as cost center details could be housed in ERP systems such as SAP. Therefore, the user management component has to deal with assembling a unified view of the customer. The request management component has to deal with receiving and processing the external service provider’s product data. The following section will go over the data semantics and formats for enabling the integration of customer data with internal to IT, but external to itHUB and exchanging products and services from external suppliers.

I’ll contiunue my discussion in the next post.


[9] T. O’Reilly and J. Battlelle. (2010). Web Squared: Web 2.0 Five Years On - by Tim O’Reilly and John Battelle. Available: http://www.web2summit.com/web2009/public/schedule/detail/10194