Use of SOA for Distributed Simulation: A Way Forward David L. Drake & Katherine L. Morse, PhD The Johns Hopkins University Applied Physics Laboratory (JHU/APL) david.drake@jhuapl.edu katherine.morse@jhuapl.edu Keywords: Service-Oriented Architecture, Simulation, Infrastructure, Cloud Computing ABSTRACT: One of the promising directions for multi-architecture distributed simulation interoperability has been the use of a Service-Oriented Architecture (SOA) for component management, installation, configuration, initialization, and control. Many of the challenges of distributed simulation are addressed by SOA’s principles of interface standardization, loose-coupling of services, and service composability. The impetus for employing SOA in this manner is simulation asset reuse, increased accessibility, and the potential of rapid component deployment. Despite the upbeat technical and financial outlook for employing SOA in this domain, there are barriers that have been recognized. This paper presents a distributed simulation-specific architectural paradigm for employing SOA, descriptions of successful implementations, and a hard look at both the current technical, financial, and managerial challenges to bridging the gap between the traditional approach: operating distributed simulations in static, isolated configurations, and the use of a SOA approach: using highly dynamic, reusable/reconfigurable simulations with multiple contributors. 1 Introduction SOA is an architectural approach that supports integrating software components as loosely coupled services. Successful application of SOA allows systems to adapt quickly, easily, and economically to support rapidly changing needs while providing customers with flexibility in their business processes and enabling them to reuse their existing hardware and software assets by connecting disparate applications and information sources [1]. In this paper, we describe SOA and identify several technical approaches for integrating it into distributed simulations including: Simulation components as services, Federations as services and centralized simulation management, Federations with gateways as services centralized simulation management, Adding gateways as services & peer-to-peer simulation communication, and Common simulation components as services. and With these technical approaches in hand, we proceed to describe how they can provide value to the distributed simulation enterprise. We conclude by describing efforts in this direction and issuing a challenge for future improvements. 1.1 SOA Overview When creating a SOA, software development teams develop and make available software capabilities, while retaining control of the software execution. Instead of distributing software that allows independent execution or linking libraries into executables, development teams expose a capability or service to potential users. These remote capabilities can be accessed directly by users through desktop or web applications. Both end-users and other services can be clients of a SOA service. Software written for use by an end-user to access SOA services is referred to as an application. The capability provided by a service may be as simple as saving or retrieving a piece of information, similar to what a local database might do, or the function may be significantly more complex, involving interaction with vast amounts of data, use of substantial computer resources for calculations, or sending and receiving streams of information. While services are often accessed directly by user applications, they can also be accessed by other services. In many cases, the services within a SOA are built at different abstraction levels. Some services provide baseline capabilities, while other services leverage these baseline capabilities to provide more complex capabilities. Using existing services as building blocks to create higher level services encourages composability and reuse, two of the guiding principles of SOA. Many SOA architectural diagrams illustrate their abstraction levels as strata and place their services within a layer. Separating the function of the service from the user of the service allows the service provider flexibility with regard to hardware. Servers that host services can be clustered to maximize performance, load-balanced to increase efficiency, or configured to fail-over to redundant servers for high availability. Services can also be hosted on multiple virtual machines that are running on the same machine. In this configuration, multiple services could run together on one physical machine initially, but could be spread across multiple physical machines easily when greater performance is needed. Reusability: Publishing a service makes it available to other software projects. There are standard protocols established for registering and finding services. These are only some of the many possible choices available to service implementers as they consider what functions to provide to their potential users and how to make them most attractive and capable for their use. The actual location of service executions is often hidden from application developers and end users. Application developers and users instead rely on the existence of services and their ability to perform functions as advertised. Composability: Applications and services can combine information supplied by multiple services, combining the information to show a correlation or relationship that was not originally provided, as an example. These are often called mashups. Well-defined modular services can act as the components for higher complexity services. Through this use of modularity and mashups, development effort for the individual services and new, higher-tier projects will decrease relative to a non-mashup development approach. Further, as different methods are used to implement similar capabilities, programs that use them may have the option to select services based on efficiencies of a given situation. Composability enables this happening at the time of invocation by the selection of potentially different services when needed. Different hosts that are part of the same SOA may be under control of different ownership domains. SOA distributes governance of each information technology (IT) resource to the organization best able to handle it: the providers of the software. The service providers benefit by being able to maintain control of the software and hardware on which it runs. They have full control over configuration, access, and software and of the hardware upgrades. They do not have to deliver code or binaries. Instead, they deploy the software as a service that they host. The users of the service benefit because they do not have to purchase the servers or maintain the servers or software. Software and hardware upgrades should be transparent to the user. 1.2 SOA Principles SOA is not a physical architecture or a fixed set of tools, but rather a philosophical approach to creating architectures. To this end, SOA is driven by a set of design principles [2]. The following is a list of some of the key guiding principles of SOA design. Abstraction: Generally, clients can ignore service implementation details and think of services provided by a SOA as “black boxes.” SOA clients are provided information about input and output formats, but are not usually provided with details of how processing is actually accomplished, where systems and services are located, or other internal details. SOA clients need only be informed as to how to invoke the SOA services and what to expect in return. It is worth noting that SOA services need not be restricted to request-response transactions. For example, a client could use a SOA service to start and stop streamed content or direct two SOA services to interact with one another. Loose Coupling: Loosely-coupled services are those that have interfaces that are designed for general use, instead of being molded to fit a certain application. Designing for loose coupling leads to services that are more likely to be used by other projects because it is easier for the developers of another project to adapt their software to use a general interface than it is to adapt to an interface that was designed for some specific piece of software. Discovery: SOA defines a standard way for developers to find existing services that can be used in new projects and for clients to check which services are available. Standardized service discovery facilitates reuse. 1.3 SOA Governance A critical concept to a successful SOA system implementation is that of governance. Governance is a set of information-sharing rules that are determined by the SOA system architects and the SOA user base. Since the goal of the creation of a SOA system is often to organize and control the flow of information throughout an organization, agreement is needed on the interfaces and terminology that will be used throughout the SOA. For example, if an organization’s billing department is creating a service that will interface with the contracts department, they should agree upon a consistent format and terminology for representing the organization’s fiscal years. Although this may seem to be a small item to agree upon, it may be the case that the calendaring system used by the two departments may have differed before the planning of the SOA, and so a change to business practices is required for one or both of the departments if the SOA is to be successful. There are many strategies for resolving these types of issues, and it becomes one of the major steps in the planned deployment of a SOA. SOA governance is traditionally captured in two locations (the term location is used to prevent confusion since informal, formal, and automated means are used to capture the governance rules): one is referred to as the Policies and the other is referred to as the Registry and Repository. The Policies define both design-time and run-time rules that will be followed by all of the service creators. Because a SOA is not normally developed by a single team, agreement is needed on the interfaces that will be used, and the formalized metaconcepts and ontologies on which the interfaces are based. As part of these interface definitions, the Policies document also defines the hierarchical interoperability framework to which the services will need to adhere. The Policies document can also contain the design goals of the SOA, such as delivering value to its stakeholders and conforming to standards or laws, i.e., compliance with Sarbanes-Oxley or the Health Insurance Portability and Accountability Act (HIPAA) of 1996. Other goals commonly stated in the Policies document include providing an infrastructure that can accommodate technical transformation and ensuring a quality of service for clients. The Policies document also addresses run-time rules. These rules define the details of the service contracts and the required security measures, expected service levels, and the restrictions of service use. Since clients can be responsible for both providing and receiving information, the overall SOA services have interdependencies on the service providers and their services, and the quality of those services affect the quality of the system as a whole. For that reason, the Policies document frequently defines an ownership relationship between service providers and their services, and the rewards and penalties for service providers that respectively meet or fail to meet the rules stated in the Policies document. In a business setting, these rewards and penalties are usually financial in nature. The Registry and Repository provide run-time detail for the service providers and, if automated, to the services themselves. The Registry lists all of the active services and how each service can be reached. The Repository contains pointers to design-time and run-time policy information, and contains the architectural diagrams showing how the SOA will be deployed and extended. 1.4 SOA and Web Services Web services are one possible communication protocol for a SOA. Web services enjoy wide tool support for all major programming languages and operating systems, reducing the effort required to integrate heterogeneous components. Web services communicate via Extensible Markup Language (XML) messages typically sent over Hypertext Transfer Protocol (HTTP) to web servers [3]. XML is a very portable file format since it is text-based rather than binary-format. It is widely accepted and easy to use as an interface protocol given the wide number of tools and software components that have been created to read and create XML files. On the downside, traditional text-based XML is verbose and XML-formatted files can be much more voluminous than binary-format files. Using XML messages can saturate networks more quickly than more compressed formats; however, there are standards for compressing XML ([4] and [5]) that ease this problem. People first learning about SOA often make the mistake of thinking that SOA services must be implemented via web services using HTTP. Although this is frequently the case, particularly for SOAs that are visible to enduser systems through web browsers, it need not be the case. As long as the SOA principles are adhered to, in general, any protocol can be used for the services to communicate. Examples of non-web services are ad hoc service interfaces run from within a programming language, such as C++ [6] or Java [7], or a service infrastructure such as Microsoft’s .NET Framework [8] or the Common Object Request Broker Architecture (CORBA) [9]. 2 Application of SOA to LVC M&S This section examines how the integration of SOA and LVC distributed simulations can be accomplished. 2.1 Assumption of Composability One of the concerns with using a SOA is that the service interface protocol syntax and semantics need to be well defined to allow communication between the services. Current M&S assets at all levels (models, federates, federations, and multi-architecture simulations) have not been written to use consistent or interchangeable interfaces. To be able to connect M&S assets as services, this will be required to some level, even if translation components, such as gateways, are employed. While composability is one of the principles of SOA, it is not a guaranteed result of building a SOA. Composability must be designed into the software components during development. Composability is more difficult to achieve than interoperability. It is not enough for software components to be written in the same language or communicate using a shared protocol; composable services must have interfaces that are syntactically and semantically consistent. This clearly indicates the necessity for composability of components. To proceed with the concept of employing a SOA, the presumption is made that the simulation systems being integrated are composable without a SOA infrastructure. To state it simply: a SOA cannot compose components that were not already composable. So arguments about the difficulty of composability are not within the scope of an examination of the benefits and barriers of employing SOA to LVC distributed simulations. 2.2 Integration Approaches Since SOA is less of a formalized architecture and more of a framework under which to build an architecture, there are a number of approaches that can be used to integrate SOA with LVC distributed simulations. The subsections that follow describe how the integration can be approached. 2.2.1 Simulation Components as Services The simplest architecture approach for applying SOA to distributed simulation is to have the individual simulation components act as services that are accessible from a centralized SOA simulation management system. A number of exemplars have been implemented that have taken this approach. For the exemplar to be shown as being more than just a replacement for a distributed simulation infrastructure, such as an RTI implementation, the simulation management service acted in the role of a gateway for individual simulation components, such as HLA federates. This concept is depicted in Figure 1. philosophical in nature. If the SOA infrastructure needs to change for every change or additional simulation component, the addition of the SOA infrastructure has not gained the developers or users any advantage in efficiency in development, deployment, or maintenance. The next greatest hurdle is the communication bottleneck that is caused when all of the simulation components have to go through a gateway to communicate to each other. This issue becomes more apparent as the number of simulation components is greater than three, placing the full extra-component communication load on the gateway. As an exemplar to show the feasibility of employing SOA in a distributed simulation, the “Simulation Components as Services and Centralized Simulation Management” approach works, but it lacks scalability unless other means are used to limit the reconfiguration of the gateway(s) within the simulation management service. 2.2.2 Figure 1. Simulation Components as Services with Centralized Simulation Management A wrapper is a software component that envelops a piece of legacy software and makes it externally look like a service. Through the use of wrappers, a simulation component is treated as a service. By taking this approach, it is easier to incorporate legacy software components into a service-oriented architecture than to rewrite the legacy software from scratch. The key to success in this approach is to build a modular gateway within the SOA infrastructure to perform the translation between the simulation components. This allows the simulation components to be written for different simulation infrastructures, which demonstrates the legitimacy of this integration approach. Federations as Services and Centralized Simulation Management The “Federations as Services and Centralized Simulation Management” paradigm is a minor but important variation in the previous subsection, “Simulation Components as Services with Centralized Simulation Management,” which is to use a wrapper around entire simulation architectures, creating services at a higher level of abstraction, as shown within the red rectangles in Figure 2. By doing so, the entire functionality of the simulation architecture operates within each of the services, including simulation management and communication capabilities specific to the simulation architecture. In this paradigm, the SOA infrastructure also has the responsibility of overall simulation management, such as starting, pausing, and terminating the overall simulation. Although this approach is good for showing SOA’s applicability for exemplars, there are some issues with it in the long run. The greatest hurdle is that gateways are traditionally implemented and configured in a very specific manner for the simulation components for which it is translating. In this case, it means that one of the principles of SOA infrastructure, loose coupling, is not followed because adding or modifying simulation components causes a great deal of change to the configuration of the gateway and the simulation service management. A loosely coupled system would have well-defined service interfaces that would not require changes to the SOA. This issue is more than Figure 2. Federations as Services with Centralized Simulation Management This allows each of the simulation architectures to run independently, while a wrapper service passes simulation data from the network on to the SOA simulation management service. Within the SOA simulation management service, a gateway can pass data between the architectures. By allowing the architectures to be encapsulated, each of these services is more autonomous, allowing the functionality within the service to be more mutable with less effect on the SOA simulation management information that needs to architecture boundaries will gateway resident in the SOA service. service. Also, only the be shared across the be passed through the simulation management similar manner, and configured as part of simulation initialization. That would allow the users of the SOA to have a flexible interface definition that could be configured as needed for each simulation exercise. However, this approach still has the hurdle that gateway is traditionally implemented and configured in a very specific manner for the simulation components that for which it is translating, which means that this approach is still not loosely coupled since adding or modifying the simulation architectures will still cause some changes to the configuration of the gateway and the simulation service management. This approach still lacks well-defined service interfaces. The issue with this structure is that it still has all of the simulation architecture to simulation architecture communication flowing through one point, the SOA simulation manager service. For larger exercises, this could be a serious communications bottleneck. A more minor issue is that the gateways would need to pass exercise-level simulation control protocols, such as initialization, starting, pausing, and stopping. Most gateways could have this capability added to it, but it would mean that there was a mix of protocols within the external facing end of the gateway. 2.2.3 Federations with Gateways as Services and Centralized Simulation Management The “Federations with Gateways as Services with Centralized Simulation Management” paradigm requires the services to use a standardized interface for each of the architecture services, as illustrated in Figure 3. Figure 3. Federations with Gateways as Services with Centralized Simulation Management To meet the interface specification, which would have been defined and agreed upon by the users and developers of the SOA in the SOA governance documents, a gateway for each of the simulation architectures would need to be included. Each of these gateways would have to translate the data that needs to be shared with the other simulation architecture services into a common language that could be passed to the other service. 2.2.4 Adding Gateways as Services & Peer-toPeer Simulation Communication The “Adding Gateways as Services & Peer-to-Peer Simulation Communication” paradigm addresses the issues previously presented, and is illustrated in Figure 4. If the same type of gateway is used in each simulation architecture service, then it makes architectural sense to have the gateway be provided as a service itself, one that can be run as multiple instances, each with their own configuration. Using that approach, the communication between simulation architectures can be done point-to-point, or n-way, as needed, which would allow the simulation architecture to simulation architecture communication to be as direct as needed to eliminate communication bottlenecks. The critical concept that needs to be part of the SOA is that the configuration of the simulation exercise needs to pass the information to the simulation architecture services the details of their peer services so that the peer-togateway-to-peer communication can be configured. This is well within the capabilities of a SOA, and is commonly used in non-simulation systems that share information by using peer services that have relatively short network distances. This approach would work well if there were an agreed upon language that the simulation architectures could all use. An example of this approach was the use of the U.S. Joint Battle Management Language (JBML) for the George Mason University (GMU) North Atlantic Treaty Organization (NATO) exercise [10], which used SOA technology for information exchange among its simulation component interfaces. However, in general, this may be too constraining. One protocol may not fit all of the situations for which the SOA is intended. A variant of this to address this issue is that the gateways used could be configurable in a Figure 4. Adding Gateways as Services and Peer-to-Peer Simulation Communication This approach addresses all of the SOA requirements for a simulation exercise management system. It could integrate differing simulation architectures, as long as there was a capability for those simulation architectures to be compatible without the SOA infrastructure. One of the challenges for this paradigm is a consistent interface to the configuration of the gateway instances. Although multiple gateway services could be used, such as an HLA to DIS gateway and a HLA to TENA gateway, the simulation exercise integrator would be best served with a single general-purpose gateway that was highly configurable. That would allow the communication policies to be as configurable as the simulation exercise integrator needs it to be, and the SOA infrastructure would have a longer lifecycle since it wasn’t tied to particular protocol specifications. 2.2.5 Common Services Simulation Components as SOA provides a benefit to an architectural plan that wasn’t taken full advantage of in the previous four subsections, the concept of extracting common functional components and implementing them as stand-alone services so that they can be shared. For instance, each of the simulation architectures has some form of simulation activity logger that allows developers and exercise managers to verify that the simulations are operating as expected. By adding a common log data collection and inspection service, exercise-wide analysis can be performed [11]. This doesn’t exclude the ability to perform simulation architecture-specific log collection and analysis, but rather enhances that capability. This concept of extending the set of services to include common simulation components is shown in Error! Reference source not found.Figure 5. Figure 5. Common Simulation Components as Services The challenge to this is how the SOA governance would request common service information to be available to the services, or how the common services would initialize or monitor the simulation architectures. This is more of an issue in regard to getting the policy makers to agree to the interface rather than a technical one, so the challenge is surmountable. 2.3 SOA Capabilities Applicable to Distributed Simulation With application of SOA infrastructure approaches as described in the subsection above, “Integration Approaches,” a web site could be developed that would interface with the SOA simulation management service that would allow the activities in the bulleted list below. These activities would allow the storage of components and configurations into a “cloud,” which could reside in either a public site that was controlled through secure web services or into a secure government or military network. Simulation Component Installation: A developer would be able to upload a simulation component to a simulation architecture service, such as uploading a semi-automated forces simulation onto an RTI service that is storing a named instance of an HLA simulation. Continuing the example, the interface could also allow a modular FOM to be uploaded to the RTI service. The compatibility of the modular FOM to the named instance of an HLA simulation could also be verified as part of the upload capability of the RTI service. Different simulation architectures would allow similar services to define its architecture-specific object models. Gateway Instance Configuration: A developer or simulation manager would be able to upload a named configuration file for a general-purpose gateway. The configuration file would indicate, for example, how to map communications from one simulation architecture to another simulation architecture and back. Simulation Exercise Configuration: A simulation manager would be able to use a select, drag, and drop interface to construct the overall simulation services. The interface would allow the simulation manager to show which named simulation architectures connect to gateways running which named gateway configurations. The interface would allow the configuration of the simulation exercise to be named by the simulation manager for future reference. Simulation Exercise Initialization: A simulation manager would be able to select a named simulation configuration for initialization. The interface would know of the object types available to populate the exercise, and how to associate those objects to an “owner,” which would be a named simulation component within a named simulation architecture. Simulation Exercise Execution Planning: A simulation manager would be able to select a named initialized simulation exercise for execution. The interface would allow the simulation manager to invite participants to interact with the simulation, including the time of the simulation exercise start. Simulation Exercise Execution: Before the simulation exercise start time, the SOA simulation management service would instantiate the simulation services as needed, populate the simulation objects, and provide the simulation managers with a status of the overall simulation exercise, showing if it was ready to proceed. Participants would be signaled to initialize their interaction with the exercise. Some of the participants would be using live or virtual components in the exercise; others may interact directly with the simulation components, such as a semi-automated forces display; while others may be interfacing with common web services through an interface. The simulation exercise would progress through the exercise, with status interfaces available to the simulation managers. Although this scenario may seem extreme, modifiable multiuser online virtual games are able to do this today. Game infrastructure developers, such as Muzzy Lane [12], provide general-purpose SOA architectures for “plugging in” game/simulation components, such as the ones described above. In the case of Muzzy Lane, their technology to allow online game creation is called their Sandstone Platform [13]. 3 The demonstration system contained three national C2 systems, a middleware C2 lexical GUI employing JBML web services, three national simulation systems, and a Joint Command, Control and Consultation Information Exchange Data Model (JC3IEDM) visualizer that provided a common operating picture for the overall system. Each of the simulations that were contributed had to be modified to communicate using the common JBML rather than the C2 language originally employed by the simulation. The United States also contributed the JBML web services that acted as a hub for the SOA communications. The threelayer web services communication architecture is shown in Figure 7. The layers are: The BML domain-configured service: provides the representation of the domain-specific language in the form of a grammar-based schema. BML base services: defines the domain-configured service in terms of BML, which represent the information element groups that specify information objects of interests. Common data access service: this, the lowest level, performs the exchange of information elements between domains. It is normally hidden from the simulations that interact with the higher-level services. This is the level that interacts with the database. Leaning Forward In this section, we describe two, unrelated efforts that are leaning forward with respect to adopting SOA for LVC. They’re not yet the future, but they’re steps along that path. 3.1 enhanced version of BML, the JBML, as seen in Figure 6. The MSG-048 November 2007 Demonstration The NATO Modeling and Simulation Group Technical Activity 48 was chartered to investigate the potential of a standard formal language for multinational command and control (C2) military operations within modeling and simulation systems, dubbed the Battle Management Language (BML). As a result of this charter, a SOAbased system was implemented to aid in the development and demonstration of the virtues of BML. A service-oriented approach was seen as a way to allow multiple international contributors to provide services that would employ BML for simulation exercise C2. The demonstration was held in November of 2007. Figure 7. MSG-048 Web Services Architecture The team’s SIW paper [14] has the following conclusion, which captures the enthusiasm for this innovative approach to using SOA for a complex, collaborative simulation demonstration. Figure 6. MSG-048 November 2007 Demonstration System Architecture Each member of the coalition contributed one or more simulation components/clusters, written to use the The MSG-048 November 2007 demonstration provides very strong evidence in favor of the techniques employed as a basis for a SOA approach to using simulations with C2 systems. First and foremost, the approach based in formal linguistics […] and associated Web Services, with strong semantics (using the JC3IEDM-derived vocabulary), provided an extremely effective medium of expression for communication among the various systems. Perhaps equally important, the network-centric development methodology proved highly effective, especially when employed by national development teams with a highly cooperative spirit, including technical developers and military subject matter experts. Our key observation about this effort is that most NATO nations cannot afford not to take this type of integrative approach. 3.2 LVCAR-I Reusable Tools Recommendation One of the other tasks under LVCAR-I, Reusable Tools, examined approaches for improving the sharing and reuse of development tools across programs and communities [15]. The purpose was to mitigate the existence of a wide range of tools utilizing a correspondingly wide range of business models. Not only does conversion between the formats supported by these differing tools introduce cost and risk1, but the tools are usually purchased in small quantities by different DoD organizations without benefit of quantity discounts or efficient use of licenses. Figure 8 provides an illustration of the recommended actions to migrate from one business model to another in order to change business model focus for reusable tools and take other actions beneficial to DoD’s reuse goals. Figure 8. Relationship of Long Term Recommendations Correspondingly, one of the resulting recommendations includes: Where a large number of licenses have been and continue to be procured from industry, take the following actions in the order presented until a viable option is identified: a. Shift to open source. b. Shift to Software as a Service. Software as a Service (SaaS) does not necessarily mean SOA from a technical perspective, but is essentially the same from a business model perspective. 1 This issue is the subject of another LVCAR-I task, Common Data Storage Formats. We haven’t yet addressed open source, but its close presence in the recommendation makes this a good point to discuss its relationship to SOA. When commercial industry adopts SOA, it tends to adopt an open Application Programming Interface (API) approach, i.e. the documentation for the API to the SOA is publicly diseminated, but the design and implementation of the SOA is proprietary. If the SOA itself were open source, their would be little to no commercial value to the vendor. The DoD is not a commercial vendor. Providing open source for SOA implementations can benefit the DoD by creating a pool of successful example for contractors to reuse and tailor. This approach can also improve the sustainability of the DoD enterprise by creating an open source support community from which all contractors can draw. Other DoD initialtives using open source can be found at <http://forge.mil>. 4 The Way Forward As the last section illustrates, the technology and the intent exist to move forward with adoption of SOA as a useful tool in the LVC toolbox, but there is still resistance to the business model changes necessary to achieve such usefulness. In their recent article, “If Only Einstein Were Still Around to Help the Government Fix Information Technology Acquisition,” Gunderson and Pullen [16] observe: In other words, technologists can fuel success when they follow the money. By carefully observing existing patterns of transactions, providing tools that reduce barriers to those transactions, and expanding the market space, IT practitioners can fan sparks into bonfires by providing “enterprise” capabilities. However, they need to start where the sparks already exist. Defense leaders should take a cue from Einstein and ask themselves why the dozens of previous reports, roadmaps, and mandates aimed at fixing aspects of Defense IT acquisition have not led to the envisioned successes. Therefore, Einstein might have suggested that the DE stop pushing particular technologies, and focus on “market forces.” Lest we be accused of missing the point being made by Drs. Gunderson and Pullen, we are not advocating for SOA for the sake of SOA. The examples in the preceding section were intended to highlight the business need for and the technical efficacy of SOA as a technology for delivering LVC enterprise capability. We conclude with a proposal to “fan sparks into bonfires” for SOA in the LVC arena. Starting in 2010, the Space Forum of the SIW began sponsoring the SISO Smackdown [17]: The SISO Simulation “Smackdown” is an international cooperative experience where teams of university students—with help from faculty advisors, M&S (modeling and simulation) professionals within industry, NASA, and other areas of government— build and participate in a simulated lunar resupply mission. Smackdown is a “distributed,” multi-team cooperative competition that occurs simultaneously across multiple time-zones. Participating teams design, model, program, test, and operate a simulated spacecraft—or other mission device such as a rover or satellite—on a simulated mission from the Earth to a virtual moon base. It would be hard to overstate the success of this initiative at engaging university students with standards-based M&S technology and getting them excited about the field. These students are unencumbered by “can’t, don’t, shouldn’t, and won’t.” We suggest that these energetic M&S pioneers are in an excellent position to demonstrate that SOA “can, does, should, and will” be a viable LVC solution. 5 Acknowledgements The contents of this paper were drawn from the JHU/APL report Live-Virtual-Constructive ServiceOriented Architecture: Service-Oriented Architecture Application to Live-Virtual-Constructive Simulation: Approach, Benefits, and Barriers, NSAD-R-2011-025, funded under the LVCAR-I program by Dr. Gary Allen of the Joint Training Integration and Evaluation Center under Task JHS01 of Contract N00024-03-D-6606. Much of this material is also covered in the tutorial “Employing SOA FOR LVC Multi-Architecture Distributed Simulations.” References [1] Carter, S., The New Language of Business: SOA & Web 2.0, Upper Saddle River, NJ: IBM Press, 2007. [2] Erl, T., Service-Oriented Architecture: Concepts, Technology, and Design, Upper Saddle River, NJ: Prentice Hall PTR, 2005. [3] Extensible Markup Language (XML) 1.0 (Fifth Edition), W3C Recommendation, 26 November 2008. [4] Guardalben, G., “Compressing and Filtering XML Streams,” <http://www.w3.org/2003/08/binaryinterchange-workshop/33-HiT-W3C-Workshop2003.pdf>, August 2003. [5] Cheney, J., “Compressing XML with Multiplexed Hierarchical PPM Models,” Proceedings of the 2001 IEEE Data Compression Conference, 2001. [6] C++ reference <http://en.wikipedia.org/wiki/C%2B%2B>. [7] Java reference <http://en.wikipedia.org/wiki/Java_(software_platf orm)>. [8] .NET Framework reference <http://en.wikipedia.org/wiki/.NET_Framework>. [9] CORBA reference <http://en.wikipedia.org/wiki/Corba>. [10] Pullen, M., Carey, S., Cordonnier, N., Khimeche, L., Schade, U., de Reus, N., LeGrand, N., Mevassvik, O. M., Galan, S., Godoy, S. G., Powers, M., Galvin, K., “NATO MSG-048 Coalition Battle Management Initial Demonstration Lessons Learned and Way Forward,” Spring 2008 Simulation Interoperability Workshop, 2008. [11] Wagenbreth, G., Davis, D., Lucas, R., Yao, K-T., Ward, C., “Nondisruptive Data Logging: Tools for USJFCOM Large-scale Simulations,” Fall 2010 Spring Simulation Interoperability Workshop, 2010. [12] Web site for Muzzy Lane: <http://www.muzzylane.com/ml/about>. [13] Web site for Muzzy Lane Sandstone Platform: <http://www.muzzylane.com/ml/sandstone_platfor m>. [14] Pullen, M., Carey, S., Cordonnier, N., Khimeche, L., Schade, U., de Reus, N., LeGrand, N., Mevassvik, O. M., Galan, S., Godoy, S. G., Powers, M., Galvin, K., “NATO MSG-048 Coalition Battle Management Initial Demonstration Lessons Learned and Way Forward,” Spring 2008 Simulation Interoperability Workshop, 2008. [15] Morse, K.L., et al, “LVCAR Reusable Development Tools,” Proceedings of the 2010 Fall Simulation Interoperability Workshop, Orlando, FL, September 20 – 24, 2010. [16] Gunderson, C. And Pullen, M., “If Only Einstein Were Still Around to Help the Government Fix Information Technology Acquisition,” Defense AT&L Magazine, November-December 2011. [17] SISO Smackdown, http://sisosmackdown.com. Author Biographies DAVID L. DRAKE is a member of the Senior Technical Staff in the Force Projection Department at Johns Hopkins University Applied Physics Laboratory performing research and development in the area of modeling and simulation supporting the U.S. government and military. Mr. Drake was the lead on the Live Virtual Constructive (LVC) Service-Oriented Architecture Task, and supports the LVC Architecture Roadmap Implementation tasks for Common Gateways and Bridges, Futures, and Reusable Tools. Mr. Drake has 10 years experience in modeling and simulation design, development, and standards, and 24 years as a computer security professional in computer security design, implementation and evaluation. Mr. Drake received his Bachelors in Mathematics from State University of New York at Buffalo. He is published in the areas of simulation, service-oriented architecture, grid computing, security, and risk assessment and has a patent on the process for enterprise-wide intrusion detection. Dr. KATHERINE L. MORSE is a member of the Senior Professional Staff at the Johns Hopkins University Applied Physics Laboratory. She received her B.S. in mathematics (1982), B.A. in Russian (1983), M.S. in computer science (1986) from the University of Arizona, and M.S. (1995) and Ph.D. (2000) in information & computer science from the University of California, Irvine. Dr. Morse has worked in the computer industry for over 25 years, specializing in the areas of simulation, computer security, compilers, operating systems, neural networks, speech recognition, image processing, and engineering process development. Her Ph.D. dissertation is on dynamic multicast grouping for data distribution management, a field in which she is widely recognized as a foremost expert. She is a member of Phi Beta Kappa, Dobro Slovo, ACM, and a senior member of IEEE. Dr. Morse was the 2007 winner of the IEEE Hans Karlsson Award.