# Configurable Network Computing

Configurable Network Computing or CNC is JD Edwards's (JDE) client–server proprietary architecture and methodology. Now a division of the Oracle Corporation, Oracle continues to sponsor the ongoing development of the JD Edwards Enterprise Resource Planning (ERP) system, While highly flexible, the CNC architecture is proprietary and, as such, it cannot be exported to any other systems. While the CNC architecture's chief 'Claim to fame', insulation of applications from the underlying database and operating systems, were largely superseded by modern web-based technology, nevertheless CNC technology continues to be at the heart of both JD Edwards' One World and Enterprise One architecture and is planned to play a significant role Oracle's developing fusion architecture initiative. While a proprietary architecture, CNC is neither an Oracle nor JDE product offering. The term CNC also refers to the systems analysts who install, maintain, manage and enhance this architecture. CNC's are also one of the three technical areas in the JD Edwards Enterprise Resource Planning ERP which include developer/report writer and functional/business analysts.

## The CNC architecture

Oracle is continuing to develop the CNC technology and will incorporate key elements of the CNC technology into its Oracle Fusion project which will pull together technologies from JDE, PeopleSoft and its own application software technologies.
In the CNC architecture, a company's JD Edwards (JDE) business software applications run transparently insulated from both the database where the business data is stored as well as from the client computer's underlying operating system and all other intervening JDE business applications servers. In layman's terms, the business programs don't "care" where the data is or which operating system is being used on any of the end user computers. Neither do the applications servers on which business programs run need to directly "know" what database systems are being called on the data end or back end. The CNC architecture keeps track of this through various database tables that point the business applications to the servers that run or execute the business applications and also include database connection tools called database drivers that tell the system also where the database servers are and what specific databases to do lookups, data inserts and data extracts from. Because of the key nature of the underlying architecture, a sound CNC infrastructure is critical to the success of a JD Edwards OneWorld installation or implementation. The back-end databases that are supported include Oracle database, Microsoft SQL Server, and IBM DB2 databases. The application server can run on Windows platforms, Unix/Linux, and the IBM System i (formerly known as iSeries and AS/400). The web server can be IBM WebSphere (on Windows, Unix/Linux, or System i) or the Oracle Weblogic Server (on Windows or Unix/Linux).
In what has been known traditionally as client–server environments, applications must communicate across a combination of different hardware platforms, operating systems, and databases as including. The CNC architecture uses a layer of software, called middleware, which resides between the platform operating system and the JDE business applications. To accomplish this, JDE provides two types of middleware, JDENET Communication Middleware, and JDEBASE Database Middleware. The JDEBASE middleware communicates with the database through ODBC, JDBC, or SQL*Net.

### Definition and strengths of the CNC Architecture

According to the JD Edwards document, Configurable Network Computing Implementation, the CNC architecture is defined as follows:
"CNC is the technical architecture for JD Edwards OneWorld and EnterpriseOne software. CNC enables highly configurable, distributed applications to run on a variety of platforms without users or analysts needing to know which platforms or which databases are involved in any given task. CNC insulates the business solution from the underlying technology. Enterprises can grow and adopt new technologies without rewriting applications."
"Configurable Network Computing an application architecture that enables interactive and batch applications, composed of a single code base, to run across a TCP/IP network of multiple server platforms and SQL databases. The applications consist of reusable business functions and associated data that can be configured across the network dynamically. The overall objective for businesses is to provide a future-proof environment that enables them to change organizational structures, business processes, and technologies independently of each other."

#### Multi-foundation capability

Another strength of JD Edwards is its multi-foundation architecture. This means one can create separate instances of JDE on different Tools Releases and isolate these releases from each other. This is achieved by creating a separate set of system folders for the other foundation. In the main configuration file of the applications or enterprise server, JDE.ini, the incoming and outgoing ports are changed to a different one than the other foundation, so if one foundation had port 6015, then the alternate could use 6016. Also, the client-side tools release folder is installed on the deployment server and the system administrator uses the JDE Planner or installation environment to define another foundation. Subsequent full packages can then be pointed to using this different foundation.

### Weaknesses in the CNC architecture
#### Specifications file corruption with JDE Applications up to 8.12

Until the advent of EnterpriseOne applications version, 8.12 running on tools release/service pack 8.96, by far the most vulnerable aspect of the CNC technology was that proprietary object specifications had to be copied from the full client up to the applications server in order for a JDE user's data selection and processing options to be run as requested on the server. If those proprietary specifications became corrupted, the batch application object, in turn, on the applications server could become corrupted. A rebuild and redeploy of the object was the only fix. Likewise, if there is some intervening process that corrupts object specifications as they come down to the client PC, the related object could become corrupted and no longer function correctly. Since applications upgrade E812 and Tools Release or systems or foundational service pack, the proprietary specifications have been replaced with XML-based object properties which have proven to be more stable and less prone to corruption. In the fall of 2008, Oracle brought out the E900 applications release and by the fall of 2010, the tools release was up to 8.98.3.3. E900 Update 1, or E901 is the latest release as of fall 2010.

#### Specifications portability

While copying the object specifications between the different environments within the same system is easy, the code, once developed in any given system, is not easily portable to other systems. JD Edwards has developed a built-in process named "Product Packaging" to address this issue, but it's slow, not easy to use, and is limited in a number of ways. Because of this, it's mainly used to deliver software updates by Oracle itself, while independent software vendors are mostly using third-party tools like Boomerang. Product Packaging supports the export of specifications and E812 and beyond allow for versions to be exported as ZIP files through the action's column in Object Management Workbench.

#### Specifications readability

Object specifications are not easily accessible to retrieve the data from, because they are in a proprietary format. A variety of interesting information is therefore hidden from the view. Some of this data can be retrieved, interpreted, and displayed by the standard JDE software, but in many cases, this may not be enough, not fast enough, or in the desired format. Many third-party software solutions have been developed to fill this gap.

#### Complexity of the architecture

While powerful, the CNC architecture can be enormously complex making it difficult to maintain by anyone except quite senior CNC analysts. It is not uncommon to see 50 servers in some of the larger implementations and all these have to be maintained. While virtualization has helped in some areas, a lot of time has to be invested into keeping all these servers up and operational.

#### Third party applications scheduler enhancements

There are a number of third-party applications that add functionality and programmability to the JDE Scheduler. They include Cisco Tidal Enterprise Scheduler which is a JDE client-based product and Appworx, a third-party server-based scheduler in which scripting and workflow products have been customized for JDE support addressing adding to the vanilla scheduler that comes with JDE. AutoDeploy, a third-party bolt-on, fully automates the package build and deploy process for JD Edwards EnterpriseOne reducing the complexity of pre-project, project, and post-project codebase maintenance.

## CNC's interface with web-based technologies

The advent of the World Wide Web and HTML technologies have also insulated users and applications from underlying technologies. The CNC architecture combines this with its own architecture through a Java Applications Server (JAS) architecture. The web clients communicate with the CNC architecture via these JAS servers.

### Oracle releases E900 in late 2008 and E910 in 2011

In the fall of 2008, Oracle brought out the E900 applications release and by the summer of 2011, the tools release was up to 8.98.4.3. In the fall of 2009, E900 Update 1 was released. By the summer of 2011, over 2000 Electronic Software Updates (ESUs) patches were required to bring the E901 release up to the latest code current levels. In the fall of 2010, update 2 was released. In the fall of 2011, Oracle released Applications Release 9.1 and Tools Release 9.1 significantly changing the look and feel of E1.

## JDENET and JDEBASE Middleware

JDENET and JDEBase middleware are the two elements in the CNC architecture that allow JDE applications to communicate across heterogeneous distributed computing environments. JDENET handles communications at the presentation layer with other internal JDE applications, while JDEBASE is the JDE middleware that provides platform-independent multi-vendor SQL database access.

