Thursday July 14, 2005 The Architecture Review Committees (ARCs) are responsible for the architecture process at Sun. The "Systems Architecture" effort at Sun is a process that establishes the basis for multiple engineering projects to be developed in parallel and then to integrate with each other and the existing system, either at Sun or in the customer's hands.
Sun's Architecture Review Committees (ARCs) review and approve technical aspects of software projects, implementing a process to manage technical change in the architecture of our software systems. These architectural reviews:
The goal of the ARC process is to consistently fulfill our customers' expectations of what a Sun product is, across the product line and over generations of products.
( Jul 14 2005, 03:15:00 PM PDT ) Permalink Comments [0]This is part of a discussion I'm having on the opensolaris-arc mailing list...
One of the recurring problems that we try to manage at Sun is how to effectively reuse components that should be reusable.
Reused components add risk to complex systems, primarily because incompatible changes to a component will break other parts of the system.
The FOSS/distro world many times deals with this situation by resyncing and recompiling whole subsystems every time some component revs in an incompatible way, giving what I call "source level compatability". Think gentoo and autoconf.
The alternative chosen by Sun and others is to provide "binary compatability", even in the face of incompatible change. This requires that we worry a lot more about changes to the interfaces between components:
| Stability | Public | Stable, Unstable, Volatile, "not an interface" |
| Private | Consolidation Private, Project Private | |
| Releases | Major, Minor, Micro, Patch | |
There is a relationship between the two:
| Incompatible changes to a | Stable | interface are only allowed to be made in a | Major | release of the consolidation that contains that interface. |
|---|---|---|---|---|
| Unstable | Major or Minor | |||
| Volatile | Major or Minor or Micro | |||
| NAI | Major or Minor or Micro or Patch | |||
| * Private | Major or Minor or Micro or Patch |
As long as these components are not reused by anything else in the system, it is easy to "not care" about how they evolve or change. The collection (which we call a "consolidation") is both low-risk and low-maintenance.
As these components start to get reused as building blocks for other consolidations, the potential cost to the system increases. If a component changes in an incompatible way, all the things that depend on it will need to react; if they don't, things may/will break.
The architectural question here really comes directly from kindergarten: "does it play well with others?"
( Jul 14 2005, 02:40:00 PM PDT ) Permalink Comments [0]I've been at Sun since 1989, and have been involved in many different projects - from porting SYSV to x386 systems and involvement with the early BSD/Libux efforts, bringup of Solaris 2.0 and porting the X/NeWS Window System and the OpenLook Desktop, to database clusters, systems management, yadda yadda yadda :-)
For the last 5 years or so, I've been the keeper of Sun's proactive architectural processes and the tools used by its various review committees.
Today's Page Hits: 41