Data Access in Real Time
Encyclopedia
Data Access in Real Time (DART) is a Real-time operating system
Real-time operating system
A real-time operating system is an operating system intended to serve real-time application requests.A key characteristic of a RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter...

 used by EMC
EMC
EMC may refer to:In organizations:* EMC Corporation, an information management company* IEEE Electromagnetic Compatibility Society, a worldwide professional engineering society* Eastern Media Centre, a television channel in the UK...

 Celerra
Celerra
Celerra is a discontinued NAS device produced by EMC Corporation. It was available as an integrated unit or as a NAS header which can be added to an independent EMC storage array such as a CLARiiON or a Symmetrix. It supports CIFS, NFS, FTP, NDMP, TFTP and MPFS protocols...

. It is a modified UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 Kernel with additional functionality.

DART is an embedded, real-time, operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 comprising a modified UNIX kernel and dedicated file server
File server
In computing, a file server is a computer attached to a network that has the primary purpose of providing a location for shared disk access, i.e. shared storage of computer files that can be accessed by the workstations that are attached to the computer network...

 software that together transfer files and multimedia data across a network using a variety of network protocols.

In Summary

DART file server software executes entirely in the kernel—a real-time kernel, the design of which is based on monotonic scheduling. The DART kernel environment is not a generic user-application environment. Instead, the DART kernel provides a run-time environment for the file service; an embedded, dedicated application. The DART file server software is linked with the kernel into a single system image
System image
A system image in computing is a copy of the entire state of a computer system stored in some non-volatile form such as a file. A system is said to be capable of using system images if it can be shut down and later restored to exactly the same state...

 that is loaded for execution at boot time.

The DART Software Architecture

DART is organized into seven layers. These layers handle all the data movement in DART, and all functionality in DART is directed at implementing the processes contained in these layers. Starting with the layer closest to the hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....

 and ending with the layer closest to the user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

, DART’s functionality is organized as follows :
  • Layer 1: Operating system, consisting of the kernel and the kernel debugger
    Kernel debugger
    A kernel debugger is a debugger present in some kernels to ease debugging and kernel development by the kernel developers. A kernel debugger might be a stub implementing low-level operations, with a full-blown debugger such as gdb, running on another machine, sending commands to the stub over a...

    .
  • Layer 2: Hardware device drivers, consisting of media, network, and SCSI driver components.
  • Layer 3: I/O layer, consisting of Continuous Media Network (CMNET), UDP, TCP/IP, CAM, Storage and components.
  • Layer 4: File systems layer, consisting of Virtual File System
    Virtual file system
    A virtual file system or virtual filesystem switch is an abstraction layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way...

     (VFS), Security, and shared files within a Cluster.
  • Layer 5: Programming Interfaces, consisting of Remote Procedure Call
    Remote procedure call
    In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...

     (RPC), Common File System (CFS), UNIX File System
    Unix File System
    The Unix file system is a file system used by many Unix and Unix-like operating systems. It is also called the Berkeley Fast File System, the BSD Fast File System or FFS...

     (UFS) and Continuous Media File System (CMFS). The Uthread (UNIX-like thread) component overlaps and interfaces with this layer and with Layer 6.
  • Layer 6: Application layer, consisting of Continuous Media Stream (CMSTREAM), Common Interface File System
    Server Message Block
    In computer networking, Server Message Block , also known as Common Internet File System operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. It also provides an...

     (CIFS), PAX, NDMP, NFS
    NFS
    NFS may mean:* Network File System , the Network File System protocol developed by Sun Microsystems* NFS , a former Icelandic television news service* National Financial Switch, a bank network in India...

    , File Transfer Protocol
    File Transfer Protocol
    File Transfer Protocol is a standard network protocol used to transfer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server...

     for DART (FTPD), ONCRPC, HTTP, NIS
    NIS
    NiS may refer to:*Nickel sulfide NiSNis or NIS may refer to: * Niš, a city in south-eastern Serbia. * Ness, Western Isles , a village in the Outer Hebrides islands.In politics and government:...

    , and SNMP components.
  • Layer 7: System management and control, consisting of Management and Configuration and System components.


Layers 1 – 4 comprise functions performed within the kernel. The programmer typically uses components limited to the higher numbered layers (5 and 6) to add data moving applications.

DART’s RPC framework component provides both client and server facilities, which are implemented over STREAMS, not sockets. DART acts as an RPC server in the context of NFS, and as an RPC client in the context of NIS.

DART External environment. The DART is designed to provide rapid data movement and information sharing across a variety of hardware platforms in a networked environment. All data transfers are either request-response (pull-type for file transfer
File transfer
File transfer is a generic term for the act of transmitting files over a computer network or the Internet. There are numerous ways and protocols to transfer files over a network. Computers which provide a file transfer service are often called file servers. Depending on the client's perspective the...

s) or streaming (push-type for multimedia data) with time-sharing, real-time, or isochronous
Isochronous
Isochronous : From Greek iso, equal + chronos, time. It literally means regularly, or at equal time intervals. In general English language, it refers to something that occurs at a regular interval, of the same duration; as opposed to synchronous which refers to more than one thing happening at the...

 characteristics.

RPC on DART

Two types of RPC are implemented on DART: traditional RPC
Remote procedure call
In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...

, and ONC RPC. Due to DART’s multi-threaded architecture, traditional RPC has been implemented on DART with several modifications. For example, on a SUN OS, the RPC code generator, RPCGEN, assumes a single-threaded UNIX process that calls into the library directly. However, DART doesn’t have UNIX processes; but instead uses true multi-threading—that is, n threads pick up RPC messages as they come in. Therefore, when using traditional RPC in DART, an application must perform such functions as registering with the portmapper and extracting credentials and other security information from the message (or checking security without extracting).

Most of the responsibility falls on the application developer—thread creation, initialization, end point creation, initial create main loop, processing stream, reading message, and so on. The Collector, a general synchronizer
Synchronizer
The term synchronizer can mean more than one thing.* In automobiles, a synchronizer is part of a synchromesh manual transmission that allows the smooth engagement of gears....

 (not particular to RPC) needs to be declared, whereas in ONCRPC, the collector is built in.

In addition, traditional RPC has a basic structure for receiving the message, but then the application developer must take it apart by means of xdr
XDR
XDR is a three-letter acronym with multiple meanings:* XDomainRequest, AJAX-Technology* eXternal Data Representation, an implementation of the OSI model presentation layer* XDR DRAM, or extreme data rate dynamic random access memory...

 format and analyze it. In addition, the client-side is not fully implemented. Finally, while RPC is primarily a synchronous protocol, it is used asynchronously in DART in conjunction with mutexes, condition variables, and other types of locks.

DART implements RPC over both the User Datagram Protocol
User Datagram Protocol
The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...

 (UDP) and the Transport Control Protocol (TCP). Each application has a single UDP stream and one TCP stream per connection, with the common IP module acting as a multiplexer
Multiplexer
In electronics, a multiplexer is a device that selects one of several analog or digital input signals and forwards the selected input into a single line. A multiplexer of 2n inputs has n select lines, which are used to select which input line to send to the output...

.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK