summaryrefslogtreecommitdiff
path: root/PACE/docs/www/PACE-overview.html
blob: 33c8398400ba45b903e83049812aa23ad27e3294 (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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- $Id$ -->
<html>
  <head>
    <title>PACE Overview</title>
  </head>

  <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>

    <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
      <tr>
        <td><hr></td>
      </tr>
      <tr>
        <td>
          <table border=0 cellspacing=20>
            <tr>
              <td>
                <p align=right>
                  <a href=PACE.html>
                    <img alt=Click-Me-To-Go-Home
                         border=0
                         src=Pix/PACE-mini-logo.gif>
                </a>
                </p>          
              </td>
              <td>
                <table cellspacing=10>
                  <tr>
                    <td align=center><a href=PACE-overview.html>PACE Overview</a></td>
                    <td align=center><a href=PACE-obtain.html>PACE Obtain</a></td>
                    <td align=center><a href=PACE-docs.html>PACE Documentation</a></td>
                  </tr>
                </table>
              </td>
              <td>
                <p align=right>
                  <a href=PACE.html>
                    <img alt=Click-Me-To-Go-Home
                         border=0
                         src=Pix/PACE-mini-logo.gif>
                  </a>
                </p>          
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td>
          <hr>
          <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>
              <p>The low-level interface is a C file, so that it can be
                used in both C and C++ programs.
              </p>
            <li>
              <p>The low-level interface is partitioned into multiple
                files, one per POSIX.1 section.
              </p>
            </li>
          </ul>
          
          <hr>
          
          <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>
          
          <hr>
          
          <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><b>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>
            </li>
          </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/~cyron">
                Dr. Ron Cytron</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>
        </td>
      </tr>
      <tr>
        <td>
          <hr>          
          <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>
          
          <p>If you have any questions, suggestions or contributions
            regarding PACE, please
            <a href="mailto:pace-users@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>
          
          <hr>
          
          <!-- email -->
          <font face=Verdana,Arial,Helvetica size=2>    
          <p align=center><a href="mailto:doc_group@cs.wustl.edu">
              Doc Group</a></p>
          
          <!-- last modified tag -->
          <p align=center>
            <!-- Created: Fri May  4 20:13:27 CDT 2001 -->
            <!-- hhmts start -->
Last modified: Sun May 13 14:45:55 CDT 2001
<!-- hhmts end -->
          </p></font>
        </td>
      </tr>
    </table>
    
  </body>
</html>