14 May 2024

Cloud <-> Intranet Gateway Design

As business priorities shift, modern cloud-enabled technologies are more critical than ever in healthcare.  However, scaling cloud can be complicated. Healthcare is at a tipping point. A hybrid cloud environment can solve many of its biggest challenges.
The COVID era has turned the healthcare industry upside down and Healthcare organizations now have their focus on migrating legacy technology to the cloud and transforming data and applications using capabilities that are not available in their existing infrastructure solutions. 

Success story - cloud

The problem:

Pretext: In most of the hospitals (end users of the solutions we develop), all computers are connected to intranet with only single gateway machine connected to the Internet as per traditional security standards. Moreover, hospitals do not have technical capability/resources to accommodate different use-cases internally. Neither are they willing to make substantial changes to their existing infrastructure.

Due to this, our customer, an OEM, was not able to facilitate work flexibility for its staffLot of time was wasted in getting access to the health analytics data due to restrictions on sharing data via intranet. Moreover, the customer did not have budget to make substantial changes in the current infrastructure.

Business need

Since only one machine was allowed to communicate with the Internet, we had to find a way that will not only make the communication possible with the cloud but also keep the installation and codebase as simple as possible. Also, the different departments had different licenses for analytics service.

The top challenges that we identified are listed below:

  • Lack of Cloud Accessibility – It was a top challenge to make data communication possible with organization’s isolated network.
  • Lack of configurable solution- Another challenge was to make any service plug & play based on user configuration as per hospital’s dynamic requirements.
  • Lack of Generic solution – Existing product did not have generic codebase to simplify the maintenance process.

 

Our solution

Scaling cloud requires a new way of architecting, governing, managing, and measuring technology consumption. While modernizing the legacy is costly and overly complex, healthcare organizations do not have to be overwhelmed by tackling such a monumental challenge. A more reasonable approach is to focus on modernizing key capabilities that drive the experiences that are priorities for reinvention, and we are helping healthcare industry to achieve this with our experience and expertise.

We created a platform independent micro-service that employed latest version of DotNet Core (.Net 6). This service could be configured and deployed as stand-alone windows service (directly communicating to cloud) as well as client-server distributed service (each sitting on different station).
The service also uses plug and play analytics library that is highly detachable and configurable as per client’s requirements.

This Micro-Service has multiple hosted services to perform following functions:

  • Upload data/files to azure blob storage
  • Send data/files via SFTP protocol
  • Monitor network availability and keep track of uploaded files
  • Retrieve files as per requests
  • Upload analytics data to preferred analytics service provider
Technology stack used:
 
  • .NET 6+                                                                
  • Kestrel server
  • Git
  • gRPC
  • Http
  • Renci SFTP client
  • Azure SDK

All above tech stack is open source.

Implementation details

There are 2 modes in this architecture implementation.

  • Stand-alone
  • Client-server

Solution is highly configurable to switch the service between these modes.

Stand-alone:

In a stand-alone mode, host machine is directly connected to the Internet. Here, uploader service fetches all the files and upload them directly to customer’s preferred cloud service. There is no need for intermediate connection between cloud and host. Hence, complexity and cost are reduced.

Success story - cloud

Client-server:

In client-server mode, host machines sit inside the private network whereas only server machine is connected to the Internet. Uploader service on host machines is connected to the server via FTP server. sFTP protocol is used to transfer data between client and server machines. If sFTP is not available, then the service automatically switches to https protocol for data transfer.

Success story - cloud

How to use the service:
 

Class Components:
 
  • DynamicDependencyLoader  – An in-house & generic library created for dynamically injecting 3rd party services or libraries as a part of the hosted service itself. This library makes use of ‘System.Runtime.Loader,’ ‘System.Runtime.InteropServices’ & ‘System.Reflection’ to achieve the behavior of loading & unloading modules at runtime.
  • AzureBlobUploader – Service component that uploads and manages files on azure blob storage.
  • SftpFileUploader – Manages uploading of data & files between client-server instances using ssh-FTP.
  • FileUploadTracker – It keeps the track of weather file was successfully uploaded and if not then it will retry as soon as the network issues are solved.
  • FilesRetriever – Checks for legacy data & files on machine that matches the given pattern.
  • NetworkMonitorService – Monitors machine network and notifies other services of any network changes.
Success story - cloud

Benefits Derived

Ready to transform your healthcare infrastructure seamlessly? Contact our team today to explore how our Cloud <-> Intranet Gateway Design can benefit you.

Get in touch with our team

Discover more

Programming
Perforce to Git migration
Perforce and Git are two different types of source control systems that help developers track and manage changes to software code. Perforce is a centralized...
Read more
Deep learning
Protecting Privacy Using Deep Learning
A government customer required grievances/incidents redressal management system. To maintain the transparency the customer was required to keep this data accessible to their citizens. Citizens...
Read more
test automation
Test Automation Dashboard
Software test automation is a process of performing tests on an application to validate its behaviour with the help of test automation tools. Whenever an...
Read more