### JDENET

JDENET is the message-oriented middleware that connects the generated presentation layer of JDE applications with business function components through a standard JDE applications programming interface, or API called "jdeCallObject." The JDENET middleware, running within the CNC architecture, supports the configuration of business function components for execution in the heterogeneous distributed computing environment that the CNC architecture support.

### JDEBASE

JDEBASE is the database middleware that provides platform-independent application program interface APIs for multi-vendor database access. These APIs are used in two ways. The first way is by JDE applications that dynamically generate platform-specific Structured Query Language (SQL), depending on the data source request. The second way is as open APIs for advanced C language business function writing. JDE uses these APIs to dynamically generate platform-specific SQL statements. Thus, this middleware provides workstation-to-server and server-to-server database access. To accomplish this, both the legacy JDE OneWorld middleware as well as the newer JDE EnterpriseOne middleware incorporate database driver support for a variety of third-party database drivers including ODBC, for connection to Microsoft SQL server, OCI, for connection to Oracle database and Client Access 400 drivers for connectivity to IBM DB2.

## CNC systems analysts - also called CNCs

Systems analysts that work in this field are known as JDE CNCs. Based on the size of the company implementing a JDE system, there may be one or more CNCs. In some small companies, there is no resident CNC, but some of the day-to-day CNC functions such as security and business program object builds and deployment is done by a JDE developer on staff while a third-party CNC is called in for non-routine, critical, and/or high-risk CNC work such as system upgrades and expansion. CNC is one of the three JDE areas of expertise, the others being the JDE developer who changes code and the JDE functional analyst who is the business subject matter and business processes expert.

## What's in a name - CNC

In recent years, there has been much discussion among the CNC community on the title, "CNC." On many websites including such sites as Oracle and LinkedIn people who have worked in the CNC field for many years have proposed a new title to replace the traditional CNC term. One of the most popular is "JD Edwards Systems Architect" or "EnterpriseOne Architect" even simply "JDE Architect." This seems to be driven by the fact that many senior CNCs become involved in planning and implementing the underlying CNC architecture and that the term CNC really conveys no meaning as to the actual job description. While the discussions go round and round, recruiters who continue to use the CNC job description or dispense with the CNC term may refer to the job as "JD Edwards System Administrator." Unfortunately, this latter term is largely misunderstood by recruiters and IT people unfamiliar with the complexities of a JD Edwards Implementation and have told CNCs that from the title JDE System Administrator, their responsibilities are fairly simple and probably mimic that of an email administrator or operating systems administrator adding/deleting users and resetting user passwords. JD Edwards "Infrastructure Engineer" is often used which better explains the functions that go beyond simple administration. Despite the discussions on the utility of the CNC title, IT seems to return to it as the only industry-wide accepted way to term the job description.

## CNC-related functions

The CNC function entails a number of responsibilities or functions. Large companies may have an entire staff of CNCs, some working on security, others software change management which deploy changes in the JDE ERP system through the various stages of development, testing, and production. Other CNCs will troubleshoot performance issues, others will work on batch process automation and finally, a Senior CNC will manage the entire group and, in that capacity, will often function as the chief JDE systems architect.

### Basic CNC tasks

In order to support this architecture, CNC analysts perform a wide variety of tasks. A frequent criticism of the CNC field is that it is too complicated to be learned in any less than 2–3 years. A number of overlapped functions are involved. Some or all of the following functions:
* CNC Systems Administration which includes user and application security, user (profile) account set up, user groups (roles), task relationship (menu), and task (menu item) management
* Planning and installation of business application patches also called electronic software updates or ESUs as well as underlying foundational code or programs called tools releases or service packs
* Building and deploying changes to the business applications called package builds
* Management of various development, testing and production business environments which are self-contained sub-systems
* Printer configuration
* Server Manager (the Tools Release 8.97 and above) system management console basic skills
* Refreshing and optimization of the underlying database, working with database administrators
* Basic system auditing and performance tuning tasks
* Development of software tools and processes automate repetitive CNC tasks
* Remote CNC management through various secure access systems
* Training both business analysts, programmers, and end-users on the overall use of the JDE ERP system

