« February 2012 | Main | April 2012 »

March 29, 2012

SQL Server 2012 - Unstructured Data Storage (File Table)

In simple words, unstructured data is information which does not fit well in relational model. It is mostly text heavy, but can contain images, videos, emails etc.

File Table, a new feature introduced in SQL 2012, builds on the existing filestream object SQL Server had come up with in 2008 to store unstructured data. Filestream datatype tried to integrate the relational database engine with the windows file system. More information about the filestream object can be found here.

File Table enables non-transactional access to file data. This means the file table data can be accessed through SQL in a transactional way, as well as by the Windows APIs as if it was accessing a file object. File table basically converts SQL tables into folders which can be accessed through Windows explorer. The directory structure and the file attributes are stored into File Table as columns. Files can be bulk loaded, updated as well as managed in T-SQL like any other column. SQL Server also supports backup and restore job for this.

 FileTable.jpg

As you can see above, file attributes are stored as columns. stream_id uniquely identifies the file. Data is contained in the filestream column. Most of the columns are read only. The only parameters specified to create an entry in file table is the file name and file directory name.

CREATE TABLE Documentstore AS FileTable

    WITH (

          FileTable_Directory = 'Documentstore',

          FileTable_Collate_Filename = database_default

         );

GO

 

Loading files in File Table is as simple as drag and drop in windows explorer.

FileTableLoad.jpg

There are inbuilt SQL triggers which intercept Windows API and maintain data consistency in File Table in case of insertion/updating/deletion.

select * from Documentstore where name ='FileTable.xml'

FileTableDBEntry.jpg

Working with Directories and files  

Here are set of useful queries for working with File Table data.

• To know if a particular row belongs to a file or directory:

  o    select * from documentstore where is_directory=1

• To get the root level path of the file table:

  o    select FileTableRootPath('DocumentStore')

• To get the relative path of particular file or directory in a file table:

    o    select file_stream.GetFileNamespacePath() from documentstore

• To get the specific locator ID of a file by providing the path:

    o    select GetPathLocator('[fullpath]')

• To understand the full path to a file or directory stored in a FileTable:

    o    DECLARE @rootpath nvarchar(100);

     DECLARE @fullpath nvarchar(1000);

     SELECT @rootpath = FileTableRootPath();

     SELECT top 1 @fullpath = @rootpath + file_stream.GetFileNamespacePath() FROM  documentstore   

     PRINT @fullpath;

     GO

The resulting hierarchy looks like this:

\\<machine>\<instance-level-filestream-share>\<database-level-directory>\<File-Table-directory>\

The directory hierarchy which is created at the time of file table creation is a virtual directory hierarchy. This value is stored in SQL DB with datatype=hierarchyid.

Troubleshooting
File handles which are not cleaned up can prevent exclusive access required for certain administrative tasks. To identify open files and associated locks, run the below query:

SELECT opened_file_name

    FROM sys.dm_filestream_non_transacted_handles

    WHERE fcb_id IN

        ( SELECT request_owner_id FROM sys.dm_tran_locks )

 

You can also use SQL Profiler to capture Windows File Open and Close operations in Trace Output for files stored in file table.

Once you have identified open file handles in the database or file table, you can clean them up by running the builtin stored proc:

sp_kill_filestream_non_transacted_handles [[ @table_name = ] 'table_name',[[ @handle_id = ] @handle_id]]

 In our subsequent blogs, we will see how can we exploit this file table feature of SQL 2012 to do in-depth analysis of unstructured data and gain useful insights.

March 26, 2012

Smooth Streaming in Windows 8 Metro Application

For smooth streaming in Windows 8 Metro Application we need to download and install Smooth Streaming client  and Microsoft Media Player Framework . After these installations, create a blank application. To create a blank application open VS11 and then from File menu select New option and then select JavaScript-> Windows Metro Style. Choose blank application from installed templates.

win8smoothstream1.pngOnce blank application is created, add following references in the project from the Extensions tab.

 

win8smoothstream2.pngAfter adding references right click on package.appmanifestfile and select view code. In opened XML file add Extensions tag after capabilities tag. This is shown below,

 

