• Home
  • Site Aliases
    • www.cloud-native.info
    • oracle.cloud-native.info
    • Phil-Wilkins.uk
  • About
    • Background
    • Presenting Activities
    • Internet Profile
      • LinkedIn
    • About
  • Books & Publications
    • Logging in Action with Fluentd, Kubernetes and More
      • Logging in Action with Fluentd – Book
      • Fluentd Book Resources
      • Log Generator
    • API & API Platform
      • API Useful Resources
    • Oracle Integration
      • Book Website
      • Useful Reading Sources
    • Publication Contributions
  • Resources
    • GitHub
    • Oracle Integration Site
    • Oracle Resources
    • Mindmaps Index
    • Useful Tech Resources
    • Python Setup & related stuff
  • Music
    • Music Reading

Phil (aka MP3Monster)'s Blog

~ from Technology to Music

Phil (aka MP3Monster)'s Blog

Tag Archives: OAGI

API payload design getting the semantics right

14 Wednesday Dec 2022

Posted by mp3monster in APIs & microservices, General, Technology

≈ Leave a comment

Tags

API, Design, OAGI, OASIS, OMG, payload, semantics, TMForum

One area of API design that doesn’t get discussed much is the semantics of the payload. That is, the names we give our attributes and elements for the values being communicated. When developing single-use APIs (usually for client applications), this is unlikely to be an issue as the team(s) involved are likely to know each other and are able to interact and resolve clarity issues easily enough (although getting the semantics right makes this easier particularly in the long term). But when it comes to providing reusable endpoints, we may know the early adopters but are unlikely to interact with consumers beyond that unless there is a problem.

This makes getting the semantics right somewhat harder. How do we know if our early adopters represent the wider customer base (internally and externally)? Conversely, if we simply use our own company terminology, how do we know that it is representative of the wider user base? It isn’t unusual for organizations to develop their own variations of a term or apply assumed meaning. Even simple things, a ‘post code’ element of an address, other parts of the world use ‘zip codes’ or PINS are they the same? Perhaps if we said ‘postal code,’ we break the direct specific country associations with ‘post code.’ We can overcome these issues by providing a dictionary of meanings and lengthy explanations. Using the right term goes beyond simply understanding the data value; it will infer specific formatting and potential application behaviors. Taking our postcode/zip code example. In the UK data is published, which means it is possible to easily validate a postcode against the address line and vice versa. In fact, in the UK to get something delivered, you only need the property number and the postcode. A US 5-digit zipcode can’t do that. For that precision, the ZIP+4 needs to be used.

If we can address these issues, then life becomes easier for us in maintaining the information and for consumers in not needing to look up the details. The question is how can we be sure of using semantics that is consistent across our APIs and widely understood and, when necessary, already documented, so we don’t have to document the information again?

Read more: API payload design getting the semantics right

Public Data Models

There is a shortcut to some of these problems. Many industries have agreed on data models for different industries. The bodies such as OASIS, OMG, and others are developed and maintained by multiple organizations. As a result, there is a commonality in the meaning achieved. So if you align with that meaning, then use that semantic. Not only can the naming of attributes become easier, but any documentation can be simplified to reference the published definitions. in most cases, these standards are publicly available as it promotes the widest adoption – one of the goals of developing such models. But there are some pitfalls to be mindful of using this approach:

  • Sometimes rather than arrive at a universal definition, the models will accommodate structural variations or aliased names – as a result, they may not necessarily be helpful to you.
  • The more well-known models are internationalized. If you have no intent to support international needs and not expecting to have international consumers, then the naming may not align with localized conventions.
  • If you use the semantics provided, ensure your data abides by the meaning. For example, don’t use ‘shipping address’ if you’re not shipping anything.
  • Don’t slavishly copy the data models provided – the model may not be intended for API use cases. At the same time, it doesn’t stop you from asking why the data in the model is there and whether your users may want such data (and whether it makes sense for you to provide that information).

Predefined APIs

Some organizations, such as TMForum have taken the public data model to the next step and provided predefined API specifications. This is ideal where you’re following industry standards and providing standardized/common services that aren’t a differentiator but need to be offered as part of doing business.

Data Catalogs

Larger, data-mature organizations will keep some form of Data Catalog. These catalogs are often held to help understand compliance needs, such as where personal data is held, how data issues can impact data accuracy and integrity, etc. It is possible that metadata may also be kept to address the semantic meaning of data or reference the definitions. Such information is used to help inform any data cleansing that may be needed. This offers a potentially good source of information for internal API use cases.

Vendor Led

If your business is delivery/service focussed so that your unique value isn’t in IT processes but perhaps something that the company manufactures or a specialist service such as consulting in a specific industry, then it is possible that the majority of your systems are SaaS or COTs based. If your business has opted to focus on a particular vendor, e.g., Oracle or SAP, for most services, then vendor-led data models are a possibility. These vendors are often involved with public data model development, so they won’t be too divergent in most situations – but awareness of differences is necessary, but as both models should be internally consistent, the differences will also be consistent. This approach will give you better alignment and reduce the chances of needing to address any divergence. The downside of this is a change of direction on strategic vendors can create additional work going forward as the alignment is disrupted. More work will be needed to map from your naming and semantics to the new core, and attempts to move away from the selected model to try to realign semantics with a new core will potentially create breaking changes for API consumers.

Don’t Forget

Regardless of the approach taken, there are some very simple but critical rules that will keep you in a good place:

  • Don’t use your underlying storage data models – this is a well-documented API anti-pattern.
  • Consistency of language across your APIs, regardless of whether they are internal or external, is important.

Information Sources

Regardless of approach – be careful not to lock your API semantics and data model to that of the storage layer – these can change and even create breaking changes that you shouldn’t expose to your users. Some sources to consider.

  • OAGIS – covers a broad variety of business data domains. Some ERP suppliers have used this as a foundation for their application data models.
  • OASIS – covers many industries
  • TMForum APIs
  • ARTS (formally hosted by NRF now with the OMG). The full OMG standards catalog.
  • GS1 – lots here on shipping, supply chain, and product tracking

Some more reading on the subject:

  • http://mlwiki.org/index.php/Semantic_Domains
  • https://www.w3.org/TR/vocab-dcat-2/

Share this:

  • Twitter
  • Facebook
  • LinkedIn
  • Print
  • Pocket
  • Email
  • Tumblr
  • Reddit
  • Pinterest
  • WhatsApp
  • Skype

Like this:

Like Loading...

From AIA to SOA Suite 12c

10 Friday Jul 2015

Posted by mp3monster in General, Oracle, Technology

≈ Leave a comment

Tags

12c, AIA, AIA Foundation Pack, canonical model, OAGI, OER, Oracle, Oracle SOA Suite, PIP, SOA Suite, WLST

Oracle has elected to move away from offering AIA Foundation Pack in its current form. Many of the features offered are being offered in a different packaging – predominantly SOA 12c Core Extensions, and some of the tooling which has not been heavily used will not be available in 12c.

AIA 11g Foundation Pack then it will be replaced by Oracle SOA Suite 12c Core Extensions via a SOA Suite 12c upgrade process for those who have already licensed it. The key consideration is the changes in feature availability in on premise upgrades and the ability to exploit all the tooling particularly into the SOA cloud is unlikely in the future.

Based on this we would recommended that any capabilities not offered natively in 12c should be retired from use, to remove potential issues as a result of upgrading or adopting  a  lift and shift cloud strategy. There is 1 possible caveat to this in the form of utilising the AIA canonical model, more on this  below. The sections shows how AIA capabilities have been re-aligned and you might move forwards.

A lot of the UI features have moved to products such as the Oracle Enterprise Repository (OER 12c) as a result the retirement of the Lifecycle Workbench and a few features have been retired.

Reference Process Models

Reference Process Models, are more aligned to the process of solution analysis and design. The capabilities here can be obtained from other tooling. Separating out process models from a product that is more technically aligned makes sense. We would recommend you want to look at process models in a solution independent capability – particularly as your processes maybe split across platforms and products and even between on-premise and the cloud.

Personally I have seen little use of the top down business process models wrapped up by AIA outside of prepackaged PIPs where process models have been considered they have been examined by business architects before determining by the technologists the delivery approach.

Common Objects

The canonical model piece is lost in the transition to 12c. The canonical model is presented through a series of XML Schemas and HTML documentation, so could be packaged up and continued to be used irrespective of of the SOA versioning – subject to ensuring no licensing constraint on where the schemas are applied that might prevent them being used in the SOA cloud for example.

If there are to be constraints around carrying schemas forward then a strategy of migrating to another broad canonical model such as OAGI  would be recommended. OAGI is particularly appealing given it strongly influenced AIA’s model but also their specialist domains leverage it as base definitions for example HR Open Standards.

Composite Application Validation System (CAVS)

CAVS provided a means by which it is possible to build integration tests that exercise composite components. This component could be leveraged by any Continuous Integration infrastructure. We have done this in the past before Oracle’s significant progress in adopting Maven and Hudson.

This is now part of the SOA Suite Core Extensions pack.

AIA Error Handling Framework (AIA-EH) including Resubmission Feature and Logging

This provides the common error management framework that can be extended to provide automated error handling – for example delay for a period and retry. This one of the most valuable capabilities offered in terms of functionality as it provides a unified framework on which you can do basic error trapping and retry to far more complex advanced capabilities. As part of 12c this has been advanced as well.

This is now part of the SOA Suite Core Extensions pack.

AIA Deployment Plans

Deployment plans tooling has now gone as the deployment mechanism (AID) has also been dropped. More on this below.

XSL Mapping Analyzer & reporting(XMan)

This tool provided the means to identify and understand how mappings have been customised or extended from base. This has been superseded by the Mapping Editor tooling in 12c which offers a better approach to this activity.

AIA Installation Driver & AIA Installer properties

