summaryrefslogtreecommitdiff
path: root/PACE/docs/overview.html
blob: 27f29e292d9c3a3259b85195a880e5249c92fd6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<!-- $Id$ -->

<!-- html -->
<html>

<!-- head -->
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <title>PACE Overview</title>
</head>

<!-- body -->
<body text="#000000" bgcolor="#CCCCCC" link="#0000EF" vlink="#51188E" alink="#FF0000">

<!-- links -->
<table width="700" align="center">
<tr><td>
  <img src="../IMAGES/but_overview.gif" border="0">

  <a href="../DOWN/index.html">
  <img src="../IMAGES/but_download.gif" border="0"></a>

  <a href="../DOCS/index.html">
  <img src="../IMAGES/but_documents.gif" border="0"></a>

  <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">
  <img src="../IMAGES/but_ace.gif" border="0"></a>

  <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">
  <img src="../IMAGES/but_tao.gif" border="0"></a>

  <a href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html">
  <img src="../IMAGES/but_copyright.gif" border="0"></a>
</td></tr>

<!-- line -->
<tr><td>
<img src="../IMAGES/line_mid_700.gif">
</tr></td>

<tr><td>
<h2>PACE Overview</h2>

      <p>PACE is an OS abstraction layer designed for lightweight and/or verified
         systems.</p>
      <p>It offers these benefits:</p>
      <ul>
        <li><p>A strict POSIX.1-like, low-level interface.  Its interface is "POSIX
            compatible"; by that we mean as close to POSIX.1 as it can be, given
            that PACE is not an operating system.  And, to avoid name conflicts
            with OS APIs, all low-level PACE function names have the
            <i><b>pace_</b></i> prefix.</p>
        </li>
        <li><p>The low-level interface is a C file, so that it can be used in both
            C and C++ programs.</p>
        </li>
        <li><p>The low-level interface is partitioned into multiple files, one per
            POSIX.1 section.</p>
        </li>
      </ul>
       

<h2>ACE uses PACE</h2>

      <p>The ADAPTIVE Communication Environment
         <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">(ACE)</a> is a freely
         available, open-source, object-oriented
         <a href="http://www.cs.wustl.edu/~schmidt/courses.html"> (OO)</a> framework
         that implements many core design patterns for concurrent communication
         software.</p>

      <p>ACE is currently built on an
         <a href="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">OS Adaptation
         Layer</a> that abstracts away specific computer architecture / platform
         dependencies therfore allowing ACE to be portable across any platform that the
         adaptation layer supports.</p>

      <p>ACE also forms the foundation upon which
         <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a> is built. The
         combination of implementing TAO (adding specific functionality to ACE) and
         the ever shifting sands of vendor-specific operating systems has grown the ACE
         adapatation layer from a small core of critial functions to over 30,000 lines
         of interdependent code. The development of TAO tied in with requests from our
         sponsors as well as suggestions from the development community at large
         contributed to our decision to re-engineer ACE' adaptation layer. PACE is one
         part of this effort.</p>

<h2>PACE Objectives</h2>

      <p>Some objectives of this phase of ACE' development (PACE) include:</p>

      <ul>
      <li><p><b>ACE Developers:</b> Make the low level abstraction layer code more
             maintainable.<br> <i>(reduce file size and file interdependence - improve
             code modularity)</i></p></li>
      <li><p><b>ACE Users:</b> Reduce ACE' footprint.<br>
             <i>(this is not a one step task by any stretch of the imagination, but we
             will begin breaking out the code into separate files - allowing developers
             the opportunity option to compile and link specific object files to their
             executables instead of the entire ACE adaptation layer library)</i></p></li>
      <li><p><b>ACE Users:</b> Update the adaptation layer to be POSIX compliant.<br>
             <i>(see next)</i></p></li>
      <li><p><b>ACE Users:</b> Split the adaptation layer to support both a <b>C</b>
             api (PACE) as well as a set of <b>C++</b> wrapper classes (ACE_OS)
             allowing <i><b>both C &amp; C++</b></i> developers to call directly into the
             low level api.<br>
             <i>(encapslate POSIX and system calls in <b>C</b> wrappers and re-write the
             (ACE_OS) adaptation layer to transparently call into the POSIX emulation api
             (PACE))</i></p></li>
      <li><p>ACE Users:</b>ACE will not change its public interface, it will only add low
             level <b>C</b> operations to its repertoire. As is obvious, software built on
             this adaptation layer is portable across the various platforms that ACE
             supports. This provides backward compatilibity for people already using the
             current <b>C++</b> (ACE_OS) adaptation layer of ACE.</p>
      </ul>

      <p>This is an open-source project maintained by:
         <ul>
           <li><a href="http://www.cs.wustl.edu/~schmidt">Dr. Douglas Schmidt</a> of the 
               <a href="http://www.cs.uci.edu/">University of California - Irvine</a></li>
           <li><a href="http://www.cs.wustl.edu/~levine">Dr. David Levine</a> of 
               <a href="http://www.cs.wustl.edu/">Washington University - St. Louis</a></li>
           <li>their respective sister <a href="http://www.cs.wustl.edu/~doc">
               <b><font color="red">D</font></b>istributed
               <b><font color="red">O</font></b>bject
               <b><font color="red">C</font></b>omputing</a> research groups.</li>
         </ul>
      </p>

      <p>Additional information regarding
         <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a> and
         <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a> and
         <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a> is available
         as well as a <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">full
         source distribution</a> of TAO + ACE + PACE.

      <p>If you have any questions, suggestions or contributions regarding PACE, 
         please <a href="mailto:luther@cs.wustl.edu">write</a> to us or subscribe to the
         pace-users mailing list (send email to <a href="mailto:majordomo@cs.wustl.edu">
         majordomo@cs.wustl.edu</a> with <b>"subscribe pace-users"</b> in the <i>body</i>,
         not the subject line ;-)</p>
</td></tr>

<!-- line -->
<tr><td>
<div align="center"><img src="../IMAGES/line_mid_700.gif"></div>
</td></tr>

<tr><td>
<div align="center"><a href="http://www.cs.wustl.edu/~luther/PACE">home</a></div>
</td></tr>
</table>

</body>
</html>