Home  /  Application Development: Creating Productions  /  Developing Productions  /  Introduction

Developing Productions
[Back]  [Next] 
InterSystems: The power behind what matters   

This chapter introduces the process of developing productions. It contains the following topics:
For an introduction to InterSystems IRIS Interoperability concepts and options, see Introducing InterSystems IRIS Interoperability. For information on how InterSystems IRIS Interoperability processing works, see the first chapter in Monitoring Productions.
Environmental Considerations
You can use InterSystems IRIS Interoperability only within a production-enabled namespace that has a specific web application. When you create classes, you should avoid using reserved package names. The following subsections give the details.
Production-enabled Namespaces
An production-enabled namespace is a namespace that has global mappings, routine mappings, and package mappings that make the classes, data, and menus that support productions available to it. For general information on mappings, see Configuring Namespaces in the chapter “Configuring InterSystems IRIS” in the System Administration Guide. (You can use the information in that section to see the actual mappings in any production-enabled namespace; the details may vary from release to release, but no work is necessary on your part.)
The system-provided namespaces that are created when you install InterSystems IRIS are not production-enabled. Any new namespace that you create is by default production-enabled. If you clear the Make this a production-enabled namespace check box when creating a namespace, InterSystems IRIS creates the namespace with productions disabled.
All system-provided namespaces are overwritten upon reinstallation or upgrade. For this reason, InterSystems recommends that customers always work in a new namespace that you create. For information on creating a new namespace, see Configuring Data in the chapter “Configuring InterSystems IRIS” in the System Administration Guide.
Web Application Requirement
Also, you can use a production in a namespace only if that namespace has an associated web application that is named /csp/namespace, where namespace is the namespace name. (This is the default web application name for a namespace.) For information on defining web applications, see “Applications” in the Security Administration Guide.
Reserved Package Names
In any production-enabled namespace, avoid using the following package names: Demo, Ens, EnsLib, EnsPortal, or CSPX. These packages are completely replaced during the upgrade process. If you define classes in these packages, you would need to export the classes before upgrading and then import them after upgrading.
Also, InterSystems recommends that you avoid using any package names that start with Ens (case-sensitive). There are two reasons for this recommendation:
A Look at a Production Definition
Although you create and configure productions in the Management Portal, it is instructive to get started by looking at the definition of a existing production class in Atelier. This following shows a simple example of a production:
Class Demo.FloodMonitor.Production Extends Ens.Production

XData ProductionDefinition
<Production Name="Demo.FloodMonitor.Production">
  <Item Name="Demo.FloodMonitor.BusinessService" 
        PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
  <Item Name="Demo.FloodMonitor.CustomBusinessProcess" 
        PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
  <Item Name="Demo.FloodMonitor.GeneratedBusinessProcess" 
        PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
  <Item Name="Demo.FloodMonitor.BusinessOperation" 
        PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
Note the following points:
Development Tools and Tasks
productions consist primarily of class definitions and some supporting entities. The process of creating a production can require a small amount of programming or possibly a large amount, depending on your needs. As noted earlier, InterSystems IRIS provides graphical tools that enable nontechnical users to create business logic visually. These tools generate class definitions as needed.
While you develop a production, you use both the Management Portal and Studio as follows.
Portal Tasks
In the Management Portal, you use wizards to define and compile the following:
You also use the Management Portal for the following additional tasks:
Studio Tasks
In Studio, you define and compile the following classes:
Also see other topics in the chapter Less Common Tasks.”
Available Specialized Classes
InterSystems IRIS provides many specialized adapter and business host classes that can reduce your development and testing time. For a summary of the most common options, see Other Production Options in Introducing InterSystems IRIS Interoperability. Rather than listing the specific classes, that chapter describes scenarios for which InterSystems IRIS provides tools. It provides references to the applicable books.
Using Studio and Atelier in InterSystems IRIS
This section briefly discusses additional Studio features and notes that apply when you are creating a production. It contains the following sections:
InterSystems IRIS Interoperability Features in Studio
The InterSystems IRIS Interoperability features of Studio become active whenever Studio is connected to an production-enabled namespace. These features are as follows:
Production Tab
For a production-enabled namespace, the Workspace window includes the Production tab. This tab lists classes related to productions. This has the following folders:
Folder All classes in this folder are subclasses of...
Adapters Ens.Adapter, including inbound and outbound adapters
Business Operations Ens.BusinessOperation.
Business Processes Ens.BusinessProcess.
Business Services Ens.BusinessService.
Data Transformations Ens.DataTransform.
Messages Ens.Request or Ens.Response.
Productions Ens.Production.
Additional Items in Other
The Other folder in the Workspace window can contain additional items that may be unfamiliar to you. These include the following:
Option to Create a Project from a Production
InterSystems IRIS Interoperability makes it easy to create a Studio project from a production, so that you can easily export a production from one system and import it into another. Use the following procedure:
  1. In the Workspace window, right-click a production.
  2. Enter a project name and click OK. A project file is saved in the current namespace. The project includes all the detectable items for this production. This includes:
Exporting and Importing Productions in Studio
You can either use the management portal or Studio to export and import a production. The management portal makes it easier to include all required components in the export. For information on using the management portal to export and import a production, see Deploying a Production.
To export a production and then export it into another namespace or instance, do the following in Studio.
  1. Create a project from the production. See the previous topic.
  2. Export the project as an XML file.
  3. Import the XML file into another namespace or instance.
For information on importing and exporting projects, see Using Studio.
If the production requires data that is stored directly in globals, see Managing Globals in Using Globals; this provides information on exporting and importing globals.
You can also export productions from the Management Portal. See Configuring Productions.
Notes on Editing the Production Class in Atelier or Studio
It is generally best to edit the production class within the Management Portal. By doing so, you can avoid introducing syntax errors and you take advantage of the type validation that the portal provides.
There are a couple of reasons, however, in which you might want to edit the class in Atelier or Studio:
The order of <Item> elements in the XData block controls one of the sorting options on the [Interoperability] > [Production Configuration] page. On this page, when you sort by number, the items are displayed in the order they are listed in the XData block, which is (initially) the order in which they were added to the production.