throbber
96
`
`SOEFWARE ARCHITECTURE DESIGN
`
`integration‘ c_oVde;for 2N-g1"interfaces:=

`b)tVerti?ca?tArchitecture’
`E
`E
`
`Figure 4.20. System extension using the four architecture patterns.
`
`“2
`
`SAP 1009 (Part 2 of 3)
`CBM of U.S. Patent No. 8,037,158
`
`112
`
`

`
`SOFTWARE ARCHITECTURE PATTERNS
`
`97
`
`r”1teg§{atI‘o_Rn céde for 2 to_2N+A-L1 interfaces .—.‘R?V At?) 711,
`’
`A
`V(d)T_Hybtid Architébturej V
`A
`A
`'
`‘
`
`Figure 4.20.
`
`continued.
`
`113
`
`113
`
`

`
`98
`
`SOFFWARE ARCHITECTURE DESIGN
`
`create the system. The second scenario is a systemextension. In each case,
`a sixth application is added to the system. The new application obeys the
`same architecture pattern conventions. The third scenario is an applica-
`tion replacement. A new application is integrated in place of the one in the
`original architecture. In the fourth scenario, the two systems are merged to
`create a common interoperable system with twice as many applications.
`In the analysis, the development cost is incurred for all ofthe integration
`code needed to implement the architecture-level interfaces. This includes
`both client and server codes for a particular application-to—application con-
`nection. If architecture standards allow the reuse of integration code, then
`this is reflected as a cost savings.
`Figure 4.20 shows the results of the analysis for an arbitrary size sys-
`tem, Where N is the number of applications. This model shows that the
`custom architecture requires high costs for initial system development and
`all forms of system modification. The vertical architecture provides no real
`cost benefits for initial development and system extension. It saves about
`half the cost of component replacement, and it is cost neutral to system
`
`, jintefgrate thesystem... multiplies the ,co,:f_and com‘ I
`afzthe implemented system-
`I
`L
`E
`‘
`, ‘E
`N Nut:/1beriof.Ap licatirfinsifi »*"lnte‘grated:
`
`Figure 4.21. Comparison of architecture patterns.
`
`114
`
`114
`
`

`
`SOFTWARE ARCHITECTURE PATTERNS
`
`99
`
`Figure 4.22. Example of cost savings N = 7
`
`merger. This indicates that the vertical standards provide for intersystem
`interoperability (a capability also shared by the horizontal and hybrid archi-
`tectures). The horizontal architecture provides the most ease of extensibility.
`The cost of system extension is constant regardless of the size of the system.
`As We stated earlier, the horizontal architecture provides many benefits, but
`it is not practical to assume that a community of developers Will be strictly
`limited to common horizontal interfaces. The hybrid architecture includes a
`range of costs between the horizontal and vertical architecture examples.
`System extension is likely to cost at the 2N + 1 level of the custom archi-
`tecture in three out of four cases. The key lesson is that architectural benefits
`are very sensitive to the Way that the system is designed and extended. Po-
`tential benefits are significant, but they are likely to be jeopardized by sub-
`sequent system extensions which are not conformant to the architectural
`vision and detailed tradeoffs made by the architect.
`Figure 4.22 shows the relative cost savings with respect to the custom
`architecture when N = 7, a typical system size. The hybrid can provide the
`cost benefits of the horizontal architecture with the specialized functional-
`
`115
`
`115
`
`

`
`100
`
`SOFTWARE ARCHITECTURE DESIGN
`
`ity benefits of the vertical architecture. Average cost savings for the hybrid
`architecture are substantial for development and all forms of system mod-
`ification. In summary, the hybrid architecture is our recommended basic
`pattern for software architectures.
`
`Advanced Architecture Pattern: Separation of Facilities
`
`An advanced architecture strategy involves the separation of facilities. The
`Internet services have successfully demonstrated this approach. The Inter-
`net facilities are partitioned between the front-end tools (the user facilities)
`and the back-end information sources (the application facilities). The infor-
`mation sources are strictly back-end servers that can be shared by multiple
`clients. The user facilities are strictly front-end applications that serve one
`user. Some client applications can access multiple types of servers. The user
`has a choice of front-end styles for viewing data.
`The Internet communication standards are defined in terms of lower-
`
`level communication layers, typically at the Internet Protocol (IP) level.
`Compared to CORBA, the IP level requires a substantial amount of client
`and server software in support of each interface. CORBA may have future
`impact on the Internet because it enables the rapid creation of many new
`services and customized interfaces.
`
`The Internet provides an important example of how to structure an ar-
`chitecture in a distributed environment (see figure 4.23 on page 101). Shared
`data and services should be migrated toward the back-end application facil-
`ities. Customized user functionality should reside in separate user interface
`applications. Shared functions and data do not belong in the user facilities,
`and user interaction should not be associated with the shared services.
`
`Beyond the Internet, there are many other reasons why architectures
`should be partitioned in this manner. In general, architectures should min-
`imize the software investment in the user facilities and migrate as much
`functionality and data as possible to shared application facilities (see figure
`4.24 on page 102). In the following paragraphs we make some of the key
`arguments why this strategy is necessary.
`Shared services such as data repositories and search engines often re-
`quire special processing resources. Repositories may have massive storage
`requirements and need high-speed disk interfaces. Computation~intensive
`services may need special processors to provide adequate response-time per-
`formance. For a shared service involving many users, it is usually cost effec-
`tive to provide specialized processors, buses, and storage systems, tailored to
`the needs of these services. The cost of special hardware can be distributed
`among many users.
`
`Most user interface facilities are platform-specific. Applications do not
`port easily between platforms unless some form of cross-platform develop-
`ment environment is being used. To take advantage of the best capabili-
`
`116
`
`116
`
`

`
`SOFTWARE ARCHITECTURE PATTERNS
`
`101
`
`Figure 4.23. Partitioning of Internet.
`
`ties of each platform, it is necessary to write the user interface code in a
`platform-dependent manner. Platform dependence will continue to be an is-
`sue with user interface software because the industry desktop market will
`continue to become increasingly fragmented. Emerging technologies such
`as COSE/CDE, OLE/COM, OpenDoc, OPENSTEP, Fresco, and Taligent are
`environments that will drive the need for partitioned software.
`Architects should minimize software investments in platform-dependent
`software. This can be done by migrating as much functionality as possible
`to shared application facilities. Dependent software is expensive to port
`between platforms; the quantity of this type of software should be minimized.
`Any vendor-dependent software also is in danger of premature obsolescence
`and high operation and maintenance costs.
`Simplifying the role of user facilities allows the creation of more cus-
`tomized user interfaces. It is very difficult or impossible to create a common
`user interface that is readily accepted by all user groups. The groupware
`software market is well aware of this issue. The failure of many group
`
`117
`
`117
`
`

`
`102
`
`SOFTWARE ARCHITECTURE DESIGN
`
`y Facilities‘
`
`Figure 4.24. Separation of user facilities from shared application facilities.
`
`scheduling tools is an example of how user interfaces are closely tied to
`individual user preferences and group culture. By simplifying the role of
`user facilities, more customized user interfaces can be created to meet the
`needs of special—interest users’ groups. Simplified user interface facilities
`require less code and are less expensive and faster to build and specialize.
`They also adapt to end-user needs and changing requirements.
`The emerging market of user-interface rapid prototyping tools will en-
`able dramatic reductions in the cost of user-interface development. Many of
`these tools will interface directly with CORBA. Independent software ven-
`dors such as Bluestone, Integrated Computer Solutions, Oberon, Netlinks,
`and others are developing or already have CORBA products on the market.
`It may soon be possible to implement a complete customized user interface
`Within hours. This interface might provide all of the desired CORBA invoca-
`tions Without substantial development. As platforms and user needs change,
`new user interfaces can be created just as easily.
`
`118
`
`118
`
`

`
`SOFTWARE ARCHITECTURE PATTERNS
`
`103
`
`Some application domains may require an additional category of sepa-
`rated facilities. Workflow represents the organization’s business process. An
`automated workflow supports the business process across multiple software
`packages. Workflow software can perform functions such as data transfer of
`results, automatic manipulation of data using multiple packages, and user
`notification.
`
`In general, shared application facilities should be completely indepen-
`dent of workflow. The shared application facilities should be among the
`most stable subsystems in the architecture and should support flexibly
`many modes of utilization eliminating any hard-coded workflow from the
`access protocols. In some environments, workflow is naturally merged with
`the user-interface facilities. In others, the user interface facilities need to
`be workflow independent. This is often the case where there are multiple
`workflows in an organization that share common applications. Workflow
`can provide useful animation to a set of passive user facilities and shared
`application facilities. It is a good example of "why good functionality through
`architecture—level APIs must be provided. A workflow process may need
`to control virtually any type of function that a software package provides.
`Workfiow can be highly volatile, as an organization adapts to meet changing
`business needs. For this reason it is probably prudent to separate work-
`flow in the architecture in order to localize the changes needed as workflow
`changes.
`'
`
`Other Architecture Patterns
`
`There are a variety of other widely used architectural paradigms. In the fol-
`lowing sections, we identify these paradigms and establish their relationship
`to the design of software architectures.
`
`Ad Hoc Architecture Ad hoc architectures are created whenever a system
`is integrated directly at the implementation level. These architectures con-
`tain a spontaneous mixture of communication levels and mechanisms; they
`are architectures without a vision. By choosing the most expedient ways
`to create interoperability, an ad hoc architecture can show some immediate
`interoperability benefits, but these benefits are short-lived and usually very
`dependent on particular software versions and the particular programmers
`who create the integration solution. These systems are very brittle; they sel-
`dom can adapt to any changes to the system, such as new software versions,
`new network configurations, porting to new platforms, and so forth. During
`the life cycle of such a system, programmers usually move on to new respon-
`sibilities, and new programmers find ad hoc systems impossible to maintain
`and extend.
`
`For some organizations, such as small independent software vendors
`with a very stable programmer workforce, an ad hoc architecture may be
`
`119
`
`119
`
`

`
`’ 104
`
`SOFTWARE ARCHITECTURE DESIGN
`
`reasonable, particularly if the product is undergoing frequent revisions that
`impact architecture-level issues. For most other organizations, ad hoc archi-
`tectures are practical only for small-scale prototypes, such as user-interface
`mockups.
`‘
`Software architecture designs should be initiated as early as possible
`in prototypes that are likely to migrate into operational systems. The pro-
`cess of creating a good architecture for a system is very closely related to
`prototyping experiences and should proceed in parallel. A key goal of any
`operational system prototype should be the creation of a robust software
`architecture that can adapt to the changing requirements of the users. Ad
`hoc architectures do not meet these needs, except in very special organiza-
`tions.
`
`Methodology-bound Architectures Systems designed with rigorous soft-
`ware methodology can employ many architectural principles, such as com-
`ponent isolation and well-defined software boundaries. Occasionally, after
`we explain architectural principles to groups, someone responds: “We have
`all that, but we still cannot create a successful system.” Obviously these
`projects are missing some ingredients.
`The missing ingredients are more cultural than technical. Methodology-
`bound projects have a skewed value system, in which priorities in the
`methodology override the priorities of good architecture. For example, a
`commonplace methodology-driven question is: “Is that feature really object
`oriented?” This question may be very appropriate at an object-oriented pro-
`gramming level, but it has minimal relevance to software architecture. An
`architecture must use a wide range of concepts well beyond the scope of a sin-
`gle methodology. [Shaw, 93] The architecture must provide a stable solution
`over a decade-long system life cycle, well after the demise of today’s popular
`methodologies. Other methodology-driven priorities include the mandatory
`creation of large quantities of design documentation that may be of little
`or no use to the developers and maintainers of the system. As the system
`evolves, the design documentation rapidly becomes obsolete.
`In computing, we have seen many methodology trends come and go. Cur-
`rently there are more than two dozen documented object-oriented method-
`ologies. [Hutt, 94] The persistent trend is to move on to new methodology
`concepts.
`To design good architectures, organizations must recognize that popular
`methodologies are transient. In fact, methodologies involve some of the most
`dynamic, rapidly evolving ideas in computing technology. The methodology
`business is also one of the most fragmented in the computing industry. There
`is little or no hope of standardization of methodologies; hence, there is no
`movement toward stability. Methodology practices will change dramatically -
`over the course of a system life cycle. Good software architectures must
`provide much more stability than the methodologies that may be employed
`to create them.
`
`120
`
`120
`
`

`
`SOFTWARE ARCHITECTURE PATTERNS
`
`105
`
`There is probably no way to fix a methodology-bound architecture
`without fundamental cultural changes that allow software architects to de-
`sign and implement their Vision without the encumbrances of methodology-
`driven project culture.
`
`Object-Oriented Architecture Object orientation includes as one of its
`basic principles the modeling of natural real-World objects in the software
`system. This notion has roots in the semantic database modeling work of
`Dennis McLeod at the University of Southern California, where the comput-
`ing object does not only represent the real-World object, “it is the object.”
`An important question for software architects is whether to include ab-
`stractions of domain objects at the system level. We have already said that
`it is not acceptable to publish unabstracted object models at the system
`level. Without abstractions, the architecture cannot manage system com-
`plexity effectively. There are two important considerations: (1) the stability
`of the domain models compared to the system life cycle and (2) whether
`hard-coding the domain models into the architecture provides significant
`system-level benefits.
`Even in highly domain-dependent applications, such as simulation, the
`architect has a choice of whether to hard-code the domain objects into the
`core of the software architecture or to separate the domain-dependent hier-
`archies from the domain-independent hierarchies. For example, a domain-
`independent architecture can incorporate domain information in object
`method parameters as opposed to hard-coded attributes and API—level spec-
`ifications.
`
`Client-Server Architecture Client-server is the precursor technology to
`distributed objects. Client-server technology is associated with remote pro-
`cedure calls such as ONC and DCE, whereas distributed objects are as-
`sociated with CORBA, which is the predominant industry standard for
`distributed objects. Distributed objects are peer to peer, whereas client-
`server is a constrained architecture with well-defined client and server sub-
`
`system roles.
`Client-server technology contains some very useful concepts for the
`system architecture (as opposed to the software architecture), which in-
`cludes hardware selection and physical allocation decisions. Client-server
`can be viewed as the antithesis to the migration of functionality from the
`mainframes to the desktop. In client-server, the focus is on creating high-
`performance centralized processing services. The centralized services run
`on high-performance systems with tightly integrated mass storage facili-
`ties. The capital resources are focused in the centralized server facilities
`and minimized on the desktop. When fully migrated to client-server, the
`desktops should be commodity terminals, such as personal computers or X
`Terminals. This model works because the cost of the centralized resources
`
`are shared among many users; sufficient savings usually can be obtained
`
`121
`
`121
`
`

`
`106
`
`SOFTWARE ARCHITECTURE DESIGN
`
`from the reduced costs of the commodity desktop systems. When properly
`configured, the client-server systems deliver better performance at lower
`cost than either mainframe-based systems or PC-LAN systems.
`Client-server is not concerned with interoperability. Each application
`functions as a vertically integrated “stovepipe” system, self~contained and
`providing all levels to the user from user interface to back-end mass storage.
`In most client-sever systems, interoperability between applications is limited
`to desktop cut and paste—that is, exchange of text and bitmaps, not objects.
`The second problem with client-server technology is that it is often
`vendor- and product-dependent. Since client-server products are vertically
`integrated, often there is no user-defined software architecture. We have
`heard people claim that “our architecture is <<place your favorite product
`here>>.” In that case, the system is vulnerable to the commercial decisions
`of a single supplier, and there is a lack of control of the timing of product
`upgrades and associated maintenance costs. Users are forced to follow the
`vendor’s lead or risk obsolescence. Many organizations have regretted this
`loss of control.
`
`Most client-server vendors include API access to their products, so that
`they can be incorporated readily into user-defined software architectures.
`Techniques presented herein can be used with these products to create soft-
`ware architectures that provide vendor independence through component
`isolation. If a client-server product does not provide this level of API access,
`consider excluding it from the system. Lack of API access indicates the prod-
`uct has a closed, vendor-controlled architecture that could become a serious
`liability over the system life cycle. Even when an API is available, it should
`be mapped to your own IDL interface that you control.
`
`Message-oriented Architecture Message-Oriented Middleware (MOM)
`is designed to provide message model capabilities in a distributed environ-
`ment. The networking world experience has shown that messaging can be
`quite beneficial. Message systems provide fault tolerance. Messages can be
`queued, routed, or stored until a system is available for reception. The sys-
`tem, therefore, does not have a single point of failure. Currently MOM can
`be based on the RPC model, on message queueing, or on models that attempt
`to utilize the best aspects of both. The main benefit of this architecture is
`its support of both the synchronous mode of communication as well as the
`asynchronous mode. However, it currently is immature. Thus, developers
`today face multiple nonstandard APIs and questions as to how MOM will in-
`teroperate with other architectures. MOM may require more code to utilize.
`
`COMMENTS
`
`The design of highly effective software architectures involves a great deal of
`intuitive judgment and experimentation. Rigorous methodologies that are
`executed mechanically can impede this creative process. The ability to create
`
`122
`
`122
`
`

`
`COMMENTS _
`
`107
`
`simplifying abstractions is a key innate talent of the software architect. Few
`individuals practicing in the software industry have this ability—perhaps
`as few as one in five software designers. [Coplien, 94] The next major trend
`in computing methodology, “design patterns” in part resulted from recogni-
`tion of this fact. The Design Pattern practitioners are focused on project-
`centric solutions. Their concepts are synergistic with ours, in that we both
`are interested in techniques for creating better software architectures. Our
`approach goes beyond a project-centric focus to include the creation of stan-
`dard reusable architectures that can fill important standards gaps and ad-
`dress interoperability needs for communities of developers. We have found
`that many recognized authorities minimize the importance of standards.
`In our opinion, without organizational interface standards there is mini-
`mal reusability and no leverageable technology progress from generation to
`generation of software systems.
`A common misconception in object-oriented systems development in-
`volves the difference between obj ect-oriented programming and architecture-
`based systems integration. Many developers have practiced integration by
`providing system—level exposure to their object classes and methods. This
`practice is problematic because it multiplies the complexity of the archi-
`tecture by the complexity of the internal object models of each subsystem.
`When a typical program comprising 100 classes and 1,000 methods is inte-
`grated with ten other similar programs, a system complexity of 1,000 classes
`and 10,000 methods results. These methods would be used sparsely across
`program boundaries in a manner that is highly dependent on specific ap-
`plications. In effect, the architecture becomes highly brittle because all the
`subsystems become intimately interdependent upon each other’s detailed
`object schemas.
`There is an interesting analogy here between software architecture and
`pop psychology. The discovery and definition of healthy boundaries is one
`of the fundamental principles of Gestalt psychology, the scientific basis for
`much of today’s pop psychology movement. Highly interdependent, brittle
`software systems are analogous to codependent personalities. In both cases,
`there is a poor definition of boundaries between independent entities. This
`lack of good boundary definition leads to dysfunctional behavior. In comput-
`ing, this behavior is exhibited by the fact that 50 percent of software cost
`is attributed to system discovery (where the programmer is trying to find
`out how the system works). In addition, so-called codependent systems lack
`adaptability. The systems are unable to grow to address new requirements
`and challenges without great expense. Difficulty in debugging and defect
`correction is another important result of poorly defined system boundaries.
`Object-oriented programming and architecture-based systems integra-
`tion are quite different practices with very different goals. The software
`architecture’s role is to help control complexity and manage change in the
`system. Ideally, the software architecture provides a system—level abstrac-
`tion that needs to contain only enough detail to provide the required sys-
`
`123
`
`123
`
`

`
`108
`
`SOFFWARE ARCHITECTURE DESIGN
`
`tem-level interoperability. Generally designers err on the side of too much
`complexity with insufficient abstraction. The most important and difficult
`decisions are not what details to put into the software architecture but what
`details to leave out [Brinch Hansen, 76].
`The Rule of Three Iterations is another important analogy for the ar-
`chitecture process. This analogy was explained to the author by Professor
`Brinch Hansen at USC; it contains some important truths. Generally, three
`iterations of system implementation are needed to create a mature software
`architecture. We can illustrate this analogy with some well-known automo-
`bile models. The first prototype resembles a Ford Pinto. It is a fairly minimal
`design with some obvious Weaknesses. The second prototype resembles a
`GM Cadillac. Success with the first prototype often leads developers to try
`to build an overly ambitious system. This system dramatically fails to meet
`expectations. The third prototype resembles a Volkswagon Beetle. Due to
`lessons learned, it is a simple, elegant design that provides the desired func-
`tionality, but with a very economical implementation. It is hoped that the
`third prototype becomes the operational system, because it can be developed
`and maintained at a very reasonable cost.
`Using this analogy as a guideline, the architecture process should con-
`tinually evolve the design towards a Beetle-like system, altogether avoiding
`the overly ambitious Cadillac-like system. The Beetle-like system carries
`many benefits:
`
`Cost effective in declining budget times
`More versatile
`
`More adaptable
`More migratable
`More efficient
`
`124
`
`124
`
`

`
`
`
`Security
`
`With the advent of open systems and networking We have seen accompanying
`social by—products, such as viruses, ’I‘rojan horses, unauthorized accesses,
`and damage by disgruntled employees. Security is an essential capability
`needed by the public and private sectors, in government, finance, medicine,
`and general business. These industries need to protect information from
`unauthorized access and modification, to protect privacy, to guard trade
`secrets, and to protect data.
`Extensive research has been performed on computer security, such as
`secure operating systems and secure databases. In the past, not many im~
`plementations were commercially available, particularly in the challenging
`multilevel-security (MLS) arena. MLS security enables the interoperation
`of systems operating at different levels and supports multiple levels on the
`same system. While the number of available products and technologies that
`address this area is increasing, these implementations are not prevalent.
`MLS is still a difficult issue; without it users may not attain all of the desired
`benefits that distributed object management can provide while answering
`all of their security needs.
`Because computer security historically has been viewed as a small spe-
`cialty market, the commercial success of security technologies has been
`disappointing. Available security technologies are limited to specialized ver-
`sions of platforms and products. These specialized versions are typically
`generations behind the state of the art in terms of cost, features, perfor-
`mance, robustness, and usability. In order for security to be effective it must V
`be ubiquitous, but security is unlikely to achieve pervasive support if sup-
`pliers do not bundle it with mainstream platforms. One necessary change
`
`109
`
`125
`
`125
`
`

`
`110
`
`SECURITY
`
`is a fundamental recognition by suppliers that virtually all end users need
`security, not just selected narrow markets.
`Some end users believe that the only available course of action is to
`wait until MLS security is commercially available-—they ignore security or
`opt for physical isolation. We believe that this sort of argument should not
`be accepted anymore. Security must be taken into consideration, especially
`during system architecture design. Even though security may not be avail-
`able in some of the newer emerging technologies, architects should plan on
`integrating and phasing it in.
`Architects and developers sometimes View security as too difficult and
`defer it rather than build it into the architecture from the start. Often they
`believe that security complicates a system, imposes restrictive policies and
`procedures, and may impact performance. Mainframes and PCs had colo-
`cated disk packs or hard drives that were physically secure. Local area
`networks, remote access, and global internetworking have made security
`a complex challenge. Distributed systems introduce new problems, such as
`applications that run across several systems. When we add object-oriented
`technology to the equation, we find that conventional security mechanisms
`and architectures are woefully insufficient. The CORBA architecture at-
`tempts to provide transparent object location and activation, while the secu-
`rity policy may require a client to know it is communicating with a trusted
`object.
`Security has many diverse aspects, examples of which include physical
`security, personnel security, information security, prevention of electromag-
`netic emanations and their interception, operations security, computer se-
`curity, and network security (software and hardware). In this chapter we
`concentrate on the technology related issues.
`We look further into advanced security issues that arise when using
`an object request broker (ORB) in a distributed system. We review several
`important security standards and research projects that apply to multiple
`levels of security architecture. In addition, in Chapter 7 we present the
`security support as implemented in the DISCUS framework.
`
`The Need for Security
`
`A common misconception is that only governments are interested in secu-
`rity. Often software vendors or systems integrators argue that they are not
`concerned with security because they target the commercial World. Inter-
`estingly, while their requirements are somewhat different, security needs in
`the commercial world are just as prevalent as in the government.
`Governments are interested mainly in protecting information (often mil-
`itary) from enemies. As such, they are interested both in preventing unau-
`thorized disclosure and in maintaining data integrity. Limits are imposed on
`who can access information for updating and modification and also on who
`
`126
`
`126
`
`

`
`SECURITY
`
`111
`
`can access the information for reading. The private sector is driven mainly
`by business decisions and their cost effectiveness. In the banking industry,
`protecting someone’s account balance total from being read is not as im-
`portant as protecting it from being modified. The private sector is therefore
`more interested in protecting information from being changed (i.e., restrict-
`ing write access). Sometimes, although not as often as in the government or
`military, companies are interested in restricting any access to information,
`especially trade secrets from competitors [Chalmers, 90].
`Nowadays, the needs of the government and the private sector seem to be
`converging. Viruses, Trojan horses, worms, and wide use of the Internet have
`raised the user community’s awareness for security, possibly with varied
`emphasis. For example, the military may be concerned with data integrity
`in the case of data that affects nuclear weapons launches. The private sector
`also is concerned with the integrity of the data and wishes to protect it from
`unauthorized modification. This takes the form of well-formed transactions
`
`and separation of duties in the workplace. Separation of duties provides
`security, for example, by requiring several signatures in order to validate
`some operation (e.g., purchase order, release of funds, etc.). Similarly, in the
`military it may require several people to authorize a nuclear launch.
`
`Security Issues
`
`At some level both camps are interested in authentication, auditing, moni-
`toring, and of course good performance. Because of these requirements, care
`must be taken when designing a security system. Here are a few things to
`consider, especially when introducing security into a distributed, heteroge-
`neous environment [Fairthorne, 94—a1so known as the OMG Security White
`Paper]:
`
`0 The security model must be independent from specific security algo-
`rithms. It must enable access to and selection of, the algorithms and
`support more than one security policy. This is important because dif-
`ferent platforms and domains may have different security policies. (See
`section titled Security Policies on page 114.) Governments also may regu-
`late some of the mechanisms (e.g., cryptographic algorithms), therefore,
`different installations of a system may need to use different algorithms.
`The model also should be extensible.
`
`0 The model must support small systems and very large distributed sys-
`tems. This means that the mechanisms must

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket