System performance in an OData environment implies many options for storing and managing application data. To store custom structured data, cloud computing technology can support application development and hosting. An efficient OData implementation should be well-optimized for performance. Otherwise, OData can also involve some risks for a company. To prevent any risks associated with an OData implementation it is necessary to carry it out according to a complementary methodology that the right business partner can provide.

We had a great opportunity to speak with Novacura’s expert in the OData environment, Paul Phillips, Vice President of Product Management at Novacura. Together with our speaker, we share insights on OData performance and important details of an OData-based implementation for IFS Cloud. Let’s take a closer look at how you can improve the performance of your network infrastructure with an IFS Cloud OData configuration.

OData can have important impact for data efficiency. Does adding OData to the system transport layer PL/SQL, can cause any efficiency implications?

OData can definitely have a positive impact on data efficiency since it enables efficient and standardized communication between different systems by using a RESTful API interface. However, adding OData to the transport layer of the system could potentially cause some performance implications if not properly optimized.

In terms of PL/SQL, using OData can actually simplify the data access layer by removing the need for custom queries and providing a standardized way to access the data through the RESTful API. This can make the code more efficient and easier to maintain.

That being said, it’s important to ensure that the OData implementation is properly optimized for performance. This includes using appropriate caching mechanisms, minimizing the number of round trips between the client and server, and properly handling large data sets. By following best practices and optimizing the implementation, OData can significantly improve data efficiency without negatively impacting performance.

OData defines an HTTP-based interface for data services. Within this interface, high-level, general-purpose client libraries and components can use various services, and custom semantics are not required. When transferring a large dose of records to IFS, we may notice an impact on its performance. In previous versions, the PL/SQL connection and data upload to the IFS infrastructure was based on a sequence of “inserts” of separate records. What would this look like now?

In the current OData-based implementation for IFS Cloud, the process of transferring a large number of records can be optimized using batch operations. OData allows for the grouping of multiple operations into a single HTTP request, which can help improve performance and reduce the overall network traffic.
To use batch operations with OData, the client application would send a single HTTP POST request to the OData endpoint with the “Content-Type” header set to “multipart/mixed”. The body of the request would contain multiple individual requests, each representing an operation like creating, updating, or deleting a record, separated by a specified boundary string.
By using batch operations, the IFS Cloud system can process multiple records in a single transaction, potentially reducing the time and resources needed to complete the data transfer. However, the actual performance improvement will depend on various factors such as the data size, network infrastructure, and IFS Cloud system configuration. It’s essential to collaborate with the IFS support team or your technical experts to optimize the OData connector’s performance for your specific use case.

48 Essential Questions About IFS Cloud Integration Answered!

odata ebook

Let’s discuss another potential negative situation when a customer migrates from a local installation to a cloud installation offered by IFS. Will it be any slower “by default” due to the larger physical distance between the IFS server and all clients?

When migrating from a local installation to a cloud-based installation of IFS, there could be some impact on performance due to the increased physical distance between the IFS server and clients. This is mainly because of the increased network latency, which is the time it takes for data to travel from the client to the server and back.

While there might be some increased latency due to the larger physical distance in a cloud-based installation, it’s important to note that the benefits of cloud computing, such as scalability, flexibility, and reduced infrastructure management overhead, often outweigh these potential performance concerns. By following best practices and working closely with your technical team and IFS support, you can optimize the performance of your IFS Cloud installation. Typically, this is why we host our Novacura installations in the same data centers as IFS is hosted. This means minimal network latency from the IFS server to the Novacura server. When the two servers are hosted in the same data centers we often see expedited communication rates when compared to on-premise installations.

Focusing on transferring a large set of records to the IFS, as in the example of data transfer from a warehouse environment, can cause a drop in performance. Using PL/SQL, we were able to fetch a large chunk of data efficiently using a SELECT – FROM statement. Should we now replace it with a sequence of “read” operations repeated for each record? Can you give us an example?

When working with OData in the IFS Cloud environment, you can still efficiently fetch a large chunk of data without resorting to a sequence of “read” operations for each record. Instead of using a SELECT-FROM statement in PL/SQL, you can use OData query options to filter, sort, and paginate the data. Here’s are some examples of how to fetch data using OData:

  • Assuming you have an OData endpoint called Warehouse Items, you can fetch a large set of records with a single request like this:

GET https://your-ifs-cloud-instance/odata/WarehouseItems

  • To filter the data, you can use the $filter query option:

GET https://your-ifs-cloud-instance/odata/WarehouseItems?$filter=Category eq ‘Electronics’

  • For sorting, use the $orderby query option:

GET https://your-ifs-cloud-instance/odata/WarehouseItems?$orderby=ItemName asc

  • For pagination, use the $skip and $top query options:

GET https://your-ifs-cloud-instance/odata/WarehouseItems?$skip=0&$top=100 

By using these query options, you can fetch, filter, sort, and paginate large sets of records efficiently without needing to perform individual “read” operations for each record.

Remember that the performance of these queries will depend on multiple factors, such as the size of the dataset, network infrastructure, and IFS Cloud system configuration. It’s essential to work with your technical team and IFS support to optimize the performance of your OData queries and ensure efficient data transfers.

What is the most efficient interface approach in OData to mass record retrieval?

The most efficient approach for mass record retrieval in OData involves using a combination of query options to fetch, filter, sort, and paginate the data. This helps reduce the amount of data transferred over the network and allows the server to process the request more efficiently. Here are some best practices for efficient mass record retrieval in OData:

  1. Filtering: Use the $filter query option to narrow down the records being fetched, ensuring that only relevant data is retrieved. This reduces the amount of data being transferred and processed.
  2. Sorting: Use the $orderby query option to sort the records on the server-side before they are sent to the client. This can help improve client-side processing and display of the data.
  3. Pagination: Use the $skip and $top query options to paginate the data, fetching only a limited number of records at a time. This reduces the amount of data being transferred at once and helps improve both server-side and client-side performance.
  4. Selecting specific fields: Use the $select query option to specify which fields should be included in the response. By limiting the fields returned, you can reduce the amount of data being transferred and speed up the processing time.
  5. Expanding related entities: If you need to fetch related entities, use the $expand query option to include them in the response. This can help reduce the number of requests needed to fetch related data.
  6. Use server-driven paging: If the OData service supports server-driven paging, it automatically paginates the data and provides a next link in the response to fetch the next set of records. This can help improve performance by fetching data in smaller chunks.

By following these best practices and using the appropriate query options, you can optimize mass record retrieval in OData while maintaining efficient performance for your IFS Cloud system.

What other risks or performance limitations might there be in OData?

While OData offers many benefits, such as standardization, flexibility, and ease of use, there are some potential risks and performance limitations to consider:

  1. Increased network latency: As OData relies on HTTP-based communication, network latency can have a more significant impact on performance compared to traditional APIs that use direct database connections.
  2. Limited transaction control: OData lacks built-in support for transactions similar to traditional database systems. As a result, you may need to implement custom rollback strategies or use batch operations to group multiple changes, which can be less efficient and more complex.
  3. Complexity of query construction: Building complex OData queries with multiple filters, sorting, and pagination options can be challenging, especially for developers unfamiliar with the OData syntax.
  4. Potential for over-fetching data: Without proper use of the $select query option, OData requests might return more data than necessary, leading to increased network traffic and slower response times.
  5. Potential impact on server performance: The processing of OData requests can increase server load, especially for complex queries or large datasets. It’s essential to monitor server performance and optimize your OData implementation accordingly.
  6. Learning curve: Developers familiar with traditional IFS APIs may need to invest time in learning OData concepts and best practices.

To mitigate these risks and performance limitations, it’s essential to:

  1. Implement best practices for OData query construction, filtering, sorting, and pagination.
  2. Optimize server performance and infrastructure to handle OData requests efficiently.
  3. Monitor and optimize your OData implementation to address any bottlenecks or performance issues.

By addressing these risks and limitations, you can make the most of the benefits that OData offers while maintaining efficient performance for your IFS Cloud system.

Summary

Novacura, a leading provider of advanced business solutions, specializes in helping organizations implement OData solutions for IFS Cloud with great success. As a market leader in this space, Novacura combines its deep knowledge of OData standards with a comprehensive toolset designed to address the unique challenges and opportunities that OData presents.

Novacura’s expertise extends beyond just providing tools; their dedicated team of specialists is well-versed in the intricacies of  IFS Cloud OData API and IFS Apps. We are equipped to guide clients through every stage of the implementation process, from planning and design to optimization and ongoing support. By partnering with Novacura, organizations can rely on a trusted partner with the experience, knowledge, and commitment to ensure their OData solutions deliver maximum value and performance.

Learn more about OData and IFS Cloud along with IFS Apps that improved operations of more than 200 companies from various industries worldwide. Contact with us today and see what we can do for your business.

INTERESTED IN LEARNING MORE ABOUT IFS CLOUD ODATA?

The article you are about to read is part of a broader series on the IFS Cloud OData API. Here's a link to the main article, which lists all the major barriers you may encounter when upgrading to IFS Cloud:

 

Introduction – barriers you can meet when moving to IFS Cloud and OData API

 

Below we present a whole list of articles belonging to the IFS Cloud OData series:

  1. The OData basics in the context of IFS Cloud
  2. How to replicate database transactions in OData for IFS Cloud
  3. Alternatives for OData in IFS Cloud
  4. Authentication, Authorization and Initialization in the OData API of IFS Cloud
  5. OData Efficiency with the remote cloud installation
  6. IFS customizations in OData
  7. Dealing With Legacy Systems