Liberate Your ERP Data For Impactful UX
Wow, we have come a long way with SAP, Mobile technology, and ERP opening up. Previously, I have seen everything from SAP Console, ITS Mobile, Fiori, SAP BTP SDK for iOS and Android, and now Mobile Start. In the early days, we had few options that made SAP solutions “open.” We used things like the .NET connector and point-to-point web services. Then came the centralized All-in-One integration solutions, like XI / PI / PO, to handle all integrations. Finally, a more RESTFul approach with Gateway. It’s key to creating a great user experience to liberate your ERP data to the cloud.
SAP created the technologies mentioned above to achieve one thing: to liberate our data from the ERP prison. Imagine having a mobile application that is the only surface employees need to interact with your ERP. Enterprise Apps like these would be something that will undoubtedly need changes frequently. Constantly being stuck in governance processes won’t do for users who expect or need a more simplified UX. In addition, complicated processes are safely documented in a three-ring binder if you forget what to do.
IT Departments must be agile to respond to user demands, and those that do it successfully generate more demand and trust from their end-users. Their resources are finite, and they have tried to constrain technology sprawl. In addition, users expect a better UX than what was acceptable in yesteryear. A frustrated customer, vendor, or employee can shake business processes to the core. Especially when your competitor is the easiest to do business with, their customers are complaint-free, and employees are happier.
Goodbye Single Vendor Strategy
The days of the “single-vendor” for software solutions and services are ending. Or you wouldn’t see big behemoths trying to run as fast as possible towards being a SaaS provider. They know that we’re entering the age of “best of breed” software solutions. But is that enough? Do you want to have all of your eggs in one software vendor’s SaaS solution? Where is the competitive advantage if there is no way to differentiate us from our competitors? Sticking to our mobile example above, have a look at this:
Admirable for sure. I hope nobody interprets this as a slight to SAP. They are trying to make it easier for you to create your competitive advantage. As long as you subscribe and use all of these proprietary solutions/services, find the perfect development team and architects that have the specialized knowledge to actualize a design across all of those solutions. It still sounds like the same problem for IT stated in a new way. The same constraints exist because proprietary solutions are still highly integrated. These constraints will always be the same when your strategy is the “single software vendor.” *dismounts soapbox*
Open Source-ish Cloud
Another option is to opt for more commoditized skillsets and industry-leading cloud services. The benefit being our mobile portion of the solution can 100% work without any connection to an ERP, another SaaS solution, or any other dependency. We’re free to change the proper backend at any time. In our simple scenario in AWS below, an offline application is syncing data from the database to the mobile data store and rapidly doing Mobile Development using the serverless offerings shown below with AWS Amplify.
Mobile App Flow
- The mobile application connects to an API gateway. API Gateway is a protective layer that gives us operational control over our APIs, including security, monitoring, and maintaining APIs
- The user will log in through the AWS Identity Provider Cognito to authenticate and authorize user access.
- AWS App Sync ensures that any record sent to the cloud by the ERP syncs to the Amplify Datastore on the device.
- The Lamda function handles business functions, calls to other services, and data retrieval from RDS. (Aurora, MySQL, or SQLServer).
- We can also use Dynamo DB as an object store instead of a Relational Database.
Mobile Development Accelerator – AWS Amplify
Let’s pretend we used a multi-targeted deployment framework like Google Flutter so that we could target iOS, Windows, Android, and Web. With Amplify, we accelerate full-stack development by just utilizing tools to abstract the necessity to write code for every interaction with AWS on the client-side and define the backend services we will use on AWS. As a result, each deployment implementation is more uniform and enables us to create four different apps that effectively work the same.
AWS has worked to make other AWS services more straightforward like other cloud providers. For instance, Amplify also has tools to streamline the deployment process, manage and scale the environment the developers built users, and the live production environment. In addition, developers can take advantage of the prebuilt libraries to access other AWS services and resources.
Getting Your SAP Data Into Your App
Knowing this app can run alone and has loosely coupled with the ERP, we have reduced our “points of failure” surface. You might be asking, “How might we make our loosely coupled integration robust?” That will be a topic for another blog. There are numerous methods to move data between the cloud and our ERP. Let’s keep it simple and assume this example is transactional, and there is already a strong integration pattern.
- Point to Point API – This is not a scalable solution and is always terrible to untangle, but it’s a place to start for applications to application integration. These can be critical but work best as part of a microservices architecture.
- Central Hub Message Brokers – Enterprise Service Bus and Middleware fall into this category. These are centralized systems responsible for Application Integrations—using adapters for connectivity, message routing, and reusable message mapping methods. B2B and C2C integrations are standard, but too many eggs are in one basket. Think of EDI and cXML…
- Data Replication / Data Synchronizing – There is a nuance between near real-time ETL and real-time data replication tools. Both take data from a Producer(s) to Consumer(s) pushed outwardly.
- All-in-One – Apache Kafka, Mulesoft, and AWS Kinesis/MSK/Glue are examples. Some niche players like SAP CPI are great because they add in the proprietary capabilities from that software vendor. It would be best to weigh the value of proprietary functionality and other tools’ generic versatility.
What to do with our Data.. To The Lake!
In our example, Lambdas can do most of the heavy lifting by interacting with the integration platform and getting the data to and from a persistence layer. For us, the persistence layer is DynamoDB. We recommend using an object store like Dynamo. When your goal is to make a real-time transactional API, you do not have a team to design and manage a relational database, or you need a quick response time. If you plan on using the database for more than one purpose, like reporting, or historical reference, RDS is the better option. You could even have both! Use a lambda function to pull your relevant objects and shove those into a historical database like Aurora. Another option is to use AWS Kinesis and stream it to S3 for cold storage.
As your product matures, you will need to take a new view of your transactional data from all mobile (and other apps that probably enhance the solutions). In addition, process maturity requires a holistic perspective on business processes, which means analyzing data and statistics from pertinent business processes. For example, we stored our data in Amazone S3, and we can use Glue to transform that data into the kind of data object we want. Then, we can search through our data repositories by taking that object and cataloging the data in a searchable way across tools like Athena. Then, use EMR to enable big data workloads and Redshift to gain insights on data across data repositories.
Quick Smart Data Quality Example
To highlight another Serverless example… From time to time, our application sends inconsistent data compared to another source. Let’s pretend it is an asset’s GPS coordinates or address. One data source is “123 Main Street Lane”, and in another, it is “123 Main Street”. Although these look the same, one has “Lane,” and the other does not. So we want to know when this happens to ensure the data quality in all systems. See the Diagram below:
Data Quality Flow
- Data is archived from the DynamoDB based on specified criteria in the Lambda, then stored in cold storage in S3. So we’re calling it AWS S3 Archive Source here.
- Glue is going to crawl, query, and create the dataset. Then the dataset is transformed into a table.
- We’ll have a Glue endpoint with our data quality verification module and dependencies stored in the Metrics S3 repo. And Using the Spark engine in Glue, we’ll analyze data as it flows through the ETL job.
- We are using a SageMaker notebook to interface with our glue endpoint. We will be able to run our notebook and automate the process interactively.
- Customers can configure SNS to alert a Data Quality admin, who can begin the process of correcting the data quality issue. For example, it was incorrect asset master data in SAP, but a separate business process updated the GIS system.
A Serverless Architecture
Serverless computing is a cloud computing execution model that allows developers to write software without needing to be constrained by infrastructure costs, personnel, or capacity planning considerations. As a result, DevOps teams can operate efficiently and independently, with faster responsiveness to business challenges.
Serverless is significant because these highly available scalable, self-maintaining, and redundant services would have prohibitive cost implications for infrastructure to support the feature for a single-use case. Let us not forget the ongoing licensing, maintenance, security, electricity, and environmental impact. We significantly reduce the number of personnel to maintain the infrastructure. It is far superior and faster than on-premise solutions.
Now your Cloud Provider account (like AWS) and usage of services, the costs of developing the solutions, and typical product support costs replace those costs. In addition, it’s essential to call out that there is an extraordinary amount of time saved for development teams to have services that work without engaging other groups. They no longer need meetings and endless collaboration sessions.
Perhaps there is even a way to create infrastructure as code and build that into a Continuous Deployment pipeline??? A blog for another time.
If you or your company are curious about writing software using a serverless architecture, contact us for more information and services around AWS Cloud or BTP.