Configurable Network Computing
This article contains content that is written like an advertisement. (September 2016)
Configurable Network Computing or CNC is JD Edwards's (JDE) client–server proprietary architecture and methodology that implements its highly-scalable enterprise-wide business solutions software that can run on a wide variety of hardware, operating systems (OS) and hardware platforms. Now a division of the Oracle Corporation, Oracle continues to sponsor 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, was largely superseded by modern web-based technology, nevertheless CNC technology continues to be at the heart of both JD Edwards' OneWorld and EnterpriseOne architecture and will 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. CNCs are also one of the three technical areas of expertise 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....(it is) 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 to provide a future-proof environment that enables them to change organizational structures, business processes and technologies independently of each other."
Another strength of JD Edwards is its multi-foundation architecture. This means that one can create separate instances of JDE on different Tools Releases and isolate these release from each other. This is done 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 use 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 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 has 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 18.104.22.168. E900 Update 1, or E901 is the latest release as of fall 2010.
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 actions column in Object Management Workbench 
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, nor fast enough, nor in the desirable 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 work-flow product 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, in project and post project code base maintenance.
CNC's interface with web-based technologies
The advent of the world wide web and HTML technologies has 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 22.214.171.124. In the fall of 2009, E900 Update 1 was released. By 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 application, while JDEBASE is the JDE middleware that provides platform-independent multi-vendor SQL database access.
JDENET is the message-oriented middleware that connects the generated presentation layer of JDE applications with business function components through a standard JDE applications programing 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 is the database middleware that provides platform-independent application program interfaces 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 web sites 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 nomen. 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 continue to use the CNC job description or dispensing with the CNC term may refer to the job as "JD Edwards System Administrator." Unfortunately, this later 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. Despite the discussions on the utility of the CNC title, the IT seems to return to it as the only industry-wide accepted way to term the job.
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, other will work on batch process automatization 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
- 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 file for detailed analysis
- Advanced problem solving and trouble shooting 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's including Windows, iSeries, Unix/Linux)
- Experience in adding custom environments and custom datasource 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.
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)
Oracle's CNC certification program
After more than a decade of discussion, Oracle has resurrected a JDE-CNC certification program.
- The certification link is at https://web.archive.org/web/20110929025144/http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=439
- Exam details are at https://web.archive.org/web/20110929025144/http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=439
- Currently listed CNC Exam topics as of January 2011.
JDE-CNC Exam topics 
|CNC Foundation & Terminology|
|Work with Environments|
|Work with Path Codes|
|Use Object Management Configuration|
|Create Data Sources|
|Explain Server Types|
|Describe User Overrides|
|Work with Printers|
|Work with Universal Table Browser / Data Browser|
|Creating Scheduled Jobs with Scheduler|
|Describe Media Objects|
|Work with Server Jobs|
|Creating Job Queues|
|Managing Cross Reference Information|
|Architecture, Performance and Troubleshooting|
|Explain JDE Middleware|
|Explain the Different JDE Platforms|
|Explain Oracle VM Templates|
|Implementing JDE in a Multi-Foundation Environment|
|Describe the JDE Kernels|
|Troubleshooting with Server Manager|
|Using Resource Manager|
|Explain JDE Clustering|
|Implementing Single Sign On with JDE|
|Explain JDE Data Replication|
|Explain JDE Backup Schemas|
|Explain JDE Subsystems|
|Describe Object Storage|
|Object Types and Anatomy|
|Object Check Out/In/Get|
|Utilizing OMW Tokens|
|Setting up Save/Restore in OMW|
|Interpreting OMW Logging|
|Setting up Object Management Configuration|
|Defining Activity Rules|
|Explain Allowed Actions|
|Administering Data Dictionary Items|
|Describe Vocabulary Overrides|
|Creating Full Packages|
|Creating Update Packages|
|Working with Package Features|
|Building a Client Package|
|Building a Server Package|
|Building an Update Package|
|Deploying a Full Package|
|Deploying an Update Package|
|Deploying a Server Package|
|Deploying to an HTML Server|
|Defining Multi-Tier Deployment|
|Explain Business Services Server Deployment|
|Working with Package History|
|Reviewing Package Build Log Files|
|Creating User Profiles|
|Working with Roles|
|Explain Role Sequencing|
|Explain Signon Security|
|Working with Security Workbench|
|Applying Application Security|
|Applying Action Security|
|Applying External Application Security|
|Applying Exit Security|
|Applying Processing Option Security|
|Applying Row Security|
|Applying Column Security|
|Applying Solution Explorer Security|
|Applying Tab Security|
|Applying Portal Security|
|Applying Security Model/Hierarchy|
|Applying OMW/OMC Security|
|Implementing Database Security|
|Implementing Enterprise Server Security|
|Implementing HTML Server Security|
|Implementing Deployment Server Security|
|Implementing Server Manager Security|
|Implementing Desktop Security|
|Install & Upgrade|
|Explain Minimal Technical Requirements|
|Executing a Deployment Server Installation|
|Executing a Platform Pack (Enterprise, Database) Server Installation|
|Executing a Server Manager Installation|
|Creating an HTML Server Instance|
|Creating a Business Services Server Instance|
|Creating a Transaction Server Instance|
|Installing Portal Server|
|Installing a Development Client|
|Creating an Installation/Upgrade Plan|
|Running the Installation/Upgrade Workbench|
|Describe Application Upgrades (ex. Xe->E9.0)|
|Describe Electronic Software Updates|
|Explain Application Updates (ex. E9.0 Update 3)|
|Implementing Tools Updates (ex. 8.98.4)|
|Using Change Assistant|
|Describe the Post Install/Upgrade Steps|
|Installing and Configuring Peoplebooks|
|Installing Additional Languages|
|Running EnterpriseOne Services|
|Implementing Oracle Business Accelerators|
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 web sites that support JDE CNCs and other users is JDELIST which has a website at jdelist.com
- JD Edwards
- Oracle Corporation
- Enterprise resource planning also known as ERP
- Oracle Fusion Middleware Oracle Fusion middleware connectivity software
- Oracle Fusion Information URL
- Configurable Network Computing, URL
- "Everest Software International". Archived from the original on 2007-08-30. Retrieved 2007-12-02.
- Everest Software International
- JD Edwards Forums - JD Edwards Jobs - JD Edwards Enterprise One - JD Edwards World: We cannot proceed
- "JD Edwards Training Catalog for World and EnterpriseOne Clients from JDEtips". Archived from the original on 2007-08-20. Retrieved 2007-09-10.
- "Oracle's JD Edwards CNC Certification Program". Archived from the original on 2010-10-22. Retrieved 2011-01-18.