[LWN Logo]

From: "Shane O'Donnell" <shane@www.opennms.org>
To: <general@opennms.org>
Subject: OpenNMS: OpenNMS Update v1.1
Date: Tue, 28 Mar 2000 15:41:20 -0500

Welcome to the OpenNMS Update!!
==================================
    OpenNMS Update
==================================
    Vol 1., Issue 1
==================================

In this week's installment...

   - Email/Communications/Updates
   - Project Status
   - Architectural Updates
   - Development Needs
   - How you can help
   - CVS
   - Subscription Info

==================================
Email/Communications/Updates
----------------------------
First of all, a hearty electronic welcome to everyone out there in the
OpenNMS community!  You are receiving this email if you registered at the
OpenNMS web site (http://www.opennms.org) and expressed an interest in our
efforts.  If you don't wish to receive any more of these updates, please
visit the Subscription Info section at the end of this email (Please don't
go!  We love you!)

If when you registered, you checked the "Join the e-mail list" box, you will
continue to receive emails and updates via the OpenNMS "general" mailing
list. However, the response has been so overwhelming that we've decided to
break that list up into multiple topic-specific lists.  The lists will be
built (and archived) as follows:

   "general"
      Project-level discussion, questions,
      announcements, etc.
   "doc"
      Documentation for all code
   "test"
	Code-testers' working group (all code)
   "bugs"
      Bug reporting for all code
   "eui"
      End User Interface working group
   "capsd"
      Capabilities Daemon working group
   "disc"
      Discovery Daemon/Process/Architecture
      working group
   "events"
      Event sub-system working group (including
      all event handling, correlation, etc.)
   "db"
      Data-store working group (including
      underlying RDBMS or alternative storage
      sub-systems)
   "servlets"
      Java Servlet working group

Note:  WE WON'T SEND YOU EMAIL YOU DON'T ASK FOR!  YOU NEED TO SUBSCRIBE TO
EACH AND EVERY LIST YOU WANT TO BE A PART OF!!

Please note that if you are actively writing code for the project, you will
probably want to subscribe to multiple groups, including the doc/test/bugs
groups (but that's just a suggestion--if you write bug-free code, test it
and document it all yourself, the extra email should be unnecessary ;-) )

This is the first of a bi-weekly series of project updates, announcements of
code drops, and general status information on the overall effort (and it's
MUCH longer than I expect it to be in the future).  The Open Source world is
pretty dynamic, so there may be some need for announcements outside of the
"every other Tuesday" schedule, but we'll try to keep the email traffic
minimal and meaningful.

--------------
Project Status
--------------
Things are really starting to pick up, and we have several announcements
that we think you will all find quite intriguing (or absolutely
meaningless...one or the other...):

   - New code released - http://www.opennms.org
     Login and click on "Source Code" or go to the CVS Repository (see
below)
      - Java SNMP v1/v2 libraries (Module name: jsnmp)
      - Data Presenter (Module name: jreporter)
   - New documentation available - http://www.opennms.org
     Login and click on "Project Docs"
      - Poller Specification
   - The Open Source Community takes notice...
       Freshmeat: http://freshmeat.net/appindex/2000/03/22/953737575.html
       Linux Weekly News: http://www.lwn.net/2000/0309/devel.phtml
       Linux Weekly News: http://www.lwn.net/2000/0309/devel.phtml

---------------------
Architectural Updates
---------------------
While our progress on the architecture side is a little further than some of
the other aspects of the project, things are still subject to change.  Here
are the biggies:

 The language strategy
 ---------------------

    Java wherever possible, C/C++ where necessary and XML over the wire.

 The implications:
 -----------------
    Java Pros
    =============
    Easier portability
    Shorter development cycles
    Native threads
    Lower "barrier to entry" for non-coders

    Java Cons
    =============
    Performance
    Evolving specs
    Limited platform interaction

So pieces like icmpd (the ICMP poller/listener) will have to be written in a
language that allows us access to ICMP (read: not Java).  But by limiting
the components that have to be written in C/C++, we decrease the time to
port to different platforms exponentially.

Additionally, with the decision to move to Java, which brings native
threads, any development on Hydra Threads has been indefinitely suspended.
For the record, we still think Hydra Threads is a worthy cause, it's just no
longer on our critical path of bringing Bluebird to life.

 The justification:
 ------------------
We tried to shoot holes in this and only came up with a few.  Portability is
a priority, and processing speed limitations can be addressed with JIT
compilers and more powerful hardware.  In our experience, most of the
processing bottlenecks associated with network/systems management can be
overcome (or at least compensated for) with multi-threading.  Event-handling
may be the exception to this rule, but we'd like to prove that this is a
problem before we assume it so.

We expect that this will generate some comments/questions/concerns.  Please
address architecture-level and strategy-related responses to me
(shane@opennms.org) and any other concerns to the General mailing list
(general@opennms.org).  I will share any of the non-"religion-oriented"
concerns that I get directly, but will filter them so as to keep the mail
volume low.

-----------------
Development Needs
-----------------
Right now, the most critical and immediate needs are as follows:

  - Testers/Bug fixers to work on the SNMP libraries (they ain't perfect...)
  - C/C++ coders to build the icmpd component for multiple platforms:
         - Linux (2.X kernel)
         - NT 4.0
         - Solaris 7 (Sparc/Intel)
         - FreeBSD
         - OS/390 (just kidding, but knock yourself out...)
         - Others (up to you...what have we left out?)
  - Database wonks to help design/build/query the backend
         - PostgreSQL is probably first and foremost
         - Don't forget!  We're RDBMS agnostic!
  - JDBC heroes to build the XML<->SQL reads/writes

Note:  If you have specific skill sets that are not referenced here and you
have the time and desire to help RIGHT NOW, let me know.  We can certainly
find something for you to do...

------------------------
So you want to help, eh?
------------------------

"Excellent." - Montgomery Burns

If you are available to help out on any of the above referenced
sub-projects,  simply follow the URLs to the specs that we've built for
these components.  If you have additional questions, let me know
(shane@opennms.org) and I'll do what I can to help clear things up.

As with any massive project, we need to have some sort of standards around
documentation, code styles, etc.  At the highest of high levels, here's what
we're currently thinking:

  - For all Java code, use the JavaDoc standard
  - For all C code, use Doxygen http://www.stack.nl/~dimitri/doxygen/
  - Stylistically, just write code that can be read, maintained, and
extended.  For examples, check out Weave's Java SNMP Libraries in the CVS
repository...

----------------------------------
CVS (Concurrent Versioning System)
----------------------------------
We are maintaining a CVS repository at www.opennms.org to store the code and
protect us from ourselves.  You can connect to it via anonymous CVS (you'll
need your own CVS client).  Note that our CVS instance will be migrating off
of this box soon, and after the migration, we'll be discussing admin access.
If you need a CVS client, try one of the following sites:

   http://www.wincvs.org  A Windows client
   http://www.cyclic.com/pub/cvs-1.10/windows/  A Windows command line
client
   http://www.loria.fr/cgi-bin/molli/wilma.cgi/rel  Anything else you can
imagine...

You will want to set an environment variable named CVSROOT equal to:

   :pserver:anonymous@www.opennms.org:/usr/local/cvsroot/bluebird

and when you login as anonymous, use "anonymous" as the password as well.
We're working on simplifying all of this, but for now, we're going to have
to lump it.

If you are a newbie, don't sweat it.  Try "cvs --help-commands" to get
started.

-----------------
Subscription Info
-----------------
If you wish to subscribe/unsubscribe to an OpenNMS mailing list, go to
http://www.opennms.org, login, and select "Your Profile".  If you need to
change your email address, login with your old address and unsubscribe, then
change the email address to your new address and re-subscribe.  Yeah,
yeah--it's kind of hokey, but the again, we're building enterprise
management software, not web pages...

You can subscribe/unsubscribe directly to any of these groups at any time
via email by using the standard Majordomo commands, a la:

    subscribe <listname w/ no quotes> <Your email address>
    unsubscribe <listname w/ no quotes> <Your email address>
    which <Your email address> (What the hell am I subscribed to?)
    help  (NOTE: This gives you a semi-complete list of commands)

or check out the Majordomo FAQ at
http://www.visi.com/~barr/majordomo-faq.html.

------------------
That's all for now
------------------
I promise these updates will be shorter in the future, so stick around.
Watch the mail lists.  Contribute where you can.  This promises to be a heck
of a ride, so grab a CVS client and hang on!  Yee-ha!

Virtually yours,

Shane O.
========
Shane O'Donnell
OpenNMS
shane@opennms.org
===================
It's Revolution, not Evolution
at http://www.opennms.org !!!!

= = = = = = = OpenNMS.org List Message = = = = = = = = =
To unsubscribe from this list, send a message with a body of
"unsubscribe general <email>" to majordomo@opennms.org.