### CNC Schedulers

* Batch job queues setup, batch job administration
* Workload automation
* Service Oriented job scheduling

### Senior CNC tasks

* JD Edwards installations and upgrades
* Proven experience/expertise in complicated EnterpriseOne installations/upgrades in large-scale (often global) implementations
* Database management and experience/expertise with SQL databases such as Oracle, SQL Server, and DB2/400 with regards to EnterpriseOne
* Data Conversion using EnterpriseOne development tools
* Performance tuning of applications and web servers using Server Manager to analyze kernel processes and obtain log files for detailed analysis
* Advanced problem solving and troubleshooting skills (which requires a wide range of skills beyond JDE CNC skills such as networking, storage, database, operating system, and virtual infrastructures and the ability to work with people who are experts in these areas)
* Advanced expertise in the technical architecture for EnterpriseOne (e.g., Citrix servers, WebLogic servers, WebSphere servers, deployment server, batch/enterprise servers, BSSV servers, RTE servers, mobile apps/AIS servers plus multiple OS including Windows, iSeries, Unix/Linux)
* Experience in adding custom environments and custom data source setups
* In-depth knowledge of CNC mapping configuration changes using Object Configuration Manager (OCM)
* Expertise in multiple JDE system software configurations (multi-foundation), Tools Release Updates
* Experience in designing and implementing highly available infrastructure solutions using VMware Virtual Infrastructure 3 (ESX, Virtual Center/VCenter, VMotion, HA, DRS) and Oracle VM.

## CNC training

Because of the scope of the CNC functionality, the CNC function requires intensive training. Oracle JD Edwards manages the officially required coursework, but many JDE business partners also offer training. A frequent criticism of CNC training is that far too many trainers and the syllabuses that they employ are so complicated as to be almost indecipherable to an incoming novice. The training is couched in techno-speak: terms such as path code, environment, OCM mappings are bantered about with overlapping and circular explanations that leave novices and introductory CNC students quite confused. As of 2000, there is no official certification program. A typical list of classes is as follows:
* Common Foundation – The common end-user JDE experience
* System Fundamentals – An introductory top-down look at the CNC architecture
* CNC Foundation – Introduction to CNC architecture and function
* Installation and Upgrade Overview – A combined look at installing and upgrading JDE
* Installing and Implementing – A one-week class on how to install and configure JDE
* System Administration - Security, Object Management Workbench (OMW) change management, etc.
* System Administration Accelerated - A rapid-pace approach to JDE system administration
* Advanced CNC Functions - An advanced look at the CNC architecture
* Advanced CNC Troubleshooting - Analysis of CNC issues and troubleshooting techniques
* OMW Change Management Solutions - JDE Objects Change Control using the Object Management Workbench (OMW) application
* Package Build - The process of building and deploying object changes
* Solutions Explorer - The JDE software applications security and menu management solution
* Packaged Software - Exporting changed or custom software for deployment to external JDE systems
* Programming Workflow - Building workflow tools
* Maintaining C Business Functions - How to build business functions using object development tools
* Upgrades and updates - the process of upgrading the JDE business toolset (B7333 - E900) or the underlying system/foundation "look and feel" code
* Development Tools Parts 1 and 2 - The use of the JDE software Report Design Aid, Table Design Aid, and other object development tools
* Optional training - Report writing and other development tools and functional business training (how the business processes affect the design and implementation of JDE ERP)

## Independent support for JDE CNCs

A worldwide organization, Quest Oracle Community as well as local, statewide and regional JDE user groups have CNC sub-groups that support JDE CNCs. Among the useful user websites that support JDE CNCs and other users is JDELIST which has a website at jdelist.com