Friday, May 16, 2014

Environment Files in Oracle Applications..

The location of environment files is shown in the following table:



Other Environment Files:

Several other key environment files are used in an Oracle Applications system.

The adovars.env file:

The adovars.env file, located in $APPL_TOP/admin, specifies the location of various files such as Java files, HTML files, and JRE (Java Runtime Environment) files. It is called from themain applications environment file, <CONTEXT_NAME>.env. The adovars.env file includes comments on the purpose and recommended setting of each variable. In a Release 11.5.10 environment, adovars.env is maintained by AutoConfig and should not be edited manually, except in specific cases where customizations have to be used.

The adconfig.txt file:

AD utility programs perform a variety of database and file management tasks. These utilities need to know certain configuration information to run successfully. This configuration information is specified when Oracle Applications is installed, and subsequently stored in the adconfig.txt file in the <APPL_TOP>/admin directory. Once it has been created, this file is used by other Oracle Applications utilities.

Note: adconfig.txt is created with the APPL_TOP file system, and it shows the tiers that have been configured on a particular node. It is distinct from the config.txt file created by Rapid Install.

The fndenv.env file:


This file sets additional environment variables used by the Application Object Library. For example, it sets APPLBIN as the name of the subdirectory where product executable programs and shell scripts are stored (bin). This file should not be modified;the default values are applicable for all customers. The file is located in the FND_TOP directory.

The devenv.env file:


This file sets variables that let you link third-party software and your own custom-developed applications with Oracle Applications. This script is located in FND_TOP, and is automatically called by fndenv.env. This allows you to compile and link custom Oracle Forms and Reports user exits and concurrent programs with Oracle Applications.

Oracle Applications Architecture..

              
First I want to discuss terminology which you will encounter in Oracle Documentation.

              The Oracle Applications Architecture is a framework for multi-tiered, distributed
computing that supports Oracle Applications products. In this model, various servers are

distributed among multiple levels, or tiers.

•  Server - is a process or group of processes and provides a particular functionality/service For example, Database Server listen and process database requests, similarly Web Server listens for and processes HTTP requests.

•  Tier - is a logical grouping of services, may be on single machine or spread across more than one physical machine. For Example, Middle Tier in Oracle apps consist Form,Web,Report...Services. Forms & Report can be one machine 1 & Web Server can be on machine 2, still they will be part of same tier called as Application Tier or Middle Tier.

•  Node - is referred as Machine, Each tier may consist of one or more node and each node can potentially have more than one tier.

Architecture:


The three disctinct “Tiers” in Oracle applications are:

1. Desktop Tier
2. Application Tier
3. Database Tier

The Desktop Tier:

 The client interface is provided through HTML for the Self-Service interface, and a Java applet for the professional, forms-based interface using a Java-enabled Web browser. The desktop client with Oracle JInitiator downloads the applet on demand and the applet is cached locally for future use.



      In Oracle Applications Release 11i, each user logs in to Oracle Applications through the E-Business Suite Home Page on a desktop client web browser. The E-Business Suite Home Page provides a single point of access to HTML-based applications, Forms-based applications, and Business Intelligence applications.

       The Forms client applet is a general-purpose presentation applet that supports all Oracle Applications Forms-based products, including those with customizations and extensions. The Forms client applet is packaged as Java archive (JAR) files. The JAR files contain all Java classes required to run the presentation layer of Oracle Applications forms. The Forms client applet and commonly used JAR files are downloaded from the Web server at the beginning of the client’s first session. Other less commonly used JAR files are downloaded as needed. The JAR files remain in the disk cache on the desktop, ready for future sessions, minimizing network traffic. All updates are installed on the application tier and downloaded to the client automatically through the use of the JInitiator-enabled Web browser.

Oracle JInitiator:

The Forms client applet must run within a Java Virtual Machine (JVM) on the desktop. For Oracle Applications, the JVM is supplied by Oracle JInitiator. Oracle JInitiator works in conjunction with the Web browser. It is implemented on the desktop client as a plug-in (Netscape Communicator) or ActiveX component (Microsoft Internet Explorer). When a user enters the desired Oracle Applications sign-on URL within the Web browser, Oracle JInitiator is executed. If Oracle JInitiator has not been installed, the Web browser prompts the user to download the necessary installation executable to the desktop client. Once installed, Oracle JInitiator runs the Forms client applet and starts an Oracle Applications session.

The Application Tier:


The application tier has a dual role: hosting the various servers that process the business logic, and managing communication between the desktop tier and the database tier. This tier is sometimes referred to as the middle tier. Oracle9i Application Server (9iAS) provides the technology used on the application tier. Six servers comprise the application tier for Oracle Applications:

• Web server
• Forms server
• Reports server
• Discoverer server (optional)
• Concurrent Processing server
• Admin server

The application tier supports load balancing among many of its servers to provide higher availability, fault tolerance, reliability, and optimal scalability. Load balancing occurs when there are multiple installations of the following:

■ Web server
■ Forms server
■ Reports server
■ Concurrent Processing server
■ Admin Server

Web Server:


The Oracle HTTP server (powered by Apache) acts as the Web server. It processes the requests received over the network from the desktop clients, and includes additional components such as:

• Web Listener
• Java Servlet Engine
• JavaServer Pages (JSP)


The Web listener component of the Oracle HTTP server accepts incoming HTTP requests from client browsers.

The Oracle Applications Framework is the development platform for HTML-based applications. It consists of a Java-based application tier framework and associated services, designed to facilitate the rapid deployment of HTML-based applications.

Notable Oracle Applications Framework components include:

• Business Components for Java (BC4J), included in Oracle JDeveloper, is used to create Java business components for representing business logic. It also provides a mechanism for mapping relational tables to Java objects, and allows the separation of the application business logic from the user interface.
• AOL/J supplies the Oracle Applications Framework with underlying security and applications Java services. It provides the Oracle Applications Framework with its connection to the database, and with application-specific functionality such as flexfields.


HTML Based Applications

Java Servlet Access with HTML-Based Applications

An HTML-based Applications module uses the following access path:

1. The user clicks the hyperlink of a function from a browser.
2. The browser makes a URL request to the Web listener.
3. The Web listener contacts the Servlet engine (JServ) where it runs a JSP.
4. The JSP obtains the content from the Applications tables and uses information from
     the metadata dictionary to construct the HTML page.
5. The resulting HTML page is passed back to the browser, via the Web server.

Forms Server:


The Forms server caches data and provides it to the client as needed, for example when scrolling through multiple order lines that exceed the limitations of a single screen. The Forms server communicates with the desktop client using these protocols:

• Standard HTTP network connection
• Secure HTTPS network connection
• TCP/IP connection

Forms Server Architecture


Reports Server:


The Reports server is automatically installed on the same node as the Concurrent Processing server, and its reports are contained in the same directory as the concurrent processing reports. However, reports generated by the Reports server are monitored and administered separately from concurrent processing reports. The Reports server dynamically selects the report language at run-time, so users see
their reports in their preferred language.

Reports Server Architecture

1. The user clicks the hyperlink of a function from a browser.
2. The browser makes a URL request to the Web listener.
3. The Web listener contacts the Reports server through the reports Web CGI. The reports Web CGI allows the user to run reports and see the output through a Web browser.
4. The Reports server starts the Reports runtime engine.
5. The Reports runtime engine locates the necessary reports and connects to the database to query the requested information.
6. The queried information is presented to the user in the form of an HTML page

Concurrent Processing Server:


User interactions with Oracle Applications data are conducted via HTML-based Applications or the more traditional Forms-based Applications. However, there are also reporting programs and data updating programs that need to run either periodically, or on an ad hoc basis. These programs, which operate in the background while users continue to work on other tasks, may contain a very large number of data-intensive computations, and are run using the concurrent processing architecture. To ensure that resource-intensive concurrent processing operations do not interfere with interactive operations, they are run on a specialized
server, the Concurrent Processing server.

Concurrent Processing O/P

Processes that run on the concurrent processing server are called concurrent requests. When you submit such a request, either through HTML-based or Forms-based Applications, a row is inserted into a database table specifying the program to be run. A concurrent manager then reads the applicable requests in the table, and starts the associated concurrent program. The Internal Concurrent Manager service monitors the database table for new requests, controls the other concurrent managers, and determines when a request should be processed and which concurrent manager should carry it out.

Parallel concurrent processing enables you to:

• Run concurrent processes on multiple nodes to improve concurrent processing throughput.
• Continue running concurrent processes on the remaining nodes when one or more nodes fail
• Administer concurrent managers running on multiple nodes from any node in the cluster

              One or more concurrent managers can be specified to run on one or more nodes, to best suit your processing needs and fully utilize available hardware resources.

Admin Server:


The Admin (Administration) server is located on the node where you maintain the data model and data in your Oracle Applications database. You carry out the following operations from this server:

• Upgrading Oracle Applications
• Applying database patches to Oracle Applications
• Maintaining Oracle Applications data

The Database Tier:


The database tier contains the Oracle database server, which stores all the data maintained by Oracle Applications. The database also stores the Oracle Applications online help information. The database tier contains the Oracle data server files and Oracle Applications database executables that physically store the tables, indexes, and other database objects for your system. The database server does not communicate directly with the desktop clients, but rather with the servers on the application tier, which mediate the
communications between the database server and the clients.


Monday, January 6, 2014

Personal Computer v/s Server


What is a PC?

A personal computer (PC) is a general-purpose computer, whose size, capabilities and original sale price makes it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator.

What is a Server?


A server is a system (software and suitable computer hardware) that responds to requests across a computer network to provide, or help to provide, anetwork service.


            We are already very familiar with what a personal computer is since it has slowly become an intricate part of life for most of us. The term was originally meant to point out slower computers that are not suitable for the more complicated and taxing applications that are often run in a corporate server, and are therefore restricted to personal use. This has become largely untrue today since most personal computers are able to host almost any kind of server.

            Servers exist in a very wide variety of configurations and applications. There are HTTP servers, DNS server, mail servers, game server, and many more. Though it is possible to use PCs to host servers, most of the bigger companies do not do this since the loads that they often experience are far greater than what a regular PC can handle. For most business applications, high end computer servers or mainframes are used to keep thousands of users happy at the same time. These machines are way more advanced and complex than a PC.

            Servers are also kept running for extended periods of time in order to prevent uninterrupted service to clients all over the world. This requirement led to the development of technologies that are not common or present in PCs. Redundancy is very essential in servers since it allows components of the computers to fail without bringing down the whole system. Hard drives and power supplies in a server are often redundant and can be replaced with minimal or no disruption to the service.

Summary:
  • A PC is a collection of hardware while a server can either be hardware or software.
  •  A single PC can host multiple servers at the same time but with a limited number of users.
  •  Most serious businesses utilized high end servers with hardware that are not usually found in PCs to cope with great demands.
  • Servers are kept running for weeks or months at a time and requires redundant systems to cope with failure.

Sunday, January 5, 2014

Architectures

What is an Architecture?

An architecture is a blue print image or a designed structure of any object.

why do we use an architecture?

We use architectures in-order to have complete visualization of a particular object we are working with.

There are many types of Architectures. They are:

  • 1-Tier Architecture.
  • 2-Tier Architecture.
  • 3-Tier Architecture.
  • n-Tier Architecture.
1-Tier Architecture:

One-tier architecture involves putting all of the required components for a software application or technology on a single server or platform. This kind of architecture is often contrasted with multi-tiered architecture or the three-tier architecture that's used for some Web applications and other technologies where various presentation, business and data access layers are housed separately.One-tier architecture is also known as single-tier architecture.


2-Tier Architecture:

Refers to client/server architectures in which the user interface runs on the client and the database is stored on the server. The actual application logic can run on either the client or the server. A newer client/server architecture, called a three-tier architecture introduces a middle tier for the application logic.

3-Tier Architecture: 

With the advent of internet,many people jumped to the conclusion that the das of a main frame were back. A host of 'thin-client' application were developed. Thus 3-tier architecture were born. This application runs the traditional client/server model but from a web server. The client only displays the GUI and data but has no part in producing results. Due to this type of architecture there are many benefits. Some of them are:
  • Scalability.
  • Better re-use.
  • Improve data integrity.
  • Improved security.
  • reduced distribution.
  • Improved availabilty.
  • Hidden database structure.
Likewise, there are a few drawbacks:
  • Increased complexity.
  • Tools used are less compared to 2-tier (Eg: repporting tools).


N-Tier Architecture:

N-Tier architecture is an industry-proved software architecture model, suitable to support enterprise-level client/server applications by resolving issues like scalability, security, fault tolerance and etc.



