<html><head>
<link rel="stylesheet" href="../../default_style.css">
<title>Eclipse Foundation</title></head>
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align=left width="72%"> <font class=indextop> Actuate</font><br>
      <font class=indexsub>&nbsp; </font></td>
    <td width="28%"><img src="../../images/Idea.jpg" height=86 width=120></td>
  </tr>
</table>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Press release</font></b></td>
  </tr>
  <tr> 
    <td> <br>
      <h1 ALIGN="CENTER"><b><span style='font-size:16.0pt;font-family:Arial;"Times New Roman"'><b> 
        Actuate Joins Eclipse Foundation as Strategic Developer <br>
        and Board Member</b></span></b></h1>
      <ul>
        <li>Actuate Proposes a Business Intelligence and Reporting Tools Project 
          to the Eclipse Open-Source Community for Review</li>
      </ul>
      <P>ACTUATE INTERNATIONAL USER CONFERENCE - LOS ANGELES - August 24, 2004 
        - The Eclipse Foundation, a community committed to the implementation 
        of a universal platform for tools integration, and Actuate Corporation 
        (NASDAQ: ACTU), the world leader in Enterprise Reporting Applications, 
        today announced that Actuate has joined the Eclipse Foundation as a Strategic 
        Developer. Actuate will join existing Strategic Developers IBM Corporation, 
        Intel and QNX Software Systems Limited as a Board Member for the Eclipse 
        Community. In addition, Actuate is leveraging a decade of experience in 
        business intelligence and enterprise reporting to propose the Business 
        Intelligence and Reporting Tools (BIRT) Project. If approved by the Eclipse 
        community, BIRT will be the first top-level Eclipse project for the development 
        of applications that include business intelligence and enterprise reporting 
        functionality. The BIRT project proposal will be available on the Eclipse 
        Foundation website for review and comment over the next 30 days.</p>
      <P> Actuate and Eclipse recognize that reporting and analysis are key functions 
        of every enterprise and customer-facing application. Today, the majority 
        of developers build reporting functionality into applications by hand 
        coding Java Server Pages (JSP) and would benefit from open-source technology 
        in this area. The approval and adoption of the BIRT project by the open-source 
        community will provide developers with access to easy-to-use tools that 
        will help decrease development costs related to business intelligence 
        and reporting, and increase innovation in this area. </p>
      <P>&quot;The potential benefits of open-source efforts such as Eclipse include 
        reducing technology acquisition costs, increasing the pace of innovation 
        resulting from multivendor competition, improving quality from the networking 
        effects of participating developers worldwide and from formalized review 
        process, and lowering total costs from greater interoperability and reuse.&quot; 
        Mark Driver, Analyst, Gartner, <i>&quot;Eclipse Is Targeting Growth through 
        Reorganization</i>&quot;, February 11, 2004.<br>
      </p>
      <P>&quot;We are thrilled to welcome Actuate as an Eclipse Strategic Developer,&quot; 
        said Mike Milinkovich, executive director of the Eclipse Foundation Inc. 
        &quot;We are pleased that Actuate has given the Eclipse open-source community 
        the opportunity to leverage the company's expertise and leadership in 
        enterprise reporting technology. Actuate's participation will further 
        the Eclipse open-source project and contribute to the expansion of the 
        Eclipse ecosystem so that it remains a nucleus for innovation in the software 
        industry.&quot;</p>
      <P>&quot;Actuate is honored to play a stewardship role within Eclipse, the 
        most broadly adopted universal platform for tools integration,&quot; said 
        Mark Coggins, senior VP of Engineering at Actuate Corporation. &quot;We 
        look forward to collaborating with the Eclipse community to create BIRT, 
        a reporting and analysis tool to be developed following the open-source 
        principles of transparency and meritocracy, where the best ideas and methods 
        will be incorporated. It is our goal that this project will address the 
        evolving needs of the open-source development community and we welcome 
        the community's feedback and comment over the next 30 days, and beyond.&quot;</p>
	  <p> &quot;We applaud Actuate's decision to offer their expertise and resources 
        to Eclipse and to join QNX, Intel and IBM as a Strategic Developer,&quot; 
        said Dan Dodge, president and CEO of QNX Software Systems. &quot;Actuate's 
        efforts to broaden the spectrum of tools and technologies available on 
        the Eclipse platform to include business intelligence and reporting will 
        enhance productivity and help span all levels of application development.&quot;</p>
      <p><b>To Find Out More</b><br>
        <br>
        BIRT will be available on the Eclipse Foundation website for public review 
        and comment over the next 30 days. To review the proposal and provide 
        feedback please visit <a href="http://www.eclipse.org" target="_top">www.eclipse.org</a>. 
        <br>
        More information is available at <a href="http://www.actuate.com/corporate/corporateresources.asp?ArticleId=7256" target="_blank">www.actuate.com/corporate/corporateresources.asp?ArticleId=7256</a>.<br>
      </p>
      
      </td>
  </tr>
  </table>
<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
		
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">About 
      Eclipse</font></b></td>
		</TR>
		<TR>
		<td align=left>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		  <td> 
            <P> The Eclipse Foundation is a not-for-profit, member-supported corporation 
              that hosts community based open-source projects. Eclipse creates 
              royalty-free technology and a universal platform for development 
              tools integration, modeling, testing and functionally-rich application 
              construction. Eclipse based offerings give developers freedom of 
              choice in a multi-language, multi-platform, multi-vendor supported 
              environment. Eclipse delivers a dynamic plug-in based framework 
              that makes it easier to create and integrate technology, saving 
              time and money. By collaborating and sharing core integration technology, 
              technology providers can concentrate and focus on areas of expertise 
              and differentiation. The Eclipse Platform is written in the Java 
              language and comes with extensive plug-in construction toolkits 
              and examples. It has already been deployed on a range of development 
              workstations including Linux, QNX, Mac OS X and Windows-based systems. 
              Full details of the Eclipse Foundation and white papers documenting 
              the design of the Eclipse Platform are available at <a href="http://www.eclipse.org" target="_top">www.eclipse.org</a>.</p>
            </td>
		</tr>
        </table></table>&nbsp;
<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
		
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">About 
      Actuate Corporation</font></b></td>
		</TR>
		<TR>
		<td align=left>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		  <td> 
            <P> Actuate Corporation is the world leader in Enterprise Reporting 
              Applications that ensure 100% adoption by users. Actuate's Enterprise 
              Reporting Application Platform is the foundation on which Global 
              9000 organizations (companies with annual revenues greater than 
              $1 billion) and packaged application software vendors develop intuitive, 
              Web portal-like reporting and analytic applications that empower 
              100% of users with decision-making information. These applications 
              are deployed inside and outside the firewall to improve corporate 
              performance across a range of business functions including financial 
              management, sales, human resource management, and customer self-service. 
              When tested against other business intelligence products, Actuate's 
              Enterprise Reporting Application Platform has been proven to offer 
              industry-leading scalability and the lowest Total Cost of Ownership. 
              Actuate has 2,900 customers globally in a range of industries including 
              financial services, pharmaceuticals, insurance, and distribution 
              services, as well as the government sector. <br>
              <br>
              Founded in 1993, Actuate has headquarters in South San Francisco, 
              Calif., and has offices worldwide. Actuate is listed on the NASDAQ 
              exchange under the symbol ACTU. For more information on Actuate, 
              visit the company's web site at <a href="http://www.actuate.com" target="_blank">www.actuate.com</a>.<br>
            </p>
            </td>
		</tr>
        </table></table>&nbsp;

	<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Media 
      contacts</font></b></td>
		</TR>
		</table>
		
<table width="100%" border="0" cellspacing="5">
  <tr> 
    <td width="50%"> 
      <div align="center">Barbara Reichert<br>
        Reichert Communications for Actuate Corporation<br>
        barbara@reichertcom.com<br>
        415.296.5130<br>
      </div>
    </td>
    <td width="50%"> 
      <div align="center"><br>
        Eclipse Foundation<br>
        Barbara Stewart<br>
        Patterson &amp; Associates<br>
        barbara@patterson.com<br>
        480.488.6909<br>
      </div>
    </td>
  </tr>
</table>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		  <td> 
            <hr width="85%">
      <P>Copyright&copy; 2004 Actuate Corporation. All rights reserved. Actuate 
        and the Actuate logo are registered trademarks of Actuate Corporation 
        and/or its affiliates in the U.S. and certain other countries. All other 
        brands, names or trademarks mentioned may be trademarks of their respective 
        owners. <br>
        <br>
        Brand or product names are registered trademarks or trademarks of their 
        respective holders. Java and all Java-based trademarks are trademarks 
        or registered trademarks of Sun Microsystems, Inc. in the United States 
        and other countries.<br>
        <br>
      </P>
<hr width="85%">
    </td>
		</tr>
        </table>&nbsp;        
&nbsp;
</body></html>
