Strategies for Building an Enterprise Document Streaming Service

Strategies for Building an Enterprise Document Streaming Service

1. Preface

While the demand for social distancing continues along with the COVID-19 situation, many companies have actively invested in facilitating work-from-home environments. As a result, working-from-home has been established as a corporate culture. However, in fact, this trend was already in progress before COVID-19, and at the center are mobile devices (cell phones).

It has been over 10 years since smartphones became common among the public. As many of the things people used to do on their PCs were replaced by mobile devices, people now read business emails, approval process, and communicate through business messengers. The mobile work environment, represented by Work from Anywhere, reduced losses due to delayed decision-making, which directly led to improved corporate productivity.

Let's talk about something else. As of 2022, the climate crisis is being discussed as a global issue, and demands for carbon neutrality are also increasing. In response, activating electronic documents will greatly contribute to the realization of carbon neutrality by reducing the amount of logging and paper production. In fact, many business procedures that have been conducted in writing by both public institutions and private companies are being replaced by electronic documents, and various written and stored contracts are also being replaced by electronic contracts.

This article will discuss document streaming solutions for enterprises that meet the needs of the market, especially in the mobile environment, based on my experience. I will introduce what kind of system it is and what strategies should be used to design and build the services.

2. Mobile services getting closer to PC

Back in time, before iOS and Android-based smartphones were introduced, mobile content had to be simple and use as little data as possible. Therefore, the Internet standard for mobile communication known as WAP was required, and a separate mobile-exclusive page was required to create a website.

A business program for mobile phones (WIPI) developed by one company in the feature phone market A business program for mobile phones (WIPI) developed by one company when feature phones became the mainstream of the market

As phone performance has improved a lot, most of the web and office documents that can be viewed on PCs are also available on mobile devices in the same format. There is no need to worry about how to minimize data like in the days of feature phones. Instead, now is the time to consider how to implement the same level of information and interface as PCs.

Many web services, such as portal sites and SNS still operate dual channels in the PC and mobile versions. However, personally, when I enter a portal site on mobile, I do not prefer mobile web pages that start with "https://m.-", so I switch to the PC screen view immediately. This is because I think that the current resolution of smartphones provides enough pixels to view PC screen content.

The screen when the same document is opened in MS Word for PC (left), and the screen opened with the mobile app, Brity Mail Mobile (right) The screen when the same document is opened in MS Word for PC (left), and the screen opened with the mobile app, Brity Mail Mobile (right)

As mobile device specifications and service environments become more advanced, there is a demand to accommodate more information and convenience features. There are many things to consider to view the screen on mobile devices in the same format as when viewing it using MS Office or Adobe Reader on a PC. There are many ways to implement the program, but the most common approach is to analyze the structure of each document on the server, convert it into metadata to enable streaming, and then send it to the device. At the same time, the terminal must render the metadata it received from the server as it is and reproduce it to synchronize with the screen viewed on the PC.

3. Considerations when designing and building documentary streaming services for enterprises

Security, convenience, and efficiency are the metrics that document streaming services for enterprises must consider. These metrics can synergize with each other in terms of their usefulness. Increasing efficiency also has a positive effect on convenience, as users can quickly receive results. However, excessive concentration on one side may cause problems due to the lack of the other.

For example, if you are too obsessed with convenience, CPU share may be inordinately high due to excessive resource consumption or computation on the streaming server (for example, when you are looking at a map of Seoul in the Maps app while rendering the entire map of Korea in the background); whereas, if you are too obsessed with efficiency, information security may be at risk since essential encryption or authentication processes are neglected. Therefore, an unbiased, balanced strategy is needed to maintain enterprise security, satisfy users, and reduce service costs.

3.1 Security

Basically, the primary purpose of streaming services (such as video and documents) is to prevent unauthorized duplication of original content. Security is of paramount importance for maintaining security within an enterprise and for services that require the prevention of unauthorized duplication of content, such as e-book stores.

An important requirement for security is not to store the original document in the secondary storage device (SD memory) of a terminal, such as a mobile device. Since copying with hacked memory is possible, it is also not safe to store the entire document data on the main memory unit, such as RAM. In other words, security must be maintained by delivering only the minimum components of the screen for the terminal while keeping the original document on the server and not downloading it to the terminal.

As the wireless Internet environment is more vulnerable to network extortion techniques, such as sniffing, encryption is essential. If it is based on the http protocol, it is recommended to use https and further encrypt packets that ensure the security of AES256 or higher.

Moreover, measures to prevent screen captures on the terminal are also required. In the case of Android, related APIs are provided, so they should be actively utilized. It is technically impossible to prevent screen captures in iOS, but it is possible to manage this by generating an event function when a user attempts to capture a screen of a specific app.

In addition, a watermark is essential, since it is possible to take pictures of the screen itself with another device's camera. By displaying a watermark that identifies a specific user on the screen being viewed, the user can be given more responsibility for security.

Documents with watermarks of user information and identifiers It is possible to prevent unauthorized leakage by displaying user information and identifiers with watermarks

3.2 Convenience

“Convenience” is a measure of whether the user can view the document without any inconvenience. When a user attempts to browse a document, it is better to have a shorter wait time until a response comes and take as much document information as possible when viewing it. It is also important to maintain seamless information delivery in real time, without any interruption as you move from page to page.

To meet this, it is essential to accurately identify the scope of the user's view and extract and deliver document information as quickly as possible according to the requested scope. To get the maximum information on the limited mobile screen, the screen must be designed to make the most of the space. In addition, mobile platforms have different types of output that can be displayed depending on the device type and resolution, and the layout must be specified separately depending on the layout view between the vertical view and horizontal view.

An example screen that recommends configuring and implementing separate layouts for horizontal screens when designing apps for mobile UI/UX It is recommended to configure and implement separate layouts for horizontal screens when designing apps for mobile UI/UX

In addition to viewing documents, it is recommended to provide a writing function to facilitate mutual feedback and a separate function to resend specific pages after collecting them.

3.3 Efficiency and stability

Service resources are not infinite. Therefore, it is important to allocate resources for efficient service operations. The “efficiency” here is about how much work can be done in a shorter amount of time and with fewer servers and network resources.

If the aforementioned convenience is in the domain of the client, efficiency has more to do with the server. Of course, it is impossible to separate the two because the flow and linkage structure between the client and server are organically intertwined. There may be parts of the server that must be designed considering the convenience of the terminal, and it is important to reduce the calculations that the terminal processes for its own efficiency as much as possible, but this is still true in terms of the weight of the design or implementation.

The first thing that determines efficiency is to have the CPU perform as few calculations as possible. First, it is necessary to understand the nature of the document to be streamed. For example, many e-book services today, where smartphones have become commonplace, still extract and display documents with attached images as texts rather than documents created with a word processor. Literary works, such as novels or essays would be fine, but in the case of design drafts or presentation documents, it is difficult to simply extract them as a combination of images and text. Thus, it is necessary to appropriately allocate the required resources to suit the nature of the content.

Stability is literally an indicator of stable service maintenance. For example, it is a standard for determining whether the service can maintain the same state as when it started without being shut down, even if it is kept running for a long time without restarting. In addition, even if traffic is crowded due to simultaneous viewing requests from multiple users, it should be accommodated as much as possible, and if it is no longer possible to process due to physical reasons, it should be supplemented with a notification message telling you to wait or try again.

Moreover, if it is planned to operate on a specific OS, it is also important to make the most of the characteristics and structure of the OS. For example, OLE Automation is highly dependent on related programs, and you can work them stably by dividing the work area as much as possible to avoid collisions between individual tasks. Alternatively, it can be determined through tuning to limit CPU core occupancy so that there is no problem with concurrent processing.

NT server - service manager
  • desktop
  • process - job 1
  • process - job 2
  • desktop
  • process - job 3
  • desktop
  • process - job n

[1] https://www.etnews.com/20211012000082
[2] https://zdnet.co.kr/view/?no=20211212213739
[3] https://rd.kdb.co.kr/fileView?groupId=FDFF4A9E-EF90-CEC4-A195-7426DDC05661&fileId=F5764EB2-658E-6651-ECDA-8E656FC98B48
[4] https://www.itworld.co.kr/tags/1971/PDF/87985
[5] https://scienceon.kisti.re.kr/srch/selectPORSrchReport.do?cn=TRKO201000017391
[6] https://techcommunity.microsoft.com/t5/ask-the-performance-team/sessions-desktops-and-windows-stations/ba-p/372473
[7] https://www.saashub.com/compare-apache-pdfbox-vs-pdfium?ref=compare
[8] https://www.linuxlinks.com/best-free-open-source-pdf-development-libraries/

▶   The content is protected by the copyright law and the copyright belongs to the author.
▶   The content is prohibited to copy or quote without the author's permission.

Sangkook Lee
Sangkook Lee

Knox Technology Group, Software Business Unit, S-Core Co., Ltd.