📜 ⬆️ ⬇️

How we implemented innovations in a large company using the example of Windows 8 Kiosks

Hello Habr. I work for Caterpillar in one of its Australian offices. On duty, there are a few, I would say, interesting projects. In general, Australia, as you know, is very far from everything, and although the Internet has erased the boundaries between continents, new pieces arrive to us half a year late. This does not apply to software that appears earlier for download (you know, we are in the time zone right after New Zealand), but the films are released later than in Russia, despite the fact that in Russia they also need to be translated. So with technology, people are not ready for a new one. Even so - they do not need it.

In general, to begin with, the company (or correctly called this group a company) consists of approximately 90 branches and 100k employees scattered across the countries of Southeast Asia and Oceania. The entire group is very Microsoft-oriented, starting from development to the main ERP system, so today we will only talk about the Microsoft products we used and a little about Cisco Unified Communication Manager.

Task


It is necessary to develop an Information Kiosk for receptions in all branches (about 90). It is necessary to support several languages ​​and the platform itself should be integrated into everything that is possible. As I wrote above, the company is Microsoft-oriented and uses the whole range of products, including Office 365 (Exchange, SharePoint, Lync). The most interesting thing that somehow happened historically, that the company uses Cisco as a communication platform, but at the same time, according to the rules, meetings are held at Lync. That is, you cannot call a stationary Cisco phone with Lync. The kiosk must integrate into the Cisco Unified Communication Platform (so that users can call directly from the kiosk).

You also need the ability to use an RFID card for authorization (each employee of the company has an RFID card). Why is this needed for the Information Kiosk? Let's say that I am not familiar with whether it is practiced at enterprises in Russia, but here every time you move between buildings, according to the regulations, you need to fill out a certain book at the entrance to the building so that the security service knows where and who is, if something happened. In addition, in Australia it is very common to work under a contract. The company employs shortly focused specialists to do a specific job. Now imagine 150 contract soldiers scattered in dozens of hangars. He turned the wrong way, went in the wrong door, and crushed it with a wheel. Therefore, the main task of the Kiosk is to register people, help them find the right employees of the company and enable the security service to have a clear idea of ​​where, who and when. So let's summarize.
')
The search should be able to:


Decision


Forgot to mention, it was necessary to do something new. The company is going through the so-called modernization and the leaders are eager to see something innovative, something different from the green screen of DBS.
In general, after thinking a little bit, we decided to try to write a Kiosk for Windows 8. When we first conceived this project, the eight was in Preview and it was a little scary, but the dates did not press and the project was innovative in terms of - when you have a couple of developers who can work 10 hours a week and need to show the result once a month.

So, the diagram of the technologies and products used:



Immediately show how the application looks, and then in order for each item. I apologize in advance for the quality of the pictures.

Main screen:



Search window:



Registration screen:



Using RFID

This beast still dreams me in terrible dreams, with all its seemingly simplicity in development. Who has not played with the RFID frame on the Arduino? Just because, yes?

When the application shell was ready, we started to integrate with RFID. The process is very simple: the employee of the company leans the card to the reader and the application asks to enter the name of the employee who you are meeting with. At the end of the meeting, scan the card and the application wishes you a good day. However, problems started with the equipment. At first it turned out that we were using mega protected readers for almost 600 bucks each. Who worked with RFID locks, knows that the reader is only half the trouble. It connects to the controller, and the controller to the PC, via the Serial Port. It turned out that Metro applications do not support anything from System.IO. Our programmer began to invent different ways how to make Metro application access to the ill-fated Serial port. I note that we worked with Windows 8 and then still did not know about the Broked Component, which appeared in Windows 8.1.