This capability wrapped up a series of smaller WLST based processes to deploy a PIP either licensed or custom PIP. As the concept of custom PIP has been dropped in favour of a collection of composites and other artefacts as would be applied if building using just SOA Suite. The capabilities use within Specsavers’ has in the past been shown to be mixed with some people preferring the SOA deployment approach rather than the wrapped up AIA mechanism.

PIP Auditor

The PIP auditor was provided AIA 11g as a means to perform a health check on the configuration of a PIP including custom PIPs. Whilst  it is possible also include this tool into a Continuous Integration process  aide quality management it requires a lot of work to break the lengthy report into more manageable  . However this was not heavily adopted, and also not known to be used manually either, therefore the impact of not continuing its use is negligible.

Framework & Methodology

Still applicable as this is simply a set of architectural approaches utilising Oracle Middleware products such as SOA Suite

Project Life Cycle Workbench including AIA Artefact Generator

As a design tool this has been deprecated. However from a Specsavers viewpoint this has minimal impact as the workbench has not been heavily used in this form (this includes AIA Artefact Generator) as the elements can be generated manually by SOA during the development process.

As the above diagram shows, the life cycle processes are all underpinned by the development process itself.

With respect to the deployment of artefacts such as composites,DVMs etc this is still available through standard SOA mechanisms such WLST. Viewing deployed artefacts can still be done through various management consoles.

Share this:

  • Twitter
  • Facebook
  • LinkedIn
  • Print
  • Pocket
  • Email
  • Tumblr
  • Reddit
  • Pinterest
  • WhatsApp
  • Skype

Like this:

Like Loading...

Aliases

  • phil-wilkins.uk
  • cloud-native.info
  • oracle.cloud-native.info

I work for Oracle, all opinions here are my own & do not necessarily reflect the views of Oracle

Oracle Ace Director Alumni

TOGAF 9

Logging in Action

Oracle Cloud Integration Book

API Platform Book


Oracle Dev Meetup London

Categories

  • App Ideas
  • Books
    • Book Reviews
    • manning
    • Oracle Press
    • Packt
  • Enterprise architecture
  • General
    • economy
    • LinkedIn
    • Website
  • Music
    • Music Resources
    • Music Reviews
  • Photography
  • Podcasts
  • Technology
    • APIs & microservices
    • chatbots
    • Cloud
    • Cloud Native
    • Dev Meetup
    • development
      • languages
        • node.js
    • drone
    • Fluentd
    • logsimulator
    • mindmap
    • OMESA
    • Oracle
      • API Platform CS
        • tools
      • Helidon
      • ITSO & OEAF
      • Java Cloud
      • NodeJS Cloud
      • OIC – ICS
      • Oracle Cloud Native
      • OUG
    • railroad diagrams
    • TOGAF
  • xxRetired

My Other Web Content & Contributions

  • Amazon Author entry
  • API Platform
  • Dev Meetup (co-managed)
  • Fluentd Book
  • ICS Book Website
  • OMESA
  • Ora World
  • Oracle Community Directory
  • Packt Author Bio
  • Phil on Blogs.Oracle.com
  • Sessionize Profile

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 2,573 other subscribers

RSS

RSS Feed RSS - Posts

RSS Feed RSS - Comments

March 2023
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  
« Feb    

Twitter

  • .@Oracle #CloudWorld Tour #London is just around the corner! ⏰ 🇬🇧 Don’t forget to register for the one-day #cloud… twitter.com/i/web/status/1…Next Tweet: 3 hours ago
  • Learn how @OracleCloud can help you improve the efficiency of your business operations at the upcoming Level Up eve… twitter.com/i/web/status/1…Next Tweet: 2 days ago
  • Join Juan Loaiza for the Data Strategies Day keynote at Level Up to learn how to eliminate complexity by leveraging… twitter.com/i/web/status/1…Next Tweet: 3 days ago
  • RT @WunderlichRd: Great post by @mp3monster around how APIs are relevant in so many industries! lnkd.in/eshagCDKNext Tweet: 3 days ago
  • King’s College Hospital London in Dubai announces a strategic collaboration with Oracle Cerner to help accelerate i… twitter.com/i/web/status/1…Next Tweet: 3 days ago
Follow @mp3monster

History

Speaker Recognition

Open Source Summit Speaker

Flickr Pics

Pembroke CastleSeven Bridge Crossing
More Photos

    Social

    • View @mp3monster’s profile on Twitter
    • View philwilkins’s profile on LinkedIn
    • View mp3monster’s profile on GitHub
    • View mp3monster’s profile on Flickr
    • View philmp3monster’s profile on Twitch
    Follow Phil (aka MP3Monster)'s Blog on WordPress.com

    Blog at WordPress.com.

    • Follow Following
      • Phil (aka MP3Monster)'s Blog
      • Join 218 other followers
      • Already have a WordPress.com account? Log in now.
      • Phil (aka MP3Monster)'s Blog
      • Customize
      • Follow Following
      • Sign up
      • Log in
      • Report this content
      • View site in Reader
      • Manage subscriptions
      • Collapse this bar
    Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
    To find out more, including how to control cookies, see here: Our Cookie Policy
    %d bloggers like this: