answersLogoWhite

0

📱

Software Engineering

Software engineering is the process of applying well-developed techniques and practices in order to create new software products. Questions about everything from design patterns to requirements and specification belong here.

1,663 Questions

How much do you get paid technical engineering?

it depends if there are smart and have better qulification then the rest and a good team player then you will get paid probably about £57000-£65000

What is Analysis modeling?

Define data dictionary giving an example of what one may contain?

Write a program with a loop that lets the user enter a series of integers the user should enter -99 to signal the end of the series after the program should display the largest and smallest.?

#include<iostream.h>

#include<conio.h>

main()

{

int i,j;

i=0;

j=0;

for(i=1;i<=5;i++)

{

if(i>j){

cout<"the value of i is="<<i;

}

else

{

cout<<"the value of j is="<<j;

}

}

getch();

}

Is there software firewall in Windows?

There is indeed a software firewall in just about any version of Windows (and going way back, too!). You may find it in the Control Panel labeled, not surprisingly, as Windows Firewall.


There are also numerous anti-virus programs that include-or act like-a firewall.


If you are using a router-line or wireless-it, most likely, has a hardware firewall. You should know that running two or more firewalls, either software-based or hardware-based, is not recommended (they conflict with one another). In the same way, running more than one anti-virus program at a time will decrease your ability to fight viruses and create conflicts within the operation of both of them!


-InThree21

Advantages and disadvantages of file base approch with respect to database approch?

Data Redundancy

Data Redundancy means same information is duplicated in several files. This makes data redundancy.

Data Inconsistency

Data Inconsistency means different copies of the same data are not matching. That means different versions of same basic data are existing. This occurs as the result of update operations that are not updating the same data stored at different places.

Example: Address Information of a customer is recorded differently in different files.

Difficulty in Accessing Data

It is not easy to retrieve information using a conventional file processing system. Convenient and efficient information retrieval is almost impossible using conventional file processing system.

Data Isolation

Data are scattered in various files, and the files may be in different format, writing new application program to retrieve data is difficult.

Integrity Problems

The data values may need to satisfy some integrity constraints. For example the balance field Value must be grater than 5000. We have to handle this through program code in file processing systems. But in database we can declare the integrity constraints along with definition itself.

Atomicity Problem

It is difficult to ensure atomicity in file processing system.For example transferring $100 from Account A to account B.If a failure occurs during execution there could be situation like $100 is deducted from Account A and not credited in Account B.

Concurrent Access anomalies

If multiple users are updating the same data simultaneously it will result in inconsistent data state. In file processing system it is very difficult to handle this using program code. This results in concurrent access anomalies.

Security Problems

Enforcing Security Constraints in file processing system is very difficult as the application programs are added to the system in an ad-hoc manner.

What is software engineering?

The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting.

Software Engineering is an approach to developing software that attempts to treat it as a formal process more like traditional engineering than the craft that many programmers believe it is. We talk of crafting an application, refining and polishing it, as if it were a wooden sculpture, not a series of logic instructions. The problem here is that you cannot engineer art. Programming falls somewhere between an art and a science.

How do you make a library system in PHP?

Assuming that "a collection of useful functions" is the intended meaning of "library," this is essentially the same process in all languages. The primary difference from an application is that a library doesn't actually do anything; it only provides tools which other programs can use. To that end, you should ensure that your functions work for as wide a variety of use-cases as is practical. However, also be careful to not make the logic overly complex to support some corner cases.

You should first decide what the central purpose of the program is, and set about writing functions (and classes, in some cases) which satisfy that purpose. This can be done in at least two ways: by detailed pre-planning, or by quickly implementing everything according to the concept in your own head.

Detailed pre-planning is the better method (for any large program, not just libraries), but some programmers have difficulty designing a program on paper rather than in code. Even if you are unable to do this at first, try writing a simple mock-up and use it as a learning experience from which to draw ideas for your design document. Then start over, using the design document as a guide and repeat this process as many times as necessary. The primary benefit of this is that you will be less likely to get tangled up in conflicting ideas for how the program should work.

Alternatively, you can just start programming by the seat of your pants. This is commonly known within the programming community as "hacking." While it is more efficient than pre-planning for smaller bits of code, you will be more likely to write ugly, confusing code as the project grows.

In both cases, of course, proper programming style is essential. Write self-documenting code as often as possible, comment where this doesn't work, and document all functions, classes, class members, and (as necessary) global variables. And make sure to test everything frequently, perhaps setting planned features as milestones, after whose initial implementation you will run all tests to ensure that the new code didn't break old code.

Finally, very large projects are often separated into modules, which are locked from modification once they are completed. If a completed module must be modified to accomodate another, you should return to the pre-planning stage to produce a new design document, ensuring that the new implementation will be compatible with all the modules which already depend on the one to be modified.

Why filo is not used in stack?

FILO is an acronym of "first in last out". If we imagine a stack of plates, the first plate is at the bottom of the stack and is therefore the last to be removed from the stack. Thus FILO is used when referring to a stack. We use a stack when we wish to process elements in the reverse order they arrive, always processing the newest arrival first. Stacks are useful in backtracking algorithms and are a fundamental aspect of the call-and-return mechanism.

FIFO, on the other hand, is an acronym of "first in first out" and is synonymous with "first come, first served". As such, FIFO applies to queues rather than stacks. We use a queue when we wish to process elements in the same order they arrive.

Why do software developer seek ISO 9000 certification?

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Because ISO 9000 is the set of standards relating to quality management. Software developers need to be able to work to that standard.

Identify and briefly describe four types of requirements that may be defined for a computer-based system?

Your question is vague, but I will try to answer it in the best way I can.

If you are looking for requirements to run an application, which I'm guessing because of the category your question is in.

To make it simple, there's the processor, memory, video, and sound. Another not listed in this example would be the amount of space on the hard drive that you need to have.

Here's an example from a popular game:

PC System Requirements

OS: Windows XP / Windows Vista (with latest Service Packs)

Processor:

Minimum: Intel Pentium 4 1.3 GHz or AMD Athlon XP 1500+
Recommended: Dual-core processor, such as the Intel Pentium D or AMD Athlon 64 X2
Memory:Minimum: 512 MB RAM (1GB for Vista users)
Recommended: 1 GB RAM (2 GB for Vista users)Video:Minimum: 3D graphics processor with Hardware Transform and Lighting with 32 MB VRAM Such as an ATI Radeon 7200 or NVIDIA GeForce 2 class card or better
Recommended: 3D graphics processor with Vertex and Pixel Shader capability with 128 MB VRAM Such as an ATI Radeon X1600 or NVIDIA GeForce 7600 GT class card or better
Sound: DirectX-compatible sound card or motherboard sound capability

Mac System Requirements

OS: Mac OS X 10.4.11 or newer

Processor:Minimum: PowerPC G5 1.6 GHz or Intel Core Duo processor
Recommended: Intel 1.8GHz processor or better
Memory:Minimum: 1 GB RAM
Recommended: 2 GB RAM
Video:Minimum: 3D graphics processor with Hardware Transform and Lighting with 64 MB VRAM Such as an ATI Radeon 9600 or NVIDIA GeForce Ti 4600 class card or better
Recommended: 3D graphics processor with Vertex and Pixel Shader capability with 128 MB VRAM Such as an ATI Radeon X1600 or NVIDIA 7600 class card or better

What do you mean by decomposition techniques in software engineering?

Software project estimation is a form of problem solving, and in most cases, the problem to be solved (i.e. developing a cost and effort estimate for a softwa project) is too,complex to be considered in one piece. For this reason, we decompose the problem, recharacterizing it as a set of smaller(and hopefully,more manageable)problems.

The decomposition approach was discussed from two different points of view:

1). decomposition of the problem and

2).decompostion of the process.

Estimation uses one or both forms of partitioning.But before an estimate can be made, the project planner must understand the scope of the software to be built and generate an estimation of its"size".

Which is better a doctor or a engineering?

Assuming that you are capable of becoming any one of them, you need to figure out which one would make you happier. If more money would make you happier, then "doctor" would be a better choice, under the above assumptions.

What is the purpose of computer engineering?

An excellent question. Most of the time, they just appear to be playing with their computers, drawing silly diagrams, writing unintelligible babble or browsing the web. At other times, they pretend to be doing real work with a proper screwdriver or a soldering iron, but questions have been raised.

What are the ieee standards for SRS?

SRS stands Software Requirements Specifications. IEEE had put a template for writing SRS documents with the following table of contents: TABLE OF CONTENTS DOCUMENT OVERVIEW vi 1. INTRODUCTION 1 1.1 Purpose 1 1.2 Scope 1 1.3 Definitions and Acronyms 1 1.4 References 2 1.5 Overview 2 2. General Description 3 2.1 Product Perspective 3 2.2 Product Functions 3 2.3 User Characteristics 3 2.4 General Constraints 4 2.5 Assumptions and Limitations 4 3. Specific Requirements 5 3.1 Functional Requirements 5 3.1.1 Requirement 1 5 3.1.1.1 Introduction 5 3.1.1.2 Inputs 5 3.1.1.3 Processing 6 3.1.1.4 Outputs 6 3.1.2 Requirement 2 6 3.1.2.1 Introduction 6 3.1.2.2 Inputs 6 3.1.2.3 Processing 6 3.1.2.4 Outputs 6 3.1.3 Requirement 3 7 3.1.3.1 Introduction 7 3.1.3.2 Inputs 7 3.1.3.3 Processing 7 3.1.3.4 Outputs 7 3.2 External Interfaces 7 3.2.1 User Interfaces 7 3.2.2 Hardware Interfaces 7 3.2.3 Software Interfaces 7 3.2.4 Communication Interfaces 8 3.3 Performance Requirements 8 3.4 Design Constraints 9 3.5 Attributes 9 3.5.1 Security 9 3.5.2 Maintainability 9 3.6 Other Requirements 9 3.6.1 Data Base 9 3.6.2 Operations 10 3.6.3 Site Adaptation 10 Appendix-A. Appendix 11 GLOSSARY 12

Where can Offshore software development services be found?

The process of hiring software developers has become slow and also prohibitively expensive; therefore, outsourcing software development tasks today has become an ideal option. Here are a few destinations that are most comfortable for software development outsourcing.

Asia

In Asia, "India is considered as a heaven for businesses hoping to employ a web development team. India is known as the popular outsourcing destination in the world. With more than 5 billion software developers available, India offers quite low prices between $18-$25 per hour for custom software development. The major benefit of hiring tech talent in India is the low cost.

Other popular countries in Asia where it is possible to hire a dedicated team of offshore developers are the Philippines, Vietnam, and Bangladesh.

Eastern Europe

Eastern European countries like Ukraine, Belarus, Russia, Poland, Romania, etc. are globally recognized as popular offshore development destinations. Eastern European offshore developers have wide business experience and are knowledgeable in programming languages. Hourly rate of these developers in Eastern Europe ranges between $25 - $40 per hour.

Latin America

Latin American countries have experienced growth in the software development industry. Some of the top countries in this region are Mexico, Argentina, and Brazil, which are considered as the top offshore development locations.

Offshore developers in these countries may charge between $30 - $50 an hour, depending on the qualification of the developer.

What do BIU and EU stand for and what are their functions?

biu stands for bus interface unit and eu stands for execution unit.

In 8086 microprocessor BIU fetches the instructions and places in the queue.

The Eu executes the fetched instruction and places the result in the registers

What is the process for installing SAP software?

Administering an Oracle/SAP system, and maximizing the performance of its database, is a formidable job. You need to fully understand how both the SAP and Oracle systems work in isolation, and you need to know how they work together. In subsequent chapters of this book, I'll describe the specifics of that interaction. You'll learn how to use the special Oracle/SAP utilities, how to deal with the limitations of conventional Oracle functions, and how to place and reorganize files. Furthermore, after reading this book, you'll know more about monitoring databases during operation, tuning them, running backup and recovery, and performing special operations for systems that use parallel technologies or that support unusually large databases.

This chapter presents the fundamentals of the SAP architecture and describes how Oracle fits into the SAP runtime system. It also explains fundamental Oracle/SAP concepts -- the client/server model, special Oracle/SAP naming conventions, administrator roles, and basic administrative operations. First, though, let's take a step back and look at what SAP is.

Introduction to SAPThe SAP system is a collection of software that performs standard business functions for corporations. The system has become very popular because it provides a complete solution to standard business requirements such as manufacturing, accounting, financial management, and human resources. It incorporates the concepts of enterprise resource planning (ERP) and business process reengineering (BPR) into an integrated solution for business applications.

SAP is a product developed and marketed by the German company SAP AG. SAP is a German acronym for "Systemanalyse und Programmentwicklung," which can be loosely translated into "Systems and Application Products." Founded in 1972 by IBM application developers, SAP AG originally developed application products for the European marketplace. For nearly two decades, the company grew slowly. Early versions of its software were mainframe-based and appealed particularly to very large European corporations. Within the United States, sales were mainly to the Fortune 500.

SAP's R/3 System

During the 1990s, companies of all sizes began to embrace the concept of ERP systems and to gravitate toward prewritten business applications. With the introduction of its client/server SAP R/3 system in 1992, SAP AG, which already had a sizeable lead in the ERP market, unveiled a system that was attractive to medium- and small-sized companies as well as to the large companies already using SAP software. The SAP R/3 system runs on virtually any hardware/software platform and can use many different database management systems. One SAP system might be based on an IBM AS/400 running OS/400 using DB2; another might be based on a Sun Solaris (a dialect of Unix) using the Oracle RDBMS; still another might be based on an IBM PC running Windows NT using SQL Server. While SAP can be run with many different database products, nearly 85% of SAP customers now choose Oracle because of its dominance in the database marketplace. SAP software has become very popular in the U.S., and the company is now the world's leading application package vendor. SAP competes directly with Oracle Applications products and PeopleSoft products in the ERP marketplace.

The SAP R/3 code is written in an interpretive language called ABAP. (ABAP is a German acronym that, loosely translated, means "Advanced Business Application Programming.") ABAP is very similar to COBOL in its syntax. Use of the ABAP language allows SAP customers to extend the functionality of the base product, as described in the next section.

SAP Application Products

The SAP R/3 application offers end users the ability to run their entire business from a single application vendor. Some SAP customers choose to run their entire enterprise from SAP, while others run SAP only for specific business processes, such as manufacturing or finance. SAP is designed to allow customers to choose their own set of business functions, and it is sold in many configurations--both as specific business functions and as enterprise-wide solutions.

An SAP customer can choose whatever applications meet his site's specific business requirements. In addition, the customer is free to customize his SAP installation, adding new database entities as well as new functionality. For example, a company may use an inventory method that is nonstandard but essential to the company's efficiency; the basic SAP functionality can be modified to accommodate the specific requirements of that inventory method. The result of all of this flexibility is that virtually every SAP installation has its own specific configuration and set of functions. However, there are costs associated with customizing SAP. An organization that makes thousands of customizations to its SAP application may find itself spending millions of dollars to upgrade SAP: when SAP is upgraded, every customization must be identified in the ABAP code, and these changes must be reapplied to the upgraded SAP software, increasing the cost of the upgrade.

SAP products are distributed as applications with functional modules inside each application. Applications are generally focused on particular business functions. The modules within each application perform specific business tasks such as capital investment management, personnel administration, and quality management. The major applications are financials, human resources, and logistics, described briefly in the following sections.