Then in the eight, even the Device API was scant. In general, we didn’t think of anything for the eight, except for launching a win32 client that communicated with the Metro application via the file system. This, of course, was no good, but then the rumor went that they would add support for Bluetooth to 8.1 and we began to hope ... The guys from Microsoft did not disappoint - the new device api was easy and simple to use. The only thing I didn’t like was the need to first pair the device before using it. In addition, device api is designed in such a way that Windows will ask you whether you can use this device or not, which adds some discomfort.

The second problem was the lack of Bluetooth RFID devices on the market. It was impossible to simply buy and buy a RFID Bluetooth reader that would work with our cards. I had to turn to local companies and to our happiness one company agreed to help. As a result, a month later I had a new reader on my desk that was powered by USB, but transferred data to the Metro app via Bluetooth. And everything would be fine, but now, after 4 months of kiosk operation, we observe that sometimes Windows just cuts off the connection. This happens after about 4-5 days of work. Wrote on MSDN, asked in those support, while only advised to restart the connection every 8 hours. We had already decided to fix it, as a new feature was released in Update 1, Broked Windows Runtime Component . In a nutshell, this thing allows your Metro application to talk to a regular Windows application. This was our case. We have omitted all the logic of working with RFID in the Broked component. I can say that while there were no problems, let's see how it will behave further.

Cisco UCM

I will say right away that the solution we have applied is not the best, and I will be very grateful if anyone shares a good alternative. Cisco is a very cool company, but for some reason it seems to me that their implementation of integration is not very practical and, how to say, lags behind the general trends in the development of the web. All these ActiveX plugins are not for Cisco. However, Cisco Unified Communication Manager is a nice enough platform, the only thing is that Cisco did not have anything suitable from the toolkit so that we could easily use it in our application. I will not go into details, who is interested, write - I will tell, but in the end we chose the old library from Office - Office.Interop.UccApi.dll and wrote a small wpf client on top of it, which runs the local web server, and Kiosk simply calls the methods - call or hang up. If someone tried to integrate the SIP protocol into the Metro application, let us know if we work together.

SharePoint

As seen in the very first picture, and as I said at the very beginning, we chose SharePoint as our database and the source of all employee information. At the beginning of development, we came across a very interesting example from Microsoft ( Contoso Learning Companion ), which fully reflected our case.



Each location (sub site) has a set of sheets with a configuration. We need the ability to manage account settings, for example, for Cisco directly from the portal. Also, if you look at the second image of the application, a quick access zone is located on the left below the search. For example, a user entering a branch does not know who is responsible for finance or HR. By clicking on the icon, the application will show only people from this branch who are responsible for HR. Each location also contains a list of all visits and all information is aggregated and is available at the topmost level (Reception).

SharePoint is just as good when it comes to searching, especially in the new SharePoint 2013. The entire search for employees is two dozen lines on js. Everything works quickly and efficiently. In general, integration with SharePoint was the only task with which we had no problems at all. The shell was written in a couple of days and works very stable.

Deployment

We knew that the application would not go through the Windows Store, because we use too many win32 components, although if you remove all the extra features, you would get a good product, what do you think? Since we have the opportunity to use SCCM, we just rolled everything into image (by the way, we use Windows 8.1 Enterprise Embeded).

Conclusion

Currently, the application is deployed in 23 branches. Attendance per day - about 250 people. We have developed a small html5 application for security guards so that we can monitor people if they are not at the computer. Also available is the main portal with a BI component for data analysis. We noticed that most people come on Tuesdays and Fridays.

I know, it turned out a bit messy, besides, I could mess up with the translation of some terms, since there is no possibility to practice technical language in Russian. Ask questions, I will be glad to answer.

PS: I was so nervous that I forgot to write about the most important thing. How much did it cost and why it was impossible to buy a finished product? The cheapest kiosk costs us $ 4-5 thousand, and this is only a box + add 5-6 thousand to a simple software. I know the prices may be a little scary, but this is how we live here.
In our case, we use the Dell Optiplex 9010 for $ 1,400 and it looks like this:

Source: https://habr.com/ru/post/237085/


All Articles