O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

IT in retail

2.848 visualizações

Publicada em

  • Login to see the comments

IT in retail

  1. 1. IntroductionRetailers are faced with the enormous challenges of globalization, regulations, growingcosts, and demanding customers. In addition to these changing market conditions, thereare now multiple channels to reach customers. All of this increases the need for flexibilityand agility in business applications. However, at a time when competition is keenlyinterested in buzzwords like agility and adaptability, businesses are confronted withsystems that are seemingly built of steel and cement, developed as though things wouldnever change. These systems become more expensive and cumbersome each timeorganizations tweak them to fit new business imperatives. Unfortunately, this leads toless materialization of automation, because systems require constant human interventionand IT development. All too often, the alignment of technology with business objectivesgets bogged down by integration problems and progresses no further than the whiteboard.One of the common areas where retailers face huge challenges is the availability of theright information, at the right time, and at the right place—for example, making salesinformation available in near real time to the store managers, regional managers, andmerchandising managers in the corporate headquarters. Another example is theavailability of product information to the sales agents. Making information available innear real time requires systems that can generate near real-time data, send the data tothe right places, and consume data in near real time.Service orientation addresses these challenges by centering on rapidly evolving XML andWeb services standards that are revolutionizing how developers compose systems andintegrate them over distributed networks. No longer are developers forced to make dowith rigid and proprietary languages and object models that used to be the norm beforeservice orientation came into play. The emergence of this new methodology is helping todevelop new approaches specifically for Web-based distributed computing. This revolutionis transforming the business by integrating disparate systems to establish a real-timeenterprise.Making information available where it is needed to simplify merchandising processesrequires a methodology that is based on loosely coupled integration between various in-store and back-end applications. This demand makes it critical for an architecture that isbased on service orientation for integration between disparate applications. In addition,surfacing information at the right place requires the ability to compose dynamicapplications using an array of underlying services. The Office Business Applicationsplatform provides this ability to create composite applications, such as dashboards for thestore, regional, and corporate managers.This sample application is developed by selecting a few common scenarios in retail (suchas stock unavailability, loss prevention, customer services, and in-store productivity) toshowcase integration using service orientation. The white paper discusses application-to-application connectivity in real time. Data is transmitted from store to enterprise as abusiness event, and not as a sequence of batches. Data is transmitted between store andline-of-business (LOB) applications in the industry-standard IXRetail format.This application also shows the best way to achieve agility and integration by way ofservice orientation. Finally, a sample application is available for download thatdemonstrates this through a few selected scenarios.Goals of the Sample Application
  2. 2. The main goals of this sample application are to demonstrate: • Integration of disparate applications using Web services. • Use of industry standards in achieving interoperability. • Ease of building Web services using the Microsoft platform. • Transformation and orchestration capabilities of Microsoft BizTalk Server (BTS) 2006. • Ease of building manager workbench and dashboards using Microsoft Business Scorecard Manager (BSM) and Microsoft Office SharePoint Services.Building the Sample ApplicationTo demonstrate the use of service-oriented architecture to automate this scenario, asample application was built using the IXRetail industry standard for retail enterprise,BizTalk, Windows Communication Foundation (WCF), BSM, and Office SharePoint Server.The approach is as follows: 1. Build a Visual C#–based sample point-of-service (POS) application. 2. Use the IXRetail schema to design Web service interface definitions. 3. Build a sample back-end IXRetail adapter for BizTalk. 4. Build a sample Web service using WCF that triggers workflows that are based on the alerts and events. 5. Build a sample supplier service that interacts with the back-end Web service. 6. Package the application into a set of Web services, Windows applications, metadata (configuration, schema definitions), and a set of applications. 7. Compose a dashboard using the Web services to surface relevant information to the managers using Office SharePoint Server.How Does These Benefit Retailers?This sample application demonstrates many benefits to the retailers. Some of the keycharacteristics of the sample application that are beneficial in building a real-timeconnected retail solution are that it: • Demonstrates the use of standards to create an extensible solution. • Is loosely coupled to enable the benefits of agility, adaptability, and alignment. • Is built by using prepackaged technologies, as opposed to creating it from the ground up. • Demonstrates composing dashboards easily for managers, based on their roles.The use of standards, loose coupling, and the use of existing technologies, helps theretailers in incrementally switching to this solution, as opposed to "ripping and replacing"existing solutions. These characteristics also help in selecting the "best of breed," asopposed to being locked down with solutions from a particular vendor. Finally, they alsomake it possible to extend the solution easily as market conditions change.Scenarios and ComponentsThis section walks through the reference architecture for building an integrated retailer.As described in the previous sections, retailers face the challenge of integrating theirlegacy systems within their stores and at the enterprise (or corporate) headquarters. This
  3. 3. challenge becomes even more critical due to demanding customers who expect a richexperience both in the store and in other channels.To achieve the near real-time data availability and to reap the fruits of near real-timedata, let us first understand the retail-value chain.Figure 1. The retail-value chainIn a retail-value chain, sales and customer data flows from the stores to the enterprisesystems. Based on the forecasting, inventory levels, and sales data, enterprise systemsorder new products and merchandise from the suppliers. Suppliers fulfill the orders fromtheir warehouses and in turn place orders to the manufacturers when the inventory in thewarehouse falls below a certain threshold.For all of this to function smoothly and avoid customers from experiencing out-of-stockscenarios, retailers need a process that is agile, adaptable, and aligned. This reduces thecosts and inefficiencies, while ensuring seamless customer experience. If this process isnot set up to have the benefits of agility, adaptability, and alignment, the retailorganization is bound to experience the pain points discussed previously.Retail Scenarios Targeted in This Sample ApplicationThere are many scenarios and use cases in retail. However, to demonstrate thecapabilities of the technologies, we have selected a few common scenarios: • Item not found. This is a common scenario that occurs in the retail environment. In this scenario, an item arrives at the store and is stacked on the shelf, well before the item is launched through the merchandising system and the pricing information is transmitted to the store. A customer picks up the item and walks up to the checkout counter. When the product is scanned, it cannot be checked out, as the item is not found. Currently, this leads to many manual steps, such as the supervisor being paged and having to walk up to the checkout lane, pick up the product from the cashier, and walk around the store to try to find a price by looking up the price of a similar item. After the price of a similar item is
  4. 4. found, the manager overrides the price manually on the POS for the transaction to go through. • Item recall. In this scenario, a supplier typically sends a message to the corporate headquarters to recall an item. The merchandise manager updates the merchandise-management system with the item recall and sends a message to the stores. Each stores response is based on the time that the store manager takes to process the message and remove the recalled item from the store shelves. The sample application demonstrates how this scenario can be completely automated by using the latest technology—specifically, Web services. • Item out of stock. This is a very common scenario across the retail industry. In this scenario, a customer is looking for an item, does not find it on the shelf, and asks the store employee, who informs the customer that it is out of stock— whereas, in reality, the item is sitting in the back room. This problem occurs due to lack of real-time visibility into store inventory. The sample application demonstrates how the latest technology can overcome this problem and provide a richer customer experience. • Real-time promotional-item sales-data transfer. Typically, sales data is transferred to the enterprise systems either on a nightly basis or twice a day. This does not provide adequate visibility to the merchandise-management staff on inventory levels, and specifically on inventory levels of promotional items. So, the sample application demonstrates the transfer of transaction information in real time from the store to the enterprise systems. It also demonstrates the application of certain business rules in transmitting the sales-transaction information in real time. For example, sales information related to high-value items and promotional items is transmitted in real time with the highest priority; other transaction data receives secondary priority in transmitting in real time. The service hosted on the local host collects the simultaneous sales-data updates from multiple POS devices, aggregates them, transforms them, and then transfers the data based on the rules set by the corporate headquarters. • Supply chain. Typically, when a transaction is keyed in to the POS system, it does not make it to the enterprise system until later in the day or the next day. This reduces the visibility of the enterprise systems staff and executives on how stores are doing from inventory and sales points of view. The connected-system sample application demonstrates the complete integration of the supply-chain cycle from store through merchandising system, warehouse system, and finally back to the store. When a transaction is keyed in to the POS, the transaction flows into a store-level inventory function and updates the store on-hand data. When the on-hand quantity falls below a minimum threshold, it triggers an immediate order to the warehouse-management application. The warehouse- management system might interact with a trading partner to satisfy the order. The order is shipped and received at the store, and the store-inventory numbers for the item are appropriately incremented.The sample application uses the previous scenarios to demonstrate how they can becompletely automated and provide real-time visibility, for employees and executives tomake informed and timely decisions.Key Components of the Sample ApplicationThis section provides the description for understanding the components of the sampleapplication. Figure 2 provides the complete architectural view of how these componentsintegrate and work. This architecture demonstrates the loosely coupled integrationbetween various store and back-end applications. This high-level architecture providesthe building blocks that can be further extended or replaced as per the business needs, orcan be modeled in a similar way for some other industry vertical.
  5. 5. Figure 2. Architectural diagramPoint-of-Sale (POS) (Figure 2, Items 1 and 2)The sample application has a POS application. This is built as a .NET application(POSSystem, to demonstrate the integration with LOB applications, irrespective of theplatform). The POS application can operate in two modes: online and offline. Onlinesignifies a connection to the store server; offline signifies working disconnected to thestore server. In offline mode, these terminals store the sales transactions locally in a flatfile. After the connection with the store server is established in online mode, the offlinetransactions are sent across to the store server.In a real store, offline scenarios happen because of loss of network connectivity or thestore server going down. However, in this sample application, offline and online modesare controlled through the configuration file. A parameter in the configuration file of thePOS solution controls the mode of operation, as shown here.
  6. 6. <!--This is the POS Id where one can give the name of the POS--> <add key="POSID" value="101"/><!--This indicates the online/offline status of the application--> <add key="Online" value="true"/>The POS application name is configured in the POSID key, which is passed on with everynotification message that is sent to the Store. If the value of the Online key is true, thePOS is connected to the store server. In a retail scenario, multiple databases can bepresent for which every POS should refer to its individual database connection settings.This can also be configured in the Config.xml file, as shown here.<add key="ConString" value="Data Source=machinename;Initial Catalog=Databasename;User Id=test;Password=test123;/>Every transaction in the online scenario is directed to the store database, and all thetransactions are maintained in the sales-master and sales-details tables of the database.An additional file containing the item-master details is also maintained at the systemlevel, the path for which is configured in the Config.xml file, as shown here. (Ensure thatthe POS application has access to this transaction file.)<!--This is the path where the WCF Web service writes the details to ashared location that will then be accessed by the POS application--><add key="FileItemPath" value="//machinename//temp//price.xml"/>If the value of the Online key is changed to false, the POS application is disconnectedfrom the store database, and all the transactions are completed by using the item-masterdetails Price.xml file that was created in the previous step. An additional transaction logfile is also created on the local drive, the path of which is also configurable using theConfig.xml file, as shown here. The name of this file is the same as that of the Invoice IDgenerated. These transactions are then merged into the store database when the POS iseither online or if the status of the POS is changed from Offline to Online.<!--This is the path where the POS application writes the details ofthe transaction to an xml file in the offline mode--><add key="FileTransactionPath" value="C:"/>Store Database or Store DB (Figure 2, Item 3)The Store DB maintains the sales and inventory data of the store. Transaction data fromall the POS applications is aggregated into the Store DB for local storage.All the notifications generated by the POS application and the Store Manager application(explained in the next section) are stored also in the database. The E-R diagram for thedatabase is shown in Figure 3. The main tables in the Store DB are the following: • SalesDetails—This table stores the details for each item sold from the POS application.
  7. 7. • SalesMaster—This table stores orders with the subtotal, tax, and so on.• PoSMaster—The POS details for each POS terminal are stored in the database. The Store Manager application refers to this table to find the POS locations for all the applications, to broadcast any events.• Employees—This table contains employee details of the store.• ProductDetails—This is the product master table, listing the details of each product in the Store.• ItemMaster—This is the master table of the store database that contains the transaction data and notification corresponding to each item. This table contains the RecallFlag that indicates recall status of every item.• Inventory—This table contains the inventory of items available in either the back room or shelves of the store. This table gets updated whenever any item is sold.• LocationMaster—This table stores the location details of the back room and shelf of the store.• OutOfStockItemHistory—If an item inventory falls below the threshold, the transaction details for that item are pushed to this table.• RecalledItemHistory—If the Store Manager application recalls any item from the store shelf for various reasons, the RecallFlag in ItemMaster for that item is set to true, and the RecalledItemHistory goes into this table.• UoMMaster—This table stores the unit-of-measurement details for each item in ItemMaster.• Promotions—This table contains the details of items on sale or offered as promotion.
  8. 8. Figure 3. The Store DB E-R diagram (Click on the picture for a larger image)The Store Manager application refers to this database for all necessary operations.Connection to the Store database is made through the DBManager class that is presentin the DataAccess component of the sample application. This solution manages all theconnections to the database.Store Manager Application (Figure 2, Item 6)This .NET application acts as the Store Manager application potentially running on aTablet PC. All the messages and notifications from the POS are routed to this application.The Store Manager application acts as an interface for all the messages to be sent andreceived from the store Web service.The Store Manager application receives notifications from the POS applications and sendsthem back through the CSTStoreWinService, which is the Windows communicationservice running in the store. This communication is accomplished through the TCP/IP
  9. 9. listener configured on the CSTStoreWinService, whose communication IP (and the porton which it listens) are configured in the Store Manager application. This configuration isdone in the App.config file, as shown here.<!-- IP address of the box that host the Communication Windows Service--> <add key="CommunicationIP" value=""/><!-- Port number on the box on which the Communication Windows Serviceis listening--> <add key="CommunicationPort" value="8000"/>The Store Manager application communicates by using this socket. The Store Managerapplication also generates notification XML files for each notification received on thestore, either from the POS application or the Enterprise applications. Notification files areconfigured in the App.config file, as shown here.<!--XML file name where Item recalled notifications will be stored--> <add key="IRCXmlName" value="ircnotify.xml"/><!--XML file name where Item out of stock (shelf) notificationswill be stored--> <add key="IOOSSXmlName" value="ioossnotify.xml"/><!--XML file name where Item out of stock (back room) notificationswill be stored--> <add key="IOOSBXmlName" value="ioosbnotify.xml"/><!--XML file name where Item shipment received notificationswill be stored--> <add key="ISHIPMENTXmlName" value="ishipmentnotify.xml"/>These notification files are created in accordance with the IXRetail schemas for allscenarios. These notification files act as notification messages that are routed by theStore service as notification mails to the back-room staff (on their workstations orterminals) in case of item-recall scenarios, and to the Enterprise applications in case ofitem-not-found scenarios.In the item-not-found scenario, e-mail is routed through the Store service to theEnterprise application, so that the worker can set the price for the item that was missingin the store database. The configuration setting for the e-mail to be sent to enterprise isalso defined in the configuration file, as shown here.<!-- headquarters Mail ID--><add key="headquartersMailID" value="testmail@microsoft.com"/>E-mail is sent through the SMTP server that is configured in the IIS Server. Theconfiguration settings, such as the SMTP server name and port, are also part of theconfiguration file.<!-- IP Of a box that has SMTP (Generally this is Indigo box) --> <add key="SMTPIP" value="smtphost"/>
  10. 10. <!-- Port on which SMTP Service is running--> <add key="SMTPPort" value="25"/>Also, the endpoint address of the Store service can be configured in the Config.xml file.<!-- Indigo Store Service path --><add key="EndPointAddressvalue="http://localhost:2769/StoreService/Service.svc"/>Store Windows Service (Figure 2, Item 4)The Store Windows service (CSTStoreWinService) is exposed as a Windows service,and communicates with the Store Manager application by using the notifications raised bythe POS. The CSTStoreWinService also manages the communication between the StoreManager application and the Store service, as the Store Web service is hosted in theWindows service.The Windows service triggers any notification to the Store Manager whenever any high-value items or promotional items are sold beyond their inventory threshold value. Thisrouting of notifications to the Store Manager application is done by configuring theaddress of the Store Manager in the config file of the CSTStoreWinService.<!-- IP address of device on which Manager application will run--> <add key="MGR" value=""/>As soon as the CSTStoreWinService starts, it searches for sales data transmissionbusiness rules.Store Web Service (Figure 2, Item 5)The Store Web service is hosted as a WCF Web service that is exposed to the Enterpriseapplication. All communication between the Store Manager application and the Enterpriseapplication is routed through this Web service. The endpoints for this Web service areconfigured in the configuration file. Business logic required on the store is incorporated inthe public methods of this Store Web service.The Store Web service communicates with the Enterprise application through the BizTalkservice that acts as an interface on the corporate-headquarters side. The BizTalk serviceexposes the business rules and sales information methods. The Store Web servicecommunicates with the BizTalk Web service using the IXRetail schemas. It performs thedata transformation of store data to IXRetail format. This is achieved by mapping thedata from the Store database to the schemas exposed by the BizTalk Web service. Moreabout data transformation is explained later.The core functions of the Store Web service are listed here: • Data aggregation: The sales data and transactions from the POS device are aggregated and pushed to the database using insert DB methods. The database connection settings are done in the Web.config file of the Store Web service, as shown here.
  11. 11. !-->Db connection string Data Source=<<Database server>> Catalog=<<Database name>> --> <add key="ConString" value="Data Source=servername; Initial Catalog=db name;Integrated Security=True"/> • Data transformation: The Store Web service performs the data transformation of store data to IXRetail format by mapping the data from the Store database to the schemas exposed by the BizTalk Web service. This is demonstrated by the Applying Rules on Real-Time Data Updates scenario. o In this sample application, transaction information is transferred in real time from the store to the corporate systems; during this process, certain business rules are applied to select the information to be transferred. For example, sales information related to high-value items or promotional items are transmitted in real time with highest priority. Other transaction data will get secondary priority in transmitting in real time. The service hosted on the local host collects the simultaneous sales-data update from multiple POS devices, aggregates them, transforms them, and then transfers the data based on the rules set by the store manager or the corporate systems. o The BizTalk Service exposes the schema based on the IXRetail format and binds it to the orchestration. These orchestrations are then exposed as a Web service, and the business methods are exposed to the store as Web service methods. [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute ("http://tempuri.org/BizTalkWS/PriceNotFound", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols. SoapParameterStyle.Default)] [return:System.Xml.Serialization.XmlElementAttribute (Namespace="http://BizTalkWS.PriceNotFound", ElementName="PriceNotFound")] public PriceNotFound PriceNotFound([System.Xml.Serialization.XmlElementAttribute( Namespace="http://BizTalkWS.PriceNotFound", ElementName="PriceNotFound")] PriceNotFound part) { }In the previous Web method, the input parameter should map to the PriceNotFoundschema exposed by BizTalk. In the item-not-found scenario, the Store service retrievesthe data from Store DB and transforms it into the schema object exposed by BizTalk. So,the transformation is done by mapping the dataset exposed by Store DB to thePriceNotFound schema.Corporate or Enterprise Web Service (Figure 2, Item B)
  12. 12. Routing of messages, notifications, and sales data from store to corporate systems andback is achieved by the Corporate or Enterprise Web service. The Corporate Web serviceis exposed as a BizTalk Web service. Data flow happens between the stores andcorporate systems using data-transformation techniques. All the retail-business scenarioschemas are exposed by the BizTalk Web service. Based on the Retail scenario, theschemas are created for each one of the scenarios. These schemas are then transformedinto messages and exposed as orchestrations. The set of orchestrations and receivelocations that BizTalk creates are then exposed as a Web service. This Web service ispublished by using the Web services Publishing Wizard. The Corporate Web service isconfigured using the Config.xml file that is present in the BizTalk Helper class. TheCorporate Web service also logs the events on the corporate side to a log file, the path ofwhich is mentioned in the configuration.<category name="Common"> <setting name="LogFilePath"value="CSSample applicationLog.txt"></setting> <setting name="EventSourceName"value="CS Sample application"></setting> <setting name="EventSourceLogName"value="CSSample applicationLog"></setting></category>The notifications to corporate systems, merchandiser, supplier, and back-room staff aresent using e-mails, the configuration of which is in the configuration file.<setting name="DBConString" value="Data Source=ibm-indigo;InitialCatalog=Test_headquartersDB;Integrated Security=True"></setting><setting name="MerchandisersEmail"value="testemail@test.com"></setting><setting name="headquartersEmail" value="testemail@test.com"></setting><setting name="BusinessRuleFilePath"value="ibm-indigotempBusinessRules.xml"></setting>Supplier ApplicationThe Supplier application is exposed as a Web application, and is hosted on the corporate(or headquarters) side to allow the headquarters manager to recall items from POSapplications. The Supplier Web application lets the manager enter the item details to berecalled, and the recall message is routed to the store through the BizTalk Web service.
  13. 13. Figure 4. The Supplier application uses this screen to send the item-recallmessage.Corporate or Enterprise Database (Figure 2, Item D)The Enterprise DB maintains the sales and inventory on its side to which the corporateapplications are directly connected. All the notifications generated or routed by theBizTalk Web service and corporate Web applications also are stored in the database. Themain tables in the corporate database are the following: • SalesDetails—This is where the details for each item sold from the POS are stored. • SalesMaster—This is the Invoice Master table that stores the invoices generated after each transaction. • PoSMaster—The POS details for each POS terminal are stored in the database. The store manager looks into this table to find the POS locations for all the terminals when it broadcasts any event. • Employees—The employee details for all the employees working in stores is maintained here. • ProductDetails—This is the product master table, listing the details of each product in the Store. • ItemMaster—This is the master table of the Store database that contains the transaction data and notification corresponding to each item. This table contains the RecallFlag that states the item-recall status of every item. • Inventory—This table contains the inventory of items available in either the back room or shelf of the stores. This table gets updated whenever any item is checked out from the POS. • LocationMaster—This table stores the location details of the store back room and shelf. • OutOfStockItemHistory—If any item checked out at the POS is unavailable at the store, and the check-out quantity falls below the threshold level in inventory, the transaction details for that item are then pushed to this table. • RecalledItemHistory—If the store manager recalls any item from the store shelf due to various reasons, the RecallFlag in ItemMaster for that item is set to true, and the RecalledItemHistory goes into this table. • UoMMaster—This table stores the unit-of-measurement details for each item in ItemMaster.
  14. 14. • Promotions—This table contains the entry for the high-value items that are on sale or promotion.Corporate or Enterprise Web Application (Figure 2, Item E)The Enterprise application is exposed as a Web application. Hosted on the headquartersside, it performs all headquarters-related operations. This Web application supportsvarious operations, such as sending notifications, merchandiser functionality for filling thestock, stock transfer, shipping inventory as requested by the stores, and generatingpurchase orders. Its main functions are: • Editing of item price. • Real-time transfer of price changes to the stores through the store-side WCF service. This is done by using the UpdateItem, which shows up when the application is launched. As soon as the price is updated and submitted, an e-mail is sent to the store manager, and a notification appears on the Store Manager application. • Ability to recall items from the store by providing RecallItem functionality. When the Item ID and the reason for recall are entered and sent to the Store Manager application, recalled items in the store are placed on hold. • Inventory-management functionality, provided to create and inventory shipment request and send it to the stores. The Store ID is selected from a drop-down list, and the quantity to be transferred is selected for the transfer to complete. • Business-rules configuration, provided to create the business rules for transferring sales information from the stores in real time. This information is stored in the SampleBusinessRules.xml file. Business-rules settings are explained here. • Priority transmission frequency: o Immediate o Every <text box> hours • Standard transmission frequency: o Every <text box> hours o Once a day (on shift complete at POS) • High-value items: o Count UnitPrice of item >= $<text box> as high value • Save/Cancel: o Save the values to an XML file at path read from Web.configStore Manager Portal or DashboardOffice SharePoint is utilized to build the Store Manager application running on a TabletPC. All the messages and notifications from the POS are surfaced to the dashboard usingOffice SharePoint Services. The Store Manager application acts as an interface for all thenotifications to be sent to—and received from—the Store Web service. In this application,the Store Manager receives the notification from the POS through a call to the database.The Store Manager dashboard is used to edit the item price, view the sales data, andlaunch the Windows Store Manger application from the Quick Link launcher.Office InfoPath Forms: Whenever item-not-found notifications are received by the StoreManager on the Tablet PC, an Office InfoPath form is launched to edit the price of anitem. The Office InfoPath form is published on the Office SharePoint Portal Forms library.
  15. 15. Notifications Web Part: A Web Part is developed that displays all the notificationsgenerated by the POS and Store Manager applications. All the messages and notificationsfrom the POS are routed to this application. The Store Manager application acts as aninterface for all the messages to be sent to—and received from—the Store Web service.Sales Data Web Part: A Web Part is developed in Business Scorecard Manager to displaythe weekly sales information in a pictorial view. The data is read from the AnalysisService CUBE, which aggregates and processes the sales data. The Business ScorecardManager is used to publish the sales-data information onto the Office SharePoint PortalLibrary.Figure 5. A sample sales-data Web partOffice Business ApplicationsA composite application is a collection of software assets that have been assembled toprovide a business capability. These assets are artifacts that can be deployedindependently, enable composition, and leverage specific platform capabilities. Having aninventory of software assets by itself does not enable the ability to assemble compositionapplications. This requires a platform with capabilities for composition—that is, a platformthat provides the ability to deploy assets separately from one other, and in combinationwith each other. In other words, these assets must be components, and the platformmust provide containers.The 2007 Microsoft Office System is such a platform for building composite applications,which are called Office Business Applications. At a very high level, some of the technicalcapabilities of the 2007 Microsoft Office System are summarized in Table 1. Each of thesecapabilities is a powerful feature, when looked at individually; however, it is thecombination of these different technologies into a single integrated platform that makes
  16. 16. composition practical. It is the integration of these technologies that enables delivery anddeployment of composite applications, without an overwhelming increase in complexity inthe overall platform, tooling, and architecture.Capability DescriptionWeb site and A common framework for creating different kinds of sites, for examplesecurity team-collaboration sites, intranet portals, Internet Web sites.frameworkOpen XML file Open formats to represent business documents that can easily beformats read, transformed, and visualized. This enables rich server-side processing of documents in ways that were not possible before. With prior versions of Microsoft Office, parsing the document using the object model required an instance of the client application.Extensible UI Server-side portal that can be extended by users from a catalog of Web parts, and the catalog itself can be extended by solutions providers. Client applications with rich capabilities for extensibility through Microsoft Visual Studio Tools for Office.Business-Data A metadata repository to define business entities stored in back-endCatalog data stores, to model relationships between entities and define actions permissible on entities.Enterprise Search Surface data from various enterprise sources through search.Workflow Integration with Windows Workflow Foundation to host workflows that represent people-to-people interactions, and that link user-interface elements.Enterprise Manage diverse content, with one topology for Web, document, andContent records management. Support for document life-cycle management.ManagementBusiness Server-based Office Excel spreadsheets, plus BI componentsIntelligence (BI) (dashboards, reports, Web Parts) built into the portal and connected to Microsoft SQL Server Analysis Services.Communication Support for unified communications integrated into the platform.and Collaboration
  17. 17. Table 1. High-level capabilities provided by the 2007 Microsoft Office SystemThe first type of container in the presentation tier is the Microsoft Office client application(for example, Office Excel, Office Word, Office InfoPath). These applications arecustomizable containers that can now more easily surface information and functionalityfrom LOB applications by way of custom task panes, custom ribbons, and custom actionsthat present users with data and actions in the context of their current activity. Thecomponent type that can be hosted within these containers is the Open XML document.This is the new XML representation for Microsoft Office documents and which enables richserver-side processing of information stored within.The second type of container is a Web portal, as enabled by Windows SharePoint Services(WSS) and Microsoft Office SharePoint Server (MOSS). WSS v3.0 provides the followinghierarchy of containers: • Farm—Installation of one or more load-balanced Web servers, and back-end servers, with a configuration database. • Web application—Microsoft IIS Web site, extended to use WSS, that can host site collections. • Site collection—Container for WSS sites that exists within a specific content database. A site collection contains a top-level site, and optionally child sites, and is the unit of ownership, securability, and recoverability. • Site—Container for child sites, pages, and content (for example, lists, document libraries). • Page—Container for Web Part zones and Web PartsA page contained in a WSS site offers a model of Web Parts that is similar to the model inASP.NET 2.0. Web Parts are components that display content on a page in modular form,and are the primary means for users to customize/personalize pages. Figure 5a shows anexample of how a WSS page provides containers for Web Parts, and provides aWebPartManager control. This control creates and initializes Web Part instances inside thecontext of Web Part zones, and also serializes, stores, and retrieves Web Partcustomization data. Office SharePoint comes with a Web Part gallery that contains a richset of Web Parts out-of-the-box—for example, to surface Office Excel spreadsheets andcharts, and to view lists and tables. Solution providers can also provide their own customWeb Parts for application-specific or domain-specific functionality, which can then beuploaded into WSS. Information workers can then personalize pages by adding Web Partsfrom the gallery, removing Web Parts from a page, or rearranging the layout.
  18. 18. Figure 5a. Illustration of retail Web Parts managerThe 2007 Microsoft Office system provides a powerful set of capabilities to buildcomposite applications, which are called Office Business Applications (OBAs). Compositionis enabled at the presentation, productivity, application, and data tiers. This enablescross-functional solutions that offer a composite user interface that exposes businessfunctions and capabilities across a heterogeneous set of back-end IT assets. Thesesolutions also provide collaborative business capabilities that fill the white space betweentraditional business applications and personal productivity tools.Retail StandardsRetail standards are very critical; they help in standardizing the interfaces betweendevices (for example, a scanner and a point-of-sale terminal) or applications and definestandards for interacting with the device. Retail standards also ensure that the messagesbetween sharing applications are in a predictable format, so that applications developedby different people can talk to each other. Standards are beneficial to both applicationdevelopers and end users. From a developers point of view, standards reduce the cost ofsystems design and development, and allow easier migration and specialization in anapplication area. From a retailers standpoint, standards allow the integration orinteroperability of devices and applications from different vendors, enabling the creationof more cost-effective, customizable, advanced, and powerful systems. Standards alsoprovide the freedom to customers in picking best-of-breed applications that meet theirrequirements.Retail standards can provide the following benefits to the retail community: • Less expensive solution. • Richer user experience. • Gains in productivity. • Reduction in maintenance cost. • Choice to select best-of-breed applications.
  19. 19. • Based on an open language (such as XML) that is vendor-neutral and can be generated and consumed by any application, irrespective of the platform or vendor. The standard defines the data to be exchanged; XML provides an open language to carry the data, and open transport methods—such as Web services— allow applications to exchange that data. • Flexibility to the customer to switch between applications with minimal difficulty.The Association of Retail Technology Standards (ARTS) has standards called IXRetail forPOSLog and other sale-related transaction information. The IXRetail POSLog describesthe various interfaces that a POS system uses to report the results of its activities toother systems in the retail enterprise. POSLog includes many different kinds oftransactions and events. The IXRetail POSLog schema consists of a single XML schemathat defines the set of all possible transactions and events that can be sent by a POS toanother system.IXRetail builds on the ARTS Data Model to develop standard XML schemas and messagesets, to ease Application-to-Application (A-to-A) integration within a retail enterprise. Thesample-application solution is required to comply with the ARTS IXRetail standard XMLschemas for interfacing applications within the retail enterprise. The schemas used in thesample application comply with the IXRetail standard and are extracted from thestandard set of schemas provided by ARTS. The data flow between the Store and LOB isdone by using these schemas.This reference implementation uses the IXRetail standards pertaining to POSLog, whereitems are purchased and returned. A sample IXRetail POSLog is shown here.<?xml version="1.0" encoding="UTF-8" ?><!-- UseCase: Item Purchase from shelf --><!-- Note: This example includes all optional fields --><POSLogxmlns="http://www.nrf-arts.org/IXRetail/namespace/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.nrf-arts.org/IXRetail/namespace/POSLog.xsd"><Transaction CancelFlag="false" OfflineFlag="false" TrainingModeFlag="false"><RetailStoreID>HighStreet</RetailStoreID><RevenueCenterID>6333-1221</RevenueCenterID><WorkstationID>POS5</WorkstationID><TillID>22</TillID><SequenceNumber>4294967295</SequenceNumber><BusinessDayDate>2001-08-13</BusinessDayDate><BeginDateTime>2001-08-13T09:03:00</BeginDateTime><EndDateTime>2001-08-13T09:05:00</EndDateTime><OperatorID>John</OperatorID><CurrencyCode>USD</CurrencyCode><RetailTransaction Version="2.1" OutsideSalesFlag="false"><ManagerApproval>false</ManagerApproval><ReceiptDateTime>2001-08-13T09:04:32</ReceiptDateTime> <LineItem VoidFlag="false"> <SequenceNumber>1</SequenceNumber> <BeginDateTime>2001-09-16T09:04:00</BeginDateTime> <EndDateTime>2001-09-16T09:04:03</EndDateTime> <Sale ItemType="Stock"> <POSIdentity>
  20. 20. <POSItemID>01234567890123</POSItemID> </POSIdentity> <ItemID>CA7865</ItemID> <MerchandiseHierarchy Level="Department">Chocolates</MerchandiseHierarchy> <ItemNotOnFileFlag>false</ItemNotOnFileFlag> <Description>4oz Dark Chocolate</Description> <TaxIncludedInPriceFlag>false</TaxIncludedInPriceFlag> <UnitCostPrice>1.23</UnitCostPrice> <UnitListPrice>1.79</UnitListPrice> <RegularSalesUnitPrice>1.63</RegularSalesUnitPrice> <InventoryValuePrice>1.23</InventoryValuePrice> <ActualSalesUnitPrice>1.63</ActualSalesUnitPrice> <ExtendedAmount>4.89</ExtendedAmount> <DiscountAmount>0.00</DiscountAmount> <ExtendedDiscountAmount>4.89</ExtendedDiscountAmount> <Quantity>3</Quantity> </Sale></LineItem><Total TotalType="TransactionGrossAmount">4.89</Total> </RetailTransaction></Transaction></POSLog>Interaction of the ComponentsThe previous section described the various components that make up the sampleapplication. This section will describe how these components interact and come togetherto create an agile and near real time decision-making experience in retail.This sample implementation involved creating reference architecture, sample code todemonstrate the benefits of loose coupling, using standards to achieve interoperability,and the capabilities of the Microsoft platform in achieving this with minimal effort. Also,to show how a retailer is able to move to a more real-time decision-making process in anincremental fashion, as opposed to using a rip-and-replace methodology. Implementationinvolves using the WCF to create Web services that communicate in near-real time withthe enterprise systems for exchanging messages. IXRetail standards are used forexchanging data with the enterprise systems, and a custom IXRetail sample acceleratorfor BizTalk was implemented for communication with the enterprise systems.The direction chosen for this reference implementation was to implement the solutionusing WCF and BizTalk Server, IXRetail message types as interchange and canonicalmessage formats, and messaging over a Web services wire protocol.Implementation View of Store-Side ArchitectureThis section provides an overview of the reference architecture for the store side.
  21. 21. Figure 6. Store-services interactionFigure 6 shows a functional view of a store with POS systems, a local host or storeserver, manager workstation, and the Store database. POS systems store transactioninformation in the local database and retrieve price information from the database tocomplete the sales transactions. The diagram also shows a Web service, which reacts tothe information stored in the database or the messages received from the enterprisesystems. When a POS system completes a sales transaction, the sales data is picked upby the Web service, transformed into the standard IXRetail format, and transferred to thecorporate-headquarters systems. Web services pick up the sales data based on rules thatare configured by the store manager and/or the corporate-headquarters systems. Forexample, a promotional-item sales data supersedes a non-promotional-item sales datafor transferring to the corporate-headquarters system.The outgoing messages go through the steps of aggregation, transformation, andcompression before they are transferred to the enterprise systems. This transfer of datain real time from the store to the enterprise systems helps in making real-time decisionsat the corporate-headquarters level. It also helps in monitoring real-time key-performance indicators (KPIs), and can trigger workflows at the enterprise level. Forexample, transfer of information related to inventory levels at the store can triggerworkflows to order items from the supplier.
  22. 22. Figure 7. Outgoing messages from the storesAlso, as shown in Figure 7, the sales data from the POS systems is aggregated,transformed, and compressed before being transferred to the enterprise systems.An item-not-found scenario can trigger an in-store workflow, so that the store managercan override a suggested price for the sales transaction to move forward. In an item-not-found scenario, the Web service alerts the manager in real time, who in turn launches theinventory-management application on a workstation or a tablet, to temporarily assign aprice for the sales clerk to complete the transaction. At the same time, the Web servicealerts the enterprise system about the missing price. When the merchandising managerreceives an alert for a missing price, the manager updates the price, and the priceinformation is transferred to all the stores in real time.The Manager dashboard application surfaces sales information and other KPIs. It alsosurfaces the real-time alerts related to either item-price-not-found or recalled-item.Office SharePoint Services surfaces the relevant information, and the manager can reactto it, either by launching the application from the dashboard or at a later time.The inbound messages from the enterprise systems also go through similar steps in realtime, as shown in Figure 8.
  23. 23. Figure 8. Inbound messages from the enterprise systemsMessages such as price updates or item-recall notifications from the enterprise systemsgo through similar steps. For example, when price-update messages arrive at the store,they are decompressed and transformed before being transferred to the price database.In real time, the price updates are reflected at all the POS systems in the stores.For example, when an item-recall message is received by the store, it is persisted to thedatabase, and it immediately suspends further the sale of the recalled item. An alertingWeb service picks up the message and alerts the store manager to move the on-shelfrecalled items to the back room, to prevent further sale of the recalled item. This triggerof workflows in real time prevents the sale of recalled items and reduces the retailersliabilities.This reference architecture shows how, in real time, services can be implemented usingthe service-oriented architecture concept, where workflows are triggered without muchmanual intervention. All communication between the stores and enterprise systems isdone using standardized XML messages. As described in the previous chapter, a messageis an XML document from the store, the enterprise systems, or a supplier. Part of the XMLdocument identifies the type of message, and routing information. Each message isassociated with an XML schema that defines the set of valid message formats. In thisreference implementation, inbound messages from enterprise systems were delivered inthe IXRetail format wherever possible over HTTP. Even though messages could beexchanged in a variety of different patterns, this implementation opted to use theasynchronous two-way messaging.
  24. 24. When a message is received at the store, it is transformed, if needed, and persisted tothe database for other services to consume. Other Web services pick up the message andtrigger an alert or action.Implementation View of Corporate-Headquarters ArchitectureFigure 9 shows the reference architecture of the corporate-headquarters system. In thiscase, MSMQ (not implemented in the sample application) can be used as a queuingmechanism; BizTalk is used for aggregation, transformation, and orchestration ofmessages that arrive at the enterprise. Messages range from store sales data to supplieritem-recall messages or confirmation of purchase orders. BizTalk accelerator is used incommunicating with the enterprise LOB systems, such as merchandising systems or ERPsystems and the data warehouse.BizTalk is used for transforming the data and orchestrating the inbound messages. Thishelps in quickly integrating the store systems with the enterprise LOB systems.Figure 9. Enterprise reference architecture
  25. 25. The enterprise receives messages from the stores, suppliers, and the multichannel sites,such as e-commerce and catalog orders. Messages from stores range from sales-transaction data to inventory-level thresholds and item-price requests. Sales-transactiondata is transformed and persisted in the database and the data warehouse in real time.These databases drive real-time KPI monitoring and reporting capability at the enterpriselevel. E-commerce and catalog orders require real-time inventory checks to complete thefulfillment, as well as to confirm customers requests to pick up the item at the store. Ifthis is implemented correctly, and an e-commerce or catalog order is accepted with thepromise to pick up at the store, it might lead to disappointed customers, as stores mightrun out of those items. So, it is critical for the order-fulfillment application to checkinventory levels at the stores in real time, before accepting the order.Messages from stores, such as "item not found," generate alerts at the enterprise,requiring the merchandise manager to input a price for an item, which gets downloadedin real time to the stores. When inventory drops below a certain threshold at stores, theenterprise receives a message that triggers a workflow to generate a purchase order (PO)and requires approval by the enterprise merchandise manager. Then the PO is sent to thesupplier.Real-time information flow from the stores to the enterprises helps in real-time decision-making and monitoring of the enterprise.Figure 10 shows the outgoing messages from the enterprise. Messages such as priceupdates, inventory checks, and item-recall messages are sent to the stores in real time,which prevents loss and financial liability for the enterprise.Figure 10: Outgoing enterprise messages
  26. 26. Outgoing messages, such as item-recall messages received from the supplier, aretransmitted immediately to the stores to suspend further sales of the recalled items. Themessage from the supplier is received in any format and transformed to an XML format.An inventory lookup is then performed to check which stores carry the recalled item, andthe recall message is transmitted to those stores.Responses to item-not-found requests also follow a similar path. Updated priceinformation is sent only to the stores that carry the particular item.Information FlowThis section describes how the information flows for each of the scenarios. It shows howvarious services interact to facilitate real-time decision-making, both at the store andcorporate level. Each of the example scenarios is described in detail, along with the stepsinvolved in moving the information to the right place in real time.Scenario 1: Item Not FoundAs described in the earlier section, this is a common scenario that occurs in the retailenvironment. This scenario requires real-time intervention of the manager, to ensuresmooth checkout of items and provide good customer experience.The steps involved in replicating this scenario using the sample application, along withthe resolution, are as follows: 1. Select an item on the POS application for which the price in the ItemMaster table of the Store DB is zero. 2. Click Add to check-out the item. A message is displayed as follows: "Price not found for this item. Do you want to convey it to the Store Manager?" 3. Click Yes. The notification is then sent to the Store Manager. 4. Click the Notifications tab to see the notification in the Store Manager application. 5. In the Store Manager application, click the Inventory tab, and select the item for which the price was not found. Edit the price and save it. An e-mail is sent to the merchandising manager at the corporate headquarters, and the price is updated in the Store DB. 6. Open the Merchandising application at the corporate headquarters by going to the following location: http://localhost/HQSystemsetup/UpdateItem.aspx 7. Update the price of the item for which the price was not found, and save it. 8. The final price gets saved in the Store DB and HQ DB, and the message is displayed. 9. Once again, select the same item on POS. The item can now be checked out with the updated price.
  27. 27. Figure 11. Item-not-found scenario
  28. 28. Figure 12. Item-not-found scenario-sequence diagram (Click on the picture for alarger image)Scenario 2: Item RecallAs described in the earlier section, this is a common scenario that occurs in the retailenvironment. This scenario requires real-time actions by the manager, as well as thestaff. The sample application demonstrates how this scenario can be completelyautomated by using the latest technology—specifically, Web services.The steps involved in replicating this scenario using the sample application, along withthe resolution, are as follows: 1. Supplier initiates the recall process by launching the Supplier application at the following location: http://localhost/SupplierAppSetUp/SupplierApp.aspx 2. An item is selected, and the supplier sends the item-recall message to the merchandiser whose Mail ID is configured in the Web.config file of the Supplier application. 3. Upon receiving the e-mail, the corporate-headquarters application is launched at the following location: http://localhost/HQSystemSetUp/RecallItem.aspx 4. Clicking Notify Recall button sends a notification to the Store Manager. 5. Clicking Notifications on the Store Manager application will display the notification. 6. When an attempt is made to check-out the recalled item, a message is displayed indicating that this is a recalled item and cannot be checked out. 7. Simultaneously, a notification for item recall is seen at the Store Manager application, in order to alert the manager to remove recalled items from the store shelves.
  29. 29. Figure 13. Item-recall scenario
  30. 30. Figure 14. Item-recall scenario-sequence diagram (Click on the picture for alarger image)Scenario 3: Item Out of StockAs described in the earlier section, this is a very common problem across the retailindustry. The sample application demonstrates how the latest technology can overcomethis problem and provide a richer customer experience.The steps involved in replicating this scenario using the sample application, along withthe resolution, are as follows: 1. When an attempt is made to check-out an item, the POS device displays an out- of-stock message. 2. Immediately, a notification is sent to the store manager to transfer products from the back room to the store shelf. 3. These same steps are repeated in case the inventory levels of the checked-out item go down below a certain threshold, which is set by the corporate- headquarters staff. 4. An alert is sent to the store manager, indicating the out-of-stock situation. 5. Clicking the Notification tab in the Store Manager application opens the alert. 6. Clicking the Stock Transfer link on the Store Manager application transfers the inventory from the back room to the shelf (provided that the back room has the inventory). 7. Next, some products can be transferred from the corporate warehouse by opening the corporate-headquarters application at the following location: http://localhost/ HQSystemsetup/InventoryShipment.aspx 8. When you are in the corporate-headquarters application, select the out-of-stock item and the store location from the combo box where the item must be transferred, and click OK. 9. Items are transferred from the HQ DB inventory table to the Store Manager application where the item stock is pending to be accepted. 10. Items can be received in the store by clicking the Stock Transfer(In) link on the Store Manager application and accepting the stock that is displayed. 11. The inventory is updated in the Store DB.
  31. 31. Figure 15. Item-out-of-stock scenario
  32. 32. Figure 16. Item-out-of-stock scenario-sequence diagram (Click on the picturefor a larger image)Scenario 4: Real-Time Promotional-Item Sales-Data TransferAs described in the earlier section, transfer of store sales data is done as a batch process,where sales data is accumulated and then transferred to the corporate on a nightly ortwice-daily basis. This limits the much-needed visibility at the corporate level about storeperformance. There is a need to provide sales-transaction data in near real time. So, thesample application demonstrates the transfer of transaction information in real time fromthe store to the enterprise systems. It demonstrates also the application of certainbusiness rules in transmitting the sales-transaction information in real time. For example,sales information related to high-value items and promotional items are transmitted inreal time with the highest priority. Other transaction data receives secondary priority intransmitting in real time. The service hosted on the local host collects the simultaneoussales-data update from multiple POS devices, aggregates it, transforms it, and thentransfers the data based on the rules set by the corporate headquarters.The steps involved in replicating this scenario using the sample application, along withthe resolution, are as follows: 1. Rules for real-time transfer are set at the corporate headquarters by launching the HQ application at the following location: http://localhost/HQSystemsetup/SalesConfig.aspx 2. Next, enter the Details and the condition to treat an item as priority, using the corporate-headquarters Web application. 3. These details are stored in the BusinessRules.xml file whose path is set in the BizTalk application. It will be stored at the shared location mentioned in the config file. 4. Open the POS application, and select items to check out. Click Proceed. A notification for Check for PRITRANS is displayed. 5. Select True for the transmitted bit for SalesDetails in the Store DB table for the high-transmission data.
  33. 33. 6. The data automatically moves to the SalesDetails table in HQ DB for the high- transmission data table. 7. Close the POS. A pop-up window displays "Checking for standard data transmission." All the low-priority data is then transferred to the SalesDetails table of Store DB.Figure 17. Real-time promotional-item sales-data transfer scenarioScenario 5: Supply ChainAs described in the earlier section, store sales data typically is transferred to thecorporate systems as a nightly batch. This results in poor visibility at the corporate levelof store-inventory stock levels, and can result in delayed order generation for thesuppliers who deliver products at a much later time. In turn, all of this can result in apoor customer experience. The sample application demonstrates how the latesttechnology can overcome this problem and provide a richer customer experience.The steps involved in replicating this scenario using the sample application, along withthe resolution, are as follows:
  34. 34. 1. An item is checked out at the POS. The inventory level is updated and, if its below the threshold level, the Store Manager application is sent a notification. 2. Store manager will move remaining items from back room to the store shelf. 3. New items must be ordered to keep the supply chain and inventory levels intact. To order new items, open the HQ application by going to the following location: http://localhost/HQSystemsetup/Purchase Order.aspx 4. Enter Details of the item, and click Send PO to update the inventory at HQ DB. 5. After the e-mail for the PO confirmation is sent, open the HQ application by going to the following location: http://localhost/HQSystemsetup/InventoryShipment.aspx 6. Select the item and the store location from the combo box where the item must be transferred, and click OK. 7. The items are transferred from the HQ DB inventory table to the Store Manager application where the item stock acceptance is pending. 8. After the manager completes the receiving step by going to the Store Manager application and accepting the inventory transfer, the item can be checked out at the POS. 9. At the POS application, the item inventory can be checked by clicking Check Availability. This displays the updated quantity from the Store DB.Figure 18. Supply-chain scenario
  35. 35. Technical DecisionsThere are many ways to make a retail enterprise agile. However, using a technology thatmakes it easy to develop and maintain and is flexible for future extensions will reduce thetotal cost of ownership for a retail enterprise. This section describes the functionality,features of the latest technology, and the benefits associated with using these varioustechnology pieces.Windows Communication Foundation (WCF)WCF (formerly code-named "Indigo") is a set of .NET technologies for building andrunning connected systems. It is a new breed of communications infrastructure that isbuilt around the Web services architecture.WCF provides Advanced Web services support through secure, reliable, and transactedmessaging, along with interoperability. Three things stand out, however, as the mostimportant aspects of WCF: its unification of several existing Microsoft technologies, itssupport for cross-vendor interoperability, and its explicit service orientation.Also, one major concern while developing the sample application was that we werejoining disconnected systems (POS, LOB, Store) in a real-time application that was hardto achieve. But, because the fundamental communication mechanism of WCF is SOAP,WCF applications can communicate with other software running in a variety of contexts.An application built on WCF can interact with all of the following: • WCF applications running in a different process on the same Windows machine. • WCF applications running on another Windows machine. • Applications built on other technologies, such as application servers based on Java 2 Enterprise Edition (J2EE) that support standard Web services. These applications can be running on Windows machines or on machines with other operating systems, such as Sun Solaris, IBMs z/OS, or Linux.So, if we want to extend this sample application for non-Microsoft platforms, we can dothat quite easily.To allow more than just basic communication, WCF implements a group of newer Webservices technologies collectively referred to as the WS-* specifications. These documentsdefine multivendor ways to add reliable messaging, security, transactions, and more toSOAP-based Web services. The Web services specs supported in the first release of WCFinclude WS-Addressing, WS-Policy, WS-MetadataExchange, WS-ReliableMessaging, WS-Security, WS-Trust, WS-SecureConversation, WS-Coordination, WS-AtomicTransaction,and the SOAP Message Transmission Optimization Mechanism (MTOM).Finally, because WCF provides a standard foundation for service-oriented software, it willbe the basis for a large portion of Windows communication.WS-* Implementation on Store SideWS-*(WS-Security, WS-Reliability) helps enable organizations to build reliable andinteroperable Web services applications by defining a standard mechanism for identifyingand exchanging Web services messages between multiple endpoints. With a standardway to express where a message should be delivered in a Web services network,
  36. 36. developers are able to simplify Web services communication and development, and avoidthe need to develop costly, one-off solutions that are often difficult to interoperate acrossplatforms.WS-* is a key part of the core Web services architecture. In particular, the specification isdesigned to underlie other specifications, such as WS-ReliableMessaging, WS-Federation,and WS-AtomicTransaction, to provide a protocol-independent, common way to locateWeb services in support of features like transactions, security, reliable message delivery,and identity federation.WS-Security: Windows AuthenticationThe configuration files in this application set the mode attribute of the Security elementin wsHttpBinding to Message and the clientCredentialType attribute to Windows.Other options for clientCredentialType are None, Username, and Certificate. Otheroptions for security mode are Transport and TransportWithMessage.<bindings> <wsHttpBinding> <binding name="Binding1"> <security mode="Message"> <message clientCredentialType="Windows" negotiateServiceCredential="True" /> </security> <reliableSession enabled="true" ordered="true" /> </binding> </wsHttpBinding> </bindings>The client endpoint configuration consists of a configuration name, an absolute addressfor the service endpoint, the binding, and the contract. The client binding is configuredwith the appropriate securityMode and authenticationMode. When running in a cross-machine scenario, use the identity and the userPrinicpalName elements.<system.serviceModel> <client> <endpoint address="http://mmoin/contoso/Service.svc" bindingConfiguration="WSHttpBinding_IStoreService" binding="customBinding" contract="IStoreService"> <identity> <servicePrincipalName value="host/mmoin" /> </identity> </endpoint> </client> <bindings/></system.serviceModel>The service source code has been modified to demonstrate how the CurrentPrincipalcan be used to access the identity of the caller. This code requires the inclusion of theSystem.Security.Principal namespace.WS-Security: Kerberos
  37. 37. There are several scenarios in which you would use Kerberos authentication, instead ofWindows authentication.Windows SSPI negotiation internally requires several exchanges of information betweenclient and server to arrive at the actual authentication protocol to be used. Ifperformance is critical, multi-leg negotiations might not be acceptable.The expected message-exchange pattern might dictate that the client be authenticatedwith the service using Kerberos authentication on every message.Using WCF, you can create and deploy the client and service with the use of Kerberosrequired.The client and service configuration file should be modified to indicate that negotiationshould not be used for this binding.<bindings> <wsHttpBinding> <binding name="Binding1"> <security mode="Message"> <message clientCredentialType="Windows" negotiateServiceCredential="False" /> </security> </wsHttpBinding></bindings>If this sample is run cross-machine, a fully qualified machine name should be specified inthe endpoint address. Also, the identity should specify the Service Principal Name withthe fully qualified machine name. WCF matches the fully qualified host name from theendpoint address with the service principal name. If this check passes, the service isconsidered to be authenticated by the client.WS-Security: AnonymousThe Anonymous sample demonstrates how to implement a WCF application that usesWS-Security with no client authentication, but requires server authentication using theservers X.509v3 certificate. All application messages between the client and server aresigned and encrypted.Client Configuration<security mode="Message"> <message clientCredentialType="None" /></security><!--Service Configuration--><security mode="Message"> <message clientCredentialType="Certificate" /></security>
  38. 38. WS-Security: CertificateTo configure WS-Security with X.509v3 certificate authentication for the client requiresserver authentication using the servers X.509v3 certificate.The server certificate has to contain the same value for the SubjectName as thefindValue in the serviceCredentials.<serviceCredentials> <serviceCertificate findValue="localhost" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" /></serviceCredentials><!--Client & service both should be configured for clientCredentialTypeas certificate.--><security mode="Message"> <message clientCredentialType="Certificate" /></security>WS-Security: User nameTo implement an application that uses WS-Security with user-name authentication, allapplication messages between the client and server are signed and encrypted. By default,the user name and password supplied by the client are used to log on to a valid WindowsNT account.<security mode="Message"> <message clientCredentialType=" UserName " /></security>Client call will use user name and password.proxy.ClientCredentials.UserNamePassword.UserName = username;proxy.ClientCredentials.UserNamePassword.Password = password;WS-ReliabilityService will be configured as follows.<reliableSession enabled="true" ordered="true" />BizTalk Server 2006BizTalk Server 2006 is a business-process management (BPM) server that enablescompanies to automate and optimize business processes. This includes powerful, familiartools to design, develop, deploy, and manage those processes. So, to manage the
  39. 39. business flow from Store to Enterprise and vice versa, and to manage the workflow,BizTalk Server 2006 was chosen.Moreover, BizTalk Server 2006 created XML messages from IXRetail schemas that wereused for communication between the store and its headquarters.BizTalk Server 2006 provides support to effectively exchange messages between storesand headquarters situated at different machines. Given the diversity of communicationstyles that exist, the BizTalk Server 2006 engine must support a variety of protocols andmessage formats like the IXRetail.BizTalk Server 2006 also provides adapters for different products like Microsoft SQLServer to integrate with it. So, in the sample application to integrate with Store serviceand SQL Server, Web service adapter and SQL adapter were used.The business logic for the various retail scenarios was implemented using theorchestration engine of BizTalk Server 2006, which made it a common middle layer tohost the business logic.BizTalk Server 2006 also provides an Enterprise Single Sign-on facility, providing theability to map authentication information between Windows and non-Windows systems.So, interoperability across heterogeneous platforms can be achieved.To summarize, the goal of BizTalk Server 2006 was to help the sample application meetthe challenges of creating automated business processes that rely on diverse systemsand to use the products foundation, the BizTalk Server 2006 engine, which provides coremessaging and orchestration capabilities.BizTalk Server will add support for WCF as a communication option, sometime followingthe release of BizTalk Server 2006.Office SharePoint ServicesOffice SharePoint provides a common framework for creating a wide range of Web sites,such as team-collaboration sites, dashboards, and intranet team sites. This is tightlyintegrated into the Active Directory directory services system, to provide authenticationand role-based authorization, as well as to enable federated trust relationships. OfficeSharePoint provides a Web portal that can be used to host server-side Web applicationsthat are composed from a library of building blocks called Web Parts. This library ispackaged with a number of Web Parts out-of-the-box, and can be extended by solutionsproviders for particular business processes. In addition, users can also personalize andextend applications after they have been deployed into Office SharePoint.In this sample application, Office SharePoint 2003 server is used, so some of thecapabilities—such as Open XML file formats and Business Data Catalog (BDC)—were notavailable. However, the Management Dashboard uses the Business Scorecard Manager(BSM) to create the cubes. The capabilities of BSM are explained in the followingsubsection.Business Scorecard Manager
  40. 40. The Management Dashboard is an application created in the sample application for themanagers to view the sales, inventory levels, and alerts at a common Web location,enabling them to manage the stock and resources amply in the stores.The Management Dashboard enhances the power of a manager by providing a Web-based reporting portal that allows managers to access and view only the most importantand most pertinent information. Several reports can be viewed simultaneously thathighlight key issues in the store data. They can then be drilled down to the underlyingdetailed reports. This was achieved using Business Scorecard Manager (BSM) 2005.A dashboard enhances the sample application by fully using the computer desktop incombination with other relevant information: unstructured data, collaborative tools,charts, and graphs, as well as other scorecards. The dashboard provides acomprehensive view for data communication and analysis, displaying trends in the formof graphs, as well as providing the user with additional contextual information fordecision-making.BSM is a comprehensive scorecard and dashboard application that provides you withdeep contextual insight into business drivers. BSM provides an intuitive and friendlydesign to allow anyone across the organization the ability to build, monitor, and managekey-performance indicators (KPIs) that are individually meaningful to them.Using BSM, the sample application provided the sales, inventory, and promotional-dataKPIs in the Management Dashboard for store managers to analyze relationships betweenKPIs and tangible business objectives.From a business point of view, by tracking the critical performance and financial data inBSM, the sample application greatly enhances visibility and accelerates reporting,consequently making it more alert to material changes in the retail business, andcompliant with disclosure and filing requirements.Also, using balanced scorecarding goes beyond financial data to link corporate strategywith LOB action. This is because scorecards typically report on organizationalperformance in both financial and non-financial terms, according to KPIs. Corporatestrategy tends to encompass efforts from across the entire organization, from finance tosales to operations, so scorecards and their constituent KPIs must also span thatdistance.BSM was used in the sample implementation to: • Employ a clear graphical interface for unambiguous interpretation of data. • Be fully Web-enabled, which results in instant relay of the same message to multiple remote locations using a universal medium, offering real-time visibility into key business trends. This is how the BSM sales and inventory levels get updated in real time in the sample application, which was one of the key requirements in choosing BSM for dashboard management. • Introduce flexibility by encouraging individual definition of objectives, as well as measurement, monitoring, and management of sales performance. • Map and link sales information to the strategic objectives of the organization; create a strategy-focused operation and encourage the use of information to measure and optimize the sales engine; or drive new initiatives. • Provide personalized and timely information across different stores for individual store managers.
  41. 41. • Reconnect information with the business processes that create it to help run them more effectively and efficiently. • Enable different views of data and reports and deep, easily executable analysis, to provide a highly customized business tool with measurable value. • Present structured data, as well as documents, spreadsheets, links, and other unstructured data, which promotes a balanced and informed decision-making process. • Layer over traditional sales LOB applications, to protect financial and training investment and leverage existing data.ConclusionDisruptive technologies—such as RFID, contact-less payments, mobile payments,biometric payments, Wi-Fi, and so on—bring challenges and opportunities for retailers.Those retailers who adopt these technologies in a timely fashion and use them to reachmore customers and discover new markets will see their revenue continue to grow,whereas those retailers who shy away from adopting these technologies will find itdifficult to survive in this highly competitive marketplace.As availability of broadband and RFID grows in the marketplace, customers expect betterexperience from retailers. This requires not only adopting these technologies in-house,but also changing existing systems to consume new data that gets generated. Thisadditional data can help with real-time decision-making, if used properly; or it canoverwhelm and kill a business, if not. So, real-time decision-making is extremely criticalin the retail business. As the customers become increasingly demanding and thecompetitive pressure increases, the need for agility grows. Attaining agility requiresavailability of the right information, at the right time, and at the right place.Retailers work with very thin margins, meaning that they are always looking for ways tocut costs. The legacy applications are inhibitors to growth, and IT then dictates businessgrowth as opposed to supporting it. For IT to support changing business needs, theymust have agile and adaptable solutions that are built on technologies that can supportgrowth. Service orientation is the new architectural paradigm that has the potential tohelp IT become agile and keep up with these business demands.“New” Retail for a New DecadePosted on 13. Dec, 2009 by Jon Bird in Brand Strategy, Consumer Trends, RetailMarketing, Retail Trends, Westfield World Study Tour 2009Over the last few weeks, I’ve discussed some of the influences that will affect retail in thecoming decade: • Considered Consumption – consumers thinking more carefully about every shopping trip and considering not only whether they actually need a particular item, but also the social and environmental consequences of that purchase (and the purchase process itself). • Brand Experiences – manufacturer brands like Nike and Apple raising the bar on architectural design, fit-out quality, store innovations and service standards, with
  42. 42. increasingly impressive flagship experiences (what Apple call “significant stores”). • Constantly Connected Consumers – consumers being able to compare product and prices, share information and reviews, and buy what they want, wherever and whenever they want, increasingly direct from their internet-enabled mobile phones.There are other retail trends that I could canvas, for example: • Value Is The New Black – how “true value” has become fundamental and fashionable, and that it’s not purely price any more, but a combination of price, quality and other benefits. • It’s Not About Stuff – retail becoming less about the item itself, and more about the experience, the service and the visual merchandising surrounding it.However, I thought I’d finish the year with one of the most revealing and inspiringobservations I encountered in 2009…and hopefully a quote that you will find thought-provoking as you turn your attention to a new decade.In May this year, as part of the Westfield World Retail Study Tour, I was fortunate tohear Mary Portas speak in London. Portas is the UK’s self-proclaimed “Mary Queen ofShops”. Creative Director of PR and marketing communications company Yellowdoor,Portas is a retail strategist and commentator credited with helping to turn departmentstore Harvey Nichols into a powerhouse.One line particularly struck me in Portas’ presentation on retail trends. She said:”We are moving from talking, telling and taking to sharing, giving, co-creating andcollaborating.”In just 14 words, Portas captured the essence of the shift that is taking place from retailmonologue to retail dialogue. “Old” retail was about talking at customers, telling themwhat you wanted them to hear, and taking their money. “New” retail is about sharinginformation, giving generously without expecting anything in return, co-creating withthird parties, and collaborating with consumers on your essential offer. Some examples of“new” retail include: • Japanese supermarket 7 & I printing QR codes on their fresh produce labels that allow shoppers to instantly find out about the nature and origins of the product (sharing information) • US electronics retailer Best Buy and their Twitter-powered “Twelpforce”, giving consumers a 24-hour a day communications channel to get free advice (sharing information and giving generously) • Apple and their free Genius bars in store, where customers can go to get free technical assistance on Apple products (giving generously)
  43. 43. • Designer Matthew Williamson lending his name to a collection for H&M worldwide (co-creating) • Sportsgirl involving their online community in building their offer – including asking customers to upload photographs of their “look” and send in beauty tips which are then published, along with suggestions of relevant product (collaborating with consumers)Portas points to a partnership-powered future for retailers, where some control is ceded toconsumers and third parties, but in doing so the outcome is richer and more rewarding forall. At the beginning of a new decade, “new” retail is an exciting prospect.Decoding retail in new decadeThe buzzword in today’s social climate is “mobility” with consumers responding to rise in retailformats including online retail, which in turn are driving the sea change in the shopping habitspointing strongly to changes in the retail experience.As the salary package of skilled professionals touching the new heights, the swelling doubleincome middle class populace living in isolated nuclear families, have made the jump from ‘zerospending’ and ‘frugal living’ to one of fancying king size life with enough money to spend on.“Euphoric shopping” would be the key to reinvent and engage the consumer in today’sincreasingly complex retail environment. In order to grasp this opportunity, the store retailersneed to focus tightly on range of products, quality, and value for money he carries in his store,apart from creating a memorable shopping experience.Craze for trendy fashion“The ability to stay ahead of the curve, to translate trends into products that fit your targetsegment and communicate how relevant your product is to your customer will determine footfallsand sales, and this would be the biggest challenge in the coming times,” says Dilip Kapoor, MD,Hidesign. Pradeep Hirani, MD, Kimaya Fashions Pvt Ltd further adds, “The emphasis haschanged from price consideration to design, quality and trendiness.”Organic is the buzzWith “go green” buzz in the air, there is a natural drift in consumers’ purchase pattern showing aninclination towards eco-friendly products. Organic products across categories like apparels and
  44. 44. beauty products are the latest offerings from the retailers, and consumers are responding well.Shriti Malhotra, COO, Quest Retail shares, “Indian consumers are accepting modern practices ofpersonal grooming, making cosmetics and toiletries brands to introduce more sophisticatedproducts from their international portfolios to India.”More co-ordinate fashion expected“More co-ordination buying behaviour would get importance as shoppers are matching theirconsumption through lots of mix and match,” says Chetan Daruka, Owner, Vintage Earth.Accessories ranges are increased in order to give more options to the shoppers. Retailers haveunderstood the importance of accessories for upselling. Merchandise assortment is done in away so that a customer can easily pick up matching accessory for a dress that she chooses tobuy. For example, we notice a sweater is displayed with a cap, muffler and a jacket to give thecomplete look.Increase in portfolios & range sizesBrands are expanding their portfolio range in order to bring maximum products under one roof totheir target group. Youth and kids’ brand Weekender transformed its new identity into a familybrand; Lilliput is catering to all the needs of kids with the launching of Lilliput World; BluesClothing Company (BCC), a vertically integrated fashion and retail company, has recentlydiversified into interiors and home furnishings. Brands are making attempt to tap wider targetgroup. Number of SKUs is growing with more sizes available on the shelves.Fast fashion comes alongConsumers would look at the stores as the happening place where new products are adding afterevery next visit. Daruka comments, “We make sure that we change a part of our products everythree days. This is very important to bring freshness to the merchandise in the stores.”“The mobility of the inventory would bring lots of happenings in the stores. We would need tochange the merchandise every 2-3 months to make the store look fresh”, says Vijay Kapoor,Founder & MD, Derby.
  45. 45. Entry of more international brandsThere’s a high influx of fashion brands in the Indian market. Varieties will dominate the scene withescalating competition. The customers will experience the new types of products. Be it Muranoglass jewellery of LuckyClover, outdoor sports lifestyle products from Quicksilver and Roxy, theIndian consumers are going to experience all of them. This will give a competitive push to thelocal brands to improvise on product, pricing, packaging etc.Globalisation would bring the demand of more skilled designers. Experimentation activities wouldintensify in the buying space across all categories. Continuous thinking to make bettermerchandise would be a challenge and fusing fashion will become the trend setter.Entry of new brands has also created better and systematic way of working, merchandise andadvertisements. Demand for cleaner cuts, sophisticated merchandise and solution basedproducts with an extra edge on aesthetics would rise.Store preparationsFront-end staff would also play imperative role and would be the vital link along consumers,brands and shopping experience. Kapoor of Derby elaborates, “Good command on language andphysical fitness is what the fashion ahead would demand. Trendy audience would prefer thestores which have well-groomed staff and can elaborate on the products and its benefits to strikethe minds.”Building experiential relationship with the clientele is what actually would drive and strengthen theloyalty, and retailers need to understand the matrix of customer satisfaction and its importance.The way to increase sales • Continuous thinking process-VM, store interiors, lighting, etc • Spacious stores: allow the shoppers to decide on their own • Need to change merchandise approximated every 2-3 months • Continuous budgets assigned for R&D, shop interiors, staff grooming
  46. 46. Luxury goes Mainstream“In the coming times fashion won’t come cheap. It will be priced high in order to stand out of thecrowd. Also, consumer will consume the product even with bit of odd features attached to it,”views Kapoor. Luxury brands too are sensing the potential of the Indian consumers and joiningthe mainstream retail with aggressive expansion plans pan India. They are shedding off theirsecluded image with marketing strategies that connect with common people. Non-core productsof a super premium brands at lower ticket sizes are gradually adorning the retail shelves and thiswill happen through licensing.More QSR and organic foodCash rich, time poor consumers will demand for more quick service restaurants. The segment isgrowing at a rate of 40 per cent per annum and there is immense potential of these destinationsin the tier II and III cities too. Also new trends, such as organic food, are emerging in the Indianmarket also. The changing lifestyle of middle class is creating a huge demand for betterpackaging and quality retail infrastructure. The below traits will be predominant in the market: • More quick service meals • Introduction of innovative & new products options- (seasonal products available all through the year) • Processed food items, ready to eat products, organic food items • Energy drinks & better packaging productsIn-store experience & special demosGourmet retailing has created a new set of customers with its unique quality products. Customerslove shopping there. “Our staff is formally trained in hospitality, donning the role of a friend andadvisor that help our consumers to pick the right products, pair ingredients, etc. Be it in-storesampling, shelf talkers, on ground food consultants or even social media, GNB identifies and tapseach of these channels to make shopping in our stores a unique experience,” says Mohit Khattar,MD , Godrej Nature’s Basket.