Skip to main content
What is Nucleus in ATG?

  • Nucleus is is ATG Commerce Component Model that helps to assemble application components using configuration file. 
  • A configuration file specifies the name of components and required parameters by components
  • Nucleus doesn't provide any application-specific functionality
  • Application functionality is provided by JavaBean Components
  • Nucleus helps to create components and helps to find components each other
  • To do this, nucleus organizes application components into a hierarchy, and assigns a name to each component, based on its position in the hierarchy
  • For example, a component named /services/logs/FileLogger represents a component called FileLogger, contained by the container component called logs, which is itself contained bcalled services. The services component is contained by the root component of the hierarchy, which is Nucleus. Components in the hierarchy can refer to each other by name
  • Application doesn't need code to create its components. It is done by configuration file that specifies initial class responsible for component and its initial values
  • Nucleus looks for the configuration file to initialize and load component
  • So in simple words, we create a JavaBean which must have empty constructor to create a component for an application
  • Usually an internet application begins with an architectural diagram like database connection component, search engine and several rule to follow
  • To deliver this solution, we may use existing component if available and breakdown our large component into sub components as much as possible.

Nucleus is able to handle large number of components.
  • Use existing components where appropriate. If no component exists to do the job, try subclassing an existing component.
  • Break down large components into smaller components. Smaller components are easier to test, reuse, and inspect at runtime. This might result in a larger number of components, but Nucleus is designed to handle large numbers of components. Large monolithic components are sometimes difficult to spot, so always be on the lookout. It is generally good practice to design each component to perform a single function that can be described in a short paragraph.
  • Centralize functions that are shared by multiple components. For example, one component might spin off a thread that causes email to be sent every hour, while another component might spin off another thread that archives a log file each day. Both timing threads can be eliminated if the components take advantage of a centralized Scheduler component.
  • If a component is not completely self-contained—usually the result of following the previous point—be sure that its dependencies on other components are clearly enumerated. These dependencies are usually listed as properties of the component (see below). For example, a component might require a pointer to a Scheduler component and a DatabaseConnection component, so the component has properties of those types. A component should never need to know about its position in the grand scheme of the architecture—it only needs to know its most immediate dependencies.
  • When the architectural plan is complete, you can implement it with Nucleus and JavaBeans. If you design each component as a JavaBean, you can rely on Nucleus to create, initialize, and establish the relationship between Beans. You can build the components without regard for their initialization values or how their dependencies on other components are satisfied. These application-specific concerns are contained in configuration files that are read and interpreted by Nucleus.

Comments

Popular posts from this blog

OpenText xPression Administration

xPressionHome is the environmental variable that point the xPression installation directory. xPression system is a client/server environment, where xPression client must logon to xPression server. xPression users may be authenticated in four ways: * Local Authentication: User is authenticated on local machine by adding user to local user list on the server. To enable local user authentication, dscsecurity.properties  file is configured for properties  IMPL_CLASS = com.dsc.uniarch.security.user.NTUser [for windows user] / com.dsc.uniarch.security.user.LinuxUser [for linux user]  and NT_AUTH = <server-name> Note: LDAP Properties must be commented * LDAP Authentication: At the time of xPression installation wizard, installer need to place LDAP authentication credentials. These settings are kept in ldapcfg.properties file, the path for ldapcfg.properties is given in dscsecurity.properties files. * SiteMinder Authenticaion: It is the third party ap...

Java Facades

What is Facades? A facade provides a simplified interface to a larger body of code, such as a class library. Using faces, we can make More readable library Wrapped a poorly designed collection of API in a single well - designed API Reduces dependency of outside code on inner working library Facade example on Java /* Complex parts */ class CPU { public void freeze () { ... } public void jump ( long position ) { ... } public void execute () { ... } } class HardDrive { public byte [] read ( long lba , int size ) { ... } } class Memory { public void load ( long position , byte [] data ) { ... } } /* Facade */ class ComputerFacade { private CPU processor ; private Memory ram ; private HardDrive hd ; public ComputerFacade () { this . processor = new CPU (); this . ram = new Memory (); this . hd = new HardDrive (); } public ...

Android Background Operations

Background operation are very helpful, while you are needed to perform operation in the background and want to continue with other applications simultaneously. There are four ways to run background jobs: Sched ule Jobs are jobs while are about run at defined time. For example, if application cache need to be refreshed at defined time. It is used to run task asynchronously. JobS cheduler is a robust way to run background tasks. it is useful for small as well as large asynchronous tasks. In addition, there are several other facilities available to write jib scheduling tasks. It was first available in Android 5.0, (21), Android 7.0 (24) added ability to trigger job on ContentProvider change. You can register jobs by specifying their network and timing requirements. It also defer the execution as necessary to comply with Doze and App Standby restrictions. For Android 5.0, it is advised to use job scheduling only. AlarmManager is another way for scheduling, useful to post notifica...