Planning to use JSON web services

Before you can plan to use JSON web services in CICS®, you need to consider these questions for each application.

Before you begin

Do you plan to use your existing application programs, or write new ones?
If your existing applications are designed with a well defined interface to the business logic, you will probably be able to use them in a web services setting, either as a service provider or a service requester. However, in most cases, you will need to write a wrapper program that connects your business logic to the web services logic.

If you plan to write new applications, you should aim to keep your business logic separated from your web services logic, and, once again, you will need to write a wrapper program to provide this separation. However, if your application is designed with web services in mind, the wrapper might be simpler to write.

Do you intend to use the CICS assistant to generate the mappings between your data structures and JSON schemas?
The assistant provides a rapid deployment of many applications into a JSON web services setting with little or no additional programming. And when additional programming is required, it is usually straightforward, and can be done without changing existing business logic.

However, there are cases which are better handled without using the JSON assistant. For example, if you have existing code that maps data structures to JSON messages, there is no advantage in reengineering your application with the JSON assistant.

Although the CICS assistant supports the most common data types and structures, there are some that are not supported. In this situation, you should check the list of unsupported data types and structures for the language in question, and consider providing a program layer that maps your application data to a format that the assistant can support. If this is not possible, you will need to parse the message yourself. For details on what the assistant can and cannot support, see High-level language and JSON schema mapping.