N-tier application architecture provides a model for developers to create a flexible and reusable application. By breaking up an application into tiers, developers only have to modify or add a specific layer, rather than have to rewrite the enitire application over, if they decide to change technologies or scale up. In the term "N-tier," "N" implies any number -- like 2-tier, or 4-tier; basically, any number of distinct tiers used in your architecture. Application architectures are part of Layer 7 of the OSI model.



FileSystem.

What is a file system?

In computing, a file system (or filesystem) is used to control how information is stored and retrieved. Without a file system, information placed in a storage area would be one large body of information with no way to tell where one piece of information stops and the next begins.

Why do we use a file System?

We use a file system for storing the data in an organized form by which we can identify our data easily.

What if we don't have a concept of file system?

If we don't have a concept of file system then the location of data stored cant be traced easily and the retrieval of data becomes complexed.

There are many different kinds of file systems. Each one has different structure and logic. Each one has different properties of speed, flexibility, security, size and more. Some file systems have been designed to be used for specific applications.

What is Windows File System?

Windows mainly support FAT (File Allocation Table) and NTFS (New Technology File system). Windows NT 4.0, Windows 200, Windows XP, Windows .NET server and Windows workstation use NTFS as their preferred file system. Still, FAT can be used with floppy disks and older Windows versions (for multi-boot systems). FAT is the initial file system used in Windows. FAT was used with DOS, and its three versions are FAT12, FAT16 and FAT32. The number of bits used to identify a cluster is the number that is used as the suffix in the name. FAT12, FAT16 and FAT32 have 32MB, 4GB and 32GB as the maximum partition sizes.
NTFS has completely different data organization architecture. Basically, Microsoft developed NTFS to compete with UNIX, by replacing the much more simple FAT. However, the newest FAT version called exFAT is claimed to have certain advantages over NTFS. A FAT partition can be easily converted to a NTFS partition without loosing data. NTFS supports features like indexing, quota tracking, encryption, compression and repair points. Windows uses drive letter to distinguish partitions. Traditionally, The C drive is the primary partition. Primary partition is used to install and boot Windows. Drive letter can be used for mapping network drives as well.

What is Linux File System?

A variety of files systems can be sued with Linux. Commonly used file systems are ext* family (ext, ext2, ext3 and ext4) and XFS. Silicon Graphics developed XFS, which is a journaling system with high performance. The ext (extended file system) was developed in early 1990’s. It was the first file system used in Linux operating system. Remy Card developed it by getting inspiration from the UFS (UNIX File System).
On Linux, everything is a file. If something is not a file, then it is a process. Programs, audio, video, I/O devices and other devices are considered as files. In Linux, there is no difference between a file and a directory. A directory is simply a file containing names of a set of other files. Special files are a mechanism used for I/O (found in /dev). Sockets (another special file type) provide inter-process communication. Named pipes (much like sockets) are used for inter-process communication without network semantics.

What is the difference between Linux File System and Windows File System?

Windows uses FAT and NTFS as file systems, while Linux uses a variety of file systems. Unlike Windows, Linux is bootable from a network drive. In contrast to Windows, everything is either a file or a process in Linux. Linux has two kinds of major partitions called data partitions and swap partitions. Because of the existence of swap partitions, you never run out of memory in Linux (like in windows). In terms of recovery tools, only a limited number of tools can be used on Windows, while there is a large number of UNIX based recovery tools available for Linux file systems.

Environment Variables

What is an environment variable?

         Environment variables are a set of dynamic named values that can affect the way running processes will behave on a computer. They can be said in some sense to create the operating environment in which a process runs.

Examples of environment variables include:

  • Path - lists directories the shell searches, for the commands the user may type without having to provide the full path.
  • Temp - location where processes can store temporary files
  • UserProfile - indicate where a user's home directory is located in the file system.
  • AppData\{DeveloperName\AppName} - for storing application settings.
  • Temp - location where processes can store temporary files. 

Types of environment variables

The following list describes the various types of variables in descending order of precedence:
  1. System variables (built-in variables & ones from the HKEY_LOCAL_MACHINE hive)
  2. Local variables found in the HKEY_CURRENT_USER hive
  3. All environment variables and paths set in the Autoexec.bat file (if present)
  4. All environment variables and paths set in a logon script (if present)
  5. Variables used interactively in a script, batch file or application.

Why do we use environment variable?

We use these variables in order to access our required software easily, without setting the path everytime when we are using the s/w. For this purpose, we set the s/w path in environment variables and run our s/w when ever needed.

Environment Variables can be set in any of the operating system, but configuring these variables are a bit different but does the same work.

Configuring Environment Variables in windows Operating System:

1) Right click on the Computer icon on your Desktop and choose Properties option.



Figure 1


2) In the System window click on Advanced system settings in the left pane as highlighted below



Figure 2


3) In the System Properties window select Advanced tab and click on Environment Variables…button given at the bottom of the window as highlighted below



Figure 3


4) In the Environment Variables window you will notice two columns User variables for a username and System variables.



Figure 4


5) Now to add a new User variable click on New… button. In the New User Variable dialog box type the Variable name and Variable value and click OK button



Figure 5


OR

To remove a User variable click on the required User variable and then click on Delete button.

OR

To edit a User variable click on Edit… button. In the Edit User Variable dialog box edit the Variable name and Variable value and click OK button



Figure 6


Note: If you want to add, remove or edit System Variables then repeat this step under System variables column but be careful while doing this.

6) Click OK button in the Environment Variables dialog window

7) Click OK on System Properties window

8) Close System window

Configuring Environment Variables in linux OS:

You can modify each environmental or system variable using the export command. Set the PATH environment variable to include the directory where you installed the bin directory with perl and shell scripts:
 
export PATH=${PATH}:/home/vivek/bin
 
OR
 
export PATH=${PATH}:${HOME}/bin
 
And to make these settings permanent, the following must be done:
The ~/.bash_profile ($HOME/.bash_profile) or ~/.prfile file is executed when you login using console or remotely using ssh. Type the following command to edit ~/.bash_profile file, enter:$ vi ~/.bash_proflle
Append the $PATH settings, enter:
export PATH=${PATH}:${HOME}/bin
Save and close the file.

Friday, January 3, 2014

Operating System

      An operating system (OS) is a collection of software that manages computer hardware resources and provides common services for computer programs. The operating system is an essential component of the system software in a computer system. Application programs usually require an operating system to function.

        Examples of popular modern operating systems include Android, BSD, iOS, Linux, OS X, QNX, Microsoft Windows, Windows Phone, and IBM z/OS. All these, except Windows, Windows Phone and z/OS, share roots in UNIX.

Types of operating systems:

  • Real Time
  • Multi-User
  • Multi-tasking v/s single-tasking
  • Distributed
  • Embedded
      A real-time operating system is a multitasking operating system that aims at executing real-time applications. Real-time operating systems often use specialized scheduling algorithms so that they can achieve a deterministic nature of behavior. The main objective of real-time operating systems is their quick and predictable response to events. They have an event-driven or time-sharing design and often aspects of both. An event-driven system switches between tasks based on their priorities or external events while time-sharing operating systems switch tasks based on clock interrupts.

      A multi-user operating system allows multiple users to access a computer system at the same time. Time-sharing systems and Internet servers can be classified as multi-user systems as they enable multiple-user access to a computer through the sharing of time. Single-user operating systems have only one user but may allow multiple programs to run at the same time.

      A multi-tasking operating system allows more than one program to be running at the same time, from the point of view of human time scales. A single-tasking system has only one running program. Multi-tasking can be of two types: pre-emptive and co-operative. In pre-emptive multitasking, the operating system slices the CPU time and dedicates one slot to each of the programs. Unix-like operating systems such as Solaris and Linux support pre-emptive multitasking, as does AmigaOS. Cooperative multitasking is achieved by relying on each process to give time to the other processes in a defined manner. 16-bit versions of Microsoft Windows used cooperative multi-tasking. 32-bit versions of both Windows NT and Win9x, used pre-emptive multi-tasking. Mac OS prior to OS X used to support cooperative multitasking.

       A distributed operating system manages a group of independent computers and makes them appear to be a single computer. The development of networked computers that could be linked and communicate with each other gave rise to distributed computing. Distributed computations are carried out on more than one machine. When computers in a group work in cooperation, they make a distributed system.

       Embedded operating systems are designed to be used in embedded computer systems. They are designed to operate on small machines like PDAs with less autonomy. They are able to operate with a limited number of resources. They are very compact and extremely efficient by design. Windows CE and Minix 3 are some examples of embedded operating systems.