In addition to basic business functions, SAP also offers products in the following areas (see http://www.sap.com/products/ for details):SAP Business Intelligence initiative

SAP Supply Chain Management initiative

SAP Customer Relationship Management initiative

SAP Electronic Commerce

SAP Human Resources

SAP Treasury

SAP Real Estate

SAP Environment, Health, & Safety

When an SAP application is purchased with Oracle, each of the modules is delivered with a complete Oracle schema consisting of thousands of tables and indexes. Because the end user may purchase one or more components of SAP, SAP delivers the definition for many more Oracle tables and indexes than will be used by the running application. It is not uncommon to see an SAP application where thousands of tables and indexes are allocated but never used by SAP.

SAP has also branched out from traditional online transaction processing (OLTP) products into data warehousing with its Business Information Warehouse (BIW) and Supply Chain Optimization, Planning, and Execution (SCOPE) products.

Financials applications

The SAP Financials applications contain all of the functionality needed for enterprise-wide financial management. The modules within the Financials applications include the following:Financial Accounting (FI)Provides a complete financial accounting solution, including income statements, balance sheets, journals, ledgers, and all areas of financial accounting.Enterprise Controlling (EC)Assists in controller tasks.Capital Investment Management (IM)Assists finance organizations in their capital investments and tracking.Controlling (CO)Assists the controller organization.Treasury (TR)Assists with transactions related to the U.S. Treasury.

Human Resources applications

The SAP Human Resources (HR) applications are designed to provide a fully functioning HR system. They include two primary modules:Personnel Administration (PA)Assists with all areas of personnel administration, including applicant tracking and personnel history.Personnel Development (PD)Assists with training and educational status of employees.

These systems handle all of the mundane HR tasks, such as personnel and payroll, and also a number of more esoteric HR functions, such as seminar and convention management.

Logistics applications

The SAP Logistics applications include SAP's most popular modules. Logistics was the first area of entry for SAP. This includes virtually every area of manufacturing, from the initial acquisition of raw materials to the delivery of finished goods. The modules in this area include the following products:Materials Management (MM)Manages raw materials, inventory, and all aspects of goods manufacturing.Production Planning (PP)Offers sophisticated tools for planning large production environments.General Logistics (LO)Manages logistics for companies that require large-scale deployment of goods and resources.Sales and Distribution (SD)Manages the inventory and distribution of finished goods.Plant Maintenance (PM)Manages the resources required for large manufacturing plants.Quality Management (QM)Captures and maintains quality control for manufacturing environments.Project System (PS)Assists with the scheduling of project tasks and interdependencies between tasks.

The SAP R/3 System Architecture

All SAP R/3 applications are delivered in a three-tier client/server architecture, shown in Figure 1-1.

Figure 1-1.The SAP three-tier client/server architectureFigure 1-2.The SAP Dialog instance configuration

The WP is the task that is charged with executing the application's tasks. As such, a WP consists of an ABAP language interpreter and processor, a task handler, and a means of connecting to the Oracle database. SAP defines several types of work processes, as follows:Dialog (DIA)Executes interactive dialogsBatch (BTC)Executes background tasksUpdate (UPD)Manages database updatesEnqueue (ENQ)Manages resource locksSpool (SPO)Manages data formatting and printing

The WPs can be viewed from a variety of places via SAPGUI, the SAP management tool. In SAPGUI, each screen has a name, and the SAPGUI screen called SM50 shows the currently executing WPs on a dialog instance (see Figure 1-3). SAPGUI has more than 100 screens, but in this book I'll focus on the major database screens. See Chapter 2, Oracle/SAP Utilities, for a discussion of SAPGUI and SAPDBA, the primary SAP utilities.

Figure 1-3.SAPGUI transaction SM50 displaying SAP work processes

The SAP system administrator, commonly called the BASIS administrator, controls the number of WPs that are defined to each application server. (See the "Oracle/SAP Administrators and Tasks" section later in this chapter.) In addition, the BASIS administrator can define "op modes" that control the number and type of WPs for each application server. For example, the BASIS administrator might define a day mode consisting of more dialog WPs for interactive sessions, and a night mode consisting of more batch WPs for the evening batch processes. These op modes are automatically switched by SAP according to the timetable specified by the BASIS administrator.

Oracle/SAP Naming ConventionsIn order to maintain control over a vast set of applications, SAP has devised a convention for naming common components. These conventions are more than suggestions; in many cases, deviation from the naming conventions may cause some management components of SAP (e.g., SAPDBA) to function improperly. Thus, it's very important that all SAP systems follow these naming conventions.

One firm rule relates to the Oracle table and index names. Obviously, the SAP table structures and table names cannot be changed without changing the ABAP programs that access these tables, and SAP strongly urges customers not to alter the Oracle entities without the express consent of SAP AG. However, the Oracle administrator does have control over the naming of some Oracle entities (tablespaces and datafiles) and their placement within the filesystems and disk devices. The main areas of concern for the Oracle administrator are the Oracle SID name, the name and location of the Oracle initialization file, and the names of the Oracle tablespaces and datafiles; these objects are described in the following sections.

The Oracle SID in SAPSAP mandates that the Oracle SID (System IDentifier), specified in Unix and some other operating systems as ORACLE_SID, always begin with an uppercase "SA," followed by a single alphanumeric digit or a single uppercase alphabetic character. Thus, the SID may have the values SA0-SA9 or SAA-SAZ. These are the only allowable choices for Oracle database SIDs. Throughout this book, I've used the notation sapsid to refer to the Oracle SID established for your own database. The Oracle Initialization File (INIT.ORA) in SAPWithin an SAP system, the Oracle initialization file must exist with a specific name in a specific directory; if it does not, the SAPGUI and SAPDBA utilities will not work properly. Within both Oracle documentation and third-party books, the initialization file is ususally referred to as INIT.ORA, and I've followed that convention in this book. Note, however, that the actual name of this file in your system will be INITsapsid.ORA, where sapsid is the Oracle SID for your database (described in the previous section) and has the name you've specified for it. For example, if your Oracle SID is SA9, your initialization file will have the name INITSA9.ORA. In SAP systems, the intialization file must be located in the directory oracle//dbs; for example, oracle/SA9/dbs.

In addition to the basic initialization file, SAP allows configuration or subinitialization files to be called from the INIT.ORA file. Most Oracle administrators find it more convenient to place all of the Oracle initialization parameters in a single file; however, sometimes it makes sense to segregate different types of parameters into several files. For example, if your site is configured differently for transaction processing (during the day) and for batch processing (at night), you might include common initialization parameters in a single configuration (CONFIG.ORA) file but have separate INIT.ORA files for day and night processing. You'd restart with the appropriate INIT.ORA file for each time period. (This approach should not be confused with BASIS op modes.)

Within the INIT.ORA file, you must follow the SAP conventions for parameters summarized in Table 1-1.

Table 1-1:SAP Conventions for the INIT.ORA FileFigure 1-4.Standard SAP tablespaces

SAP has segregated the Oracle tables into tablespaces according to their functions. As shown in Figure 1-4, each tablespace can be classified as a transaction tablespace, a BASIS tablespace, or an SAP system tablespace. Note that the SAP application has a system tablespace (called PSAPDICTD), just as the Oracle database has a system tablespace. The following sections describe these tablespaces. SAP folks disregard the leading PSAP in each tablespace and the ending "D" or "I" in each tablespace name. Hence, the PSAPSTABD tablespace is commonly referred to as STAB.

Transaction tablespaces

Transaction tablespaces hold the application data for individual transactions. These transaction tablespaces include the BTAB, STAB, and USER1 tablespaces:BTABHolds the SAP transaction tables. These tables constitute the heart of SAP, and the Oracle administrator may choose to migrate the largest and most active tables into other tablespaces for improved data management.STABHolds the SAP master data and transparent tables. These are normally the master reference tables for the SAP application holding commonly referenced application information.USER1Commonly defined to hold user customization tables that are not defined with the SAP software.

In an operational SAP database, these tablespaces will experience the highest read-write activity and will grow very large as your end users load SAP with their business data. Thus, you'll need to monitor these tablespaces very closely, since they may fill and cause the entire SAP application to stop. Many Oracle/SAP administrators run scripts to identify the largest and most active tables in these tablespaces and move these tables into separate tablespaces. These separate tablespaces are then segregated by disk for better overall I/O management. Oracle administrators sometimes use file striping for these tablespaces to balance the load across many disk devices, and thereby improve throughput. I'll describe SAP tablespace monitoring in some detail in Chapter 4, SAP Database Monitoring.

BASIS tablespaces

The BASIS tablespaces include BTABD, STABD, DICT, LOAD, PROT, and SOURCE. SAP uses these Oracle tablespaces to store data that is used to perform basic SAP system functions. For example:PROTHolds the output from ABAP reports while they are waiting to be printed, and contains spool, converter, and log tables.SOURCE and LOADContain the ABAP source code for reports and screens. In an SAP system, remember that ABAP is run in an interpretive mode, and the source code is gathered from these tablespaces at runtime for interpreting.DICTContains the ABAP data dictionary, and consists of SAP metadata; in this sense, the DICT tablespace is very similar to the traditional Oracle SYSTEM tablespace.

System tablespaces

The most important SAP system tablespaces are POOL, CLU, and DOCU:POOLUsed to store the SAP system pool tables. These are similar to the master data tables found in the STAB (transaction) tablespaces, but SAP considers them too small to require their own Oracle tables. The items from the POOL tablespaces are generally buffered and loaded into the memory of the dialog instance, so POOL is not heavily accessed except at SAP startup time.CLUContains SAP cluster tables. Unlike Oracle clusters, SAP cluster tables are stored into Oracle tables with LONG RAW datatypes. The data within the LONG RAW columns are used by SAP as subtables, and each row within an SAP cluster table may contain data that is completely unrelated to the next row in the table. These pseudo-tables present a challenge to the Oracle administrator, especially when they must be reorganized, because you can't use Oracle's CREATE TABLE AS SELECT command with tables that contain LONG RAW columns. Consequently, reorganizations of the CLU tables must be performed with Oracle's slower Export/Import utilities. I'll discuss this topic in Chapter 5, Table, Tablespace, and Index Reorganization.DOCUContains the document tables, including the sapscript and sapfind tables. This is a relatively small tablespace with fewer than 30 tables.

Oracle Files in SAP

In a typical Oracle configuration, you can map an Oracle tablespace to a single datafile or to many datafiles. Because of the large size of many SAP installations, an Oracle/SAP tablespace generally maps to many datafiles. In a production SAP environment, many of these tables will never be used, while other tables will grow very rapidly. Thus, in general, you should identify and segregate the highly active tables into separate tablespaces. Chapter 4 includes a script you can use to identify the SAP tables that are growing.

SAP is quite strict about the names for its default tablespaces, so you cannot change these names, but you can add new tablespaces. When you segregate SAP tables into a separate tablespace, however, you can name that tablespace anything you like. Although SAP gives you complete freedom in tablespace naming, SAP AG suggests that when a new tablespace contains a single table, the tablespace name be a permutation of the table name. For example, the table named VBAP could be moved into a tablespace with any of the following names: PSAPVBAPD, VBAPD, or VBAP. An SAP purist would preface the tablespace name with PSAP and end the tablespace with the letter "D." This is helpful in order to be consistent with the other SAP naming conventions, and it can also be helpful when using SAPGUI to view tablespace information.

Oracle system files

While many standard Oracle configurations generally follow Oracle's Optimal Flexible Architecture (OFA) standard, SAP has changed this standard somewhat, in an effort to create a "flat" file hierarchy (see Figure 1-5).

Figure 1-5.The Oracle/SAP file architecture

Note that $ORACLE_HOME is set to the same value as /oracle/, and all of the Oracle database software is located directly beneath this directory. For example, the Oracle executables are always located in /oracle//bin.

Oracle datafiles

Within SAP, Oracle database files are named somewhat differently from the way they're named in traditional Oracle databases. The default SAP installation uses datafile names in which the prefix matches the tablespace name. For the filename suffix, rather than using a dbf suffix, SAP requires that datafiles contain the datan suffix. In this way, the Oracle datafile called psappooli.data3, for example, will be instantly recognizable as the third datafile for the POOL data indexes.

Oracle indexes

SAP also follows a standard for index naming. All Oracle index names default to eight characters in length; they always begin with the table name, end with a number, and use between one and three underscore characters in between. All indexes that end with a zero represent the primary key indexes for the table, and all nonzero numbers represent secondary indexes. For example, you will be able to tell that VBEP_ _ _0 is the primary key index for the VBEP table, and that VLPMA_ _1 is the secondary index for the VLPMA table. To properly display indexes within SAPGUI, all new SAP indexes should begin with the table name and end with a unique numeric character. Also, it is important that the index names be eight characters long, using a variable number of underscore ( _ ) characters.

SAP Filesystems on Unix

In addition to the required Oracle filesystems, some SAP-specific filesystems are found on most of the SAP application servers. These filesystems are used to hold certain Unix files that are required for SAP to function in the Unix environment. These include the SAP executable programs, SAP configuration files, and other SAP system-related datafiles, as follows:/usr/sap/transThis directory contains the common transport directory, .sapconf, as well as other SAP and Oracle configuration files. For distributed Oracle systems, this directory may also contain the master tnsnames.ora and sqlnet.ora files./sapmnt/This directory stores system-wide files for SAP, including executables, global files, and profiles./usr/sap/This directory stores instance-specific files for each SAP dialog instance.

The Oracle Database Layer of SAPAs you know, SAP is designed to work with many database management systems; interfaces are available for Oracle, DB2, Informix, and several other database products. Since SAP is database-independent, the SAP architecture requires the database to be defined as a part of the initial SAP installation. Once defined, the SAP programs (ABAP programs) will generate SQL that is compliant with the target database product.

Native Oracle SQL is generated by the ABAP program at runtime, and the SQL is then passed to Oracle for execution. The dynamic nature of ABAP SQL greatly increases its flexibility, but it makes it very difficult for the Oracle administrator to provide SQL tuning for Oracle. Because the SQL is generated from the ABAP at runtime, there is no way to change the execution

The three layers are:Presentation layerThe PC-based GUI interface that is used by the end-user community.Application layerThe SAP application servers that service requests for data and manage the interface to the presentation layer.Database layerThe actual DBMS that communicates with the application servers to fulfill their requests for data.

A piece of "middleware" called BASIS links the application to the database and the operating system. BASIS is most commonly associated with the GUI interface to SAP (called SAPGUI), and the BASIS Administrator is an SAP professional who is responsible for configuring the SAP environment, including the GUI screens and the SAP application servers.

SAP end users log into their PCs using SAPGUI, and are connected to a specific application server. This application server has pre-established connections with the Oracle database, and it services all requests for data. As I mentioned earlier, the access language for Oracle data is SAP ABAP. ABAP generates Oracle SQL (Structured Query Language), which is then used to service the end user's request for data. The communication between the application servers and the database, and between the client and the application servers, is TCP/IP.

While SAP is available for many different hardware platforms and operating systems, the majority of SAP systems use Unix-based servers for hosting SAP and the Oracle database. For this reason, as mentioned in the Preface, this book assumes the use of Unix in most examples.

The application server

While SAP uses the generic term application server to define a computer that receives connections from SAP clients, the actual connections are managed by SAP dialog servers.

A dialog instance is a software program that is running the SAP kernel (similar to an Oracle instance), and it is the job of the dialog instance to execute the ABAP programs and manage the requests for data and services. While there is generally a one-to-one mapping between an application server and a dialog instance, it is possible to have more than one dialog instance on an application server.

The central instance

The central instance is a concept that is unique to SAP. The central instance is a combination of hardware and software. It contains a physical server (the application server) and numerous software components, including a message server, a database gateway (a pre-established connection between SAP and Oracle--or another database), and various update, enqueue, dialog, and spool facility software. In most generic SAP architectures, there are numerous application servers but only a single central instance. However, in addition to managing the SAP interfaces, the central instance can also serve as an application server.

Bear in mind that SAP is very flexible, and there are many different ways to configure an SAP architecture to meet your business needs. However, most companies that implement SAP wisely choose to alter their business practices to accommodate SAP. By avoiding customization of its SAP application, a company can more easily upgrade its SAP software.TIP: In 1998 SAP AG announced that the company is planning a four-tiered client/server architecture that will isolate the database from the SAP applications. Under the four-tiered architecture, the database will be insulated from SAP by the use of an active database cache called liveCache. This expanded memory cache will act as a separate layer, further insulating the Oracle database from the SAP application and allowing for the real-time manipulation of database objects.

Work processes

Any computer is capable of running one or more application servers. The main purpose of a dialog instance is to intercept requests for work from the SAP clients and to execute ABAP programs to service the requests for data. In addition, a dialog instance contains a dispatcher task and a set of work processes (WPs). The WPs are Unix tasks that can easily be identified by logging on to the Unix server and entering the following command:PS -ef|grep dw

All SAP WPs contain the string "dw" (an acronym for Dialog Work) in their process names. The dispatcher on an SAP dialog receives requests from the SAP users (see Figure 1-2). In cases where a computer is running more than one dialog instance, there is one dispatcher for each dialog instance.INIT.ORA ParameterFilesystem DestinationUSER_DUMP_DEST

/oracle//saptrace/usertrace

LOG_ARCHIVE_DEST

/oracle//saparch/SAPSID_

BACKGROUND_DUMP_DEST

/oracle//saptrace/background

AUDIT_FILE_DEST

/oracle//rdbms/audit

CONTROL_FILES

/oracle//sapdata-nn/cntrl1.data1

Oracle Tablespaces in SAP

In an SAP system, Oracle tablespace names always begin with the string "PSAP" and end with a "D" (data tablespace) or an "I" (index tablespace). Some of the common SAP tablespaces are PSAPCLUD, PSAPLOADD, and PSAPDICD.

A standard SAP system contains only a handful of tablespaces. These tablespaces are designed to contain all of the SAP tables, and are defined as a part of the default SAP installation. Figure 1-4 shows the sample tablespace descriptions for an SAP installation. Within an Oracle/SAP tablespace, many of the tablespaces will remain small--for example, the metadata information in the DICT tablespace.

What does the symbol for a diode look like?

Diode symbols look like open triangles with horizontal lines extending from either side. There will be a vertical line at the tip of the triangle that may have turned ends depending upon the type of diode.

Is the diode and semiconductor diodes are the same?

Today, all diodes are semiconductor diodes. However, the first diodes were piles of washers of different metals that together made a diode, and specially constructed vacuum tubes.

There may still be markets for other types of diodes in very high voltage circuits, but you or i are unlikely to come in contact with them.