<Extensions>

    <Extension Category="windows.activatableClass.inProcessServer">

      <InProcessServer>

        <Path>Microsoft.Media.SmoothStreaming.dll</Path>

        <ActivatableClass ActivatableClassId="Microsoft.Media.SmoothStreaming" ThreadingModel="both" />

      </InProcessServer>

    </Extension>

    <Extension Category="windows.activatableClass.inProcessServer">

      <InProcessServer>

        <Path>CLRHost.dll</Path>

        <ActivatableClass ActivatableClassId="Microsoft.Metro.PlayerFramework.Js.Adaptive.Streaming" ThreadingModel="both" />

      </InProcessServer>

    </Extension>

</Extensions>

 

Now the project has been configured for smooth streaming. Next step is to add below references in default.html

<link href="///Microsoft.Metro.PlayerFramework.Js/css/PlayerFramework.css" rel="stylesheet" type="text/css" />

<script src="///Microsoft.Metro.PlayerFramework.Js/js/PlayerFramework.js"></script>

<script src="///Microsoft.Metro.PlayerFramework.Js.Adaptive/js/Plugin.js"></script>

And then specify source of the video in the body tag for streaming the media

<h1>Smooth Streaming Sample</h1>

        <div id="mediaplayerelement" data-win-control="PlayerFramework.MediaPlayer" data-win-options="{

            width: 700,

            isSkipNextVisible: true,

            isSkipPreviousVisible: true}">

        <video>

           <source src="http://video3.smoothhd.com.edgesuite.net/ondemand/Big%20Buck%20Bunny%20Adaptive.ism/Manifest" />

        </video>

    </div>
In this case video is streamed from the video hosted on external site. We can also create manifest file of our own media and stream it to a metro application. On running this application we should get following output

win8smoothstream3.pngBefore running the application we need to make sure that target framework has been changed to X64 in the Configuration Manager. This is because smooth streaming is not supported on ARM.

In this way we can consume smooth streamed content in Windows 8 Metro Application.

March 21, 2012

Master Data Management Offering by Microsoft

Although it's been some time Master Data Management (MDM) has been there in the industry, the significance of actually implementing it in enterprises is making more and more sense now, seeing the ever growing data needs and tons of applications waiting to get integrated to present a unified data view. Currently, this information is spread across heterogeneous applications with each application having their own interpretation of master data, which is inconsistent and incomplete. There is no comprehensive system which provides a single and accurate view of master data.

MDM is a set of tools and processes that helps to create and maintain consistent and accurate view of data. The main objective here is to have a single source of truth for data required continuously by business entities to generate reports and make informed business decisions. An MDM solution derived from MDM reference architecture enables an enterprise to govern, maintain, integrate and provide accurate master data for all business processes.

Microsoft, as part of its SQL Server 2008 R2 release, had introduced its own Master data Management tool called Master Data Services. Microsoft's MDM implementation consists of a Master data Manager, which is the UI interface where data stewards and data admins can view/update/maintain data. 

 MDMUserInterface.jpgMaster Data Manager also provides the ability to validate data by defining business rules inside the application.

 MDMBR.jpgUsers also have the ability to bulk upload data through T-SQL scripts by running some of the system SPs provided.

Starting SQL 2012, Microsoft also introduced Data Quality Services, which can be integrated with MDM for data cleansing and maintaining data quality (will talk about DQS in detail in one of my subsequent blogs).

MDMDQS.jpg An excel add-in is also introduced to provide ability to bulk upload master data through excel sheets.  

 MDMExcelAddIn.jpgAs we had already talked in starting, Master Data Management is the need of the hour. Every business, in one way or another, will need a centralized database of master data which it can use to integrate volumes of data coming from different sources, and make it presentable so that its view remains consistent across the organization. Microsoft on its part has introduced a powerful set of MDM components to adhere to these needs. Combined with the set of Integrating and Reporting tools provided by Microsoft, the master data can be put to great use to integrate and analyze the information coming from different systems and make informed business decisions.

March 20, 2012

SQL Server 2012 - Overview

SQL Server 2012 was officially launched on 7th March 2012 and has been touted as a major release with some new/improved features around database management, data integration, business intelligence and integration with cloud. The features have been categorized into three themes by Microsoft namely

Mission Critical Confidence:
The features under this category are focused on providing performance improvements, high availability and organizational security.
1. AlwaysOn - a new high availability and disaster recovery solution which enables faster application failover during downtime.
2. Column Store Index - A new indexing feature available to cater to faster query performance while dealing with huge number of records. This will be helpful in doing analysis against data warehouses with dimensional modeling without implementing an OLAP solution. It is based on the Vertipaq technology that was introduced in PowerPivot for Excel.
3. Scaling up using 15K partitions for large databases
4. Faster performance for full-text search capabilities with provision to search and index the document metadata
5. Contained authentication for organizational security in order to avoid security issues while migrating databases between servers (on-premise or cloud).
6. Distributed Replay which can be used to test production workloads on test environments for changes in underlying schemas or hardware.

Breakthrough Insights
The features under this theme is focused on providing useful insights into organization data by providing appropriate tools which can cater to both business users as well as IT professionals. There are also features which can be used to make your data reliable and consistent to provide accurate information.
1. Business Intelligence Semantic Model (BISM) for scalable self-service BI. This is the same modeling technique that was used in PowerPivot in SQL Server 2008 R2 but now it is being implemented as "one model" approach for BI tools like SSRS, SSAS and Sharepoint. It supports the tabular model alongside the already existing UDM technique. So now we can have SSAS cubes using the tabular approach to cater to Personal BI users. 
2.  Power View which is an ad-hoc reporting option available in Sharepoint with Silverlight features using which the user can quickly create visually enhanced reports. These reports will be created on top of BISM models
3. PowerPivot enhancements to create effective tabular models which will be more aligned to business scenarios. Powerpivot now provides options to create KPIs, hierarchies, Measures, perspectives along with a diagram view of the underlying model. The diagrammatic representation is similar to Data Source Viewer option available while creating Analysis Services cubes.
4. Statistical semantic search which can be used to extract useful information from unstructured documents that are stored in SQL Server databases. It makes use of the features of full-text search capability of SQL Server and also adds features to find key phrases in a document, find related documents based on the key phrases etc.
5. Reporting services is now also provided as a shared service inside Sharepoint so all the management and administrative activities can be handled using Sharepoint configuration tools. This will be also be helpful while scaling out the Sharepoint implementation as SSRS will behave as any other service on the application server.
6. Data Quality Services is a new component in SQL Server which can be used in conjunction with Master Data Services to implement MDM solution. It analyzes your data and builds knowledge base which can be used as a reference for data cleansing, matching and profiling activities. This knowledge base can be further improved upon new trends of data so it is like a continuous learning process. Also with SSIS enhancements in SQL Server, these DQS features can be embedded inside your package and executed while integrating information from various sources.
7. Master Data Services is now available as an add-in in Excel to perform functions like loading master data or validating the existing data and publishing it to the centrally located master data store.


Cloud on your terms
The features under this theme focus on simplifying the process of implementing databases on cloud as well as expedite the movement of databases between on-premise and cloud servers.
1. Contained databases has been introduced in SQL Server 2012 to specifically address the issues face while moving databases between on-premise and cloud servers. It is based on the concept of containment where a database feature is either contained (supported in SQL Azure) or uncontained (not supported in SQL Azure). Only a fully contained database (has only contained features) can be moved to cloud. Contained authentication mentioned earlier is used in conjunction with contained databases.
2. SQL Server Data Tools is a development platform for creating database solutions for variety of target platforms including 2005 and 2008 versions and also for SQL Azure. It has options for online and offline development wherein the changes can be applied directly to the server instance. Also the database projects can be realized as a data-tier application (DAC) which is the concept introduced in SQL Server 2008 R2 for easy deployment on servers (either on-premise or cloud)
We will be writing about the features in detail in the upcoming blogs.

March 14, 2012

Microsoft Surface for retail stores

We have earlier seen that Microsoft Surface has been making its mark in domains like retail banking and automobile sales. Apart from these, we at Infosys have been exploring applications of Surface for retail establishments and in particular consumer electronics stores. By leveraging Microsoft Surface, retail stores can take their customer experience to the next level, along with the possibility of increased sales.

The consumer electronics segment today offers a plethora of choices when it comes to selecting gadgets like mobile phones, cameras and laptops. These competing options are accompanied by long lists of product features, technical specifications and accessories, which makes the consumers choice even more difficult. Further, stores are often unable to suitably display the full list of product technical specifications, which means that customers might not be in a position of make a choice on the spot and want to do some further home work before purchase. We have been looking at Microsoft Surface and see that it provides an effective solution to this problem. The Surface device provides a user friendly multi-touch interface that multiple customers can access simultaneously. With its large 40 inch screen, customers can not only browse through product information, but also compare features and specifications of competing products. Also, interactive 3D views and product videos can be provided to increase product appeal. Microsoft Surface features object recognition, which means that when products being sold like mobile phones or digital cameras are placed on the Surface table, they can be automatically identified by means of byte or identity tags attached to the product and the relevant details can be displayed. This feature can also be leveraged to readily compare products by placing them side by side. AT&T and WIND mobile stores are some great examples of how Microsoft Surface can be used as a powerful tool to captivate customers and increase sales effectiveness.

On a slightly different note, Microsoft Surface has been leveraged by retail players such as Aetrix that deals with shoes and Hard Rock International to showcase its large collection of memorabilia.

Most of the examples mentioned above pertain to the earlier version of Surface, which due to its size was largely restricted to being positioned as a table. With the new Surface 2.0 that is much thinner, vertical mounting is also possible, which makes the device more adaptable in terms of potential applications and has less space requirements. In summary, we see that Surface can significantly help retail businesses take their in-store customer experience to the next level and potentially boost sales.

March 13, 2012

Augmented reality advertising

In my previous blog, we looked at how mobile augmented reality (AR) is making its mark in travel and navigational assistance. Another interesting application of AR where firms have been evincing interest is advertising. In today's highly competitive environment vendors are continuously looking for ways and means of differentiating products and increasing brand recall. We at Infosys have been investigating how firms can take their advertising to the next level using AR.

AR advertising essentially involves users pointing their smart phone or PC camera at a marker or image on the product packaging, which will result in virtual content being overlaid over the packaging in real time. Alternatively the concerned marker or image can be printed in newspapers, magazines and brochures or put up on hoardings. When the camera is pointed towards the marker or image, the same is recognized by the AR application and relevant virtual content is displayed overlaid on the real world. To create a lasting impression, it is better if the virtual content is in 3D, so that it can be moved and rotated. The big question for most firms is what kind of virtual content should they display? For consumables, in case there is a mascot associated with the brand then for example that can be made to jump out of the packet and do something interesting. For more sophisticated products like electronic gadgets and cars, a virtual replica of the product can be displayed such that it can be viewed from different angles to give the customer a better idea of the product. In either case, it is important that the customer feels that there is some value associated with the virtual content being displayed for the AR advertising campaign to be a success.

Some time ago, all AR advertising was marker based i.e. there was a specialized (and odd looking) marker printed on the product packaging or printed advertisement that would be recognized by the AR application to display the virtual content. Some examples of marker based AR advertising are campaigns for Doritos Sweet Chili and Mini Cabrio convertible. More recently with increase in maturity of AR technology, specific images present in the product packaging, print media or hoarding can be recognized by the AR application and the virtual content is displayed accordingly. For example, see the Nike Lunarglide and Volkswagen 2012 Beetle videos. Today we see that AR advertising technology is quite mature and firms can confidently leverage this new channel of advertising.

We believe that most firms today have not fully realized the exciting advertising potential that AR offers. With smart phones and tablet PCs becoming increasing ubiquitous, we foresee a positive future and increased prevalence of AR advertising going ahead. There are many advantages to be gained for first-movers.

March 12, 2012

Travel, navigational assistance and more using mobile augmented reality

Augmented reality (AR) is an area that has been attracting much interest and hype, but has it really delivered? We at Infosys have been actively looking at market trends and we believe that mobile AR is a key area to watch out for. Smart phones are becoming quite ubiquitous today and being equipped with digital camera, GPS, compass, gyroscope etc. they make an ideal device for bringing mobile AR applications to the masses.

We at Infosys are seeing that one of the most promising areas of application of mobile AR is navigation and travel based applications - this area is seeing an increasing adoption by customers. This growth is being triggered by an optimum combination of smart phone hardware and software, which is now available at an affordable price for tech savvy consumers. Especially during travel, people are looking at ways to quickly obtain specific information regarding directions, food and drink, places to see, reviews, entertainment, ATMs etc. Using mobile AR, by pointing their smart phones at a particular direction, travelers can view the relevant details overlaid on the live camera video stream and obtain information instantly. Further, buildings, streets, restaurants etc. can be immediately identified.  Though maps are helpful to obtain directions, they are not as intuitive or user friendly as overlaid information. It is like the difference of someone pointing out to a place or direction while describing it verses explaining the same using a map. Some examples of mobile AR travel applications are Wikitude World Browser, Lonely Planet AR Travel Guides and Trip Advisor Virtual Tour (for iPad).  Apart from these, there are applications available to assist navigating to a specified destination such as Wikitude Drive and TapNav for use in cars/vehicle. There is an interesting car safety application called iOnRoad, which when the smart phone is attached to the vehicle windscreen uses the live camera feed to detect distance from other vehicles, lane departures etc. and provides real time alerts accordingly.

For the enterprise as well as educational institutions, one of the promising applications of mobile AR technology is campus tours. This could be a boon for new joinees and visitors to the campus, who can simply point their smart phones in any direction to get details of buildings, cafeterias and other facilities. Further, when there is an event the mobile AR application can be used to display the event schedules, venues, speakers and much more. At Infosys we have developed a campus tour solution and have enabled it for some of our campuses. Here is a sample screen shot:

ARonPhoneLegend.jpg

This application can be extended for manufacturing units where factory buildings and equipment can be identified as well as their status displayed using mobile AR, which can help staff on the field. At this point, it seems that mobile AR is coming of age and this is the right time for firms to invest in this area.

March 9, 2012

Changes in the Windows 8 consumer preview

Windows 8 consumer preview was launched on 29th Feb . After having explored the developer preview for a while now, we had a chance to download it from here and install the consumer preview.

Below are some of the changes we noticed w.r.t. the developer preview

  • Usability - There is tremendous improvement from the usability perspective. For Touch the edges have been given special importance while for keyboard and Mouse Users, the corners are important. There is an option for viewing 'All Apps' where the experience is more like using traditional icons which is more likely to be used by Business users (see figure below)

All Apps View.png

  • Start Screen - The Start Button is no longer present in the Consumer Preview. However, the start screen can be reached by either sliding (or hover with mouse) around the left bottom edge or from the Charms Bar.
  • App Switching - Switching between applications was painful in the Developer version as one had to sequentially slide across each application. However the consumer preview has an option to view a vertical list of all open apps and users can get to another application that is open much faster. For a keyboard user this option appears on hovering the mouse near the top left corner and then sliding slightly downwards. This has evolved similar to the ALT+TAB behavior on traditional desktops. Below is a snapshot which shows a quick way to see and open all recently accessed apps.

list of frequently accesses appssmall.png

  • Closing Applications - There is also an interesting way to close the applications. You need to take the mouse pointer to the top edge until it turns into a hand. Then drag it down the bottom edge. The application then gets closed and disappears from the list of recently accessed applications.
  • Applications and App Store - Some of the preinstalled apps that we had in the developer preview like Tweet@Rama, Socialite etc. are not there in the consumer preview. However, it has 18 preinstalled apps which include important ones like Mail, Messaging, SkyDrive, Maps and Videos among others. The release of Consumer preview also coincides with the launch of Windows Store (see figure below) for Windows 8 applications. More information on the Windows store is available here . There is a growing number of Apps on the Windows Store.

Windows Store.png

  • Connectivity to Cloud - Signing in with Microsoft Live Id provides access to roam application level settings across devices, use cloud storage and access mail\calendar contacts across all devices which have cloud access.
  • Visual Studio - Again, since this release is targeted to Consumers who may not be Developers, Visual Studio and Expression Blend do not come pre-installed with the Consumer Preview. VS11 can however be downloaded and installed separately. Expression Blend gets installed with Visual Studio. My colleague Dhananjay is exploring VS11 for creating Metro Applications and will be posting a blog on the same shortly.
  • Development - There are more than 100000 code changes in Windows 8. While we are working on migrating the applications we created using the Developer Preview, we found these blogs useful
    1. What's changed for app developers since //build/ (part 1)  - http://blogs.msdn.com/b/windowsappdev/archive/2012/03/01/what-s-changed-since-build-part-1.aspx
    2. What's changed for app developers since //build/ (part 2) - http://blogs.msdn.com/b/windowsappdev/archive/2012/03/06/what-s-changed-for-app-developers-since-build-part-2.aspx

Next generation automobile shopping experience using Microsoft Surface

We earlier saw that retail banks are deploying Microsoft Surface as part of their future banking experience. Here we will take a look at another domain where Microsoft Surface is an excellent fit - delivering a futuristic in-store automobile shopping experience.


When it comes to high end cars, customers expect more value for money. The ability to customize cars to their satisfaction and visualize the end result is a significant differentiator that can lead to a successful sale and delighted customers. We at Infosys recognize this trend and have been exploring means to enhance in-store automobile customer experience. In this regard, Microsoft Surface provides an excellent means to choose among different models of cars, customize exteriors and interiors and visualize the selection in a highly interactive way - all in 3D!! With the new Surface 2.0, both horizontal configuration as a table as well as vertical mounting is possible. For automobiles, vertical mounting can be interesting as the customer can get more realistic perspectives of the configured vehicle. There is also the possibility of showing the configured vehicle using stereoscopic 3D (using 3D glasses), which can create an amazing in-store experience.

Once, the customer has selected the desired car model, configuration can be carried out not only using touch, but also byte tagged colour samples, upholstery or any other samples that can be placed onto the Surface table. These will be detected by Surface and the selected component of the car will be automatically configured according to the sample placed. A similar approach can be followed for car accessories. A significant advantage of this approach is that the customer can get a realistic feel of the colour, materials, accessories and so on that will be provided and there are no surprises during car delivery. Once the configuration is finalized, the customer can be offered options for car financing, which can be displayed on the Surface using interactive charts having configurable parameters like monthly installments and tenure. Today selection of cars and their financing is quite complex and Microsoft Surface helps make life easy both for the customer as well as the vendor, while increasing the chances of a successful sale.

It is no wonder that several automobile firms have started leveraging Surface in their car stores. The first was BMW and was followed by others like Aston-Martin, Volkswagen and Audi. The Volkswagen video is an interesting watch. All these examples leverage the earlier version of Surface. With the new Microsoft Surface 2.0, Infosys is working towards taking this experience to the next level - we expect some really exciting times ahead!

March 5, 2012

The future of retail banking with Microsoft Surface

Microsoft Surface is getting a big facelift with the commercial launch of the 2.0 version developed in collaboration with Samsung. Here is a quick listing of what's new. We at Infosys having worked with customers in the past on the earlier Surface platform are all excited about this. Especially the thinner design that supports vertically mounting and the lower cost of this new version expands the scope of potential business applications. One particular domain that is showing much promise is retail banking.

Microsoft Surface can help generate customer interest in financial products, increase sales and reduce processing cycle time. We are exploring Surface being used at retail banking branches both as a self-service kiosk as well as a discussion tool for customers with banking sales representatives. The bank can issue credit or debit cards featuring identity tags using which customers can identify themselves by placing these on the Surface table. Alternatively identification can be achieved by placing their cell-phones, which might need a preinstalled application that communicates with Surface via Bluetooth. Similarly banking sales representatives can have identity cards with these tags to identify themselves and manage information using Surface.

As a customer self-service kiosk solution, we are looking at Surface to provide details of accounts, financial products like loans and credit cards, assist in monetary planning for retirement or children's education, logging service requests etc. As a discussion tool, while deciding on a loan, a banking sales representative can bring up interactive visualizations of loan amount, installments, tenure etc. to help the customer choose the right combination. On similar lines, a comparison between benefits of different types of accounts such as fixed deposits, recurring deposits etc. over different periods can be graphically displayed. We are considering alternative approaches for transferring the desired information to the customer such as using Bluetooth to the customer's cell phone or emailed directly from Surface. If the customer confirms a transaction, details could be transmitted to the appropriate system for further processing.

Banks have already started taking steps towards adopting Microsoft Surface. Deutsche Bank has been leveraging Microsoft Surface as a customer advisory tool at its futuristic bank branch at Berlin. The Royal Bank of Canada is using Surface as a tool to attract new customers (among other uses) where tagged brochures are mailed to potential customers to encourage them to visit the branch, place the brochure on the surface and if they are lucky, win a prize. Barclays bank at London has been using Microsoft Service for interactively displaying benefits of their products and is targeted towards existing and potential premier customers. Given these trends, it appears that adoption of Microsoft Surface by retail banking branches is set to steadily increase in the days to come.  There is much competition between banks nowadays and Microsoft Surface can be a differentiator to attract more customers.


Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter