Multi – Agents Network Based Virtual Manufacturing Using Oracle Net Services

The current research concentrates on special objectives in Innovating and applying a network among the Multi-Agents in the Designed Proposed System , by the use of (Oracle) language to produce a new product by using the available potentialities of the company or by cooperating with partners in the future within the concept of the Virtual Manufacturing. Every Agent (user) has its own roles and privileges. The application results indicate that the VM philosophy has been performed efficiently by the use of the Multi–Agents Network which is managed and attains integration by the server Agent that uses the available interfaces as Oracle language capabilities such as DDE, OLE and run–product. Also, The application results have confirmed that there is a possibility to add easily a new client : Hardwarely: by Updating the network and connecting a new client by the use of one of the following oracle tools: Oracle Net 8 Assistance, SQL * Net Easy Configuration , , Oracle Net 8 Assistance.lOracle Net 8 Easy Configuration . Softwarely: to the designed system by the use of the Enterprise Manager console as a wizard or through the SQL plus worksheet. Keyword: Virtual Manufacturing, MultiAgents Network, Oracle Security ) Oracle Net Services (

Oracle Net8Assistance,SQL* Net Easy Configuration, Oracle Net 8 Easy Configuration

Introduction
The worldwide competition and computer revolution have dramatically changed the market characteristics. Today, it is the buyers, market, where capacity is higher than demand. Price is dictated by the market; it is not based on the producers expected profit [24]. Manufacturers must now develop a balance between the internal and external measures. Their focus is changing from local to global optimization by determining what customers want and delivering the right products. This focus and advances in technology are decreasing product life cycle, which together with the high cost of capital make the product time to market one of the major business drivers for many industries. The increasingly shorter windows of opportunity create highly competitive markets, resulting in the need for Agility [13] [16] [28].
Industrial companies face great challenges under the high competitions when they adopt concept of agile manufacturing especially introduction of virtual manufacturing. They need quick responses to single and widely variable customers' demands. Hence, research problem concentrates on necessary need to connect the production units distributed in remote geographical areas whether for single company or many companies cooperating to achieve the objectives of agile manufacturing.
The significance of research appears through creating a network. This network is connected among the units of production in an information system and designed according to the concept of multi-agents on which the processes of manufacturing are distributed in order to produce productions that meet customers' needs by using Oracle. The main objective of research is represented in designing a network on two levels: 1. Connection under windows.

Connection under oracle.
In order to provide information about the manufacturing processes and demands of production inside the computer. Such information support the decisions of production according to the concept of virtual manufacturing and the quick response of customers' demands.

The Mechanism of the Designed System
Agile manufacturing makes use of modern information technology to form a virtual enterprise. Partners must maintain a high amount of communication and data exchange between themselves for success of the virtual enterprise. Data exchange does not mean just verbal communication; but rather the companies must exchange complete information about their products, all the way from design, manufacturing to inspection and shipping. [3] While a virtual Enterprise is temporary a Network of independent companies, suppliers, customers, design units and manufacturing process are linked by Information Technology (IT) to share skills, cost and access to one another. The virtual manufacturing is a production philosophy to achieve the agility with framework of virtual Enterprise [3] [26]. The proposed VM system represented by DB schema has been mainly designed by depending on 12 object types, 18 tables, 5 views, 1 trigger and 3 packages. The package which includes a group of procedures or functions has been used to facilitate granting it an execution privilege by the users or agents to perform the tasks assigned to it. Figure (1 ) illustrates the work mechanism of the designed system according to DB schema. As regard to the roles and privileges of the proposed system, it is possible to say that the system has been designed on the basis of 5 agents: design, process planning, MC&CE, priority planning and supervisor. Every agent (user) has its own roles and privileges. The supervisor has the role of Database Administrator (DBA) which entitles him all the roles and privileges available at the Oracle because he is the General Manager. This also entitles him to give every agent roles and privileges according to the nature of their jobs. Accordingly, all the agents can work cooperatively to perform the goal of the company efficiently and securely.
To describe the information flow within a virtual manufacturing philosophy, we use a sample scenario to simulate actual ground and to illustrate its Operational Model which includes a collaboration between an MRP planner in a high level planning and the design engineers in the virtual enterprise

Virtual Manufacturing Network
The network technology has been changing the pattern of business and production of industrial economy as well as the way of manufacturing and makes an appearance of the information era. There is a grand space for developing manufacturing and an opportunity of adjusting the industrial structure and innovating the products in the developing countries [34].
In recent years communication industry has developed very fast, and most of users belong to consumption fields [27]. In case of network architecture, there are some points of view that have to be mentioned [21] [34].

The Network Measurement
Essentially the network has allowed not only sharing data via static reports, but opportunities to share real data, control remote data acquisition devices and distribute an application across many different machines [17]. A networked measurement solution gives the ideas that we can acquire anywhere, analyze anywhere, and present anywhere on the network. System manager can develop powerful applications that share information between nodes (Departments) and with other applications [9]. This machine is essentially a server. It is capable of managing large database, performing supervisory control, and improving the manufacturing process. Measurement browsers are Web browsers or other software interfaces that can view the collected analyzed information. Data distribution involves the distribution of the information to where it is required. This can involve data display, recording and/or transmission [33].

Network Model
Each network uses different network hardware and software to provide basic functions to work together to successfully transfer a message from a sender to a receiver. One way to accomplish this is to break the entire set of communications functions into a series of layers. The most commonly used model for defining network layers is the Open System Interconnection (OSI) model. During the late 1970s, the International Standard Organization created the OSI to develop a framework of standards for computer-to-computer communications. In 1984, this effort produced the OSI Model. OSI model has seven layers; as follows [15]: 1-The application layer is the application software. It is the user's access to the network. By using this software, the user defines what messages are sent over the network. 2-The presentation layer formats the data for presentation to the user. This layer may perform data compression, translation between different data formats. 3-The session layer is responsible for initiating, maintaining, and terminating each logical session between end users. 4-The transport layer is responsible for generating the address of the end user, breaking a large data transmission into smaller packets, ensuring that all the packets have been received. 5-The network layer takes the message generated by the application layer and performs three functions. First, it translates the destination of the message into an address understood by the network. Second, if there are several possible routes through the network that the message could take to reach its destination, the network layer decides which route to take. Third, to track errors. 6-The data link layer takes the message generated by the network layer and performs three functions. First, it controls the physical layer by deciding when to transmit messages over the media. Second, it formats the message by indicating where messages start and end, and which part is the address (called packets or frames). Third, it detects and corrects any errors that have occurred in the transmission of the message. 7-The physical layer is the physical connection between the sender and receiver. Its role is to transfer a series of electrical signals through the circuit. When the receiver gets the message, this process is performed in reverse. The physical hardware passes the message to the data link layer, which uses the message start and stop markers to identify the message and its final destination address, then checks for errors; and if it discovers one, it will request the message to be resent. Else, the data link layer will then pass the message to the network layer, which will check the address and, if it is destined for this computer, it will pass the message to the application layer for processing. Else, the network layer decides which computer to send it to next and passes the message back to the data link layer for retransmission.

Client/Server Definition and Architectures
Software architecture is based on a separation of processing between two CPUs. One CPU acts as the client in the transaction, requesting and receiving services. The other acts as the server that provides or fulfills the requests [8] [31], see figure . Client/server architecture provides the fundamental framework that allows many technologies to plug in for the applications of the 1990s and beyond. Clients and servers typically communicate with each other by using one of the following paradigms [14] [35]: Vol. 17 No.1 Feb. 2009 37 1-Remote Procedure Call (RPC). The client process invokes a remotely located procedure (a server process), the remote procedure executes and sends the response back to the client [29] [32]. 2-Remote Data Access (RDA). This paradigm allows client programs and/or end-user tools to issue ad hoc queries, usually SQL, against remotely located databases. The key technical difference between RDA and RPC is that in an RDA the size of the result is not known because the result of an SQL query could be one row or thousands of rows [1] [18]. 3-Queued Message Processing (QMP). The client message is stored in a queue and the server works on it when free. The server stores the response in another queue and the client activity retrieves the responses from this queue. This model, allows the clients to asynchronously send requests to the server. Once a request is queued, the request is processed even if the sender is disconnected (intentionally or due to a failure) [4] [12]. Distributed Processing is a centralized database that can be accessed over a computer network. These are not distributed database DDB. Centralized computer consists of a single database stored at one site with users distributed across the network.. Consider a user who needs access to some data in database's table located at site Supervisor Agent. The request for doing so is handled by a remote server at site Supervisor Agent, who accesses the table, computes the desired result and eventually transfers the actual data back to the user [23].

Transparency
Client/server model supports transparency to the user as well as that each user can read data from a site without knowing its location. Tasks can be executed at various sites without the user knowing where they are. Finally failures are dealt with [15] [22]:

Oracle Security
Client/server model can also support security where users are protected against other users. Users are protected against external agents . Oracle network security is enhanced with features described as follows [8]: 1-Firewall Access Control: Oracle Connection Manager can be configured to grant or deny client access to a particular database service or a computer. By specifying filtering rules, it can allow or restrict specific client access to a server, based on the following criteria: -Source host names or IP addresses for clients. -Destination host names or IP addresses for servers.
-Destination database service names.
-Client use of Oracle Advanced Security. 2-Protocol Access Control: The database server can be configured with access control parameters in the sqlnet.ora configuration file. These parameters specify whether clients are allowed or denied access based on the protocol.

3-Data Encryption:
Encryption is the mutation of information into a form readable only with a decryption key. 4-User Authentication and Single Sign-On: Passwords are the most common means of authentication. Single sign-on enables users to access multiple applications with a single password. This permits the user to authenticate to all servers the user is authorized to access [8]. A user only needs to log on once and can then automatically connect to any other service without having to give a username and password again. Single sign-on reduces the time spent logging into multiple services. 5-Enterprise User Security: A centralized directory server can be used to store user, administration, and security information. It also makes the enterprise more secure. A directory server can be used to provide centralization of user role, and password information. For example: /** CREATE DESIGN AGENT **/ CREATE USER "DESIGN" PROFILE "DEFAULT" IDENTIFIED BY "design" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "DESIGN"; /** CREATE SUPERVISOR AGENT **/ CREATE USER "VM_SYSTEM" PROFILE "DEFAULT" IDENTIFIED BY "vm" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT UNLIMITED TABLESPACE TO "VM_SYSTEM" GRANT "CONNECT" TO "VM_SYSTEM"; GRANT "DBA" TO "VM_SYSTEM";

Transmission Control Protocol/Internet Protocol (TCP/IP)
Protocol is a set of rules that defines how data is transported across the network . The TCP/IP is the standard communication protocol used for client/server conversation over a network [8]. A connection must be established before communications between the pair of sockets start. So there is a connection setup time in TCP [11]. It sends data as an unstructured stream of bytes. By using sequence numbers and acknowledgment message, TCP can provide a sending node with delivery information about packets transmitted to a destination node. Where data has been lost in transit from source to destination, TCP can retransmit the data until either a timeout condition is reached or until successful delivery has been achieved. TCP can also recognize duplicate messages and will discard them appropriately. If the sending computer is transmitting too fast for the receiving computer, TCP can employ flow control mechanisms to slow data transfer .Ports are simply assigned to a particular service, which TCP uses to deliver the data to the right application. For example the port 1521/TCP assigned to oracle database [11].
The IP address is made up of the network ID, and a unique host ID [8]. IP is responsible for internet work routing, fragmentation and reassemble of information units called datagrams for transmission over networks and provides error reporting [20]. A name resolution service, such as Domain Name System (DNS), can be used to map the IP address of a computer with its host name [8]. For illustration, an entry for a database server computer looks like the following:

Oracle Network Concept
Oracle Net is responsible for establishing and maintaining the connection between the client application and database server as well as exchanging messages between them. Oracle Net is able to perform these jobs because it is located on each computer in the network [6]. The Oracle Spatial network includes two client application programming interfaces (APIs): a PL/SQL interface and a Java interface. Both interfaces let user create and update network data, and the Java interface provides network analysis capabilities. It is recommended that the user can use only PL/SQL or SQL to populate network tables and to create indexes, and that can use the Java interface for application development. The user can use the Java API to perform network analysis operations such as the following [5]: 1. Shortest Path: typical transitive closure problems in graph theory. Given a start and an end node, find the shortest path. 2. Minimum cost spanning tree (for undirected networks): Given an undirected graph, find the minimum cost tree that connects all nodes. 3. Reachability: Given a node, find all nodes that can reach that node, or find all nodes that can be reached by that node. 4. Within-cost analysis: Given a target node and a cost, find all nodes that can be reached by the target node within the given cost. 5. Nearest-neighbors analysis: Given a target node and number of neighbors, find the neighbor nodes and their costs to go to the given target node. 6. All paths between two nodes: Given two nodes, find all possible paths between them.
Oracle Net Services are a suite of networking components, that provide enterprise-wide connectivity solutions in distributed, heterogeneous computing environments. It enables

Oracle Database Settings
Oracle databases have become the backbone of most web server applications [25]. This section describes settings that are made to the Oracle Database application, usually through settings contained in the ASCII text file "init.ora" file. INIT.ORA is initialization parameter file holding parameter that an instance uses at startup time to determine configurable instance processes, information needed to initialize a database, memory areas, and their sizes, such as the size of SGA [6].The settings described here are the ones most frequently tuned with Oracle Databases [7]. File init.ora resides in directory ORACLE_HOME\ADMIN\DB_NAME\PFILE\INIT.ORA (D:\oracle\admin\sama\pfile\init.ora on the server) on Window operating systems. control_files = ("D:\oracle\oradata\sama\CONTROL01.CTL", Dispatchers = "(PROTOCOL=TCP)(SER=MODOSE)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.GiopServer)", "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)" #### Miscellaneous Compatible = 9.0.0 db_name = sama Instance_name = sama Control file is a file that records the physical structure of a database and contains database name, names and locations of associated databases and online redo log files, timestamp of database creation, current log sequence number, and checkpoint information [6].

Oracle Listener
Listener is a process that resides on the server whose responsibility is to listen for incoming client connection requests and manage the traffic to the server [8]. When a client requests a network session with a database server, a listener receives the actual request. If the client information matches the listener information, then the listener grants a connection to the database server [19]:

1-Listener Overview
The Oracle TNS Listener is the server-based process that provides basic network connectivity for clients, application servers, and other databases to an Oracle database. In addition to databases, the Listener can also be configured to support binary executables. The Characteristics of the listener process are [10]: -A listener process can listen for more than one database.
-Multiple listeners can listen on behalf of a single database to perform load balancing. -The listener can listen for multiple protocols.
The listener.ora file must reside on the node on which the listener is to reside. This file contains configuration information for the following: -The listener name.
-The listener address.
-Databases that use the listener.
-Listener parameters, SID-LIST-LISTENER-NAME parameter specifies information on the databases served by the listener, ORACLE-HOME enables the listener to i dentify the location of a database executable file. The host name (srvr) is resolved through an IP address translation mechanism such as Domain Name Services (DNS), Network Information Services (NIS). The user needs only to provide the name of the host to establish a connection. listener.ora file must include the line GLOBAL_DBNAME = DB name. Listener port 1521 on which the oracle net listener monitors connection requests to the server (host).

2-Listener Details
The relevant files for the Oracle TNS Listener are as follows: -Listener control program (oracle_home/bin/lsnrctl): lsnrctl program is the mechanism for starting and stopping the listener process (tnslsnr). -Configuration file for the listener (oracle_home/network/admin/listener.ora): This file contains information such as port number and database SID. -Server listener process (oracle_home/bin/tnslnsr): tnslnsr starts and reads the listener.ora file for configuration information. The tnslnsr processes starts with the process owner of the lsnrctl program, usually the "administrator" on Windows. Any successful exploit will thus gain the privileges for this account.

3-Listener Modes
The Listener can be configured in one of the following three modes (as configured in listener.ora). Database: Provides network access to an Oracle database instance. This mode is the most widely used mode and it is the standard mode used by every database for connectivity.

Feb. 2009
41 PLSExtProc: Method for PL/SQL packages to access operating system executables. It allows PL/SQL database packages to access external programs and is configured by default for many instances.
Executable: Provides network access to operating system executables. This mode allows an external program to be defined and accessed through a TNS connection. There is little documentation on this mode and is almost exclusively used by Oracle Applications.

Configuring SQL*Net on the Server
All of these files configure the Oracle networking software (SQL*Net). These files should all be created on the server in the ORACLE_HOME/network/admin directory [2].

Tnsnames.ora
It is a configuration file that contains one or more domains mapped to connect descriptors. This file is used for the local naming method. The tnsnames.ora file typically resides in ORACLE_HOME\network\admin [8]. The TNSNAMES.ORA file located on the clients identifies services available from the machine. To connect to a database service, clients use a connect descriptor that provides the location of the database and the name of the database service. One instance will describe all databases that the server has mounted. A connect descriptor enables clients to connect to a database service [8]. Service Name is a logical representation of a database, which is the way a database is presented to clients. A database can be presented as multiple services and a service can be implemented as multiple database instances. The service name is a string that is the global database name; that is, a name comprised of the database name and domain name, entered during installation or database creation. If you are not sure what the global database name is, you can obtain it from the value of the SERVICE_NAMES parameter in the initialization parameter file. The service name is included in the connect data part of the connect descriptor [8]. For each database instance on server add a section like below (database service called sama): 1-D:\oracle\ora90\network\admin\tnsnames.ora Located on the Server.
The address portion is actually the protocol address of the listener. To connect to a database service, clients first contact a listener process that typically resides on the database server. The listener receives incoming client connection requests and hands these requests to the database server. Once the connection is established, the client and database server communicate directly. The listener is configured to accept requests from clients at a protocol address. This address defines the protocol the listener is listening on. A TCP/IP protocol address specifies the host of the listener and a port number. Clients configured with this same protocol address can send connection requests to this listener. The connect descriptor also specifies the database service name with which clients seek to establish a connection. The This file contains net service names mapped to connect descriptors. This file is used for the local naming method. The protocol address defaults to TCP/IP, port 1521. Oracle System Identifier (SID): It is a name that identifies a specific instance of a running Oracle database. For any database, there is at least one instance referencing the database. SID is used to identify the database. The SID is included in the connect descriptor of a tnsnames.ora file and in the definition of the listener in the listener.ora file [8].

Listener.ora
The listener.ora configuration file located on the database server in ORACLE_HOME\network\admin, contains the descriptions of the services that other machines are allowed to connect to and any configuration that is required for the server listener. It contains sections for the listener name, listener address, databases served by the listener and configuration parameters. This listener.ora file creates a listener service that accepts commands sent to port 1521 or to the IPC protocol. It will accept command sent to the SID [25]. This configuration file for the listener identifies listener name and the services for which it is listening include [6]   Oracle Support Services Oracle System Identifier (SID), and specifies the time limit in seconds that the Oracle Names LDAP Proxy server can spend performing a search of directory objects. By default, the time limit is set to 10 seconds, which is sufficient for most searches [8].

Sqlnet.ora
This file, located on a client and database server computer, typically resides in ORACLE_HOME\network\admin on Windows operating systems. The sqlnet.ora file contains configuration for the particular node of the network. This is independent of the number of databases or the number of listeners. The most important thing in this file is the Dead Connection Timeout configuration variable. Dead Connection Timeout checks every incoming process to a database instance and ensures that the client end of it is still responding. If the client (of whatever type) is not responding then the Oracle server shadow process is killed. This is very useful if you have many clients accessing a database, especially during a developmental phase when those clients are more likely to be failing to exit cleanly from the Oracle database. The names_directory_path parameter controls how oracle net services resolve net service names into connect descriptors. Multiple methods can be represented as a comma separated list enclosed by parentheses. Net services attempts to resolve service names using each method listed working from left to right, once the naming methods and service names have been configured and tested successfully the user can connect to the server from the client by using any oracle client tool [10]. This configuration file for the client or server specifies the following [8]: -Client domain to append to unqualified service names or net service names. , and then compared to net service names stored in a tnsnames.ora file or Oracle Names server. If domain is set to srvr.sama.local and the client tnsnames.ora file contains a net service name of sama, the user would enter the following connect string, "connect vm_system/vm@sama". -NAMES.DIRECTORY_PATH parameter: This parameter specifies the priority order of the naming methods to use to resolve connect identifiers [8].

Windows Clients SQL*Net Configuration
Select "Add Database Alias" and enter a name for the alias (sama1). A net service alias is an alternative name for database service. Select TCP/IP as the protocol, and when prompted the hostname of the machine hosting the database (srvr) and the instance name of the database (sama). A network with only one domain would default to ".world" . The following steps have to be followed [7]: 1. On Windows, choose Start > Programs > RUN > Enter "regedit" > Ok. 2. Go to HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE. 3. Right-click on right pane and choose new. 4. Choose Edit > Enter "Local" in the string field > ok. 5. Right-click on Local and Choose add value> Enter its data value "sama1">ok. b. Softwarely: to the designed system by the use of the Enterprise Manager console as a wizard or through the SQL plus worksheet. Executing the PL/SQL assigned for this purpose can do this. The new client will be given a user name, password, privileges and roles. 2. The designed system is distinguished by its exchanging operations. According to this operation each agent can be exchanged with the same Agent but at another geographical area or locked temporary without affecting the network function as each Agent is considered as one independent unit. 3. Use of Multi-Agent philosophy decreases the load on the server as far as each Agent represents a manufacturing cell. This means that the product manufacturing operations are distributed on the processing units . 4. The practical part of the designed system has confirmed that the Agent based on manufacturing using Oracle in designing the database has achieved reality by capabilities such as triggers, privileges and role. This, undoubtedly, achieves speed, accuracy and security in information exchange. 5. The Oracle provides high security to the system via two procedures: i. Login by the user name and password.
ii. Provide privileges and roles to every user. 6. The Network design operations has confirmed that the window server 2003 which has been assigned to the server is compatible with window XP efficiency. The latter has been assigned to the client. So the designed system is distinguished by having providing easy and rapid communication among the users.